1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-13 15:18:24 +00:00

Commit initial BALGOL-Overlay transcription WIP.

Commit corrections to Pass 1 of BAC-Assembler.html.
Commit initial BALGOL-Main.card extracted from BALGOL-Main.baca transcription.
This commit is contained in:
Paul Kimpel 2016-12-25 09:02:02 -08:00
parent 3195f857dc
commit 86664b609c
4 changed files with 5265 additions and 9 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,574 @@
Addr Sym Op - Address Comments
ASBML 2
REORD 100.0
01 00 0 0000 BUF DEFN 0002 TAPE OUTPUT BUFFER
01 01 0 0000 OT DEFN 1 OUTPUT TAPE
01 02 0 0000 T DEFN 2 COMPILER TAPE UNIT
01 03 0 0000 PNTR DEFN 2 PRINTER UNIT
001 04 0 0000 PREV DEFN 101 ADDRESS OF PREVIOUS INSTRUCTION IN BUF
001 05 0 0000 CNTRI DEFN 180 COUNTER FOR INSTRUCTIONS IN BUFFER
001 06 0 0000 CNTRF DEFN 181 COUNTER FOR FIX-UPS IN BUFFER
001 07 0 0000 WRTF DEFN 183 RTF CONSTANT FOR WRITE SUBROUTINE
01 08 0 0000 DESCR DEFN 184 INSTRUCTION IN OUTPUT BUFFER
01 09 0 0000 EXPLN DEFN 185 SYMBOLIC EXPLANATION
001 10 0 0000 LCMAX DEFN 202 HIGHEST LOCATION USED IN SEGMENTS
001 11 0 0000 LRTF DEFN 207 LOCATION OF LAST RTF IN OUTPUT BUFFER
001 12 0 0000 HALT1 DEFN 208 ERROR FLAG(SIGN IS 8 IF NO ERRORS)
001 13 0 0000 VARB DEFN 251 LAST LOCATION USED FOR VARIABLES, ECT
01 14 0 0000 EPSLN DEFN 258 NUMBER OF EXTERNAL PROGRAMS
01 15 0 0000 AVAIL DEFN 275 FREED-UP LOCATIONS
01 16 0 0000 OP DEFN 275 OPERATOR STACK
01 17 0 0000 DUMBS DEFN 292 DUMP STACK
01 18 0 0000 SX DEFN 400 MAG TAPE BUFFER
01 19 0 0000 IMAGE DEFN 1632 CARD INPUT BUFFER
001 20 0 0000 AZERO DEFN 4095 START OF FIXED POINT CONSTANT LIST
001 21 0 0000 FZERO DEFN 4097 START OF FLOATING POINT CONSTANT LIST
01 22 0 0000 XONE DEFN 4099 FIXED POINT CONSTANT 1
001 23 0 0000 LALE DEFN 4107 POINTS TO LABEL PROCESSING SUBROUTINE
001 24 0 0000 SCRTS DEFN 4116 SCRAMBLE TABLE FOR IDENTIFIERS
001 25 0 0000 SSC DEFN 4216 POINTS TO WHATS LEFT OF MEMORY
001 26 0 0000 LOCN DEFN 4217 LOCATION COUNTER FOR INSTRUCTIONS
001 27 0 0000 MAMAX DEFN 4227 END OF ASSOCIATIVE MEMORY
01 28 0 0000 MSIZE DEFN 4999 MEMORY SIZE
01 31 0 0000 LOCN 0000
001 32 0 0000 MDUMP HLT 0 SYMBOLIC MEMORY DUMP IS ON ODD LANE
001 33 0 0001 SOH SET INDICATOR FOR ENTIRE DUMP
01 34 0 0002 BOF *+2
01 35 0 0003 IFL T+,51,3
01 36 0 0004 MRW 4 OT+10
01 37 0 0005 STA A
01 38 0 0006 STB B
01 39 0 0007 LBC *+1
01 40 0 0008 NOP LOD1-100
01 41 0 0009 MOW 4 0,OT,4
01 42 0 0010 MRD 4 100,OT,BMOD
01 43 0 0011 BUN 100
01 44 0 0012 A HLT
01 45 0 0013 B HLT MSIZE+1
01 48 0 0014 MLOAD LDB 0
01 49 0 0015 STB B+,04 GET EXIT LINE
01 50 0 0016 MLS 4 OT POSITION TAPE SO THAT
01 51 0 0017 MPF 4 OT SEGMENTATION WILL WORK
01 52 0 0018 LDB B
01 53 0 0019 SOR
01 54 0 0020 FDV *
01 55 0 0021 CAD A
01 56 0 0022 *T NOP *+1
01 57 0 0023 STB T-,51
01 58 0 0024 *B BUN * RETURN TO PROGRAM
01 61 0 0025 LDB *+2
01 62 0 0026 RTF A,1
01 63 0 0027 ZERO RTF 199,100 ZERO MEMORY
01 64 0 0028 STB A BEFORE LOADING PROGRAM
01 65 0 0029 CFR A,04
01 66 0 0030 BCU ZERO
01 67 0 0031 LOADP MRD 4 100,OT,1
01 68 0 0032 LDR X+
01 69 0 0033 STR M+
01 70 0 0034 LBC *+1
01 71 0 0035 CLA 100
01 72 0 0036 *A ADD - 200
01 73 0 0037 ADD - 201
01 74 0 0038 ADD - 202
01 75 0 0039 ADD - 203
01 76 0 0040 ADD - 204 SUM CHECK THE BLOCK
01 77 0 0041 IBB A-,5
01 78 0 0042 BOF *+1
01 79 0 0043 BZA M+
01 80 0 0044 SPO Q1+,4 IF IT DOES NOT
01 81 0 0045 F424 9669,0,9669 SAY SO AND HALT
01 82 0 0046 MPB 4 OT,1 TRY AGAIN
01 83 0 0047 BUN LOADP
01 86 0 0048 *M CAD 101 GET BUFFER ENTRY
01 87 0 0049 LDB M-
001 88 0 0050 BSA C+,4 IS IT A RTF(IF NOT, ALL INSTRUCTIONS
001 90 0 0051 CLL Z+ ARE LOADED SO PROCESS FIX-UPS
01 91 0 0052 IFL Z+,02,99
01 92 0 0053 *A DLB Z+,04,1
001 93 0 0054 LDR - 100 IF FIX-UP HAS A SIGN OF 8 IT INDICATES
01 94 0 0055 BFR B+,12,80 END OF SOME SEGMENT
01 95 0 0056 BZR LOADP
01 96 0 0057 DLB - 100,64,0 DO FIX-UP
01 97 0 0058 STR - 0,04
01 98 0 0059 BUN A-
02 01 0 0060 *C STA R+,66
002 02 0 0061 DBB 0,9999 INSTRUCTIONS ARE TRANSFERED TO
02 03 0 0062 STB R+,04 MEMORY WITH A RTF
02 04 0 0063 LDB - 9999
02 05 0 0064 *R RTF 0,100
02 06 0 0065 SRT 7
02 07 0 0066 ADD O+ GO GET NEXT RTF
02 08 0 0067 ADL M-
02 09 0 0068 BUN M-
02 10 0 0069 *X CAD 101
02 11 0 0070 *O HLT 1
02 12 0 0071 *Z HLT 99 FIX-UP COUNTER
02 15 0 0072 *B CFR SECT,67 HAVE WE LOADED ALL OF THE
02 16 0 0073 BCU A- SEGMENT INDICATED BY SECT
02 17 0 0074 LODOX BUN 200
02 20 0 0075 *V HLT 1111
02 21 0 0076 LODOV LDB LODOX
02 22 0 0077 CAD - 0
02 23 0 0078 EXT V-
02 24 0 0079 SLA 4
02 25 0 0080 STA SECT,00 GET SEGMENT NUMBER
02 26 0 0081 IFL LODOX,04,I ADVANCE EXIT LINE BY ONE
02 27 0 0082 CLB
02 28 0 0083 *B MTS 4 SECT,OT SEARCH FOR SEGMENT
02 29 0 0084 MRD 4 100,OT,1
02 30 0 0085 CAD 100
02 31 0 0086 CFA SECT,100 DID THE MACHINE WORK
02 32 0 0087 BCE LOADP+1 IF YES,LOAD THE SEGMENT
02 33 0 0088 SPO Q2+,3 IF NOT PRINT THE MESSAGE
02 34 0 0089 F424 9669,0,9669 SEGMENT ERROR
02 35 0 0090 BUN B- TRY AGAIN
02 37 0 0091 SECT HLT 8 0 SEGMENT NUMBER
02 39 0 0092 *Q1 CNST 21602020202
02 40 0 0093 CNST 24348454352
02 41 0 0094 CNST 20062645400
02 42 0 0095 CNST 24559595659
02 43 0 0096 *Q2 CNST 21662454754
02 44 0 0097 CNST 24555630045
02 45 0 0098 CNST 25959565902
02 48 0 0099 LOCN 100
02 49 0 0100 HLT 0
02 50 0 0101 FMT1 FBGR INPUT,16(P5A),P10Z
002 51 0 0130 FMT3 FBGR PRINT,39B,T5A,T1A1B2A4Z,T10N,T8Z1A,XB6Z2A,38B MONITOR
002 52 0 0159 FMT4 FBGR PRINT,32B,11(T5A),33B ERROR MESSAGE FORMAT BAND
02 53 0 0188 TAB DEFN *
02 54 0 0188 LOCN 200
02 55 0 0200 HLT 0
002 56 0 0201 FMT5 FBGR PRINT,24(T5A) PRINTER-PUNCH FORMAT BAND
02 58 0 0230 LOADL CRI 4 *+2,1 LOADER ENTRANCE
02 59 0 0231 BUN LOADC
002 60 0 0232 CRF 4 FMT1+28,51 LOAD INPUT FORMAT IF READY
02 61 0 0233 LOADC STB 200,55
02 62 0 0234 *A IFL 200,54,1
02 63 0 0235 BOF A+
02 64 0 0236 CWI 4 A+,2
02 65 0 0237 BUN A-
02 66 0 0238 *A CWI 4 *+2,2
02 67 0 0239 BUN *+4
002 68 0 0240 CWF 4 FMT3+28,32 LOAD PRINTER FORMATS IF PRINTER READY
02 69 0 0241 CWF 4 FMT4+28,42
02 70 0 0242 CWF 4 FMT5+28,52
02 71 0 0243 CWI 4 *+2,1
02 72 0 0244 BUN *+2
002 73 0 0245 CWF 4 FMT5+28,51 LOAD PUNCH FORMAT IF PUNCH IS READY
02 74 0 0246 LDR B
02 75 0 0247 BUN ZERO-2
02 78 0 0248 LOCN 700
02 80 0 0700 BCS *+3,4
02 81 0 0701 STP 4 9898,1642
02 82 0 0702 BUN 4 9898,IMAGE
02 83 0 0703 MRD 4 0900,T,7
02 84 0 0704 MRD 4 1600,T,0
02 85 0 0705 MRD 4 2600,T,0
02 86 0 0706 CLA 3200
02 87 0 0707 LBC *-1
02 88 0 0708 ADD - 3600
02 89 0 0709 ADD - 3601
02 90 0 0710 ADD - 3602
02 91 0 0711 ADD - 3603
02 92 0 0712 ADD - 3604
02 93 0 0713 ADD - 3605
02 94 0 0714 ADD - 3606
02 95 0 0715 ADD - 3607
02 96 0 0716 ADD - 3608
02 97 0 0717 ADD - 3609
02 98 0 0718 IBB *-10,10
02 99 0 0719 BOF *+1
03 00 0 0720 BZA A+ IF IT DOES NOT PRINT
03 01 0 0721 SPO CSERR,4 CHECK SUM ERROR
03 02 0 0722 F424 9669,0,9669
03 03 0 0723 MPB 4 T,2
03 04 0 0724 MPB 4 T,10
03 05 0 0725 MPB 4 T,10
03 06 0 0726 MPB 4 T,10
03 07 0 0727 MRD 4 400,T,10 TRY AGAIN
03 08 0 0728 MRD 4 1400,T,10
03 09 0 0729 MRD 4 2400,T,10
03 10 0 0730 MRD 4 3400,T,2
03 11 0 0731 BUN 707
03 14 0 0732 *A CWF 4 ERFRM+28,42
03 15 0 0733 LDB DUMBS
03 16 0 0734 IBB A+,9999
03 17 0 0735 LDB +SCRTB+117
03 18 0 0736 STP LIBRX
03 19 0 0737 BUN LIBRF
03 20 0 0738 *A CAD HALT1 SET THE X X UP IF AN ERROR
03 21 0 0739 BSA *+3,8 OCCURRED DURING COMPILATION
03 22 0 0740 LDR +525005250
03 23 0 0741 STR HALT
03 24 0 0742 LDB OP
03 25 0 0743 *A STB C+,04 TEST FOR OP STACK EMPTY
03 26 0 0744 IBB A+,9999 IT SHOULD BE
03 27 0 0745 STP WEMX
03 28 0 0746 BUN WEM
03 29 0 0747 CNST 30102030000 EXTRA LEFT PARENTHESIS
03 30 0 0748 LDB C+
03 31 0 0749 LDB - 0
03 32 0 0750 BUN A-
03 33 0 0751 *C HLT 0
003 36 0 0752 *A CAD BUF DUMP BUFFER IF SEGMENTATION WAS USED
03 37 0 0753 BFA A+,64,0 AND BUFFER IS NOT EMPTY
03 38 0 0754 CAD BUF+99
03 39 0 0755 ADD BUF+98
03 40 0 0756 BZA *+3
03 41 0 0757 STP WRITX
03 42 0 0758 BUN WRIT5
03 43 0 0759 CAD BUF INCREASE SEGMENT NUMBER
03 44 0 0760 CLL BUF
03 45 0 0761 STA BUF,64
03 46 0 0762 IFL BUF,64,1
03 47 0 0763 BUN C+
03 48 0 0764 *A LDR +9669009669 GENERATE BIG X X HALT
03 49 0 0765 STR INSTR
03 50 0 0766 STP WRITX
03 51 0 0767 BUN WRIT2
03 52 0 0768 LDR +1000600000 FOLLOWED BY A CARD READ
03 53 0 0769 STR INSTR IF NOT USING SEGMENTATION
03 54 0 0770 STP WRITX
03 55 0 0771 BUN WRIT2
03 58 0 0772 *C LDR $POOL$
03 59 0 0773 STR EXPLN
03 60 0 0774 *C LDB *+1
03 61 0 0775 CAD XZERO
03 62 0 0776 *A STA HOLD
03 63 0 0777 BFA B+,64,0
03 64 0 0778 SRA 4
03 65 0 0779 LDR - 1
03 66 0 0780 STP WRITX OUTPUT ALL CONSTANTS USED BY
03 67 0 0781 BUN WRIT3 OBJECT PROGRAM
03 68 0 0782 CAD HOLD
03 69 0 0783 *B BFA C+,04,0 XXXX 2R YYYY LINK R=0 FLOATING
03 70 0 0784 LDB HOLD XXXX+1 (CONSTANT) R=1 INTEGER
03 71 0 0785 CAD - 0 YYY IS THE ASIGNMENT
03 72 0 0786 BUN A- LINK=0 INDICATES END OF LIST
03 73 0 0787 *C LDB *+1
03 74 0 0788 CAD FZERO PROCESS FLOATING LIST
03 75 0 0789 STP B-
03 76 0 0790 BUN A-
03 79 0 0791 CLL EXPLN
03 80 0 0792 MLS 4 T
03 81 0 0793 MIB 4 *+2,T
03 82 0 0794 BUN *-1
03 83 0 0795 MRD 4 LBRT,T,3 READ LIBRARY TABLE
003 84 0 0796 DFL WRT10,11,9 CHANGE CONTROL SWITCH FOR EXTERNAL
03 85 0 0797 DFL FXUPY,11,9
03 86 0 0798 LDB EPSLN PROGRAMS
003 87 0 0799 STP EXTEX PROCESS EXTERNAL PROGRAMS IF EPSLN
03 88 0 0800 DBB EXTP,1 IS NON-ZERO
003 89 0 0801 DFL WRT10,11,2 CHANGE CONTROL SWITCH FOR LIBRARY
03 90 0 0802 DFL FXUPY,11,2
003 91 0 0803 CAD +545600 MODIFY ERROR MESSAGE FOR LIBRARY
003 92 0 0804 STA CNST9,06 TO READ UNDEFINED EQUIVALENCE LIBRARY
INCORRECT
03 96 0 0805 *F CLL TST
03 97 0 0806 CLB
03 98 0 0807 CAD LOCN
03 99 0 0808 STA LCHOD
04 00 0 0809 DBB *+1,99990LBRT START AT LBRT+1
04 01 0 0810 *E STB I
04 02 0 0811 CAD - 0
004 03 0 0812 BSA A+,1
004 04 0 0813 BZA B+ END OF THIS PASS ON THE TABLE
004 05 0 0814 STA J,00
04 06 0 0815 DLB J,64,0
04 07 0 0816 CAD - 0
04 08 0 0817 BFA A+,11,3 IS THE ROUTINE ASSIGNED
04 09 0 0818 LDB I IF YES
04 10 0 0819 IFL - 0,12,10 MARK IT WITH A SIGN OF 1
04 11 0 0820 BUN C+
04 12 0 0821 *D DLB J,64,0
04 13 0 0822 CAD - 0
04 14 0 0823 BFA C+,11,4
04 15 0 0824 IFL TST,00,1 ASSIGN SUBROUTINE IF IT HAS NOT
004 16 0 0825 STP LIBRX ALREADY ASSIGNED, TST COUNTS NUMBER
004 17 0 0826 BUN LIBRF OF SUBROUTINES ASSIGNED ON THIS PASS
04 18 0 0827 *C LDB J THRU TABLE
04 19 0 0828 IBB A+,9999 SEQUENCE DOWN LIST OF REQUIRED
04 20 0 0829 CAD - 1 SUBROUTINES
04 21 0 0830 STA J
04 22 0 0831 BUN D-
04 23 0 0832 *A LDB I ADVANCE TO NEXT TABLE ENTRY
04 24 0 0833 IBB E-,1
004 25 0 0834 *B LDB TST IF 1 ADDITIONAL SUBROUTINE WAS ASSIGNED
004 26 0 0835 DBB F-,1 ANOTHER PASS THRU TABLE IS NECESSARY
04 29 0 0836 *E DEFN *
04 30 0 0836 *F DLB II,44,0
04 31 0 0837 CAD - LBRT
04 32 0 0838 BFA A+,00,0 END OF LIBRARY TABLE
004 33 0 0839 BSA B+,1 IF ENTRY WAS MARKED PROCESS THIS
04 34 0 0840 *C IFL II,44,1 ROUTINE
04 35 0 0841 BUN F-
04 36 0 0842 *B DLB - LBRT,64,0
004 37 0 0843 CAD - 0 GET OPERAND OF ROUTINE TO BE PROCESSED
004 38 0 0844 DLB *,44,0 POSITION TAPE TO BEGINNING OF ROUTINE
04 39 0 0845 MFS II,T
04 40 0 0846 STA LOCN,64 SETUP LOCATION COUNTER
04 41 0 0847 SLA 2
004 42 0 0848 STA MSK,44 AND MASK FOR RELOCATION OF INSTRUCTIONS
04 43 0 0849 SRA 6
04 44 0 0850 STA MSK,04
04 45 0 0851 CLL EQTAB-1 CLEAR EQUIVALENCE TABLE
04 46 0 0852 LDB +EQTAB
04 47 0 0853 RTF EQTAB-1,100
04 48 0 0854 CLL JJ
04 49 0 0855 IFL JJ,02,2
04 50 0 0856 MLS 4 T
04 51 0 0857 MIB 4 *+2,T
04 52 0 0858 BUN *-1
04 53 0 0859 MRD 4 BUFR,T,1
04 54 0 0860 CAD BUFR DID WE FIND THE RIGHT BLOCK
04 55 0 0861 CFA II
04 56 0 0862 BCE E+
04 57 0 0863 SPO SRERR,3
04 58 0 0864 F424 9669,0,9669
04 59 0 0865 BUN B-
04 60 0 0866 *G CLL JJ
04 61 0 0867 IFL JJ,02,2
04 62 0 0868 MLS 4 T
04 63 0 0869 MIB 4 *+2,T
04 64 0 0870 BUN *-1
04 65 0 0871 MRD 4 BUFR,T,1
04 66 0 0872 *E LDB *+1
04 67 0 0873 CLA 98
04 68 0 0874 ADD - BUFR+1
04 69 0 0875 DBB *-1,1 CHECK SUM
04 70 0 0876 BOF *+1
04 71 0 0877 BZA D+
04 72 0 0878 SPO CSERR,4
04 73 0 0879 F424 9669,0,9669
04 74 0 0880 MPB 4 T,1
04 75 0 0881 BUN G-
04 78 0 0882 *D LDB JJ
04 79 0 0883 CAD - BUFR-1
04 80 0 0884 STA INSTR
04 81 0 0885 STP LBSBX PROCESS INSTRUCTION IN BUFFER
04 82 0 0886 BUN LBSB
04 83 0 0887 BUN C- END OF LIBRARY PROCEDURE
04 84 0 0888 IFL JJ,02,1
04 85 0 0889 BOF G- END OF TAPE BLOCK
04 86 0 0890 BUN D-
04 89 0 0891 *A MIB 4 *+2,T
04 90 0 0892 BUN *-1
04 91 0 0893 MRW 4 T
04 92 0 0894 CLA EMIT AN END OF
004 93 0 0895 LSA 8
04 94 0 0896 STP FXUPX
04 95 0 0897 BUN FXUP
04 96 0 0898 CAD BUF+98
04 97 0 0899 BSA *+2,8
04 98 0 0900 BZA *+3
04 99 0 0901 STP WRITX DUMP BUFFER IF NOT EMPTY
05 00 0 0902 BUN WRIT5
05 01 0 0903 CAD +9999999999
05 02 0 0904 STA BUF OUTPUT A SENTINEL BLOCK
05 03 0 0905 STP WRITX
05 04 0 0906 BUN WRIT5
05 05 0 0907 MIB 4 *+2,OT
05 06 0 0908 BUN *-1
05 07 0 0909 MRW 4 OT
COMMENT
SEARCH FOR UNDEFINED LABELS AND EXTERNAL PROGRAMS
WORD= T LL SSSS LINK LL= LENGTH OF IDENTIFIER
T=2 FOR A NUMERIC LABLE
SSSS = V TR ASIGN 0000
SSSS+1= (FIRST FIVE CHARACTERS OF IDENTIFIER)
SSSS+2= (NEXT FIVE CHARACTERS)
WE ARE LOOKING FOR THE CASES
(T=9, ASIGN=0) OR (V=9, T=8,9, ASIGN=0)
05 20 0 0910 *E LDB Z+
05 21 0 0911 CAD - SCRTB GET HEAD OF STACK
05 22 0 0912 *D STA Y+
05 23 0 0913 DLB Y+,64,0
05 24 0 0914 IBB A+,9999 STACK HAS NO ENTRIES
05 25 0 0915 BOF *+1
05 26 0 0916 IFL Y+,12,90 SET OVERFLOW IF
05 27 0 0917 CAD - 1 OPERAND IS A NUMERIC LABEL
05 28 0 0918 BSA E+,8 EXTERNAL PROGRAM
05 29 0 0919 BFA B+,11,9 IS IT A LABEL
05 30 0 0920 *C LDB Y+ SEQUENCE DOWN STACK
05 31 0 0921 LDR +34353600
05 32 0 0922 STR CNST8,08
05 33 0 0923 CAD - 0
05 34 0 0924 DBB D-,1000 IF LINK IS LESS THAN 1000
05 35 0 0925 *A DFL Z+,02,1 SKIP TO NEXT STACK
05 36 0 0926 BRP E-
05 37 0 0927 BUN OUT END OF SCRAMBLE TABLE
05 38 0 0928 *B BFA *+2,64,0 HAS LABEL BEEN ASSIGNED
05 39 0 0929 BUN C-
05 40 0 0930 DFL Y+,22,11 SET REPEAT IF IDENTIFIER
05 41 0 0931 CAD - 2 IS LONGER THAN 5 CHARACTERS
05 42 0 0932 LDR - 3
5 43 0 0933 LSA 3
05 44 0 0934 BRP *+2
05 45 0 0935 CLR
05 46 0 0936 BOF NMBRL NUMERIC LABEL
05 47 0 0937 STA DICT+35
05 48 0 0938 STR DICT+36
05 49 0 0939 PRNT STP WEMX
05 50 0 0940 BUN WEM
05 51 0 0941 CNST8 CNST 33234353600 UNDIFENED LABEL (EXT PROGRAM) L
05 52 0 0942 BUN C-
05 53 0 0943 *E BOF *+1
05 54 0 0944 BFA *+3,11,8
05 55 0 0945 BFA B-+2,12,89
05 56 0 0946 BUN C-
05 57 0 0947 LDR +10123536
05 58 0 0948 STR CNST8,08
05 59 0 0949 BUN B-
05 62 0 0950 NMBRL LSA 0 CONVERT INTEGER
05 63 0 0951 SRT 10 TO ALFANUMERIC CODE
05 64 0 0952 *B SLT 1
05 65 0 0953 ADD +80
05 66 0 0954 BFA A+,11,8
05 67 0 0955 SLA 1
05 68 0 0956 BUN B-
05 69 0 0957 *A STA DICT+35
05 70 0 0958 IFL DICT+35,12,30
05 71 0 0959 CLA
05 72 0 0960 *B SLT 1
05 73 0 0961 ADD +80
05 74 0 0962 BFA A+,11,8
05 75 0 0963 SLA 1
05 76 0 0964 BUN B-
05 77 0 0965 *A STA DICT+36
05 78 0 0966 BUN PRNT
05 79 0 0967 *Y HLT 0 PRESENT OPERAND
05 80 0 0968 *Z HLT 99 STACK COUNT
05 83 0 0969 OUT CAD LCHOD
05 84 0 0970 CFA LCMAX,64
05 85 0 0971 BCH *+2
05 86 0 0972 CAD LCMAX
05 87 0 0973 SUB +10000
05 88 0 0974 SRT 8
05 89 0 0975 BOF *+1
05 90 0 0976 *B CLA 300
05 91 0 0977 *C ADD +8
05 92 0 0978 SLT 1
05 93 0 0979 SLA 1
05 94 0 0980 DFL B-,81,1
05 95 0 0981 BRP C-
05 96 0 0982 SLA 1
05 97 0 0983 STA DICT+35
05 98 0 0984 CAD VARB SET UP CONSTANTS
05 99 0 0985 ADD +1 IN ALFANUMERIC FORMAT
06 00 0 0986 BPA *+2
06 01 0 0987 CLA
06 02 0 0988 SRT 4
06 03 0 0989 *C CLA 3
6 04 0 0990 *B ADD +8
06 05 0 0991 SLT 1
06 06 0 0992 SLA 1
06 07 0 0993 DFL C-,01,1
06 08 0 0994 BRP B-
06 09 0 0995 SLA 1 IF NOT PCS(4)
06 10 0 0996 STA DICT+36 PRINT MESSAGES
06 11 0 0997 BCS A+,4
06 12 0 0998 CAD DICT+36
06 13 0 0999 CFA DICT+35,88
06 14 0 1000 BCH *+4
06 15 0 1001 STP WEMX
06 16 0 1002 BUN WEM
06 17 0 1003 CNST 36866707147
06 18 0 1004 STP WEMX
06 19 0 1005 BUN WEM+2
06 20 0 1006 CNST 34547495036 COMPILED PROGRAM ENDS AT XXXX
06 21 0 1007 STP WEMX
06 22 0 1008 BUN WEM+2
06 23 0 1009 CNST 34751535037 PROGRAM VARIABLES START AT XXXX
06 24 0 1010 *A LDB DUMBS
06 25 0 1011 DBB MONST,1 GO GENERATE SYMBOLIC DUMP
06 29 0 1012 LDBG CAD HALT
06 30 0 1013 BFA *+4,31,5
06 31 0 1014 STP 4 9898,0916
06 32 0 1015 BUN 4 9898,IFERR
06 33 0 1016 BUN *+4
06 34 0 1017 BCS *+3,4
06 35 0 1018 STP 4 9898,0916
006 36 0 1019 BUN 4 9898,ZERSS
06 37 0
06 38 0 1020 AGAIN DLB FIXUP,44,0 THE FIXUP STACK CONTAINS THE
06 39 0 1021 STP REMX FIX-UPS FOR CALLS OF EXTERNAL PROGRAMS
06 40 0 1022 BUN REM FROM WITHIN SEGMENTS
06 41 0 1023 XT001 BUN S+ STACK EMPTY
06 42 0 1024 LDR +POST A REWIND
06 43 0 1025 STR XT001,04 WILL BE NECESSARY
06 44 0 1026 STA HOLD
06 45 0 1027 DLB HOLD,64,0
06 46 0 1028 CAD - 0
06 47 0 1029 STA HOLD
06 48 0 1030 SRA 8
06 49 0 1031 SLA 4
06 50 0 1032 STA THROW
06 51 0 1033 CLB
06 52 0 1034 MTS MTS 4 THROW,OT SEARCH FOR PROPER SEGMENT
06 53 0 1035 MRD 4 100,OT,1
06 54 0 1036 CFA 100,00
06 55 0 1037 BCE RDT+1
06 56 0 1038 SPO SRERR,3
06 57 0 1039 F424 9669,0,9669
06 58 0 1040 BUN MTS TRY AGAIN
06 60 0 1041 RDT MRD 4 100,OT,1
06 61 0 1042 CLA 100
06 62 0 1043 LBC *-1
06 63 0 1044 *A ADD - 200
06 64 0 1045 ADD - 201
06 65 0 1046 ADD - 202
06 66 0 1047 ADD - 203
06 67 0 1048 ADD - 204
06 68 0 1049 IBB A-,5 CHECK SUM BLOCK
06 69 0 1050 BOF *+1

View File

@ -14,5 +14,18 @@ BALGOL-Main.baca
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This transcription reflects the corrections hand-coded on the listing.
BALGOL-Main-card
Card-image input deck of BALGOL-Main.baca prepared for input to the
tools/BAC-Assembler script.
BALGOL-Overlay.baca
Assembly listing of teh BALGOL compiler overlay module, transcribed
by Paul Kimpel from
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This transcription reflects the corrections hand-coded on the listing.
[work in progress]
Paul Kimpel
December 2016

View File

@ -804,10 +804,6 @@ window.addEventListener("load", function() {
}
}
while (count < 5) { // pad out final word with spaces
appendCode(0);
}
if (x >= length) {
printError("$-STRING NOT TERMINATED");
} else {
@ -824,6 +820,10 @@ window.addEventListener("load", function() {
}
}
while (count < 5) { // pad out final word with spaces
appendCode(0);
}
values.push(word); // push out final word
if (singleWord && values.length > 1) {
printError("STRING OCCUPIES MORE THAN ONE WORD");
@ -918,7 +918,8 @@ window.addEventListener("load", function() {
token.newOffset = x;
break;
case (c == "+" || c == "-"): // parse pool constant
case (c == "+"): // parse pool numeric constant
case (c == "-"):
raw = c;
if (++x >= length) {
printError("INVALID POOL CONSTANT SYNTAX");
@ -932,9 +933,6 @@ window.addEventListener("load", function() {
printError("POOL CONSTANT LONGER THAN 10 DIGITS: " + token.text);
}
token.text = raw + padLeft(token.text, 10, "0");
} else if (c == "$") {
parseString(text, token, true);
token.text = "$" + token.text.substring(0, 5);
} else if (c == " " || c == ",") {
printError("EMPTY POOL CONSTANT");
} else {
@ -946,6 +944,12 @@ window.addEventListener("load", function() {
token.type = 6;
break;
case (c == "$"): // parse pool string constant
parseString(text, token, true);
token.text = "$" + token.text.substring(0, 5);
token.type = 6;
break;
case (c == " "): // empty primary
token.type = 0;
token.newOffset = x;
@ -1208,7 +1212,7 @@ window.addEventListener("load", function() {
if (values.length < 1) {
printError("OPERAND ADDRESS REQUIRED");
} else if (values[0] >= 0) {
location = thisLoc = values[0];
location = values[0];
}
break;
case pseudoCNST: