1 REM Ins{nd av Berndt Birgersson <237> 1984-10-31 20.44.49 10 ! BASIC1T2 (c) John Stagg 841026 V02: END-fel r{ttad 20 EXTEND : INTEGER 30 ; CHR$(12);' BASIC1T2: Omvandling av BASIC1 (ABC80) till motsvarande BASIC2 (ABC802) ' : ; : ; 40 DIM A$=162,Rad$=6 50 ; 'Fullst{ndiga filnamnet av BASIC1-filen (i textformat): '; : INPUT F$ : IF F$='' THEN 280 60 ; 'Fullst{ndiga namnet f|r den nya filen : '; : INPUT F1$ : ; 70 ; '\nskas justering av l{ngden p} NUM$-str{ngarna '; : INPUT T$ : P99=(T$='j' OR T$='J') 80 OPEN F$ AS FILE 1 : PREPARE F1$ AS FILE 2 90 ON ERROR GOTO 150 100 FOR N=0 TO 10000 110 INPUT LINE #1,A$ 120 P=INSTR(1,A$,' ') : Rad$=LEFT$(A$,P-1) 130 IF FNEjbasic2 THEN T=-1 140 NEXT N 150 IF NOT (ERRCODE=34) THEN ; "Error " ERRCODE : CLOSE : STOP ELSE RESUME 160 160 ON ERROR GOTO 250 170 IF T THEN ; CHR$(7); : CLOSE : GOTO 280 180 POSIT #1,0 190 FOR M=0 TO N-1 200 INPUT LINE #1,A$ 210 P=INSTR(1,A$,' ') : Rad$=LEFT$(A$,P-1) 220 IF FNBasic1 THEN ; 'Rad ' Rad$ ' har {ndrats' 230 ; #2,A$; 240 NEXT M : GOTO 270 250 IF ERRCODE=137 THEN ; 'Rad ' Rad$ ' blir f|r l}ng och har inte {ndrats fullst{ndigt' : RESUME 230 260 ; 'Error ' ERRCODE : CLOSE : STOP 270 CLOSE : ; 'Klart !'; 280 END 290 DEF FNBasic1 300 Z=0 310 P1=INSTR(1,A$,' ASFILE ') 320 IF P1>0 THEN MID$(A$,P1,8)='AS FILE ' : Z=-1 : GOTO 310 330 P2=INSTR(1,A$,'ONERRORGOTO ') 340 IF P2>0 THEN A$=LEFT$(A$,P2+1)+' ERROR GOTO '+RIGHT$(A$,P2+12) : Z=-1 : GOTO 330 350 P3=INSTR(1,A$,'ON ERROR GOTO 0') 360 IF P3 THEN A$=LEFT$(A$,P3+12)+' '+RIGHT$(A$,P3+15) : Z=-1 : GOTO 350 370 P5=INSTR(1,A$,'INPUTLINE ') 380 IF P5>0 THEN A$=LEFT$(A$,P5+4)+' '+RIGHT$(A$,P5+5) : Z=-1 : GOTO 370 390 P6=INSTR(1,A$,'CLRDOT ') 400 IF P6 THEN A$=LEFT$(A$,P6+2)+' '+RIGHT$(A$,P6+3) : Z=-1 : GOTO 390 410 P7=INSTR(1,A$,'SETDOT ') 420 IF P7 THEN A$=LEFT$(A$,P7+2)+' '+RIGHT$(A$,P7+3) : Z=-1 : GOTO 410 430 P8=INSTR(1+P8,A$,'TAB(') 440 IF P8 THEN A$=LEFT$(A$,P8+3)+'1+'+RIGHT$(A$,P8+4) : Z=-1 : P8=P8+5 : GOTO 430 450 P9=INSTR(1+P9,A$,'NUM$(') 460 IF P9 AND P99 THEN A$=LEFT$(A$,P9-1)+'" "+'+RIGHT$(A$,P9) : Z=-1 : P9=P9+7 : GOTO 450 470 IF P9 THEN ; 'Kolla l{ngden p} NUM$ i rad ' Rad$; : IF P99 THEN ; ' (justerad)' ELSE ; 480 P10=INSTR(1+P10,A$,'DEFFN') 490 IF P10 THEN A$=LEFT$(A$,P10+2)+' '+RIGHT$(A$,P10+3) : Z=-1 : GOTO 480 500 P13=INSTR(1+P13,A$,' END ') AND (LEN(A$)>13) 510 IF P13 THEN ; 'END ej ensam p} rad ' Rad$ 520 RETURN Z 530 FNEND 540 DEF FNEjbasic2 550 P12=INSTR(1,A$,"CHAIN ''")+INSTR(1,A$,'CHAIN ""') 560 IF P12 THEN ; 'Odefinierat CHAIN i rad ' Rad$ : RETURN -1 ELSE RETURN 0 570 FNEND