Trailing-Edge
-
PDP-10 Archives
-
decuslib10-07
-
43,50433/passtr.mac
There are 4 other files named passtr.mac in the archive. Click here to see a list.
title PASSTR - string I/O for pascal
twoseg
search pasunv
extern illfn,clofil,norchx
entry stset.,stwr.
reloc 400000
filfps==26 ;first position - for getindex only
strnt: exp strget,strput,.+1
exp illfn,illfn,0,cpopj,cpopj,illfn,illfn
strget: sosge filbtc(b)
jrst strend
ildb a,filbtp(b)
jumpe a,strget
move a,norchx(a)
hlrem ac1,fileol(reg)
hrrzm ac1,filcmp(reg)
came a,[xwd -1," "] ;carriage return in official mode
popj p,
streol: pushj p,strget ;we have a CR, look for real EOL
skipe fileof(b) ;stop after errors
popj p,
skipg fileol(b) ;real EOL?
jrst streol ;no, next char
popj p, ;yes, done
strput: sosge filbtc(b)
jrst strend
move a,filcmp(b)
idpb a,filbtp(b)
cpopj: popj p,
stset.: movei a,0 ;normal eof
pushj p,stropn
jrst @filget(b)
stwr.: movei a,1 ;normal eof
;jrst stropn
stropn: movem a,fileof(b)
trc a,1
movem a,filbad(b)
skipe filbfp(b) ;any closing needed?
pushj p, [ setz c, ;yes - do it
jrst clofil]
movei t,1B23 ;allow format error
movem t,filerr(b)
hrri t,filr11(b)
hrli t,strnt
blt t,filr99(b) ;put in dispatch
popj p,
strend: move t,filbad(b)
movem t,fileof(b)
movem t,fileol(b)
setzm filcmp(b)
movei t,1B22
hrlm t,filerr(b)
popj p,
end