*** empty log message ***
authorhachti <hachti>
Sat, 29 Apr 2006 15:28:35 +0000 (15:28 +0000)
committerhachti <hachti>
Sat, 29 Apr 2006 15:28:35 +0000 (15:28 +0000)
programs/tools/src/binal.asm

index ba26a32a97238817bad42488bf93e77c48f7670a..87de4f5e050e45c153ceb46a5a2771b1243f39b3 100644 (file)
        ORG     0
 *
        STA     STRT    SAVE AUTO START LOCATION
+       CRA
        HLT             
        STA     ALOC    FIRST LOCATION TO PUNCH
+       CRA
        HLT
        STA     ELOC    LAST LOCATION TO PUNCH
 *
+* FIRST SOME PREPARATIONS FOR THE SECOND AND THIRD STAGE LOADERS
+*      CRA
+       STA     PTR2    CLEAR PTR2, SO KEY-IN LOADER WILL STOP THERE.
+       STA     PAUS    TERMINATOR FOR THIRD STAGE LOADER
+*
+* BUT HERE WE GO
        OCP     '0002   START PUNCH (NOT NECESSARY ON MY H316)
 *      
        SR1             SKIP IF SSW 1 RESET     
@@ -228,12 +236,12 @@ GBLK      DAC     **
 ******************
 * MAKE A START ADDRESS BLOCK
 ABLK   DAC     **
-       STA     CNT     SAVE THE ADDRESS
+       STA     CNT2    SAVE THE ADDRESS
        LDA     BSTA    START CHARACTER
        ICA
        ADD     TSAD    BLOCK TYPE
        JST     SWRD    PUNCH THAT
-       LDA     CNT
+       LDA     CNT2
        JST     SWRD
        JST     SWRD
        JMP*    ABLK        
@@ -242,7 +250,7 @@ ABLK        DAC     **
 *******************
 * MAKE ZERO BLOCK
 ZBLK   DAC     **      PRODUCE A ZERO BLOCK
-       STA     CNT     STORE SIZE OF BLOCK
+       STA     CNT2    STORE SIZE OF BLOCK
        LDA     BSTA    START CHARACTER
        ICA
        ADD     TZER    BLOCK TYPE
@@ -250,12 +258,12 @@ ZBLK      DAC     **      PRODUCE A ZERO BLOCK
        LDA     ALOC    LOAD START ADDRESS
        JST     SWRD    PUNCH START ADDRESS
        STA     CSUM    INIT CHECKSUM
-       LDA     CNT     LOAD SIZE
+       LDA     CNT2    LOAD SIZE
        JST     SWRD    PUNCH SIZE
        ADD     CSUM    ADD CHECKSUM
        JST     SWRD    PUNCH OUT CHECKSUM
        LDA     ALOC    RELOAD POINTER
-       ADD     CNT     CALCULATE NEW POINTER
+       ADD     CNT2    CALCULATE NEW POINTER
        STA     ALOC    UPDATE ALOC
        JMP*    ZBLK    END
 *
@@ -263,7 +271,7 @@ ZBLK        DAC     **      PRODUCE A ZERO BLOCK
 ********************
 * MAKE DATA BLOCK
 DBLK   DAC     **
-       STA     CNT     SAVE SIZE
+       STA     CNT2    SAVE SIZE
 *
        LDA     BSTA    START CHARACTER
        ICA
@@ -274,21 +282,21 @@ DBLK      DAC     **
        JST     SWRD    PUNCH IT
        STA     CSUM    INIT CHECKSUM
 *
-       LDA     CNT     PACKET SIZE
+       LDA     CNT2    PACKET SIZE
        JST     SWRD    PUNCH IT
        ADD     CSUM    
        STA     CSUM    UPDATE CHECKSUM
 *
-       LDA     CNT
+       LDA     CNT2
        TCA
-       STA     CNT     NOW WE USE IT AS NEG COUNTER
+       STA     CNT2    NOW WE USE IT AS NEG COUNTER
 *
 DDLP   LDA*    ALOC    LOAD DATA
        JST     SWRD    PUNCH DATA
        ADD     CSUM    
        STA     CSUM    UPDATE CHECKSUM
        IRS     ALOC
