Home » Personal collection » Commodore disks » disk50a2_progs1.d64 » renumber

renumber

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Commodore disks » disk50a2_progs1.d64
Filename: renumber
Read OK:
File size: 0AA5 bytes
Load address: 0801
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   100 REM RENUMBERING PROGRAM
   110 :
   120 DEF FNADRS(L)=PEEK(L)+256*PEEK(L+1)
   130 :
   140 PRINT"<clr>RENUMBERING PROGRAM."
   150 PRINT"<cursor down><cursor down>WHAT ARE THE BOTTOM AND TOP LINES"
   160 PRINT"OF THE CHUNK TO BE RUNUMBERED, THE NEW"
   170 PRINT"STARTING NUMBER, AND THE GAP BETWEEN"
   180 INPUT"LINES";BOT,TUP,NBOT,GAP
   190 CNT=-1:MAX=50:DIM AD(MAX,1)
   200 LOC=2048:PHASE=1:PASS=1
   210 :
   220 REM PASSES 1 AND 3 START HERE
   230 LOC=LOC+3:LN=FNADRS(LOC):IF PASS=3 THEN GOTO 300
   240 IF LN=BOT THEN PHASE=2:LINCNT=0:L1=LOC-2
   250 IF PHASE=1 AND LN>=NBOT THEN PRINT"<cursor down>CLASH WITH PRESENT LINE";LN:STOP
   260 IF PHASE=2 AND LN<=TUP THEN LINCNT=LINCNT+1
   270 IF PHASE<>2 OR LN<=TUP THEN GOTO 300
   280 PHASE=3:L2=LOC-2
   290 IF LN<=NBOT+GAP*(LINCNT-1) THEN PRINT"<cursor down>CLASH WITH PRESENT LINE";LN:STOP
   300 LOC=LOC+2:P=PEEK(LOC)
   310 IF P<>139 THEN GOTO 330:REM 139 IS AN IF
   320 GOSUB 1210:IF P>47 AND P<58 THEN P=137:LOC=LOC-1
   330 IF P=137 OR P=141 THEN LOC=LOC+1:GOSUB1310:GOTO 380
   340 IF P<>145 THEN GOTO 380:REM 145 IS AN ON
   350 GOSUB 1210:REM FIND THE GOTO OR GOSUB
   360 LOC=LOC+1:GOSUB 1310:REM PROCESS THE LINE NUMBER
   370 IF P=44 THEN GOTO 360:REM IF A COMMA, GET NEXT LABEL
   380 GOSUB 1110
   390 IF P=58 THEN LOC=LOC+1:GOSUB 1010:GOTO 310:REM COLON
   400 IF FNADRS(LOC+1)<>0 THEN GOTO 230
   410 IF PASS=3 THEN END
   420 :
   430 REM SECOND PASS STARTS HERE
   440 LOC=L1:NLINE=NBOT
   450 IF LN=TUP THEN PASS=3:LOC=2048:PRINT:GOTO 230
   460 LN=FNADRS(LOC+2):J=-1
   470 J=J+1:IF J<CNT AND AD(J,0)<>LN THEN GOTO 470
   480 IF AD(J,0)=LN THEN AD(J,1)=NLINE
   490 POKE LOC+2,NLINE AND 255:POKELOC+3,INT(NLINE/256)
   500 PRINT LN,NL;:IF AD(J,0)=LN THEN PRINT"  TABLED";
   510 PRINT
   520 NLINE=NLINE+GAP:LOC=FNADRS(LOC)
   530 GOTO 450
   540 :
  1000 REM SUBROUTINE TO SKIP BLANKS
  1010 IF PEEK(LOC)=32 THEN LOC=LOC+1:GOTO 1010
  1020 P=PEEK(LOC):RETURN
  1030 :
  1100 REM SUBROUTINE TO FIND THE END OF STATEMENT
  1110 P=PEEK(LOC)
  1120 IF P<>0 AND P<>58 THEN LOC=LOC+1:GOTO 1010
  1130 RETURN
  1140 :
  1200 REM SUBROUTINE TO MATCH AN IF ; 167 IS THEN, 137 IS GOTO
  1210 P=PEEK(LOC)
  1220 IF P<>167 AND P<>137 AND P<>141 THEN LOC=LOC+1:GOTO 1210
  1230 IF P=167 THEN LOC=LOC+1:GOSUB 1010
  1240 RETURN
  1250 :
  1300 REM SUBROUTINE TO PROCESS A LINE NUMBER
  1310 GOSUB 1010:NUM=0:J=-1
  1320 P=PEEK(LOC):IF P>47 AND P<58 THEN NUM=NUM*10+P-48:LOC=LOC+1:GOTO 1320
  1330 GOSUB 1010;LIST NUM<BOT OR NUM>TUP THEN RETURN
  1340 J=J+1:IF AD(J,0)<>NUM AND NUM>TUP THEN RETURN
  1350 IF AD(J,0)=NUM THEN GOTO 1400
  1360 REM PASS 1: IF A NUMBER ISN'T ALREADY TABLED, TABLE IT
  1370 CNT=CNT+1:IF CNT>MAX THEN PRINT"ADDRESS ARRAY MUST BE MADE BIGGER.":STOP
  1380 AD(CNT,0)=NUM:RETURN
  1390 REM PASS 3: REPLACE THE NUMBER
  1400 IF PASS<>3 THEN RETURN
  1410 NUM=AD(J,1):IF NUM=0 THEN PRINT AD(J,0);"BAD LABEL IN LINE";LN:RETURN
  1420 LGTH=LEN(STR$(AD(J,1)))-1
  1430 DFF=LEN(STR$(AD(J,0)))-LGTH-1
  1440 IF DFF>=0 THEN GOTO 1460
  1450 PRINT"YOU MUST REPLACE";AD(J,0);"WITH";AD(J,1);"IN LINE";LN:RETURN
  1460 LOC=LOC-1:P=PEEK(LOC):IF P<48 OR P>57 THEN GOTO 1460
  1470 P=PEEK(LOC-1)
  1480 IF P>47 AND P<58 THEN LOC=LOC-1:GOTO 1470
  1490 FOR I=LGTH-1 TO 0 STEP -1
  1500 PWR=10^I:DIG=INT((NUM+0.5)/PWR):NUM=NUM-DIG*PWR
  1510 POKE LOC,DIG+48:LOC=LOC+1
  1520 NEXT
  1530 IF DFF=0 THEN GOSUB 1010:RETURN
  1540 PRINT DFF;"EXTRA SPACE(S) INSERTED IN LINE";LN
  1550 FOR I=1 TO DFF:POKE LOC,32:LOC=LOC+1:NEXT
  1560 GOSUB 1010:RETURN

