Classic Computer Magazine Archive PROGRAM LISTING: 84-07/RENUMBER.LST


31000 REM RENUMBERING UTILITY
31002 REM BY JERRY WHITE
31004 REM AND FERNANDO HERRERA
31006 REM ANTIC MAGAZINE
31010 GOTO 31560
31020 FOR I=0 TO 5:B(I)=PEEK(A+I):NEXT I:IF B(0)=0 THEN D=0:GOTO 31050
31030 FOR I=1 TO 5:C$(I*2-1,I*2-1)=STR$(INT(B(I)/16)):C$(I*2,I*2)=STR$(B(I)-INT(B(I)/16)*16):NEXT I
31040 D=INT(VAL(C$)/INT(100^(68-B(0)))):REM IF USING NON-XL, CHANGE ABOVE TO 68-B(0))+1.0E-03)).
31050 H=INT(D/256):L=D-H*256:FOR I=1 TO J*2 STEP 2
31060 IF L=ASC(A$(I,I)) AND H=ASC(A$(I+1,I+1)) THEN L=ASC(B$(I,I)):H=ASC(B$(I+1,I+1)):POP :GOTO 31080
31070 NEXT I:GOSUB 31710:GOSUB 31540:? "L.";D;" NOT FOUND":RETURN 
31080 D=L+H*256:IF D=0 THEN 31120
31090 C$="0000000000":L=LEN(STR$(D)):IF L/2=INT(L/2) THEN C$(1,L)=STR$(D):GOTO 31110
31100 C$(2,L+1)=STR$(D)
31110 FOR I=1 TO 9 STEP 2:K=VAL(C$(I,I+1)):B(INT(I/2+1))=INT(K/10)*16+K-INT(K/10)*10:NEXT I:B(0)=63+INT((L+1)/2)
31120 FOR I=0 TO 5:POKE (A+I),B(I):NEXT I:RETURN 
31130 FOR I=1 TO 128:IF V$(I,I)=CHR$(X) THEN POP :RETURN 
31140 NEXT I:V$(X-127,X-127)=CHR$(X):Y=R:L=0
31150 L=L+1:IF L>J THEN GOSUB 31710:GOSUB 31540:? "VAR. NOT DEFINED":RETURN 
31160 I=Y+3
31170 IF (PEEK(I+1)=54 OR PEEK(I+1)=6) AND PEEK(I+2)=X AND PEEK(I+4)=14 THEN 31200
31180 IF PEEK(Y+2)<>PEEK(I) THEN I=Y+PEEK(I):GOTO 31170
31190 Y=Y+PEEK(Y+2):GOTO 31150
31200 IF PEEK(I+11)=20 OR PEEK(I+11)=22 THEN A=I+5:GOSUB 31020:RETURN 
31210 GOTO 31180
31220 IF M<>Z THEN RETURN 
31230 A=P+M-7:GOSUB 31020:RETURN 
31240 T=S+3
31250 IF PEEK(T)=23 OR PEEK(T)=24 THEN T=T+1:GOTO 31270
31260 T=T+1:GOTO 31250
31270 IF PEEK(T)=14 AND (PEEK(T+7)=18 OR PEEK(T+7)=22 OR PEEK(T+7)=20) THEN GOTO 31330
31280 IF PEEK(T)>127 AND (PEEK(T+1)=18 OR PEEK(T+1)=22 OR PEEK(T+1)=20) THEN 31350
31290 GOSUB 31710:GOSUB 31540:? "LOG. OR ARIT. EXP"
31300 T=T+1:IF PEEK(T)=18 THEN T=T+1:GOTO 31270
31310 IF PEEK(T)=22 OR PEEK(T)=20 THEN RETURN 
31320 GOTO 31300
31330 A=T+1:GOSUB 31020:IF PEEK(T+7)=18 THEN T=T+8:GOTO 31270
31340 RETURN 
31350 X=PEEK(T):GOSUB 31130:IF PEEK(T+1)=18 THEN T=T+2:GOTO 31270
31360 RETURN 
31370 T=S+2:IF PEEK(T)=22 OR PEEK(T)=20 THEN RETURN 
31380 IF PEEK(T)=15 AND (PEEK(T+PEEK(T+1)+2)=22 OR PEEK(T+PEEK(T+1)+2)=20) THEN RETURN 
31390 IF PEEK(T)=15 THEN T=T+PEEK(T+1)+3
31400 GOSUB 31270:RETURN 
31410 Q=Q+1:IF Q>J THEN 31500
31420 M=PEEK(P+2):S=P+3
31430 Z=PEEK(S):N=PEEK(S+1)
31440 IF N=10 OR N=11 OR N=12 OR N=13 THEN T=S+2:GOSUB 31270:GOTO 31480
31450 IF N=7 THEN GOSUB 31220:GOTO 31480
31460 IF N=30 THEN GOSUB 31240:GOTO 31480
31470 IF N=4 OR N=35 THEN GOSUB 31370
31480 IF M<>Z THEN S=P+Z:GOTO 31430
31490 P=P+M:GOTO 31410
31500 GOSUB 31690:IF PEEK(84)<5 THEN POKE 764,43:GOTO 31520
31510 ? "�����Š���Π����Š����Ӡ�Ϡ��ؠ���Ҡ  ������͠��Ġ���Π���Š�٧��Ϡ���Ԡ�Ԡ"
31520 IF PEEK(764)<>43 THEN 31520
31530 ? :? "������נ��Ġ���Ԡ���Ҡ�����͠":? "������Š����Ǡ�Ԡ":POKE 764,255:END 
31540 H=ASC(A$(Q*2,Q*2)):L=ASC(A$(Q*2-1,Q*2-1)):K=ASC(B$(Q*2,Q*2))
31550 I=ASC(B$(Q*2-1,Q*2-1)):? L+H*256,I+K*256,:RETURN 
31560 CLR :TRAP 31560:? CHR$(125):? :? "NEW STARTING LINE";
31570 INPUT T:IF T<0 OR T>30999 OR T<>INT(T) THEN 31560
31580 ? "LINE INCREMENT";:INPUT S:IF S<1 OR S<>INT(S) THEN 31560
31590 TRAP 31700:GOSUB 31680:R=PEEK(136)+PEEK(137)*256:P=R:J=0:Q=J
31600 D=PEEK(P)+PEEK(P+1)*256:IF D=31000 THEN GOTO 31620
31610 J=J+1:P=P+PEEK(P+2):GOTO 31600
31620 IF T+S*J>30999 THEN GOSUB 31690:? "INCREMENT TOO BIG"
31630 IF PEEK(540) THEN 31630
31640 DIM C$(10),B(6),V$(128),A$(J*2),B$(J*2):FOR I=1 TO 128:V$(I,I)=CHR$(0):NEXT I:P=R:FOR I=1 TO J*2 STEP 2
31650 H=INT(T/256):L=T-H*256:A$(I)=CHR$(PEEK(P)):POKE P,L:B$(I)=CHR$(L):A$(I+1)=CHR$(PEEK(P+1)):POKE P+1,H
31660 B$(I+1)=CHR$(H):T=T+S:P=P+PEEK(P+2):NEXT I:? CHR$(125);"����à����������Ǡ�����͠"
31670 ? "OLD LINE","NEW LINE","NOTES":? "--------","--------","-----":P=R:GOTO 31410
31680 POKE 559,0:RETURN 
31690 POKE 559,34:RETURN 
31700 GOSUB 31690:? "ERROR ";PEEK(195);" LINE # ";PEEK(186)+PEEK(187)*256:END 
31710 IF PEEK(84)<20 THEN RETURN 
31720 GOSUB 31690:? "�����Š���Π��Š����Š����Ӡ":? "THEN TYPE 'G'TO CONTINUE":POKE 764,255
31730 IF PEEK(764)=61 THEN ? CHR$(125):GOSUB 31680:RETURN 
31740 GOTO 31730

Back to previous page