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:
parent
7ae1202132
commit
3c2f52304a
@ -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"
|
||||
|
||||
@ -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,
|
||||
Loading…
x
Reference in New Issue
Block a user