1 REM +-------------------------------+ 2 REM ! Program .... ASTART ! 3 REM ! Utg}va 1.0 1983-04-12 ! 4 REM ! av (c) David Aronson <183> ! 7 REM ! Minne 16 Kbytes f|r flexskiva ! 8 REM ! Ins{nt av David Aronson <183> ! 9 REM +-------------------------------+ 10 REM Detta program ordnar autostart 11 REM p} senare versioner av DOS. 12 REM Finns bl.a i de senare flexskive- 13 REM enheterna fr}n Scandia Metric, 14 REM och Sattco. F|r 5 1/4" har DOSet 15 REM checksumman 18233D. 16 REM 17 FOR I%=24576% TO 28671% : C%=C%+PEEK(I%) : NEXT I% : IF C%<>18233% ; 'Fel checksumma p} DOS!' : STOP 18 REM 20 Q$='J{rva FM 91.1!' : Q%=PEEK(65065%)+256%*PEEK(65066%)+6% 30 DEFFNL%(T%,S%)=CALL(24678%,SWAP%(T%)+32%*S%)*0%+PEEK(-747%) : REM L{s sektor 40 DEFFNS%(T%,S%)=CALL(24675%,SWAP%(T%)+32%*S%)*0%+PEEK(-747%) : REM Skriv sektor 50 B%=62720% 60 ; CHR$(12%)' ASTART f|r DOS med checksumma 18233D' 70 ; CHR$(23%)' ######'CHR$(1%)TAB(21%)STRING$(17%,42%) 80 ; 'David Aronson, Scandia Metric AB' : ; '(c) 1983-04-12.' 90 ; 100 ; 'Detta program ordnar s} att en valfri' : ; 'fil automatiskt startas upp vid RESET.' 110 ; : ; 'Det kan vara en ABS-fil eller en basic-' : ; 'fil (BAC/BAS-format).' 120 ; 130 ; : ; 'Vilken drive.....'; : ONERRORGOTO 140 : INPUT D% : GOTO 150 140 END 150 ONERRORGOTO 0 : POKE -767%,D% : IF FNL%(0%,6%) 420 160 N%=PEEK(B%+255%) : ; 170 IF N%=0% THEN ; 'Autostartfil=ingen' : GOTO 230 180 N1%=N%/16% : N0%=N% AND 15% 190 IF FNL%(2%,N0%) 420 200 A%=N1%*16%+4% 210 POKE Q%,A%+B%,SWAP%(A%+B%),11%,0% 220 ; 'Autostartfil {r: 'LEFT$(Q$,8%)+'.'+RIGHT$(Q$,9%) 230 ; : ; 'Vill du {ndra det, (J/N) ?'; 240 GET A$ : A$=CHR$(ASC(A$) AND 95%) : IF A$='N' THEN ; A$; : GOTO 140 ELSE IF A$<>'J' 240 : ; A$; 250 ; CHR$(13%)'Ge nytt namn (RETURN=inget) '; 260 INPUT N$ : IF N$='' N%=0% : GOTO 380 270 N%=INSTR(1%,N$,'.') : IF N%=0% N1$='BAC' : N%=LEN(N$)+1% ELSE N1$=RIGHT$(N$,N%+1%) 280 FOR A%=1% TO LEN(N$) : A0%=ASC(RIGHT$(N$,A%)) : IF A0%>95% AND A0%<127% THEN A0%=A0%-32% 290 N$=LEFT$(N$,A%-1%)+CHR$(A0%)+RIGHT$(N$,A%+1%) : NEXT A% 300 N0$=LEFT$(N$,N%-1%) 310 N0$=N0$+SPACE$(8%-LEN(N0$)) : N1$=N1$+SPACE$(3%-LEN(N1$)) 320 FOR S%=0% TO 7% 330 IF FNL%(2%,S%) 420 340 FOR A%=16% TO 240% 350 POKE Q%,B%+A%+4%,SWAP%(B%+A%+4%),11%,0% 360 IF LEFT$(Q$,8%)=N0$ AND RIGHT$(Q$,9%)=N1$ N1%=A%/16% : N0%=S% : N%=N0%+N1%*16% : GOTO 380 370 NEXT A% : NEXT S% : ; 'ERR 21' : STOP 380 IF FNL%(0%,6%) 420 390 POKE B%+255%,N% 400 IF FNS%(0%,6%) 420 410 ; : ; 'OBS! Skivan m}ste sitta i drive 0 vid' : ; 'RESET! Uppstart sker ej annars!' : GOTO 140 420 ; : RESTORE : FOR A%=1% TO 4% : READ N%,T$ : IF (PEEK(-747%) AND N%) ; CHR$(7%)T$ 430 NEXT A% : STOP 440 DATA 8, 'Checksummafel' 450 DATA 16, 'D}lig disk' 460 DATA 64, 'Skivan skrivskyddad' 470 DATA 128,'Luckan |ppen'