*** empty log message ***
authorhachti <hachti>
Sun, 5 Feb 2006 14:49:47 +0000 (14:49 +0000)
committerhachti <hachti>
Sun, 5 Feb 2006 14:49:47 +0000 (14:49 +0000)
Makefile
lib/iolib/src/o$pa.asm [new file with mode: 0644]

index a1b7a3cc5fa49c130a07011fcf1aa9defa5e16c7..c3c326a81b80d7d100297fe471dfd2f9606c312b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # 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
 
diff --git a/lib/iolib/src/o$pa.asm b/lib/iolib/src/o$pa.asm
new file mode 100644 (file)
index 0000000..0e52687
--- /dev/null
@@ -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