*** empty log message ***
[h316.git] / programs / tools / src / binal.asm
index 57a97e1c6ac5407c25365e9ccf37e1934a3277c7..4022b1475c02b24d7c73327f4265914afccde058 100644 (file)
@@ -39,7 +39,7 @@
 *       IF NO START LOCATION HAS BEEN CODED THE LOADER WILL
 *       CONTIUNE!
 *     
 *       IF NO START LOCATION HAS BEEN CODED THE LOADER WILL
 *       CONTIUNE!
 *     
-*       TAPE END MARK:
+*       STOP BLOCK
 *       THIS BLOCK TELLS THE LOADER THAT IT SHALL STOP NOW.
 *       LAYOUT:
 *       NO BODY AT ALL, ONLY BLOCK START AND BLOCK TYPE :-)
 *       THIS BLOCK TELLS THE LOADER THAT IT SHALL STOP NOW.
 *       LAYOUT:
 *       NO BODY AT ALL, ONLY BLOCK START AND BLOCK TYPE :-)
@@ -51,7 +51,7 @@
        REL             RELOCATABLE MODE
        ORG     0
 *
        REL             RELOCATABLE MODE
        ORG     0
 *
-       STA     STRT
+       STA     STRT    SAVE AUTO-START ADDRESS
        HLT             
        STA     ALOC    FIRST LOCATION TO PUNCH
        HLT
        HLT             
        STA     ALOC    FIRST LOCATION TO PUNCH
        HLT
        OCP     '0002   START PUNCH (NOT NECESSARY ON MY H316)
        JST     PLDR    PUNCH OUT LEADER
        JST     PS2     PUNCH SECOND STAGE LOADER
        OCP     '0002   START PUNCH (NOT NECESSARY ON MY H316)
        JST     PLDR    PUNCH OUT LEADER
        JST     PS2     PUNCH SECOND STAGE LOADER
-       JST     PLDR    PUNCH OUT LEADER
        JST     PS3     PUNCH THIRD STAGE LOADER
        JST     PS3     PUNCH THIRD STAGE LOADER
-       JST     PLDR    PUNCH OUT LEADER
-*      
+       JST     PDAT    PUNCH OUT DATA
+* 
+       LDA     STRT
+       SZE
+       JMP     AUTO    
+       JST     SBLK    MAKE STOP BLOCK
+       JMP     EOT
+AUTO   JST     ABLK    MAKE ADRESS-BLOCK
+       JST     GBLK    MAKE GO-BLOCK
+EOT    JST     PLDR    END OF JOB HAS COME.
+       HLT     
+       JMP     *-1     NO ESCAPE
+*
+**********************
+* PUNCH THE DESIRED DATA
+PDAT   DAC     **
 *
 LOOP   CRA             MAIN LOOP
        LDA     ELOC
 *
 LOOP   CRA             MAIN LOOP
        LDA     ELOC
@@ -71,7 +84,7 @@ LOOP  CRA             MAIN LOOP
        AOA
        STA     AVAL    DETERMINED AVAILABLE DATA
        SNZ
        AOA
        STA     AVAL    DETERMINED AVAILABLE DATA
        SNZ
-       JMP     EDAT    END OF DATA, WE ARE HAPPY
+       JMP*    PDAT    END OF DATA, WE ARE HAPPY, RETURN
 *
 * FIRST TRY TO ESABLISH A ZERO BLOCK
        LDA     ALOC
 *
 * FIRST TRY TO ESABLISH A ZERO BLOCK
        LDA     ALOC
@@ -114,19 +127,7 @@ BEND       LDA     BCNT
        JST     DBLK    PUNCH THE BLOCK
        JMP     LOOP    BACK TO MAIN LOOP
 *
        JST     DBLK    PUNCH THE BLOCK
        JMP     LOOP    BACK TO MAIN LOOP
 *
-*
-* END OF DATA
-EDAT   LDA     STRT
-       SZE
-       JMP     AUTO    
-       JST     SBLK    MAKE STOP BLOCK
-       JMP     EOT
-AUTO   JST     ABLK    MAKE ADRESS-BLOCK
-       JST     GBLK    MAKE GO-BLOCK
-EOT    JST     PLDR    END OF JOB HAS COME.
-       HLT     
-       JMP     *-1     NO ESCAPE
-*
+**************************
 *
 AVAL   DEC     0       AVAILABLE DATA SIZE
 IPTR   DEC     0       IMAGINARY POINTER
 *
 AVAL   DEC     0       AVAILABLE DATA SIZE
 IPTR   DEC     0       IMAGINARY POINTER
@@ -276,9 +277,9 @@ PS3 DAC     **      PUNCH OUT SECOND STAGE LOADER
 P23    DAC     **      PUNCH OUT A LOADER
        STA     PTR     SAVE POINTER
 L23    LDA*    PTR
 P23    DAC     **      PUNCH OUT A LOADER
        STA     PTR     SAVE POINTER
 L23    LDA*    PTR
