*** 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!
 *     
-*       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 :-)
@@ -51,7 +51,7 @@
        REL             RELOCATABLE MODE
        ORG     0
 *
-       STA     STRT
+       STA     STRT    SAVE AUTO-START ADDRESS
        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
-       JST     PLDR    PUNCH OUT LEADER
        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
@@ -71,7 +84,7 @@ LOOP  CRA             MAIN LOOP
        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
@@ -114,19 +127,7 @@ BEND       LDA     BCNT
        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
@@ -276,9 +277,9 @@ PS3 DAC     **      PUNCH OUT SECOND STAGE LOADER
 P23    DAC     **      PUNCH OUT A LOADER
        STA     PTR     SAVE POINTER
 L23    LDA*    PTR
+       JST     SWRD    PUNCH OUT CURRENT WORD  
        SNZ     
        JMP*    P23     RETURN
-       JST     SWRD    PUNCH OUT CURRENT WORD
        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
-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
 *
@@ -336,24 +335,21 @@ BO2S      OCT     '20     START ADDRESS
 *
        INA     '1001           READ WITH CLEAR
        JMP     '17-BO2S+*-1
-*      JMP     '17-BO2S+*      DEBUG STOP      
        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
 *
-       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
@@ -361,15 +357,15 @@ LOP       INA     '1001   READ IN CHARACTER
        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
-       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
-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
 *
 *
@@ -378,6 +374,13 @@ BO2E       OCT     10600   ZERO-TERMINATOR
 *
        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
@@ -407,11 +410,10 @@ SLOP      INA     '1001   CRA AND READ
        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
+       FIN
 *
 ********************
 * START ADDRESS BLOCK
@@ -457,8 +459,7 @@ EL  IRS     PTR     POINT TO NEXT LOCATION
        SNZ
        JMP     SLOP
 CERR   CRA             CHECKSUM ERROR HALT
-       STA     *+1
-       OCT     66
+       JST     PAUS
        JMP     SLOP    TRY A NEW BLOCK
 *
 RZER   CRA
@@ -466,17 +467,15 @@ RZER      CRA
        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
 *
-***** 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:
@@ -496,7 +495,24 @@ LWRD       OCT     66
        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