1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-19 09:29:15 +00:00

Make TENTH run under ITS.

This commit is contained in:
Lars Brinkhoff 2018-08-23 07:46:22 +02:00
parent 7ae1202132
commit 3c2f52304a
2 changed files with 31 additions and 2 deletions

View File

@ -1165,6 +1165,10 @@ respond "*" ":kill\r"
# TENTH, toy Forth for KS10.
respond "*" ":midas .; @ tenth_aap; tenth\r"
expect ":KILL"
respond "*" ":midas /t aap; ts tenth_tenth\r"
respond "end input with ^C" "TS==1\r"
respond "\n" "\003"
expect ":KILL"
# 11BOOT
respond "*" ":midas /t sys3;ts 11boot_syseng;11boot\r"

View File

@ -2,13 +2,21 @@ TITLE TENTH
EXPUNGE .SWAP,.BEGIN,.END,.ELSE,.I
IFNDEF TS,TS==0
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,[
APR=0
CTYIN=32
CTYOUT=33
]
IFN TS,[
TYIC==1
TYOC==2
]
PDLLEN=100
PDL: .=.+PDLLEN
@ -22,7 +30,18 @@ WORDBUF: 0 ? .=.+10
WORDBP: 440700,,WORDBUF+1
START:
SETZM CTYIN
IFE TS, SETZM CTYIN
IFN TS,[
.OPEN TYIC,[.UAI,,'TTY]
.LOSE
.OPEN TYOC,[.UAO,,'TTY]
.LOSE
.CALL [ SETZ ; turn off echoing
SIXBIT /TTYSET/
MOVEI TYIC
MOVE [030202,,020202]
SETZ [030202,,020202] ]
]
MOVE P,RSP
MOVE PP,PSP
MOVEI PC,[.QUIT]
@ -34,12 +53,15 @@ START:
; print ASCII character in AC 0 - changes AC 0
PUTCHAR:
IFE TS,[
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
CAIE 0,400\^J
]
IFN TS, .IOT TYOC,0
CAIE 0,IFE TS,[400\]^J
POPJ P,
MOVEI 0,^M
JRST PUTCHAR
@ -99,12 +121,15 @@ PRNTNSP:
; reads one character into AC 0
GETCH:
IFE TS,[
CONO APR,12000 ; 10000 = set flags, 2000 = interrupt flag
MOVE 0,CTYIN
CAIN 0,0
JRST .-2
SETZM CTYIN
TRZ 0,400
]
IFN TS, .IOT TYIC,0
CAIN 0,^M
MOVEI 0,^J
POPJ P,