+       JST     SWRD    PUNCH OUT CURRENT WORD  
        SNZ     
        JMP*    P23     RETURN
        SNZ     
        JMP*    P23     RETURN
-       JST     SWRD    PUNCH OUT CURRENT WORD
        IRS     PTR     INCREMENT POINTER
        JMP     L23     LOOP AGAIN
 *
        IRS     PTR     INCREMENT POINTER
        JMP     L23     LOOP AGAIN
 *
@@ -313,8 +314,6 @@ B2AD        DAC     BO2S    START ADDRESS OF SECOND STAGE LOADER
 B3AD   DAC     BO3S    START ADDRESS OF THIRD STAGE LOADER
 *
 LDRL   DEC     100     LEADER LENGTH
 B3AD   DAC     BO3S    START ADDRESS OF THIRD STAGE LOADER
 *
 LDRL   DEC     100     LEADER LENGTH
-ALOC   ***     **      NEXT WORD TO BE PUNCHED OUT
-ELOC   ***     **      LAST WORD TO BE PUNCHED OUT
 SZE    SZE             INSTRUCTION FOR FILL IN
 SNZ    SNZ             INSTRUCTION FOR FILL IN
 *
 SZE    SZE             INSTRUCTION FOR FILL IN
 SNZ    SNZ             INSTRUCTION FOR FILL IN
 *
@@ -336,24 +335,21 @@ BO2S      OCT     '20     START ADDRESS
 *
        INA     '1001           READ WITH CLEAR
        JMP     '17-BO2S+*-1
 *
        INA     '1001           READ WITH CLEAR
        JMP     '17-BO2S+*-1
-*      JMP     '17-BO2S+*      DEBUG STOP      
        ICA
        INA     '001            READ WITHOUT CLEAR
        JMP     '17-BO2S+*-1
        ICA
        INA     '001            READ WITHOUT CLEAR
        JMP     '17-BO2S+*-1
-*      JMP     '17-BO2S+*      DEBUG STOP
 *
 *
-*      
-*
-       STA     '17-BO2S+CNT    STORE START ADDRESS
-*      LDA     '57     LOOK FOR DEPOSITED OTHER BOOT ADDRESS
-*      SZE             OK, IF WE FIND SOMETHING THERE...
-*      STA     '17-BO2S+CNT    OVERWRITE DEFAULT VALUE 
-       IRS     '17-BO2S+CNT    CORRECT STOLEN WORD     
-       LDA     '17-BO2S+CNT
+       STA     '17-BO2S+CNT2   STORE START ADDRESS
+       STA*    '17-BO2S+CNT2   STORE START IN START
+*      LDA     '57             LOOK FOR DEPOSITED OTHER BOOT ADDRESS
+*      SZE                     OK, IF WE FIND SOMETHING THERE...
+*      STA     '17-BO2S+CNT2   OVERWRITE DEFAULT VALUE 
+       IRS     '17-BO2S+CNT2   CORRECT STOLEN WORD     
+       LDA     '17-BO2S+CNT2
 *      JMP     '776
 *
 *      JMP     '776
 *
-       LDA     '17-BO2S+CNT    WHERE TO LOAD NOW?
-       STA     '17-BO2S+PTR    INIT POINTER
+       LDA     '17-BO2S+CNT2   WHERE TO LOAD NOW?
+       STA     '17-BO2S+PTR2   INIT POINTER
 *      
 LOP    INA     '1001   READ IN CHARACTER
        JMP     '17-BO2S+*-1
 *      
 LOP    INA     '1001   READ IN CHARACTER
        JMP     '17-BO2S+*-1
@@ -361,15 +357,15 @@ LOP       INA     '1001   READ IN CHARACTER
        INA     '001    READ OTHER CHARACTER
        JMP     '17-BO2S+*-1
        SNZ
        INA     '001    READ OTHER CHARACTER
        JMP     '17-BO2S+*-1
        SNZ
-       JMP*    '17-BO2S+CNT    JUMP INTO THIRD STAGE LOADER
+       JMP*    '17-BO2S+CNT2   JUMP INTO THIRD STAGE LOADER
 *      JMP     '665
 *      JMP     '665
-       STA*    '17-BO2S+PTR    STORE DATA
-       IRS     '17-BO2S+PTR    MOVE ON
+       STA*    '17-BO2S+PTR2   STORE DATA
+       IRS     '17-BO2S+PTR2   MOVE ON
        JMP     '17-BO2S+LOP    FETCH MORE DATA
 *      
 S3SC   OCT     '301    START CHARACTER TO RECOGNIZE STAGE3
        JMP     '17-BO2S+LOP    FETCH MORE DATA
 *      
 S3SC   OCT     '301    START CHARACTER TO RECOGNIZE STAGE3
