tss8/verb4a.asc

56 lines
1.5 KiB
Plaintext

/JOANNES I:I - IN PRINCIPIO ERAT VERBUM
/VERB4 - PRINT FROM PACKED STRING
CLA
TAD (-14) /PACKED STR. WORD COUNT * -1
DCA COUNT
TAD (PKSTR) /ADDR. OF PACKED STR.
DCA PTR
LOOP, CLA
TAD I PTR /CURR. PACKED STR. WORD
JMS GETCH1
JMS CVT6B
JMS PRCHR
TAD I PTR /RELOAD CURR. PACKED STR. WORD
JMS GETCH2
JMS CVT6B
JMS PRCHR
ISZ PTR /INCR. PACKED STR. WORD PTR.
ISZ COUNT /INCR. WORD COUNT - LOOP UNTIL 0
JMP LOOP
JMS PRCRLF
HLT
COUNT, 0 /PACKED STR. REMAINING WORD COUNT
PTR, 0 /CURR. PACKED STR. WORD PTR.
PKSTR, TEXT 'IN PRINCIPIO ERAT VERBUM' /PACKED STR.
GETCH1, 0 /EXTRACT 1ST CHAR. FROM PACKED WORD
JMS SHFT6R
JMP I GETCH1
GETCH2, 0 /EXTRACT 2ND CHAR. FROM PACKED WORD
JMS ROT6L
JMS SHFT6R
JMP I GETCH2
SHFT6R, 0 /SHIFT AC VALUE 6 BITS TO RIGHT
RAR CLL; RAR CLL; RAR CLL; RAR CLL; RAR CLL; RAR CLL
JMP I SHFT6R
ROT6L, 0 /ROTATE AC VALUE 6 BITS TO LEFT
RAL; RAL; RAL; RAL; RAL; RAL
JMP I ROT6L
CVT6B, 0 /CONVERT 6-BIT CHAR. CODE TO 8-BIT
TAD (7740) /8-COMPLEMENT OF 40 (SUBTRACT 40)
SPA
TAD (100)
TAD (240)
JMP I CVT6B
PRCRLF, 0 /PRINT CR-LF
TAD (215) /CR
JMS PRCHR
TAD (212) /LF
JMS PRCHR
JMP I PRCRLF
PRCHR, 0 /PRINT CHAR. CODE IN AC
TLS
CLA
JMP I PRCHR
$