X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=lib%2Fiolib%2Fsrc%2Fo%24pa.asm;fp=lib%2Fiolib%2Fsrc%2Fo%24pa.asm;h=0e5268733e8e9a00bc3627be535bdb90c0006f01;hb=61685b6eca68984a8ca4c0f763f9bd5cad6f3219;hp=0000000000000000000000000000000000000000;hpb=6c33b62da23688ad28889758bc7d919110cd2e42;p=h316.git diff --git a/lib/iolib/src/o$pa.asm b/lib/iolib/src/o$pa.asm new file mode 100644 index 0000000..0e52687 --- /dev/null +++ b/lib/iolib/src/o$pa.asm @@ -0,0 +1,131 @@ +* (O$LA) +* +* +* PROGRAM TITLE: O$LA (O$LA,O$LE,O$LH,O$LC,O$LF) +* LINE PRINTER ROUTINES +* +* REVISIONS: +* 1.0 (2005-02.04) +* +* AUTHOR +* +* PHILIPP HACHTMANN +* +* +* PURPOSE +* +* THESE ARE THE LIBRARY ROUTINES FOR HACHTI'S LINE PRINTER INTERFACE +* +* +* RESTRICTIONS +* +* DEPENDS ON HACHTI'S HARDWARE AND FORTRAN IV COMPILER TAPE +* +* +* STORAGE +* +* 420 (OCTAL) +* 271 (DECIMAL) +* +* +* USE +* +* CALL O$LA +* DAC (BUFFER ADDRESS) +* NORMAL +* +* THIS PRINTS ONE LINE OF LISING TEXT +* (60 2-CHAR WORDS MAX) TO THE LINE PRINTER. +* +* +* +******************************************************************************** +* + SUBR O$PA TYPE A COMPLETE LINE WITH CR/LF, HEADING ETC. +* +******************************************************************************** +* + REL RELOCATEABLE MODE +* +O$PA DAC ** + LDA* O$PA BUFFER ADDRESS + STA LBUF STORE + JST T1 PUNCH THE RECORD +LBUF OCT 0 ADDRESS OF LINE BUFFER + JST T20 CARRIAGE RETURN + JST T30 LINE FEED + IRS O$LA MAKE RETURN ADDRESS + JMP* O$LA RETURN + +************************************************************ +* +* OUTPUT LINE +T1 DAC ** + STX XR SAVE CALLER'S INDEX REGISTER + LDA* T1 LOAD BUFFER ADDRESS + ADD LNW LINE WIDTH + ADD ='40000 SET INDEXING TAG + STA T6 + IRS T1 INCREMENT RETURN ADDRESS + LDA LNW LINE WIDTH + TCA NEGATE + STA 0 PUT INTO INDEX REG +T3 LDA* T6 + CAS ='120240 + JMP *+2 +* + JMP T8 +T4 JST T14 + IRS 0 + JMP T3 + LDX XR RESTORE CALLER'S INDEX REGISTER + JMP* T1 +T6 *** ** +* +* +T8 LDA 0 + STA T12 +T10 IRS 0 + JMP *+2 + JMP* T1 + LDA* T6 + CAS ='120240 + JMP *+2 + JMP T10 + LDA T12 + STA 0 + LDA ='120240 + JMP T4 +T12 *** ** +* +* +T14 DAC ** + ICA + OTA 0 + JMP *-1 + ICA + OTA 0 + JMP *-1 + JMP* T14 +**** +* +* CARRIAGE RETURN +T20 DAC ** + LDA =13 CR CHARACTER + OTA 0 OUTPUT + JMP *-1 + JMP* T20 RETURN +* +* LINE FEED +T30 DAC ** + LDA =10 LF CHARACTER + OTA 0 OUTPUT + JMP *-1 RETURN + JMP* T30 +* +* + FIN WRITE OUT LITERALS +* +* PUH..... +* + END