1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-17 00:33:22 +00:00
Lars Brinkhoff e954553d3a Extract source files from archives; put them in SYSEN3.
Remove archive files from alan, cstacy, and sra.
2016-12-20 07:48:18 -08:00

190 lines
3.2 KiB
Groff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;-*- Midas -*- GZ@MIT-MC, November, 1983
TITLE TYPE8 Type an 8-bit file
T1==1
T2==2
T3==3
T4==4
A=5
B=6 ;Current input byte
C=7 ;Number of bits left in file.
D=10
E=11
IntAC=16
P=17
inch==1
outch==2
tyoch==3
tyich==4
call=<pushj p,>
return=<popj p,>
pdllen==40
.vector pdl(pdllen)
Jclbuf: block 40
^C_35
IDev: sixbit/DSK/
IFn1: 0
IFn2: sixbit/>/
ISnm: 0
define syscal op,args
.call [setz ? sixbit/op/ ? args ((setz))]
termin
tsiot: setz
sixbit/SIOT/
%Climm,,tyoch
T2
T1 ((setz))
define type &string
movei T1,<.length string>
move T2,[440700,,[ascii string]]
.call tsiot
.Lose %LsSys
termin
Tsint: loc 42
-Tsintl,,Tsint
loc Tsint
P
0 ? 1_tyich ? 0 ? <1_tyich>\<1_outch> ? Flush
0 ? 1_outch ? 0 ? 0 ? More
Tsintl==.-Tsint
Flush: movei IntAC,tyich
.ityic IntAC,
jrst intret
caie IntAC,^G
cain IntAC,^S
jrst flush1
intret: syscal dismis,[p]
.Lose %LsSys
flush1: .reset tyoch,
syscal ttyfls,[%clbit,,1 ? %climm,,tyich]
.Lose %LsSys
.iot tyoch,IntAC
Jrst Die
More: push p,T1
push p,T2
type "--More--"
syscal iot,[%clbit,,%tipek ? %climm,,tyich ? %clout,,IntAc]
.Lose %LsFil
caie IntAc,40
cain IntAc,177
.iot tyich,IntAc
caie IntAc,40
jrst [type "Flushed"
jrst Die]
type "A"
pop p,T2
pop p,T1
jrst intret
RSIXTP: return
$$RFN==1
.insrt dsk:syseng;rfn >
FType: move T1,IDev
call 6Type
.iot tyoch,[":]
move T1,ISnm
call 6Type
.iot tyoch,[";]
move T1,IFn1
call 6Type
.iot tyoch,[40]
move T1,IFn2
6Type: setz T2,
rotc T1,6
addi T2,40
.iot tyoch,T2
jumpn T1,6Type
return
Begin: move p,[-pdllen,,pdl-1]
syscal open,[%clbit,,.uao\%tjdis ? %climm,,tyoch ? [sixbit/TTY/]]
.Lose %LsFil
.suset [-2,,[.rHsname,,ISnm ? .rXuname,,IFn1]]
.break 12,[..rJCL,,Jclbuf]
skipn Jclbuf
jrst Help
ldb T1,[261600,,Jclbuf]
cain T1,<ascii/?î/>_-26
jrst Help
movei B,IDev
move D,[440700,,Jclbuf]
call RFN"rfn
syscal open,[%clbit,,.uii ? %climm,,inch ? IDev ? IFn1 ? IFn2 ? ISnm]
jrst [type "A"
call FType
type " - file not found."
jrst Die]
syscal fillen,[%climm,,inch ? %clout,,C]
.Lose %LsFil
jumpe C,Die
.iot inch,T1 ;Flush COM header if any
camn T1,[sixbit/DSK8/]
sosa C
.access inch,[0]
; .suset [.rMemt,,T1]
; movei T2,FBuf(C)
; camg T2,T1
; jrst Snarf
; movei T1,1777(T2)
; trz T1,1777
; .suset [.sMemt,,T1]
;Snarf: move T1,[004400,,FBuf]
; move T2,C
; syscal siot,[%climm,,inch ? T1 ? T2]
; .Lose %LsFil
; .close inch,
syscal open,[%clbit,,.uao ? %climm,,outch ? [sixbit/TTY/]]
.Lose %LsFil
syscal open,[%clbit,,.uai ? %climm,,tyich ? [sixbit /TTY/]]
.Lose %LsFil
; syscal ttyset,[%climm,,tyich ? [424242,,424242] ? [434242,,424242]]
syscal ttyset,[%climm,,tyich ? [222222,,222222] ? [230222,,220222]]
.Lose %LsSys
.suset [-2,,[.sOption,,[optint,,] ? .sMSK2,,[<1_tyich>\<1_outch>]]]
; move B,[441000,,FBuf]
; imuli C,4
;outp: sojl C,Die
; ildb T1,B
; cain T1,^Z
; jrst Die
; .iot outch,T1
; jrst outp
outp: sojl C,Die
.iot inch,A
move B,[441000,,A]
outp1: ildb T1,B
cain T1,^Z
jrst Die
.iot outch,T1
tlne B,700000
jrst outp1
jrst outp
Help: type "A:TYPE8 input file
Types an ascii file encoded in 8-bit bytes. Stops at first ^Z."
Die: .break 16,120000
VARIAB
junk: CONSTA
FBuf: 0
end begin