-PTR    DAC     **      GENERAL PURPOSE MEMORY POINTER
-CNT    DAC     **      WHERE TO LOAD? CAN BE CHANGED.
+PTR2   DAC     **      GENERAL PURPOSE MEMORY POINTER
+CNT2   DAC     **      WHERE TO LOAD? CAN BE CHANGED.
 BO2E   OCT     10600   ZERO-TERMINATOR
 *
 *
 BO2E   OCT     10600   ZERO-TERMINATOR
 *
 *
@@ -378,6 +374,13 @@ BO2E       OCT     10600   ZERO-TERMINATOR
 *
        ORG     '600
 BO3S   DAC     *       THAT IS FOR THE SECOND STAGE LOADER
 *
        ORG     '600
 BO3S   DAC     *       THAT IS FOR THE SECOND STAGE LOADER
+*********
+* COMPLETE THE ATTIC
+       LDA     PJ1     COMPLETE THE PAUS ROUTINE
+       STA     J1
+       CRA
+       STA     JH      ENSURE HALT INSTRUCTION
+*      
        OCP     1       READER ON (UNNECESSARY?)
 SLOP   INA     '1001   CRA AND READ
        JMP     *-1
        OCP     1       READER ON (UNNECESSARY?)
 SLOP   INA     '1001   CRA AND READ
        JMP     *-1
@@ -407,11 +410,10 @@ SLOP      INA     '1001   CRA AND READ
        JMP     *+2
        JMP     RSTP    PROCESS STOP BLOCK
        NOP
        JMP     *+2
        JMP     RSTP    PROCESS STOP BLOCK
        NOP
-       LDA     '125252 ERROR BLOCK TYPE
-       CRA
-       STA     *+1
-       OCT     66      THE HALT TRICK
+       LDA     ='125252        ERROR BLOCK TYPE
+       JST     PAUS    PAUSE
        JMP     SLOP    SEARCH FOR NEW BLOCK
        JMP     SLOP    SEARCH FOR NEW BLOCK
+       FIN
 *
 ********************
 * START ADDRESS BLOCK
 *
 ********************
 * START ADDRESS BLOCK
@@ -457,8 +459,7 @@ EL  IRS     PTR     POINT TO NEXT LOCATION
        SNZ
        JMP     SLOP
 CERR   CRA             CHECKSUM ERROR HALT
        SNZ
        JMP     SLOP
 CERR   CRA             CHECKSUM ERROR HALT
-       STA     *+1
-       OCT     66
+       JST     PAUS
        JMP     SLOP    TRY A NEW BLOCK
 *
 RZER   CRA
        JMP     SLOP    TRY A NEW BLOCK
 *
 RZER   CRA
@@ -466,17 +467,15 @@ RZER      CRA
        JMP     EL      USE END OF LOOP ABOVE
 *******
 * STOP BLOCK
        JMP     EL      USE END OF LOOP ABOVE
 *******
 * STOP BLOCK
-RSTP   CRA
-       STA     *+1
-       OCT     66      A TRICK - HERE WILL BE THE HLT INSTRUCTION
+RSTP   LDA     BO3S    FOR SHOW
+       JST     PAUS
        JMP*    RESA    JUMP TO RESTART LOCATION
 *
        JMP*    RESA    JUMP TO RESTART LOCATION
 *
-***** VARIABLES
-CSUM   OCT     66      CHECKSUM
-LEN    OCT     66      LENGTH TO GO
-RESA   DAC     SLOP    RESTART ADDRESS
-BTYP   OCT     66      BLOCK TYPE
 *
 *
+**********************
+* CONSTANTS
+*
+RESA   DAC     SLOP    RESTART ADDRESS
 BSTA   DEC     129     BLOCK START CHARACTER
 *
 * BLOCK TYPES:
 BSTA   DEC     129     BLOCK START CHARACTER
 *
 * BLOCK TYPES:
@@ -496,7 +495,24 @@ LWRD       OCT     66
        JMP*    LWRD
 *      
        FIN             WRITE OUT LITERALS - IF ANY
        JMP*    LWRD
 *      
        FIN             WRITE OUT LITERALS - IF ANY
-BO3E   DEC     0       ZERO TERMINATOR
+*******************
+* THE ATTIC OF THE THIRD STAGE LOADER
+PJ1    JMP*    PAUS    LAST LOCATION THAT WILL BE LOADED FROM TAPE!
+PAUS   DAC     **
+JH     HLT             THIS WILL STAY A HALT
+J1     DAC     **      WILL BE: JMP* PAUS
+*
+***** VARIABLES
+CSUM   OCT     66      CHECKSUM
+LEN    OCT     66      LENGTH TO GO
+BTYP   OCT     66      BLOCK TYPE
+*
+*******************
+* VARIABLES OF THE MAIN PROGRAM
+ALOC   ***     **      NEXT WORD TO BE PUNCHED OUT
+ELOC   ***     **      LAST WORD TO BE PUNCHED OUT
+PTR    DAC     **      GENERAL PURPOSE MEMORY POINTER
+CNT    DAC     **      WHERE TO LOAD? CAN BE CHANGED.
 *
 ************************************************************
        END
 *
 ************************************************************
        END