d� RENUMBERING PROGRAM!n:@x� �ADRS(L)��(L)�256��(L�1)F�:c��"�RENUMBERING PROGRAM."���"WHAT ARE THE BOTTOM AND TOP LINES"���"OF THE CHUNK TO BE RUNUMBERED, THE NEW"���"STARTING NUMBER, AND THE GAP BETWEEN"	��"LINES";BOT,TUP,NBOT,GAP$	�CNT��1:MAX�50:� AD(MAX,1)@	�LOC�2048:PHASE�1:PASS�1F	�:f	�� PASSES 1 AND 3 START HERE�	�LOC�LOC�3:LN��ADRS(LOC):� PASS�3 � � 300�	�� LN�BOT � PHASE�2:LINCNT�0:L1�LOC�2�	�� PHASE�1 � LN��NBOT � �"CLASH WITH PRESENT LINE";LN:�"
� PHASE�2 � LN��TUP � LINCNT�LINCNT�1C
� PHASE��2 � LN��TUP � � 300X
PHASE�3:L2�LOC�2�
"� LN��NBOT�GAP�(LINCNT�1) � �"CLASH WITH PRESENT LINE";LN:��
,LOC�LOC�2:P��(LOC)�
6� P��139 � � 330:� 139 IS AN IF�
@� 1210:� P�47 � P�58 � P�137:LOC�LOC�1+J� P�137 � P�141 � LOC�LOC�1:�1310:� 380OT� P��145 � � 380:� 145 IS AN ONs^� 1210:� FIND THE GOTO OR GOSUB�hLOC�LOC�1:� 1310:� PROCESS THE LINE NUMBER�r� P�44 � � 360:� IF A COMMA, GET NEXT LABEL�|� 1110	�� P�58 � LOC�LOC�1:� 1010:� 310:� COLON'�� �ADRS(LOC�1)��0 � � 2308�� PASS�3 � �>�:\�� SECOND PASS STARTS HEREr�LOC�L1:NLINE�NBOT��� LN�TUP � PASS�3:LOC�2048:�:� 230��LN��ADRS(LOC�2):J��1��J�J�1:� J�CNT � AD(J,0)��LN � � 470��� AD(J,0)�LN � AD(J,1)�NLINE'
�� LOC�2,NLINE � 255:�LOC�3,�(NLINE�256)P
�� LN,NL;:� AD(J,0)�LN � �"  TABLED";V
��y
NLINE�NLINE�GAP:LOC��ADRS(LOC)�
� 450�
:�
�� SUBROUTINE TO SKIP BLANKS�
�� �(LOC)�32 � LOC�LOC�1:� 1010�
�P��(LOC):��
:L� SUBROUTINE TO FIND THE END OF STATEMENTVP��(LOC)B`� P��0 � P��58 � LOC�LOC�1:� 1010Hj�Nt:��� SUBROUTINE TO MATCH AN IF ; 167 IS THEN, 137 IS GOTO��P��(LOC)��� P��167 � P��137 � P��141 � LOC�LOC�1:� 1210��� P�167 � LOC�LOC�1:� 1010�����:� SUBROUTINE TO PROCESS A LINE NUMBER3� 1010:NUM�0:J��1q(P��(LOC):� P�47 � P�58 � NUM�NUM�10�P�48:LOC�LOC�1:� 1320�2� 1010;� NUM�BOT � NUM�TUP � ��<J�J�1:� AD(J,0)��NUM � NUM�TUP � ��F� AD(J,0)�NUM � � 1400P� PASS 1: IF A NUMBER ISN'T ALREADY TABLED, TABLE ITQZCNT�CNT�1:� CNT�MAX � �"ADDRESS ARRAY MUST BE MADE BIGGER.":�edAD(CNT,0)�NUM:��n� PASS 3: REPLACE THE NUMBER�x� PASS��3 � ���NUM�AD(J,1):� NUM�0 � � AD(J,0);"BAD LABEL IN LINE";LN:���LGTH��(�(AD(J,1)))�1�DFF��(�(AD(J,0)))�LGTH�1!�� DFF��0 � � 1460_��"YOU MUST REPLACE";AD(J,0);"WITH";AD(J,1);"IN LINE";LN:���LOC�LOC�1:P��(LOC):� P�48 � P�57 � � 1460��P��(LOC�1)��� P�47 � P�58 � LOC�LOC�1:� 1470��� I�LGTH�1 � 0 � �1�PWR�10�I:DIG��((NUM�0.5)�PWR):NUM�NUM�DIG�PWR&�� LOC,DIG�48:LOC�LOC�1,��C�� DFF�0 � � 1010:�r� DFF;"EXTRA SPACE(S) INSERTED IN LINE";LN�� I�1 � DFF:� LOC,32:LOC�LOC�1:��� 1010:�
[HD@. renumbering program@!HN@:@@HX@. .adrs(l)..(l).256..(l.1)@fH.@:@CH.@.".renumbering program."@.H.@."QQwhat are the bottom and top lines"@.H.@."of the chunk to be runumbered, the new"@.H.@."starting number, and the gap between"@FI.@."lines";bot,tup,nbot,gap@$I.@cnt..1:max.50:. ad(max,1)@@I.@loc.2048:phase.1:pass.1@fI.@:@FI.@. passes 1 and 3 start here@.I.@loc.loc.3:ln..adrs(loc):. pass.3 . . 300@.I.@. ln.bot . phase.2:lincnt.0:l1.loc.2@.I.@. phase.1 . ln..nbot . ."Qclash with present line";ln:.@"JDA. phase.2 . ln..tup . lincnt.lincnt.1@cJNA. phase..2 . ln..tup . . 300@xJXAphase.3:l2.loc.2@.J"A. ln..nbot.gap.(lincnt.1) . ."Qclash with present line";ln:.@.J,Aloc.loc.2:p..(loc)@.J6A. p..139 . . 330:. 139 is an if@.J@A. 1210:. p.47 . p.58 . p.137:loc.loc.1@+KjA. p.137 . p.141 . loc.loc.1:.1310:. 380@oKtA. p..145 . . 380:. 145 is an on@SK.A. 1210:. find the goto or gosub@.KHAloc.loc.1:. 1310:. process the line number@.KRA. p.44 . . 360:. if a comma, get next label@.K.A. 1110@IL.A. p.58 . loc.loc.1:. 1010:. 310:. colon@'L.A. .adrs(loc.1)..0 . . 230@8L.A. pass.3 . .@>L.A:@£L.A. second pass starts here@RL.Aloc.l1:nline.nbot@.L.A. ln.tup . pass.3:loc.2048:.:. 230@.L.Aln..adrs(loc.2):j..1@.L.Aj.j.1:. j.cnt . ad(j,0)..ln . . 470@.L.A. ad(j,0).ln . ad(j,1).nline@'M.A. loc.2,nline . 255:.loc.3,.(nline.256)@pM.A. ln,nl;:. ad(j,0).ln . ."  tabled";@vM.A.@YMHBnline.nline.gap:loc..adrs(loc)@.MRB. 450@.M£B:@.M.C. subroutine to skip blanks@.M.C. .(loc).32 . loc.loc.1:. 1010@.M.Cp..(loc):.@.MFD:@ONlD. subroutine to find the end of statement@£NvDp..(loc)@bN.D. p..0 . p..58 . loc.loc.1:. 1010@hNJD.@nNTD:@.N.D. subroutine to match an if ; 167 is then, 137 is goto@.N.Dp..(loc)@.N.D. p..167 . p..137 . p..141 . loc.loc.1:. 1210@.N.D. p.167 . loc.loc.1:. 1010@.N.D.@.N.D:@]OTE. subroutine to process a line number@3O.E. 1010:num.0:j..1@QO(Ep..(loc):. p.47 . p.58 . num.num.10.p.48:loc.loc.1:. 1320@.O2E. 1010;. num.bot . num.tup . .@.O<Ej.j.1:. ad(j,0)..num . num.tup . .@.OfE. ad(j,0).num . . 1400@OPpE. pass 1: if a number isn't already tabled, table it@qPzEcnt.cnt.1:. cnt.max . ."address array must be made bigger.":.@EPDEad(cnt,0).num:.@.PNE. pass 3: replace the number@.PXE. pass..3 . .@.P.Enum.ad(j,1):. num.0 . . ad(j,0);"bad label in line";ln:.@.P.Elgth..(.(ad(j,1))).1@KQ.Edff..(.(ad(j,0))).lgth.1@!Q.E. dff..0 . . 1460@.Q.E."you must replace";ad(j,0);"with";ad(j,1);"in line";ln:.@.Q.Eloc.loc.1:p..(loc):. p.48 . p.57 . . 1460@.Q.Ep..(loc.1)@.Q.E. p.47 . p.58 . loc.loc.1:. 1470@.Q.E. i.lgth.1 . 0 . .1@KR.Epwr.10.i:dig..((num.0.5).pwr):num.num.dig.pwr@&R.E. loc,dig.48:loc.loc.1@,R.E.@cR.E. dff.0 . . 1010:.@RRDF. dff;"extra space(s) inserted in line";ln@.RNF. i.1 . dff:. loc,32:loc.loc.1:.@.RXF. 1010:.@@@
00000000  1b 08 64 00 8f 20 52 45  4e 55 4d 42 45 52 49 4e  |..d.. RENUMBERIN|
00000010  47 20 50 52 4f 47 52 41  4d 00 21 08 6e 00 3a 00  |G PROGRAM.!.n.:.|
00000020  40 08 78 00 96 20 a5 41  44 52 53 28 4c 29 b2 c2  |@.x.. .ADRS(L)..|
00000030  28 4c 29 aa 32 35 36 ac  c2 28 4c aa 31 29 00 46  |(L).256..(L.1).F|
00000040  08 82 00 3a 00 63 08 8c  00 99 22 93 52 45 4e 55  |...:.c....".RENU|
00000050  4d 42 45 52 49 4e 47 20  50 52 4f 47 52 41 4d 2e  |MBERING PROGRAM.|
00000060  22 00 8e 08 96 00 99 22  11 11 57 48 41 54 20 41  |"......"..WHAT A|
00000070  52 45 20 54 48 45 20 42  4f 54 54 4f 4d 20 41 4e  |RE THE BOTTOM AN|
00000080  44 20 54 4f 50 20 4c 49  4e 45 53 22 00 bc 08 a0  |D TOP LINES"....|
00000090  00 99 22 4f 46 20 54 48  45 20 43 48 55 4e 4b 20  |.."OF THE CHUNK |
000000a0  54 4f 20 42 45 20 52 55  4e 55 4d 42 45 52 45 44  |TO BE RUNUMBERED|
000000b0  2c 20 54 48 45 20 4e 45  57 22 00 e8 08 aa 00 99  |, THE NEW"......|
000000c0  22 53 54 41 52 54 49 4e  47 20 4e 55 4d 42 45 52  |"STARTING NUMBER|
000000d0  2c 20 41 4e 44 20 54 48  45 20 47 41 50 20 42 45  |, AND THE GAP BE|
000000e0  54 57 45 45 4e 22 00 06  09 b4 00 85 22 4c 49 4e  |TWEEN"......"LIN|
000000f0  45 53 22 3b 42 4f 54 2c  54 55 50 2c 4e 42 4f 54  |ES";BOT,TUP,NBOT|
00000100  2c 47 41 50 00 24 09 be  00 43 4e 54 b2 ab 31 3a  |,GAP.$...CNT..1:|
00000110  4d 41 58 b2 35 30 3a 86  20 41 44 28 4d 41 58 2c  |MAX.50:. AD(MAX,|
00000120  31 29 00 40 09 c8 00 4c  4f 43 b2 32 30 34 38 3a  |1).@...LOC.2048:|
00000130  50 48 41 53 45 b2 31 3a  50 41 53 53 b2 31 00 46  |PHASE.1:PASS.1.F|
00000140  09 d2 00 3a 00 66 09 dc  00 8f 20 50 41 53 53 45  |...:.f.... PASSE|
00000150  53 20 31 20 41 4e 44 20  33 20 53 54 41 52 54 20  |S 1 AND 3 START |
00000160  48 45 52 45 00 93 09 e6  00 4c 4f 43 b2 4c 4f 43  |HERE.....LOC.LOC|
00000170  aa 33 3a 4c 4e b2 a5 41  44 52 53 28 4c 4f 43 29  |.3:LN..ADRS(LOC)|
00000180  3a 8b 20 50 41 53 53 b2  33 20 a7 20 89 20 33 30  |:. PASS.3 . . 30|
00000190  30 00 bc 09 f0 00 8b 20  4c 4e b2 42 4f 54 20 a7  |0...... LN.BOT .|
000001a0  20 50 48 41 53 45 b2 32  3a 4c 49 4e 43 4e 54 b2  | PHASE.2:LINCNT.|
000001b0  30 3a 4c 31 b2 4c 4f 43  ab 32 00 f8 09 fa 00 8b  |0:L1.LOC.2......|
000001c0  20 50 48 41 53 45 b2 31  20 af 20 4c 4e b1 b2 4e  | PHASE.1 . LN..N|
000001d0  42 4f 54 20 a7 20 99 22  11 43 4c 41 53 48 20 57  |BOT . .".CLASH W|
000001e0  49 54 48 20 50 52 45 53  45 4e 54 20 4c 49 4e 45  |ITH PRESENT LINE|
000001f0  22 3b 4c 4e 3a 90 00 22  0a 04 01 8b 20 50 48 41  |";LN:..".... PHA|
00000200  53 45 b2 32 20 af 20 4c  4e b3 b2 54 55 50 20 a7  |SE.2 . LN..TUP .|
00000210  20 4c 49 4e 43 4e 54 b2  4c 49 4e 43 4e 54 aa 31  | LINCNT.LINCNT.1|
00000220  00 43 0a 0e 01 8b 20 50  48 41 53 45 b3 b1 32 20  |.C.... PHASE..2 |
00000230  b0 20 4c 4e b3 b2 54 55  50 20 a7 20 89 20 33 30  |. LN..TUP . . 30|
00000240  30 00 58 0a 18 01 50 48  41 53 45 b2 33 3a 4c 32  |0.X...PHASE.3:L2|
00000250  b2 4c 4f 43 ab 32 00 99  0a 22 01 8b 20 4c 4e b3  |.LOC.2...".. LN.|
00000260  b2 4e 42 4f 54 aa 47 41  50 ac 28 4c 49 4e 43 4e  |.NBOT.GAP.(LINCN|
00000270  54 ab 31 29 20 a7 20 99  22 11 43 4c 41 53 48 20  |T.1) . .".CLASH |
00000280  57 49 54 48 20 50 52 45  53 45 4e 54 20 4c 49 4e  |WITH PRESENT LIN|
00000290  45 22 3b 4c 4e 3a 90 00  b0 0a 2c 01 4c 4f 43 b2  |E";LN:....,.LOC.|
000002a0  4c 4f 43 aa 32 3a 50 b2  c2 28 4c 4f 43 29 00 d4  |LOC.2:P..(LOC)..|
000002b0  0a 36 01 8b 20 50 b3 b1  31 33 39 20 a7 20 89 20  |.6.. P..139 . . |
000002c0  33 33 30 3a 8f 20 31 33  39 20 49 53 20 41 4e 20  |330:. 139 IS AN |
000002d0  49 46 00 ff 0a 40 01 8d  20 31 32 31 30 3a 8b 20  |IF...@.. 1210:. |
000002e0  50 b1 34 37 20 af 20 50  b3 35 38 20 a7 20 50 b2  |P.47 . P.58 . P.|
000002f0  31 33 37 3a 4c 4f 43 b2  4c 4f 43 ab 31 00 2b 0b  |137:LOC.LOC.1.+.|
00000300  4a 01 8b 20 50 b2 31 33  37 20 b0 20 50 b2 31 34  |J.. P.137 . P.14|
00000310  31 20 a7 20 4c 4f 43 b2  4c 4f 43 aa 31 3a 8d 31  |1 . LOC.LOC.1:.1|
00000320  33 31 30 3a 89 20 33 38  30 00 4f 0b 54 01 8b 20  |310:. 380.O.T.. |
00000330  50 b3 b1 31 34 35 20 a7  20 89 20 33 38 30 3a 8f  |P..145 . . 380:.|
00000340  20 31 34 35 20 49 53 20  41 4e 20 4f 4e 00 73 0b  | 145 IS AN ON.s.|
00000350  5e 01 8d 20 31 32 31 30  3a 8f 20 46 49 4e 44 20  |^.. 1210:. FIND |
00000360  54 48 45 20 47 4f 54 4f  20 4f 52 20 47 4f 53 55  |THE GOTO OR GOSU|
00000370  42 00 a2 0b 68 01 4c 4f  43 b2 4c 4f 43 aa 31 3a  |B...h.LOC.LOC.1:|
00000380  8d 20 31 33 31 30 3a 8f  20 50 52 4f 43 45 53 53  |. 1310:. PROCESS|
00000390  20 54 48 45 20 4c 49 4e  45 20 4e 55 4d 42 45 52  | THE LINE NUMBER|
000003a0  00 d2 0b 72 01 8b 20 50  b2 34 34 20 a7 20 89 20  |...r.. P.44 . . |
000003b0  33 36 30 3a 8f 20 49 46  20 41 20 43 4f 4d 4d 41  |360:. IF A COMMA|
000003c0  2c 20 47 45 54 20 4e 45  58 54 20 4c 41 42 45 4c  |, GET NEXT LABEL|
000003d0  00 dd 0b 7c 01 8d 20 31  31 31 30 00 09 0c 86 01  |...|.. 1110.....|
000003e0  8b 20 50 b2 35 38 20 a7  20 4c 4f 43 b2 4c 4f 43  |. P.58 . LOC.LOC|
000003f0  aa 31 3a 8d 20 31 30 31  30 3a 89 20 33 31 30 3a  |.1:. 1010:. 310:|
00000400  8f 20 43 4f 4c 4f 4e 00  27 0c 90 01 8b 20 a5 41  |. COLON.'.... .A|
00000410  44 52 53 28 4c 4f 43 aa  31 29 b3 b1 30 20 a7 20  |DRS(LOC.1)..0 . |
00000420  89 20 32 33 30 00 38 0c  9a 01 8b 20 50 41 53 53  |. 230.8.... PASS|
00000430  b2 33 20 a7 20 80 00 3e  0c a4 01 3a 00 5c 0c ae  |.3 . ..>...:.\..|
00000440  01 8f 20 53 45 43 4f 4e  44 20 50 41 53 53 20 53  |.. SECOND PASS S|
00000450  54 41 52 54 53 20 48 45  52 45 00 72 0c b8 01 4c  |TARTS HERE.r...L|
00000460  4f 43 b2 4c 31 3a 4e 4c  49 4e 45 b2 4e 42 4f 54  |OC.L1:NLINE.NBOT|
00000470  00 99 0c c2 01 8b 20 4c  4e b2 54 55 50 20 a7 20  |...... LN.TUP . |
00000480  50 41 53 53 b2 33 3a 4c  4f 43 b2 32 30 34 38 3a  |PASS.3:LOC.2048:|
00000490  99 3a 89 20 32 33 30 00  b2 0c cc 01 4c 4e b2 a5  |.:. 230.....LN..|
000004a0  41 44 52 53 28 4c 4f 43  aa 32 29 3a 4a b2 ab 31  |ADRS(LOC.2):J..1|
000004b0  00 da 0c d6 01 4a b2 4a  aa 31 3a 8b 20 4a b3 43  |.....J.J.1:. J.C|
000004c0  4e 54 20 af 20 41 44 28  4a 2c 30 29 b3 b1 4c 4e  |NT . AD(J,0)..LN|
000004d0  20 a7 20 89 20 34 37 30  00 fb 0c e0 01 8b 20 41  | . . 470...... A|
000004e0  44 28 4a 2c 30 29 b2 4c  4e 20 a7 20 41 44 28 4a  |D(J,0).LN . AD(J|
000004f0  2c 31 29 b2 4e 4c 49 4e  45 00 27 0d ea 01 97 20  |,1).NLINE.'.... |
00000500  4c 4f 43 aa 32 2c 4e 4c  49 4e 45 20 af 20 32 35  |LOC.2,NLINE . 25|
00000510  35 3a 97 4c 4f 43 aa 33  2c b5 28 4e 4c 49 4e 45  |5:.LOC.3,.(NLINE|
00000520  ad 32 35 36 29 00 50 0d  f4 01 99 20 4c 4e 2c 4e  |.256).P.... LN,N|
00000530  4c 3b 3a 8b 20 41 44 28  4a 2c 30 29 b2 4c 4e 20  |L;:. AD(J,0).LN |
00000540  a7 20 99 22 20 20 54 41  42 4c 45 44 22 3b 00 56  |. ."  TABLED";.V|
00000550  0d fe 01 99 00 79 0d 08  02 4e 4c 49 4e 45 b2 4e  |.....y...NLINE.N|
00000560  4c 49 4e 45 aa 47 41 50  3a 4c 4f 43 b2 a5 41 44  |LINE.GAP:LOC..AD|
00000570  52 53 28 4c 4f 43 29 00  83 0d 12 02 89 20 34 35  |RS(LOC)...... 45|
00000580  30 00 89 0d 1c 02 3a 00  a9 0d e8 03 8f 20 53 55  |0.....:...... SU|
00000590  42 52 4f 55 54 49 4e 45  20 54 4f 20 53 4b 49 50  |BROUTINE TO SKIP|
000005a0  20 42 4c 41 4e 4b 53 00  cc 0d f2 03 8b 20 c2 28  | BLANKS...... .(|
000005b0  4c 4f 43 29 b2 33 32 20  a7 20 4c 4f 43 b2 4c 4f  |LOC).32 . LOC.LO|
000005c0  43 aa 31 3a 89 20 31 30  31 30 00 db 0d fc 03 50  |C.1:. 1010.....P|
000005d0  b2 c2 28 4c 4f 43 29 3a  8e 00 e1 0d 06 04 3a 00  |..(LOC):......:.|
000005e0  0f 0e 4c 04 8f 20 53 55  42 52 4f 55 54 49 4e 45  |..L.. SUBROUTINE|
000005f0  20 54 4f 20 46 49 4e 44  20 54 48 45 20 45 4e 44  | TO FIND THE END|
00000600  20 4f 46 20 53 54 41 54  45 4d 45 4e 54 00 1c 0e  | OF STATEMENT...|
00000610  56 04 50 b2 c2 28 4c 4f  43 29 00 42 0e 60 04 8b  |V.P..(LOC).B.`..|
00000620  20 50 b3 b1 30 20 af 20  50 b3 b1 35 38 20 a7 20  | P..0 . P..58 . |
00000630  4c 4f 43 b2 4c 4f 43 aa  31 3a 89 20 31 30 31 30  |LOC.LOC.1:. 1010|
00000640  00 48 0e 6a 04 8e 00 4e  0e 74 04 3a 00 89 0e b0  |.H.j...N.t.:....|
00000650  04 8f 20 53 55 42 52 4f  55 54 49 4e 45 20 54 4f  |.. SUBROUTINE TO|
00000660  20 4d 41 54 43 48 20 41  4e 20 49 46 20 3b 20 31  | MATCH AN IF ; 1|
00000670  36 37 20 49 53 20 54 48  45 4e 2c 20 31 33 37 20  |67 IS THEN, 137 |
00000680  49 53 20 47 4f 54 4f 00  96 0e ba 04 50 b2 c2 28  |IS GOTO.....P..(|
00000690  4c 4f 43 29 00 c8 0e c4  04 8b 20 50 b3 b1 31 36  |LOC)...... P..16|
000006a0  37 20 af 20 50 b3 b1 31  33 37 20 af 20 50 b3 b1  |7 . P..137 . P..|
000006b0  31 34 31 20 a7 20 4c 4f  43 b2 4c 4f 43 aa 31 3a  |141 . LOC.LOC.1:|
000006c0  89 20 31 32 31 30 00 e7  0e ce 04 8b 20 50 b2 31  |. 1210...... P.1|
000006d0  36 37 20 a7 20 4c 4f 43  b2 4c 4f 43 aa 31 3a 8d  |67 . LOC.LOC.1:.|
000006e0  20 31 30 31 30 00 ed 0e  d8 04 8e 00 f3 0e e2 04  | 1010...........|
000006f0  3a 00 1d 0f 14 05 8f 20  53 55 42 52 4f 55 54 49  |:...... SUBROUTI|
00000700  4e 45 20 54 4f 20 50 52  4f 43 45 53 53 20 41 20  |NE TO PROCESS A |
00000710  4c 49 4e 45 20 4e 55 4d  42 45 52 00 33 0f 1e 05  |LINE NUMBER.3...|
00000720  8d 20 31 30 31 30 3a 4e  55 4d b2 30 3a 4a b2 ab  |. 1010:NUM.0:J..|
00000730  31 00 71 0f 28 05 50 b2  c2 28 4c 4f 43 29 3a 8b  |1.q.(.P..(LOC):.|
00000740  20 50 b1 34 37 20 af 20  50 b3 35 38 20 a7 20 4e  | P.47 . P.58 . N|
00000750  55 4d b2 4e 55 4d ac 31  30 aa 50 ab 34 38 3a 4c  |UM.NUM.10.P.48:L|
00000760  4f 43 b2 4c 4f 43 aa 31  3a 89 20 31 33 32 30 00  |OC.LOC.1:. 1320.|
00000770  94 0f 32 05 8d 20 31 30  31 30 3b 9b 20 4e 55 4d  |..2.. 1010;. NUM|
00000780  b3 42 4f 54 20 b0 20 4e  55 4d b1 54 55 50 20 a7  |.BOT . NUM.TUP .|
00000790  20 8e 00 bb 0f 3c 05 4a  b2 4a aa 31 3a 8b 20 41  | ....<.J.J.1:. A|
000007a0  44 28 4a 2c 30 29 b3 b1  4e 55 4d 20 af 20 4e 55  |D(J,0)..NUM . NU|
000007b0  4d b1 54 55 50 20 a7 20  8e 00 d6 0f 46 05 8b 20  |M.TUP . ....F.. |
000007c0  41 44 28 4a 2c 30 29 b2  4e 55 4d 20 a7 20 89 20  |AD(J,0).NUM . . |
000007d0  31 34 30 30 00 0f 10 50  05 8f 20 50 41 53 53 20  |1400...P.. PASS |
000007e0  31 3a 20 49 46 20 41 20  4e 55 4d 42 45 52 20 49  |1: IF A NUMBER I|
000007f0  53 4e 27 54 20 41 4c 52  45 41 44 59 20 54 41 42  |SN'T ALREADY TAB|
00000800  4c 45 44 2c 20 54 41 42  4c 45 20 49 54 00 51 10  |LED, TABLE IT.Q.|
00000810  5a 05 43 4e 54 b2 43 4e  54 aa 31 3a 8b 20 43 4e  |Z.CNT.CNT.1:. CN|
00000820  54 b1 4d 41 58 20 a7 20  99 22 41 44 44 52 45 53  |T.MAX . ."ADDRES|
00000830  53 20 41 52 52 41 59 20  4d 55 53 54 20 42 45 20  |S ARRAY MUST BE |
00000840  4d 41 44 45 20 42 49 47  47 45 52 2e 22 3a 90 00  |MADE BIGGER.":..|
00000850  65 10 64 05 41 44 28 43  4e 54 2c 30 29 b2 4e 55  |e.d.AD(CNT,0).NU|
00000860  4d 3a 8e 00 86 10 6e 05  8f 20 50 41 53 53 20 33  |M:....n.. PASS 3|
00000870  3a 20 52 45 50 4c 41 43  45 20 54 48 45 20 4e 55  |: REPLACE THE NU|
00000880  4d 42 45 52 00 98 10 78  05 8b 20 50 41 53 53 b3  |MBER...x.. PASS.|
00000890  b1 33 20 a7 20 8e 00 d5  10 82 05 4e 55 4d b2 41  |.3 . ......NUM.A|
000008a0  44 28 4a 2c 31 29 3a 8b  20 4e 55 4d b2 30 20 a7  |D(J,1):. NUM.0 .|
000008b0  20 99 20 41 44 28 4a 2c  30 29 3b 22 42 41 44 20  | . AD(J,0);"BAD |
000008c0  4c 41 42 45 4c 20 49 4e  20 4c 49 4e 45 22 3b 4c  |LABEL IN LINE";L|
000008d0  4e 3a 8e 00 ee 10 8c 05  4c 47 54 48 b2 c3 28 c4  |N:......LGTH..(.|
000008e0  28 41 44 28 4a 2c 31 29  29 29 ab 31 00 0b 11 96  |(AD(J,1))).1....|
000008f0  05 44 46 46 b2 c3 28 c4  28 41 44 28 4a 2c 30 29  |.DFF..(.(AD(J,0)|
00000900  29 29 ab 4c 47 54 48 ab  31 00 21 11 a0 05 8b 20  |)).LGTH.1.!.... |
00000910  44 46 46 b1 b2 30 20 a7  20 89 20 31 34 36 30 00  |DFF..0 . . 1460.|
00000920  5f 11 aa 05 99 22 59 4f  55 20 4d 55 53 54 20 52  |_...."YOU MUST R|
00000930  45 50 4c 41 43 45 22 3b  41 44 28 4a 2c 30 29 3b  |EPLACE";AD(J,0);|
00000940  22 57 49 54 48 22 3b 41  44 28 4a 2c 31 29 3b 22  |"WITH";AD(J,1);"|
00000950  49 4e 20 4c 49 4e 45 22  3b 4c 4e 3a 8e 00 8d 11  |IN LINE";LN:....|
00000960  b4 05 4c 4f 43 b2 4c 4f  43 ab 31 3a 50 b2 c2 28  |..LOC.LOC.1:P..(|
00000970  4c 4f 43 29 3a 8b 20 50  b3 34 38 20 b0 20 50 b1  |LOC):. P.48 . P.|
00000980  35 37 20 a7 20 89 20 31  34 36 30 00 9c 11 be 05  |57 . . 1460.....|
00000990  50 b2 c2 28 4c 4f 43 ab  31 29 00 c1 11 c8 05 8b  |P..(LOC.1)......|
000009a0  20 50 b1 34 37 20 af 20  50 b3 35 38 20 a7 20 4c  | P.47 . P.58 . L|
000009b0  4f 43 b2 4c 4f 43 ab 31  3a 89 20 31 34 37 30 00  |OC.LOC.1:. 1470.|
000009c0  d9 11 d2 05 81 20 49 b2  4c 47 54 48 ab 31 20 a4  |..... I.LGTH.1 .|
000009d0  20 30 20 a9 20 ab 31 00  0b 12 dc 05 50 57 52 b2  | 0 . .1.....PWR.|
000009e0  31 30 ae 49 3a 44 49 47  b2 b5 28 28 4e 55 4d aa  |10.I:DIG..((NUM.|
000009f0  30 2e 35 29 ad 50 57 52  29 3a 4e 55 4d b2 4e 55  |0.5).PWR):NUM.NU|
00000a00  4d ab 44 49 47 ac 50 57  52 00 26 12 e6 05 97 20  |M.DIG.PWR.&.... |
00000a10  4c 4f 43 2c 44 49 47 aa  34 38 3a 4c 4f 43 b2 4c  |LOC,DIG.48:LOC.L|
00000a20  4f 43 aa 31 00 2c 12 f0  05 82 00 43 12 fa 05 8b  |OC.1.,.....C....|
00000a30  20 44 46 46 b2 30 20 a7  20 8d 20 31 30 31 30 3a  | DFF.0 . . 1010:|
00000a40  8e 00 72 12 04 06 99 20  44 46 46 3b 22 45 58 54  |..r.... DFF;"EXT|
00000a50  52 41 20 53 50 41 43 45  28 53 29 20 49 4e 53 45  |RA SPACE(S) INSE|
00000a60  52 54 45 44 20 49 4e 20  4c 49 4e 45 22 3b 4c 4e  |RTED IN LINE";LN|
00000a70  00 97 12 0e 06 81 20 49  b2 31 20 a4 20 44 46 46  |...... I.1 . DFF|
00000a80  3a 97 20 4c 4f 43 2c 33  32 3a 4c 4f 43 b2 4c 4f  |:. LOC,32:LOC.LO|
00000a90  43 aa 31 3a 82 00 a4 12  18 06 8d 20 31 30 31 30  |C.1:....... 1010|
00000aa0  3a 8e 00 00 00                                    |:....|
00000aa5