ESSAG JMP GET STC TF SET I 1 LAB2-4000 JMP MESSAG JMP GET STC TI SET I 1 LAB3-4000 JMP MESSAG JMP GET STC TD SET I 1 LAB4-4000 JMP MESSAG JMP GET STC TM SET I 1 LAB5-4000 JMP GET BSE I 3000 /SET MBLK=3 STC TBLK /INITIALIZE TAPE FILE ADD TBLK STC .+2 RDC U 0 SET I 4 5377 /VERIFY FILE: STARTS WITH "*20,CR" LDA I 4 SAE I 5262 JMP ERR1 LDA I 4 SAE I 6043 JMP ERR1 /EACH TRIAL STARTS HERE /ENCODE NEXT TWO LINES OF FILE: DISPLAY /AND MASK STRINGS INTO BUFFER&UP /HALTS IF SW 5 UP / TRIAL, SNS I 5 HLT SET I 7 BUFFER-4000 JMP NXCHAR SAE I 57 /LINE BEGINS "/" JMP ERR2 JMP NXCHAR STH I 7 SAE I 43 /ENDS WITH CR JMP .-4 LDA 7 STC ADMASK /AD-1/2 MASK JMP NXCHAR SAE I 57 JMP ERR2 JMP NXCHAR STH I 7 SAE I 43 JMP .-4 /STRINGS IN BUFFER. DISPLAY FIX DOTS /FOR "TF" CYCLES LDA I TF, 0 COM STC 5 JMP SYNC0 /START CLOCK JMP SYNC JMP SHOFIX XSK I 5 JMP .-3 /PAUSE "TI" CYCLES LDA I TI, 0 COM STC 5 JMP SYNC XSK I 5 JMP .-2 /DISPLAY STRING ON "TD" CYCLES LDA I TD, 0 COM STC 5 ADD ADBUFR STC STRING JMP SYNC JMP DISPLA XSK I 5 JMP .-3 /MASK STRING ON "TM" CYCLES LDA I TM, 0 COM STC 5 LDA I ADMASK, 0 STC STRING JMP SYNC JMP DISPLA XSK I 5 JMP .-3 /WAIT FOR RESPONSE ON 4-BUTTON PANEL IOB 6304 IOB 6301 JMP .-2 JMP TRIAL /END OF TRIAL! / ERR1, SET I 1 ELAB1-4000 JMP MESSAG JMP PARAM /RESTART ERR2, SET I 1 ELAB2-4000 JMP ERR1+2 ELAB1, TEXT "NOT A FILE!" ELAB2, TEXT "FILE ERROR!" ELAB3, TEXT "TIMING ERROR!" / LAB1, TEXT "TF CYCLES" LAB2, TEXT "TI CYCLES" LAB3, TEXT "TD CYCLES" LAB4, TEXT "TM CYCLES" LAB5, TEXT "TAPE FILE" / /SUBR TYPES OUT CR+ PACKED ASCII MESSAGE /POINTED BY 1. / MESSAG, LDA 0 STC MESRET LDA I C212, 212 JMP TYPE LDA I C215, 215 JMP TYPE LDH I 1 AZE I MESRET, HLT /RETURN ADA I -37 /ADD 100 OR 200 APO /FOR 8-BIT CODE ADD C100 ADA I 237 JMP TYPE JMP MESRET-2 C100, 100 / TYPE, PDP PMODE TSF JMP .-1 TLS LINC LMODE JMP / /SUBR ACCEPTS UNSIGNED 4-DIGIT OCTAL /NUMBER FROM TTY - RUBOUT RESTARTS IT / GET, LDA 0 STC GETRET ENTRY, STC NUM LDA I 275 JMP TYPE /INITIAL "=" SET I 2 -4 NEXDIG, KST JMP .-1 IOB 6036 SAE I 377 JMP .+3 CLR JMP ENTRY /RESTART JMP TYPE ADA I -260 STC LDA I NUM, 0 ROL 3 ADD STC NUM XSK I 2 JMP NEXDIG ADD NUM GETRET, HLT /RETURN / /SUBR NXCHAR: PULLS NEXT 6-BIT ASCII CH /OFF BUFFERED TAPE FILE, UNIT 1 /BUFFER LIF 1400-1777=5400-5477 / NXCHAR, DJR LDA 4 SAE I 5777 /END OF BUFFER? JMP ROOM LDA I 1 ADM I TBLK, 0 /NEXT FILE TBLK STC .+2 RDC U 0 SET I 4 5377 /RESET POINTER JMP ROOM /USE UP DJR ROOM, LDH I 4 AZE JMP /RETURN HLT /***END OF FILE! / /SUBR DISPLA: DISPLAYS STRING OF ASCII /PACKED AS HALF-WORDS STARTING AT /"STRING" & PROCEEDING UNTIL CR (=43) / DISPLA, LDA 0 STC DISRJ SET I 7 STRING, 0 /AD-1/2 CH STR SET I 1 X0, 340 LDH I 7 SHD I 4300 /43=END STRING DISRJ, HLT /RETURN ROL 1 ADA I PATRN-2 STC 2 /ASCII-PATTERN LDA I Y0, 0 DSC 2 DSC I 2 LDA I DX, 4 ADM 1 JMP X0+1 / /SUBR SYNC: WAITS FOR NEXT CLOCK TICK - /ERROR IF OCCURRED PRIOR TO ENTRY / SYNC, PDP PMODE CLA CLSA SPA CLA JMP E3 /ERROR CLSA SMA CLA JMP .-2 LINC LMODE JMP PMODE E3, LINC LMODE JMP ERR3 / /SUBR SYNC0: STARTS CLOCK "TICKING" AT /PRESCRIBED RATE (=5 MSECS) / SYNC0, PDP PMODE CLA CLEN CLLR TAD RATE CLLR CLA TAD MCYCLE CLAB CLSA CLA CLSA SMA CLA JMP .-2 /WAIT 1ST TICK LINC LMODE JMP PMODE RATE, 4100 MCYCLE, -5 LMODE / /SUBR DISPLAYS FIXATION DOT (2 PWS) / SHOFIX, LDA I 200 ESF /1/2-SIZE SET I 1 XFIX, 340 LDA I YFIX, 0 DSC I 7777 DSC I 7777 JMP /