1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-15 20:36:13 +00:00
Files
PDP-10.its/src/imlac/assv4.3
2019-05-05 15:14:01 +02:00

103 lines
1.8 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.
TITLE ASSV4
;VALRETS DDT COMMAND LINE TO ASSEMBLE APPROPRIATE VERSION NO. OF SSV4
A=1 ? CH=2 ? IBP=3 ? OBP=4 ? NBP=5
P=17
TTYO=16 ? TTYI=15 ? DSKI=14
.MLLIT==1
CALL=PUSHJ P, ? RET=POPJ P,
GO: MOVE P,[-4,,PDL-1]
.OPEN TTYO,[1,,'TTY]
.VALUE
.OPEN TTYI,[0,,'TTY]
.VALUE
MOVEI A,[ASCIZ \
SSV4 ASSEMBLER!!\]
CALL TYPE
TYILIN: MOVEI A,[ASCIZ \
TYPE VERSION NUMBER OR ">":\]
CALL TYPE
SETZM TYIB
MOVE OBP,[440700,,TYIB]
TYILP: .IOT TTYI,CH
CAIN CH,">
JRST GTR
CAIN CH,^M
JRST GOTIT
CAIL CH,"0
CAILE CH,"9
JRST [.IOT TTYO,[^G] ? JRST TYILIN]\
IDPB CH,OBP
JRST TYILP
GTR: MOVSI A,(SIXBIT \>\)
.CALL DSKBLK
JRST OPNLUZ
MOVE A,[DSKI,,RCHBLK]
.RCHST A,
MOVE A,RCHFN2
JRST COMPUT
GOTIT: MOVE IBP,[440700,,TYIB]
MOVE NBP,[440600,,A]
SETZ A,
GOTLP: ILDB CH,IBP
JUMPE CH,GOTOPN
SUBI CH,40 ;CONVERT TO 6BIT
IDPB CH,NBP
JRST GOTLP
GOTOPN: .CALL DSKBLK
JRST OPNLUZ
COMPUT: MOVE IBP,[440700,,LINE]
MOVE OBP,[440700,,OUTLIN]
CALL ILIN ;":KILL :MMIDAS IMLAC;SSV4B "
CALL NLIN ;VERSION NO.
CALL ILIN ;",,SSV4B "
CALL NLIN ;VER. #
CALL ILIN ;"_IMLAC;SSV4 "
CALL NLIN ;VER. #
MOVEI CH,^M ;TERMINATOR
IDPB CH,OBP
SETZ CH,
IDPB CH,OBP
.VALUE OUTLIN
ILIN: ILDB CH,IBP ;MOVE CHARS FROM LINE TO OUTLIN
JUMPE CH,CPOPJ
IDPB CH,OBP
JRST ILIN
NLIN: MOVE NBP,[440600,,A] ;MOVE CHS FROM 6BIT IN A TO OUTLIN
NLIN1: ILDB CH,NBP
JUMPE CH,CPOPJ
ADDI CH,40
IDPB CH,OBP
JRST NLIN1
CPOPJ: RET
TYPE: HRLI A,440700
TYPLP: ILDB CH,A
JUMPE CH,CPOPJ
.IOT TTYO,CH
JRST TYPLP
OPNLUZ: MOVEI A,[ASCIZ \
CAN'T FIND INPUT FILE, TRY AGAIN.\]
CALL TYPE
JRST TYILIN
TYIB: BLOCK 5
RCHBLK: 0 ? 0 ;DEV, FN1
RCHFN2: 0 ? 0 ? 0
DSKBLK: SETZ ? SIXBIT \OPEN\
[0,,DSKI] ;MODE,,CHANNEL
[SIXBIT \DSK\] ;DEV
[SIXBIT \SSV4\] ;FN1
A ;FN2
SETZ [SIXBIT \IMLAC\] ;SNAME
PDL: BLOCK 5
LINE: ASCII \:KILL :MMIDAS IMLAC;SSV4B ,,SSVTTY _IMLAC;SSV4 \
OUTLIN: BLOCK 20.
END GO