3 ! ********************************************************************** 4 ! Program ERRINI.BAC Utg}va 1.3 1986-05-13 5 ! av Bo Kullmar 6 ! Ins{nd av Kristoffer Eriksson 7 ! F|r ABC800M ABC800C ABC806, alla DOS? 8 ! Testad p} ABC806, LUX-NET & UFD-DOS 9 ! 10 ! Ver 1.0 1986-04-26 Av <1789> Bo Kullmar, UFD-DOS 11 ! Ver 1.1 1986-04-29 <5357> Kristoffer Eriksson, Anpassning f|r LUX-NET 12 ! Ver 1.2 1986-05-01 <5357> T}l avsaknad av BASICINI.SYS el RAM: 13 ! Ver 1.3 1986-05-13 <5357> Rad 1340: 65453 -> 65452 20 ! 21 ! Programmet kopierar BASICINI.SYS till RAM: och initierar det d{r. Efter 22 ! id` av Kristoffer Eriksson i MSG-inl{gg 3473, m|te ABC800. 23 ! OBS: Om programmet inte lyckas hitta v{rdet f|r 65452 f|r din maskin, 24 ! kan du kolla sj{lv vad det ska vara med PEEK2(65452) n{r du har BASICINI 25 ! initierad, och fylla i det p} rad 1310. 26 ! ********************************************************************** 30 INTEGER : EXTEND 31 ! 1000 ! Program som ska chainas efter}t: 1010 L{nk$='' 1020 ! Kopiering av BASICINI till ramfloppy, 1=p}, 0=enbart initiering: 1030 Kopiera=1 1040 ! 1050 Basicini$='BASICINI.SYS' 1060 Luxnet=PEEK(24678)=195 AND (PEEK(24688) AND 254)=8 1070 Errdata=65029 : IF Luxnet THEN Errdata=65040 1080 DIM Rec$=0 : POKE VAROOT(Rec$),16,0,SWAP%(Errdata+4),Errdata+4,16,0 1090 DIM Dosprom$=0 : POKE VAROOT(Dosprom$),0,16,0,96,0,16 1100 ! 1110 IF Kopiera THEN IF FNCopy=21 THEN Kopiera=0 1120 ! 1130 ! Kopiera indextabellen fr}n BASICINI till minnet: 1140 IF Kopiera THEN Dev$='RAM:' ELSE Dev$='' 1150 ON ERROR GOTO 1360 1160 OPEN Dev$+Basicini$ AS FILE 1 1170 POSIT #1,3 1180 GET #1,Basicinirec$ COUNT 16 1190 ON ERROR GOTO 1200 ! 1210 Lft=FNLft(1)+64832 1220 POKE Errdata,PEEK(Lft+0),PEEK(Lft+1) AND 31 ! Fysiskt filnr, Disk select 1230 Rec$=Basicinirec$ 1240 CLOSE 1250 ! 1260 ! Finn om m|jligt rutinen som h{mtar feltexten: 1270 IF Luxnet=0 THEN Errfetch$=CHR$(213,245,33,9,254,190,35,40,2,48,250,125) 1280 IF Luxnet THEN Errfetch$=CHR$(213,245,30,0,33,20,254,190,28,35,48,251) 1290 Errfetch=INSTR(1,Dosprom$,Errfetch$) 1300 IF Errfetch<>0 THEN Errfetch=Errfetch+VARPTR(Dosprom$)-1 1310 IF Errfetch=0 THEN Errfetch=0 ! Fyll sj{lv i din maskins adress 1320 ! 1330 ! On|digt g|ra en os{ker initiering av 65452 om den redan {r initierad: 1340 IF PEEK2(65452)=0 THEN POKE 65452,Errfetch,SWAP%(Errfetch) 1350 ! 1360 ON ERROR GOTO 1370 : CHAIN L{nk$ 1370 END 1380 ! 1390 DEF FNCopy LOCAL Rec$=253 1400 ON ERROR GOTO 1470 1410 OPEN Basicini$ AS FILE 1 1420 PREPARE 'RAM:'+Basicini$ AS FILE 2 1430 WHILE -1 1440 GET #1,Rec$ COUNT 253 1450 PUT #2,Rec$ 1460 WEND 1470 IF ERRCODE=38 CLOSE : RETURN 0 1480 IF ERRCODE=21 THEN CLOSE : RETURN 21 1490 ; 'Fel nr:' ERRCODE : STOP 1500 FNEND 1510 ! 1520 DEF FNLft(Filnr) LOCAL Lu 1530 Lu=PEEK2(65356) 1540 WHILE Lu<>0 1550 IF PEEK(Lu+2)=Filnr THEN RETURN PEEK(Lu+21) 1560 Lu=PEEK2(Lu) 1570 WEND 1580 RETURN 0 1590 FNEND