# Toplevel Makefile for Hachti's H316 stuff collection
-SUBDIRS=pc-tools/ldc pc-tools/src-filters lib/iolib lib/fortran docs/manual\
+SUBDIRS=pc-tools/ldc pc-tools/src-filters pc-tools/boot-maker lib/iolib lib/fortran docs/manual\
lib/fortran lib/fortran/vpunch-help lib/iolib programs/mandelbrot\
programs/punchomat
--- /dev/null
+* (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