-       IRS     CNT
+       IRS     CNT2
        JMP     DDLP    LOOP IT
        JST     SWRD    PUNCH CHECKSUM
        JMP*    DBLK    BLOCK DONE
@@ -315,16 +323,16 @@ CZER      DAC     **
 *      
 COUN   DAC     **      COUNT FILLED OR EMPTY LOCATIONS
        CRA     
-       STA     CNT     INITIALIZE COUNTER
+       STA     CNT2    INITIALIZE COUNTER
 CLOP   LDA*    PTR
 DISC   SZE             WILL BE DYNAMICALLY OVERWRITTEN
        JMP     ZFIN    NOW OTHER KIND OF DATA
-       IRS     CNT     NOTE DOWN THE FIND
+       IRS     CNT2    NOTE DOWN THE FIND
        IRS     PTR     POINT TO NEXT LOCATION TO BE TESTED
        SKP             
        JMP     ZFIN    ADDRESS OVERFLOW MUST STOP COUNTING
        JMP     CLOP    COUNT ON
-ZFIN   LDA     CNT
+ZFIN   LDA     CNT2
        JMP*    COUN
 *      
 *
@@ -358,11 +366,11 @@ L23       LDA*    PTR
 PLDR   DAC     **      PUNCH LEADER
        LDA     LDRL    LOAD LEADER LENGTH
        TCA             COMPLEMENT IT
-       STA     CNT     STORE TO LEADER COUNTER
+       STA     CNT2    STORE TO LEADER COUNTER
        CRA             LEADER IS ZERO
 LLP    OTA     2
        JMP     *-1
-       IRS     CNT
+       IRS     CNT2
        JMP     LLP
        JMP*    PLDR
 *      
@@ -390,52 +398,50 @@ SNZ       SNZ             INSTRUCTION FOR FILL IN
 ************************************************************************
 * THIS IST THE SECOND STAGE LOADER
 *
-       ORG     '317    ONLY FOR DEVELOPMENT!
-BO2S   OCT     '20     START ADDRESS
+* IT IS IMPORTANT THAT THERE ARE NO ZERO WORDS IN THIS CODE BECAUSE THE
+* KEY-IN LOADER WORKS ONLY UNTIL IT DETECTS A ZERO WORD.
+*
+BO2S   DAC     '20     START ADDRESS, ALWAYS '20
        JMP     '10     JUMP BACK INTO KEY-IN LOADER
 *
 *S21   OCP     '001    THIS IS THE JUMP-IN LOCATION, WILL GO TO '21
 *      
-       INA     '1001
-       JMP     '17-BO2S+*-1
+       INA     '1001           READ FROM PAPER TAPE
+       JMP     '17-BO2S+*-1    WAIT
        SUB     '17-BO2S+S3SC   STAGE 3 START CHARACTER
        SZE
        JMP     '17-BO2S+*-4    EAT UP ALL JUNK
 *
-       INA     '1001           READ WITH CLEAR
-       JMP     '17-BO2S+*-1
-       ICA
-       INA     '001            READ WITHOUT CLEAR
-       JMP     '17-BO2S+*-1
+       INA     '1001           READ FROM PAPER TAPE
+       JMP     '17-BO2S+*-1    WAIT
+       ICA                     OTHER CHARACTER
+       INA     '001            READ FROM TAPE WITHOUT CLEARING A
+       JMP     '17-BO2S+*-1    WAIT
 *
-       STA     '17-BO2S+CNT2   STORE START ADDRESS
-       STA*    '17-BO2S+CNT2   STORE START IN START
+       STA     '17-BO2S+CNT2   STORE START ADDRESS OF THIRD STAGE
 *      LDA     '57             LOOK FOR DEPOSITED OTHER BOOT ADDRESS
 *      SZE                     OK, IF WE FIND SOMETHING THERE...
 *      STA     '17-BO2S+CNT2   OVERWRITE DEFAULT VALUE 
