projects
/
h316.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[h316.git]
/
programs
/
tools
/
src
/
binal.asm
diff --git
a/programs/tools/src/binal.asm
b/programs/tools/src/binal.asm
index ba26a32a97238817bad42488bf93e77c48f7670a..4e383f932a4b57cc33646d89edf4422fb1a52962 100644
(file)
--- a/
programs/tools/src/binal.asm
+++ b/
programs/tools/src/binal.asm
@@
-102,17
+102,26
@@
*
************************************************************************
*
*
************************************************************************
*
- SUBR LSTART,BO3S BEGINNING OF THIRD STAGE LOADER
+ SUBR BINAL,ANF
+ SUBR LSTART,BO3S BEGINNING OF THIRD STAGE LOADER
*
REL RELOCATABLE MODE
ORG 0
*
*
REL RELOCATABLE MODE
ORG 0
*
- STA STRT SAVE AUTO START LOCATION
+ANF STA STRT SAVE AUTO START LOCATION
+ CRA
HLT
STA ALOC FIRST LOCATION TO PUNCH
HLT
STA ALOC FIRST LOCATION TO PUNCH
+ CRA
HLT
STA ELOC LAST LOCATION TO PUNCH
*
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
OCP '0002 START PUNCH (NOT NECESSARY ON MY H316)
*
SR1 SKIP IF SSW 1 RESET
@@
-228,12
+237,12
@@
GBLK DAC **
******************
* MAKE A START ADDRESS BLOCK
ABLK DAC **
******************
* MAKE A START ADDRESS BLOCK
ABLK DAC **
- STA CNT
SAVE THE ADDRESS
+ STA CNT
2
SAVE THE ADDRESS
LDA BSTA START CHARACTER
ICA
ADD TSAD BLOCK TYPE
JST SWRD PUNCH THAT
LDA BSTA START CHARACTER
ICA
ADD TSAD BLOCK TYPE
JST SWRD PUNCH THAT
- LDA CNT
+ LDA CNT
2
JST SWRD
JST SWRD
JMP* ABLK
JST SWRD
JST SWRD
JMP* ABLK
@@
-242,7
+251,7
@@
ABLK DAC **
*******************
* MAKE ZERO BLOCK
ZBLK DAC ** PRODUCE A ZERO BLOCK
*******************
* MAKE ZERO BLOCK
ZBLK DAC ** PRODUCE A ZERO BLOCK
- STA CNT
STORE SIZE OF BLOCK
+ STA CNT
2
STORE SIZE OF BLOCK
LDA BSTA START CHARACTER
ICA
ADD TZER BLOCK TYPE
LDA BSTA START CHARACTER
ICA
ADD TZER BLOCK TYPE
@@
-250,12
+259,12
@@
ZBLK DAC ** PRODUCE A ZERO BLOCK
LDA ALOC LOAD START ADDRESS
JST SWRD PUNCH START ADDRESS
STA CSUM INIT CHECKSUM
LDA ALOC LOAD START ADDRESS
JST SWRD PUNCH START ADDRESS
STA CSUM INIT CHECKSUM
- LDA CNT
LOAD SIZE
+ LDA CNT
2
LOAD SIZE
JST SWRD PUNCH SIZE
ADD CSUM ADD CHECKSUM
JST SWRD PUNCH OUT CHECKSUM
LDA ALOC RELOAD POINTER
JST SWRD PUNCH SIZE
ADD CSUM ADD CHECKSUM
JST SWRD PUNCH OUT CHECKSUM
LDA ALOC RELOAD POINTER
- ADD CNT
CALCULATE NEW POINTER
+ ADD CNT
2
CALCULATE NEW POINTER
STA ALOC UPDATE ALOC
JMP* ZBLK END
*
STA ALOC UPDATE ALOC
JMP* ZBLK END
*
@@
-263,7
+272,7
@@
ZBLK DAC ** PRODUCE A ZERO BLOCK
********************
* MAKE DATA BLOCK
DBLK DAC **
********************
* MAKE DATA BLOCK
DBLK DAC **
- STA CNT
SAVE SIZE
+ STA CNT
2
SAVE SIZE
*
LDA BSTA START CHARACTER
ICA
*
LDA BSTA START CHARACTER
ICA
@@
-274,21
+283,21
@@
DBLK DAC **
JST SWRD PUNCH IT
STA CSUM INIT CHECKSUM
*
JST SWRD PUNCH IT
STA CSUM INIT CHECKSUM
*
- LDA CNT
PACKET SIZE
+ LDA CNT
2
PACKET SIZE
JST SWRD PUNCH IT
ADD CSUM
STA CSUM UPDATE CHECKSUM
*
JST SWRD PUNCH IT
ADD CSUM
STA CSUM UPDATE CHECKSUM
*
- LDA CNT
+ LDA CNT
2
TCA
TCA
- STA CNT
NOW WE USE IT AS NEG COUNTER
+ STA CNT
2
NOW WE USE IT AS NEG COUNTER
*
DDLP LDA* ALOC LOAD DATA
JST SWRD PUNCH DATA
ADD CSUM
STA CSUM UPDATE CHECKSUM
IRS ALOC
*
DDLP LDA* ALOC LOAD DATA
JST SWRD PUNCH DATA
ADD CSUM
STA CSUM UPDATE CHECKSUM
IRS ALOC
- IRS CNT
+ IRS CNT
2
JMP DDLP LOOP IT
JST SWRD PUNCH CHECKSUM
JMP* DBLK BLOCK DONE
JMP DDLP LOOP IT
JST SWRD PUNCH CHECKSUM
JMP* DBLK BLOCK DONE
@@
-315,16
+324,16
@@
CZER DAC **
*
COUN DAC ** COUNT FILLED OR EMPTY LOCATIONS
CRA
*
COUN DAC ** COUNT FILLED OR EMPTY LOCATIONS
CRA
- STA CNT
INITIALIZE COUNTER
+ STA CNT
2
INITIALIZE COUNTER
CLOP LDA* PTR
DISC SZE WILL BE DYNAMICALLY OVERWRITTEN
JMP ZFIN NOW OTHER KIND OF DATA
CLOP LDA* PTR
DISC SZE WILL BE DYNAMICALLY OVERWRITTEN
JMP ZFIN NOW OTHER KIND OF DATA
- IRS CNT
NOTE DOWN THE FIND
+ IRS CNT
2
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
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 CNT
2
JMP* COUN
*
*
JMP* COUN
*
*
@@
-358,11
+367,11
@@
L23 LDA* PTR
PLDR DAC ** PUNCH LEADER
LDA LDRL LOAD LEADER LENGTH
TCA COMPLEMENT IT
PLDR DAC ** PUNCH LEADER
LDA LDRL LOAD LEADER LENGTH
TCA COMPLEMENT IT
- STA CNT
STORE TO LEADER COUNTER
+ STA CNT
2
STORE TO LEADER COUNTER
CRA LEADER IS ZERO
LLP OTA 2
JMP *-1
CRA LEADER IS ZERO
LLP OTA 2
JMP *-1
- IRS CNT
+ IRS CNT
2
JMP LLP
JMP* PLDR
*
JMP LLP
JMP* PLDR
*
@@
-390,52
+399,50
@@
SNZ SNZ INSTRUCTION FOR FILL IN
************************************************************************
* THIS IST THE SECOND STAGE LOADER
*
************************************************************************
* 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
*
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
*
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 '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
IRS '17-BO2S+CNT2 CORRECT STOLEN WORD
- LDA '17-BO2S+CNT2
-* JMP '776
-*
LDA '17-BO2S+CNT2 WHERE TO LOAD NOW?
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* '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
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
+451,17
@@
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
+* COMPLETE THE
PAUS ROUTINE
+ LDA PJ1
STA J1
STA J1
+ LDA PJ2
+ STA J2
CRA
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?
SLOP INA '1001 CRA AND READ
JMP *-1
SUB BSTA BLOCK START?
@@
-479,10
+490,9
@@
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
+ LDA
EBT
ERROR BLOCK TYPE
JST PAUS PAUSE
JMP SLOP SEARCH FOR NEW BLOCK
JST PAUS PAUSE
JMP SLOP SEARCH FOR NEW BLOCK
- FIN
*
********************
* START ADDRESS BLOCK
*
********************
* START ADDRESS BLOCK
@@
-546,6
+556,7
@@
RSTP LDA BO3S FOR SHOW
*
RESA DAC SLOP RESTART ADDRESS
BSTA DEC 129 BLOCK START CHARACTER
*
RESA DAC SLOP RESTART ADDRESS
BSTA DEC 129 BLOCK START CHARACTER
+EBT OCT '125252 ERROR MESSAGE FOR A REG
*
* BLOCK TYPES:
TSAD OCT '33
*
* BLOCK TYPES:
TSAD OCT '33
@@
-555,7
+566,7
@@
TSTP OCT '66
TDAT OCT '11
*
*
TDAT OCT '11
*
*
-LWRD OCT 66
+LWRD OCT 66
CAN'T BE INITIALLY ZERO!
INA '1001 CLEAR A AND INPUT
JMP *-1
ICA
INA '1001 CLEAR A AND INPUT
JMP *-1
ICA
@@
-567,21
+578,21
@@
LWRD OCT 66
*******************
* THE ATTIC OF THE THIRD STAGE LOADER
PJ1 JMP* PAUS LAST LOCATION THAT WILL BE LOADED FROM TAPE!
*******************
* 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
+PJ2 OCP '101 STOP READER
+PAUS DAC ** WILL BE INITIALIZED TO ZERO BEFORE PUNCHING
+J2 DAC ** BECOMES OCP '101 ON START OF LOAD
+JH HLT BECOMES CLEARED ON START OF LOAD
+J1 DAC ** BECOMES JMP* PAUS ON START OF LOAD
*
***** VARIABLES
*
***** 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.
*
************************************************************
CNT DAC ** WHERE TO LOAD? CAN BE CHANGED.
*
************************************************************
- END
+ END ANF THAT'S IT, ENJOY!
+