mirror of
https://github.com/PDP-10/its.git
synced 2026-04-27 20:48:35 +00:00
96 lines
1.3 KiB
Plaintext
96 lines
1.3 KiB
Plaintext
;
|
||
; FCOUT - FAST CHARACTER OUTPUT ROUTINES
|
||
;
|
||
; This file is ITS dependent.
|
||
;
|
||
|
||
TITLE FCOUT
|
||
.INSRT NC
|
||
.INSRT NM
|
||
|
||
BLKSIZ==200
|
||
BLKCNT==5*BLKSIZ
|
||
NL==12
|
||
CR==15
|
||
|
||
; SIOT STUFF
|
||
|
||
.UDATA
|
||
SBUF: BLOCK BLKSIZ
|
||
SPTR: BLOCK 1
|
||
SCHN: BLOCK 1
|
||
SCNT: BLOCK 1
|
||
.IDATA
|
||
SBPT: 440700,,SBUF
|
||
.CODE
|
||
|
||
CENTRY OOPN,[NAME]
|
||
CALL FOPEN,[NAME,[[1]]]
|
||
JUMPL A,OP$RET ; NEGATIVE FAILURE CODE
|
||
MOVEM A,SCHN ; ITS CHANNEL (RETURNED)
|
||
MOVEI B,BLKCNT
|
||
MOVEM B,SCNT
|
||
MOVE B,SBPT
|
||
MOVEM B,SPTR
|
||
OP$RET: RETURN
|
||
|
||
CENTRY OFLS ; FLUSH BUFFER
|
||
MOVEI C,BLKCNT
|
||
SUB C,SCNT
|
||
JUMPLE C,FL$RET
|
||
MOVE D,SBPT
|
||
SYSCAL SIOT,[SCHN ? D ? C]
|
||
FL$RET: MOVE D,SBPT
|
||
MOVEM D,SPTR
|
||
MOVEI D,BLKCNT
|
||
MOVEM D,SCNT
|
||
RETURN
|
||
|
||
CENTRY OUTI,[CC] ; OUTPUT IMAGE CHARACTER
|
||
MOVE A,CC
|
||
IDPB A,SPTR
|
||
SOSG SCNT
|
||
CALL OFLS
|
||
RETURN
|
||
|
||
CENTRY OUTC,[CC] ; OUTPUT ASCII CHARACTER
|
||
MOVE A,CC
|
||
CAIN A,NL
|
||
GO OC$NL
|
||
OC$1: IDPB A,SPTR
|
||
SOSG SCNT
|
||
CALL OFLS
|
||
RETURN
|
||
OC$NL: MOVEI A,CR
|
||
IDPB A,SPTR
|
||
SOSG SCNT
|
||
CALL OFLS
|
||
MOVEI A,NL
|
||
GO OC$1
|
||
|
||
CENTRY OUTS,[STR] ; OUTPUT ASCII STRING
|
||
MOVE B,STR
|
||
OS$2: SKIPN A,(B)
|
||
GO OS$RET
|
||
ADDI B,1
|
||
CAIN A,NL
|
||
GO OS$NL
|
||
OS$1: IDPB A,SPTR
|
||
SOSG SCNT
|
||
CALL OFLS
|
||
GO OS$2
|
||
OS$NL: MOVEI A,CR
|
||
IDPB A,SPTR
|
||
SOSG SCNT
|
||
CALL OFLS
|
||
MOVEI A,NL
|
||
GO OS$1
|
||
OS$RET: RETURN
|
||
|
||
CENTRY OCLS ; CLOSE FILE
|
||
CALL OFLS
|
||
SYSCAL CLOSE,[SCHN]
|
||
RETURN
|
||
|
||
END
|
||
|