+       LDA     '17-BO2S+CNT2   RELOAD START ADDRESS
+       STA*    '17-BO2S+CNT2   STORE THAT ADDRESS INTO ITSELF  
        IRS     '17-BO2S+CNT2   CORRECT STOLEN WORD     
-       LDA     '17-BO2S+CNT2
-*      JMP     '776
-*
        LDA     '17-BO2S+CNT2   WHERE TO LOAD NOW?
-       STA     '17-BO2S+PTR2   INIT POINTER
+       STA     '17-BO2S+PTR2   INIT WRITE POINTER
 *      
-LOP    INA     '1001   READ IN CHARACTER
-       JMP     '17-BO2S+*-1
-       ICA
-       INA     '001    READ OTHER CHARACTER
-       JMP     '17-BO2S+*-1
-       SNZ
+LOP    INA     '1001           READ IN CHARACTER
+       JMP     '17-BO2S+*-1    WAIT
+       ICA                     OTHER CHARACTER
+       INA     '001            READ FROM TAPE WITHOUT CLEARING A
+       JMP     '17-BO2S+*-1    WAIT
+       SNZ                     DID WE LOAD A ZERO?
        JMP*    '17-BO2S+CNT2   JUMP INTO THIRD STAGE LOADER
-*      JMP     '665
        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
-PTR2   DAC     **      GENERAL PURPOSE MEMORY POINTER
-CNT2   DAC     **      WHERE TO LOAD? CAN BE CHANGED.
-BO2E   OCT     10600   ZERO-TERMINATOR
+PTR2   DAC     **      MEMORY POINTER
+CNT2   DAC     **      LOAD ADDRESS
 *
 *
 ************************************************************************
@@ -444,13 +450,15 @@ 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
+* COMPLETE THE PAUS ROUTINE
+       LDA     PJ1     
        STA     J1
        CRA
-       STA     JH      ENSURE HALT INSTRUCTION
-*      
-       OCP     1       READER ON (UNNECESSARY?)
+       STA     PAUS
+       STA     JH
+*
+* START LOADING        
+       OCP     1       READER ON
 SLOP   INA     '1001   CRA AND READ
        JMP     *-1
        SUB     BSTA    BLOCK START?
@@ -479,10 +487,9 @@ SLOP       INA     '1001   CRA AND READ
        JMP     *+2
        JMP     RSTP    PROCESS STOP BLOCK
        NOP
-       LDA     ='125252        ERROR BLOCK TYPE
+       LDA     EBT     ERROR BLOCK TYPE
        JST     PAUS    PAUSE
        JMP     SLOP    SEARCH FOR NEW BLOCK
-       FIN
 *
 ********************
 * START ADDRESS BLOCK
@@ -546,6 +553,7 @@ RSTP        LDA     BO3S    FOR SHOW
 *
 RESA   DAC     SLOP    RESTART ADDRESS
 BSTA   DEC     129     BLOCK START CHARACTER
+EBT    OCT     '125252         ERROR MESSAGE FOR A REG
 *
 * BLOCK TYPES:
 TSAD   OCT     '33
@@ -567,21 +575,19 @@ LWRD      OCT     66
 *******************
 * 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
+PAUS   DAC     **      WILL BE INITIALIZED TO ZERO BEFORE PUNCHING
+JH     HLT             BECOMES CLEARED ON START OF LOAD
+J1     DAC     **      BECOMES JMP* PAUS ON START OF LOAD
 *
 ***** 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
+CSUM   DAC     **      CHECKSUM
+LEN    DAC     **      LENGTH COUNTER
+BTYP   DAC     **      BLOCK TYPE
+ALOC   ***     **      CURRENT LOCATION TO PUNCH
+ELOC   ***     **      LAST LOCATION TO PUNCH
+PTR    DAC     **      MEMORY POINTER
 CNT    DAC     **      WHERE TO LOAD? CAN BE CHANGED.
 *
 ************************************************************
-       END
+       END             THAT'S IT, ENJOY!
+