2 ! ********************************************************************** 3 ! Program RAMCOPY.BAS Utg}va 1.0 1983-10-05 4 ! av Bo Kullmar 5 ! Ins{nd av Bo Kullmar, 1789 6 ! F|r ABC806, kan k|ras p} ABC800 om med RAM-minne om man tar bort ATTRIBUTE 8 ! Testad p} ABC806 9 ! Programmet kan anv{ndas p} all maskiner som har en RAM-floppy. 10 ! ********************************************************************** 60 INTEGER : EXTEND : ATTRIBUTE 3 300 DIM Block$=253 500 DATA DISKSTAT.BAC,FILSTAT.BAC,L[SDISK.BAC, 600 DATA ASM.BAC,ASM2.BAC,ASMCON.NYA, 700 DATA DISASEM.BAC,FILDIS.BAC,OPCODE1.TXT,OPCODE2.TXT, 800 DATA ABCTERM.BAC,ABCFIL.BAC,SETUP.BAC,PARV24.BAC,PARPR.BAC, 900 DATA KOMTERM.BAC,TVKOM.BAC,TVKMAIN.BAC,TVSUB800.ABS,KOMFIL.BAC,NAME.BAC, 1000 ! Huvudprogram 1020 ON FNMeny GOTO 1030,1040,1050,1060 1030 Z=FNKommando : Antal=FNReadname : Z=FNCopylib : GOTO 1060 1040 Z=FNCopy('RAM:','RAM:','') : GOTO 1060 1050 Z=FNCopy('','DR:','RAM:') : GOTO 1060 1060 ; : ; : OUT 53,3 1070 END 2000 DEF FNMeny 2010 ; CHR$(12);DBLE YEL 'ABC806 RAMCOPY' : ; : ; BLU STRING$(80,61) : ; : ; 2020 ; CYA 'Meny:' : ; 2030 ; GRN 'Programmet kopierar filer med samma filnamn fr}n RAM: till disk' 2040 ; GRN 'och tv{rt om.' : ; 2050 ; YEL '1 Kopiera fr}n kommandofil' 2060 ; YEL '2 Kopiera DR --> RAM' 2070 ; YEL '3 Kopiera RAM --> DR' 2080 ; YEL '4 Avsluta' : ; : ; 2090 ; CYA 'V{lj rutin (1-4) '; : GET Svar$ : ; Svar$; 2100 IF INSTR(1,'1234',Svar$)=0 THEN ; TAB(30) RED 'Fel svar!' : GOTO 2090 2110 RETURN VAL(Svar$) 2120 FNEND 3000 DEF FNReadname LOCAL I 3010 DIM Filnamn$(50)=12 3020 READ Filnamn$(I) 3030 WHILE Filnamn$(I)<>'' 3040 I=I+1 3050 READ Filnamn$(I) 3060 WEND 3070 RETURN I-1 3080 FNEND 3090 DEF FNKommando LOCAL Svar$=1,Svar2$=1,Svar2 3100 ; CHR$(12);DBLE YEL 'ABC806 RAMCOPY' : ; : ; BLU STRING$(80,61) : ; : ; 3110 ; YEL 'Kopiering fr}n kommandofiler:' : ; 3120 ; YEL 'F|ljande kommandofiler finns:' : ; 3130 ; CYA '1 DISKSTAT, FILSTAT och L[SDISK' 3140 ; CYA '2 Assemblator' 3150 ; CYA '3 Dissassemblator med fildissamblator' 3160 ; CYA '4 ABCTERM med tillh|rande program' 3170 ; CYA '5 KOMTERM med tillh|rande program' 3180 ; : ; YEL 'V{lj (1-5) '; : GET Svar2$ 3190 IF INSTR(1,'12345',Svar2$)=0 THEN ; RED 'Felaktigt val!' : GOTO 3120 3200 ; YEL Svar2$ : ; : Svar2=VAL(Svar2$) 3210 ON Svar2 RESTORE 500,600,700,800,900 : RETURN -1 3220 FNEND 3230 DEF FNCopylib LOCAL Block$=253,I 3240 ON ERROR GOTO 3360 3250 WHILE I<=Antal 3260 OPEN Filnamn$(I) AS FILE 1 3270 PREPARE 'RAM:'+Filnamn$(I) AS FILE 2 3280 ; YEL Filnamn$(I),'Kopieras nu till RAM:'; 3290 WHILE -1 3300 GET #1,Block$ COUNT 253 3310 PUT #2,Block$ 3320 WEND 3330 I=I+1 3340 WEND 3350 RETURN 0 3360 IF ERRCODE=21 ; RED Filnamn$(I),'Finns ej p} skivorna!' : RESUME 3330 3370 IF ERRCODE=38 THEN ; CUR(PEEK(65363),14) YEL '[r kopierad till RAM:' : RESUME 3330 3380 ; RED 'Fel nr' ERRCODE : RESUME 3350 3390 FNEND 4000 DEF FNCopy(Utenhet$,Utenhet2$,Inenhet$) LOCAL Block$=253 4010 ; CHR$(12);DBLE YEL 'ABC806 RAMCOPY' : ; : ; BLU STRING$(80,61) : ; : ; 4020 ; YEL 'Kopiering ' Inenhet$ ' --> ' Utenhet2$ 4030 ; : ; YEL; : INPUT 'Ange filnamnet! 'Infil$ : Utfil$=Infil$ 4040 OUT 34,8 : ; : ; 4050 ON ERROR GOTO 4130 4060 OPEN Inenhet$+Infil$ AS FILE 1 4070 PREPARE Utenhet$+Utfil$ AS FILE 2 4080 ; YEL Infil$,'Kopieras nu till ' Utenhet2$; 4090 WHILE -1 4100 GET #1,Block$ COUNT 253 4110 PUT #2,Block$ 4120 WEND 4130 IF ERRCODE=21 ; RED 'Hittar ej filen!' : RESUME 4030 4140 IF ERRCODE=38 THEN ; CUR(PEEK(65363),14) YEL '[r kopierad till ' Utenhet2$ : RESUME 4160 4150 ; RED 'Felkod nr' ERRCODE 4160 RETURN 0 4170 FNEND