* (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