*** empty log message ***
[h316.git] / lib / hachti / src / oct.asm
index bd0a199efb0f39a1895e94f070b3d3800ae61ec5..807ea04a378743c9ec4cc326380d1d19d274dc78 100644 (file)
 * 
 * TYPE OUT THE VALUE IN A. A STAYS UNCHANGED AFTERWARDS
 *
-       SUBR    OCT
+       SUBR    OCT,OCT6        PRINT OCTAL VALUE WITH 6 DIGITS + CR/LF
+       SUBR    OCTN,N6         PRINT OCTAL VALUE WITH 6 DIGITS
 * 
+       SUBR    OCTN1,N1        PRINT OCTAL, 1 DIGIT
+       SUBR    OCTN2,N2        PRINT OCTAL, 2 DIGITS
+       SUBR    OCTN3,N3        PRINT OCTAL, 3 DIGITS
+       SUBR    OCTN4,N4        PRINT OCTAL, 4 DIGITS
+       SUBR    OCTN5,N5        PRINT OCTAL, 5 DIGITS
+       SUBR    OCTN6,N6        PRINT OCTAL, 6 DIGITS
+       SUBR    OCT1            PRINT OCTAL, 1 DIGIT
+       SUBR    OCT2            PRINT OCTAL, 2 DIGITS
+       SUBR    OCT3            PRINT OCTAL, 3 DIGITS
+       SUBR    OCT4            PRINT OCTAL, 4 DIGITS
+       SUBR    OCT5            PRINT OCTAL, 5 DIGITS
+       SUBR    OCT6            PRINT OCTAL, 6 DIGITS
 * 
+       SUBR    TP      TYPE OUT LETTER IN A
+       SUBR    CR      PRINT CR
+       SUBR    LF      PRINT LF
+       SUBR    SP      PRINT A SPACE CHARACTER
+       SUBR    NL      PRINT CR/LF
+       SUBR    TYPE,TEXT
+*  
+* 
+********************************************************************************
+*       
        REL
-OCT    DAC     **
-       STA     ATMP
+       ORG     0
+* 
+********************************************************************************
+* 
+* 
+TP     DAC     0
        SKS     '104
        JMP     *-1
        OCP     '104
-       IAB             SAVE TO B
-       STA     BTMP    
-       CRA
-       LLR     1
-       ADD     =48
-       OTA     '4      ASR OUTPUT
+       OTA     '4      TYPE ON ASR
        JMP     *-1
-       CRA
-       LLR     3
-       ADD     =48
-       OTA     4       ASR OUTPUT
-       OTA     4
-       JMP     *-1
-       CRA
-       LLR     3
-       ADD     =48
-       OTA     '4      ASR OUTPUT
-       OTA     4
-       JMP     *-1
-       CRA
-       LLR     3
-       ADD     =48
-       OTA     '4      ASR OUTPUT
-       OTA     4
+       SKS     '4
        JMP     *-1
+       JMP*    TP      RETURN
+* 
+* 
+********************************************************************************
+* 
+OCT6   DAC     0
+       JST     N6
+       JST     NL
+       JMP*    OCT6
+OCT5   DAC     0
+       JST     N5
+       JST     NL
+       JMP*    OCT5
+OCT4   DAC     0
+       JST     N4
+       JST     NL
+       JMP*    OCT4
+OCT3   DAC     0
+       JST     N3
+       JST     NL
+       JMP*    OCT3
+OCT2   DAC     0
+       JST     N2
+       JST     NL
+       JMP*    OCT2
+OCT1   DAC     0
+       JST     N1
+       JST     NL
+       JMP*    OCT1
+* 
+********************************************************************************
+* 
+N1     DAC     0
+       JST     SAVE
+       LDA     =-6
+       JMP     NGO
+N2     DAC     0
+       JST     SAVE
+       LDA     =-5
+       JMP     NGO
+N3     DAC     0
+       JST     SAVE
+       LDA     =-4
+       JMP     NGO
+N4     DAC     0
+       JST     SAVE
+       LDA     =-3
+       JMP     NGO
+N5     DAC     0
+       JST     SAVE
+       LDA     =-2
+       JMP     NGO
+N6     DAC     0
+       JST     SAVE
+       LDA     =-1
+       JMP     NGO
+* 
+****************************************
+* 
+SAVE   DAC     0
+       STA     ATMP
+       IAB
+       STA     BTMP
+       JMP*    SAVE
+*  
+****************************************
+* 
+NGO    STA     PCNT
+       AOA
+       ALS     2       MULTIPLY BY 4
+       STA     0       TO INDEX REGISTER
+       LDA     =-7
+       STA     CNT
+* 
        CRA
+       LRR     5       VORSPANNUNG
+       IRS     CNT
        LLR     3
-       ADD     =48
-       OTA     '4      ASR OUTPUT
-       OTA     4
-       JMP     *-1
+       IRS     PCNT
+       JMP     *-3
+* 
+NXL    LLR     3
+       ADD     ZERO
+       JST     TP
        CRA
-       LLR     3
-       ADD     =48
-       OTA     '4      ASR OUTPUT
-       OTA     4
-       JMP     *-1
-*      
-       LDA     =10
-       OTA     '4
-       JMP     *-1
-       LDA     =13
-       OTA     '4
-       JMP     *-1
-       LDA     =13
-       OTA     '4
-       JMP     *-1
-*
+       IRS     CNT
+       JMP     NXL
        LDA     BTMP
        IAB
-       LDA     ATMP    
-       JMP*    OCT
+       LDA     ATMP
+       JMP*    N6,1    EVIL!!!
 * 
+*  
+****************************************
+* 
+*  
 ATMP   DAC     **      TEMPORARY STORAGE FOR A
-BTMP   DAC     **      TEMPORARY STORAGE FOR B 
+BTMP   DAC     **      TEMPORARY STORAGE FOR B
+PCNT   DAC     **
+CNT    DAC     **
+ZERO   DEC     48      CHARACTER ZERO
+* 
+********************************************************************************
+* 
+CR     DAC     0
+       STA     ATMP
+       LDA     =13
+       JST     TP
+       LDA     ATMP
+       JMP*    CR
+* 
+LF     DAC     0
+       STA     ATMP
+       LDA     =10
+       JST     TP
+       LDA     ATMP
+       JMP*    LF
+* 
+NL     DAC     0
+       JST     CR
+       JST     LF
+       JMP*    NL
+* 
+SP     DAC     0
+       STA     ATMP
+       LDA     ='040
+       JST     TP
+       LDA     ATMP
+       JMP*    SP
+* 
+* 
+********************************************************************************
+* 
+TEXT   DAC     0
+       STA     ATMP
+       LDA*    TEXT    GET POINTER
+       STA     PTR
+       IRS     TEXT    RETURN ADDRESS
+* 
+TLOP   LDA*    PTR
+* 
+       SNZ
+       JMP     TDON
+* 
+       ICL             COPY DOWN
+       SZE             DON'T PRINT ZEROES
+       JST     TP
+       LDA*    PTR
+       CAL             CLEAR UPPER HALF
+       SZE             DON'T PRINT ZEROES
+       JST     TP
+* 
+       IRS     PTR
+       JMP     TLOP    
+*
+TDON   LDA     ATMP
+       JMP*    TEXT
+* 
+PTR    DAC     0
 * 
 ********************************************************************************
 *