mirror of
https://github.com/PDP-10/its.git
synced 2026-01-16 16:28:40 +00:00
97 lines
1.7 KiB
Plaintext
Executable File
97 lines
1.7 KiB
Plaintext
Executable File
; -*- Midas -*-
|
||
|
||
title MODEMS - Initialize Hairy Modems
|
||
; Here in the future, modems are smarter than we are.
|
||
|
||
a=:1
|
||
b=:2
|
||
c=:3
|
||
d=:4
|
||
e=:5
|
||
t=:6
|
||
tt=:7
|
||
|
||
chttyo=:10
|
||
|
||
slose=:.lose %lssys
|
||
quit=:.logout 1,
|
||
tyo=:.iot chttyo,
|
||
|
||
define syscall name,args
|
||
.call [setz ? sixbit /name/ ? args(400000)]
|
||
termin
|
||
|
||
go: syscall sstatu,[repeat 6,[ ? movem a]]
|
||
slose
|
||
movsi b,-lmchtab
|
||
came a,mchtab(b)
|
||
aobjn b,.-1
|
||
jumpge b,done
|
||
move a,tabtab(b)
|
||
loop: hlrz b,(a)
|
||
syscall ttyvar,[movei 400000(b) ? [sixbit /TTYTYP/] ? movem c]
|
||
slose
|
||
trnn c,%tydil
|
||
jrst next
|
||
idivi b,10
|
||
hrlzi c,'T00(c)
|
||
lsh b,24.
|
||
add b,c
|
||
syscall open,[[.uao\%tjsio,,chttyo] ? b]
|
||
jrst next
|
||
syscall ttyget,[movei chttyo ? movem b ? movem b ? movem b]
|
||
slose
|
||
tlne b,%tscns
|
||
jrst next ; Don't diddle our own console!
|
||
.reset chttyo,
|
||
syscall ttyset,[movei chttyo
|
||
[<010101,,010101>*%tgact]
|
||
[<010101,,010101>*%tgact]]
|
||
slose
|
||
hrrz b,(a)
|
||
hrli b,440700
|
||
jrst outlp1
|
||
|
||
; Each character is output preceeded by a 1/3 second pause.
|
||
; Except ^P just causes a 2 second pause.
|
||
; Except ^Q outputs the next character immediately.
|
||
outlpq: ildb c,b
|
||
outlp: tyo c
|
||
outlp1: ildb c,b
|
||
cain c,^Q
|
||
jrst outlpq
|
||
cain c,^P
|
||
jrst [ MOVEI T,60. ? .SLEEP T, ? JRST OUTLP1 ] ; 2 secs
|
||
movei t,10. ; 1/3 sec
|
||
.sleep t,
|
||
jumpn c,outlp
|
||
.close chttyo,
|
||
next: aobjn a,loop
|
||
done: quit
|
||
|
||
mchtab: sixbit /AI/
|
||
sixbit /MC/
|
||
lmchtab==:.-mchtab
|
||
|
||
tabtab: -laitab,,aitab
|
||
-lmctab,,mctab
|
||
ifn <.-tabtab>-lmchtab, .err TABTAB wrong size
|
||
|
||
; On AI, T03 and T04 are connected to shitty maxel modems.
|
||
aitab: 3,,maxel
|
||
4,,maxel
|
||
laitab==:.-aitab
|
||
|
||
; On MC, T01 and T02 are connected to shitty maxel modems.
|
||
mctab: 1,,maxel
|
||
2,,maxel
|
||
lmctab==:.-mctab
|
||
|
||
maxel: asciz "+++îîîîîIîATZîATS0=1S2=26E0Q1î"
|
||
|
||
cnstnts:
|
||
constants
|
||
variables
|
||
|
||
end go
|