diff --git a/src/aap/tenth.3 b/src/aap/tenth.4 similarity index 98% rename from src/aap/tenth.3 rename to src/aap/tenth.4 index 8185536a..0b670f29 100644 --- a/src/aap/tenth.3 +++ b/src/aap/tenth.4 @@ -3,16 +3,23 @@ TITLE TENTH EXPUNGE .SWAP,.BEGIN,.END,.ELSE,.I IFNDEF TS,TS==0 +IFNDEF KA,KA==0 +IFNDEF KS,KS==1 + +IFN TS+KA+KS-1,.ERR Must assemble for one of TS, KA, or KS. X=14 ; pointer into code/parameter field PC=15 ; the interpreter's program counter PP=16 ; parameter stack pointer P=17 ; return stack pointer -IFE TS,[ +IFN KS,[ APR=0 CTYIN=32 CTYOUT=33 ] +IFN KA,[ +TTY=120 +] IFN TS,[ TYIC==1 TYOC==2 @@ -30,7 +37,7 @@ WORDBUF: 0 ? .=.+10 WORDBP: 440700,,WORDBUF+1 START: -IFE TS, SETZM CTYIN +IFN KS, SETZM CTYIN IFN TS,[ .OPEN TYIC,[.UAI,,'TTY] .LOSE @@ -53,15 +60,20 @@ IFN TS,[ ; print ASCII character in AC 0 - changes AC 0 PUTCHAR: -IFE TS,[ +IFN KS,[ IORI 0,400 ; valid bit MOVEM 0,CTYOUT CONO APR,12000 ; 10000 = set flags, 2000 = interrupt flag SKIPE CTYOUT ; wait for transmission to complete JRST .-1 ] +IFN KA,[ + CONSZ TTY,20 + JRST .-1 + DATAO TTY,0 +] IFN TS, .IOT TYOC,0 - CAIE 0,IFE TS,[400\]^J + CAIE 0,IFN KS,[400\]^J POPJ P, MOVEI 0,^M JRST PUTCHAR @@ -121,7 +133,7 @@ PRNTNSP: ; reads one character into AC 0 GETCH: -IFE TS,[ +IFN KS,[ CONO APR,12000 ; 10000 = set flags, 2000 = interrupt flag MOVE 0,CTYIN CAIN 0,0 @@ -129,6 +141,11 @@ IFE TS,[ SETZM CTYIN TRZ 0,400 ] +IFN KA,[ + CONSO TTY,40 + JRST .-1 + DATAI TTY,0 +] IFN TS, .IOT TYIC,0 CAIN 0,^M MOVEI 0,^J