1.
Hilfsprogramme für den Daten-Transfer
MAKEDISK ist ein BASIC-Programm,
das auch als vollständiges Listing vorliegt. Mit MAKEDISK kann eine
D64-Datei wie z.B. der Download beispiele.d64
auf eine Original-C64-Diskette übertragen werden. Voraussetzung für MAKEDISK
ist die SD2IEC-Steckkarte für den C64, sowie eine Floppy mindestens der Version
1541-I. Am besten ist es, die SD2IEC-Steckkarte auf Laufwerk-Nummer 9 und die
1541 auf die Laufwerknummer 8 einzustellen. Manchmal ist dies bei sehr alten
1541-Floppys der ersten Stunde auch die einzige Option, zumindest ohne
tiefgreifende Elektrotechnik-Kenntnisse und Lötpraxis. MAKEDISK ist ein
lauffähiges C64-Programm und kann direkt nach dem Download in das
Stammverzeichnis einer Mikro-SD-Karte kopiert werden. Diese Mikro-SD-Karte wird
anschließend in den entsprechenden Slot der SD2IEC-Platine eingesteckt. MAKEDISK
wird anschließend ganz normal mit LOAD geladen und anschließend
mit RUN ausgeführt.
MAKED64 ist ein
BASIC-Programm, das auch als vollständiges Listing vorliegt. Mit MAKED64 kann
eine D64-Datei aus einer Original-C64-Diskette erzeugt werden, um diese z.B. in
einem C64-Emulator zu verwenden. Voraussetzung für MAKED64 ist die
SD2IEC-Steckkarte für den C64, sowie eine Floppy mindestens der Version 1541-I.
Am besten ist es, die SD2IEC-Steckkarte auf Laufwerk-Nummer 9 und die 1541 auf
die Laufwerknummer 8 einzustellen. Manchmal ist dies bei sehr alten
1541-Floppys der ersten Stunde auch die einzige Option, zumindest ohne
tiefgreifende Elektrotechnik-Kenntnisse und Lötpraxis. MAKED64 ist ein
lauffähiges C64-Programm und kann direkt nach dem Download in das
Stammverzeichnis einer Mikro-SD-Karte kopiert werden. Diese Mikro-SD-Karte wird
anschließend in den entsprechenden Slot der SD2IEC-Platine eingesteckt. MAKED64
wird anschließend ganz normal mit LOAD geladen und anschließend
mit RUN ausgeführt.
SDFCOPY ist ein BASIC-Programm,
das auch als vollständiges Listing vorliegt. Mit SDFCOPY können einzelne
Dateien von der SD-Karte in der SD2IEC-Steckkarte auf eine C64-Diskette kopiert
werden. Dazu wird das Inhaltsverzeichnis des Quell-Laufwerks angezeigt.
Anschließend wird abgefragt, ob Sie die angezeigte Datei kopieren wollen.
Voraussetzung für SDFCOPY ist die SD2IEC-Steckkarte für den C64, sowie
eine Floppy der Version 1571 (bei der 1541 kann es aufgrund von Firmware-Bugs
zu Programmabstürzen kommen). Am besten ist es, die SD2IEC-Steckkarte auf
Laufwerk-Nummer 9 und die 1541 auf die Laufwerknummer 8 einzustellen. Manchmal
ist dies bei sehr alten 1541-Floppys der ersten Stunde auch die einzige Option,
zumindest ohne tiefgreifende Elektrotechnik-Kenntnisse und Lötpraxis.
BASIC-Listing MAKEDISK
1
PRINT"[SHIFT+CLR/HOME]COPY WHICH D64
FILE";:INPUT F$
2
PRINT"SRC DRIVE NUMBER";:INPUT SD
3
PRINT"DST DRIVE NUMBER";:INPUT DD
15
POKE 53272,22:PRINT"[SHIFT+CLR/HOME]";
20 FOR
I=49152 TO 49201:READ A:POKE I,A:NEXT I
25 FOR
I=49300 TO 49349:READ A:POKE I,A:NEXT I
30
OPEN 3,SD,2,F$:T=1
40
READ I:IF I=0 THEN GOTO 70
45 FOR
S=0 TO I
46
PRINT"[SHIFT+CLR/HOME]TRACK";T;"SECTOR";S
50
POKE 780,3:POKE 781,80:POKE 782,4:SYS 49152
55
GOSUB 1000
60
NEXT S
65
T=T+1:GOTO 40
70
CLOSE 1
80
POKE 781,0:SYS 65478
90
POKE 781,0:SYS 65481
100
PRINT"[SHIFT+CLR/HOME]THE DISK-IMAGE WAS
WRITTEN":POKE 53272,21
110
END
1000
REM *** BLOCK WRITE ***
1010
OPEN 2,DD,2,"#"
1020
OPEN 1,DD,15
1030
PRINT#1,"B-P 2 0 0"
1040
POKE 780,2:POKE 781,80:POKE 782,4:SYS 49300
1050
PRINT#1,"U2 2 0 ";T;S
1060
CLOSE 1:CLOSE 2
1070
RETURN
10000
REM *** BLOCKLOAD ***
10010
DATA 141,232,3,8,72,165,248,72,165,249,72,134,248,132,249,138,72
10020
DATA 152,72,174,232,3,32,198,255,160,0,32,228,255,145,248,200,192
10030
DATA 0,208,246,104,168,104,170,104,133,249,104,133,248,104,40,96
11000
REM *** BLOCKSAVE ***
11010
DATA 141,232,3,8,72,165,248,72,165,249,72,134,248,132,249,138,72
11020
DATA 152,72,174,232,3,32,201,255,160,0,177,248,32,210,255,200,192
11030
DATA 0,208,246,104,168,104,170,104,133,249,104,133,248,104,40,96
20000
REM *** BLOCKDATA ***
20010
DATA 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
20020
DATA 18,18,18,18,18,18,18
20030
DATA 17,17,17,17,17,17
20040
DATA 16,16,16,16,16,0
BASIC-Listing MAKED64
10
PRINT"[SHIFT+CLR/HOME]CREATE WHICH D64
FILE";:INPUT F$
20
PRINT"SRC DRIVE NUMBER";:INPUT SD
30
PRINT"DST DRIVE NUMBER";:INPUT DD
40 FOR
I=49152 TO 49201:READ A:POKE I,A:NEXT I
50 FOR
I=49300 TO 49349:READ A:POKE I,A:NEXT I
51
OPEN 15,DD,15,"S:"+F$:CLOSE 15
52
OPEN 3,DD,1,F$
60
T=1:S=0:POKE 53272,22:TI$="000000"
70
READ I:IF I=0 THEN GOTO 130
80 FOR
S=0 TO I
90
PRINT"[SHIFT+CLR/HOME]TRACK";T;"SECTOR";S;"TIME
";
95
PRINT LEFT$(TI$,2)+":"+MID$(TI$,3,2)+":"+RIGHT$(TI$,2)
100
GOSUB 1000
110
NEXT S
120
T=T+1:GOTO 70
130
CLOSE 3
140
POKE 781,0:SYS 65478:POKE 781,0:SYS 65481
150
POKE 53272,21
160
PRINT"[SHIFT+CLR/HOME]D64 IMAGE WAS
WRITTEN."
170
PRINT"TIME TAKEN:";
180
PRINT LEFT$(TI$,2)+":"+MID$(TI$,3,2)+":"+RIGHT$(TI$,2)
190
END
1000
REM *** BLOCK COPY ***
1010
OPEN 2,SD,2,"#"
1020
OPEN 1,SD,15
1030
PRINT#1,"B-P 2 0 0"
1040
PRINT#1,"U1 2 0 ";T;S
1050
POKE 780,2:POKE 781,80:POKE 782,4:SYS 49152
1055
POKE 781,0:SYS 65478:POKE 781,0:SYS 65481
1060
CLOSE 1:CLOSE 2
1070
POKE 780,3:POKE 781,80:POKE 782,4:SYS 49300
1075
POKE 781,0:SYS 65478:POKE 781,0:SYS 65481
1080
RETURN
10000
REM *** BLOCKLOAD ***
10010
DATA 141,232,3,8,72,165,248,72,165,249,72,134,248,132,249,138,72
10020
DATA 152,72,174,232,3,32,198,255,160,0,32,228,255,145,248,200,192
10030
DATA 0,208,246,104,168,104,170,104,133,249,104,133,248,104,40,96
11000
REM *** BLOCKSAVE ***
11010
DATA 141,232,3,8,72,165,248,72,165,249,72,134,248,132,249,138,72
11020
DATA 152,72,174,232,3,32,201,255,160,0,177,248,32,210,255,200,192
11030
DATA 0,208,246,104,168,104,170,104,133,249,104,133,248,104,40,96
20000
REM *** BLOCKDATA ***
20010
DATA 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
20020
DATA 18,18,18,18,18,18,18
20030
DATA 17,17,17,17,17,17
20040
DATA 16,16,16,16,16,0
BASIC-Listing SDFCOPY
10
PRINT"[SHIFT+CLR/HOME]";:M=0:FP=130:AD=32768
20 FOR
I=49152 TO 49249:READ A:POKE I,A:NEXT I
25
GOSUB 3000
30
OPEN 1,SD,2,"$":OPEN 15,SD,15
40
POKE 781,0:POKE 782,128:POKE 1000,1:POKE 1001,254:SYS
49152:GOSUB 50000
41
POKE 781,0:POKE 782,128:POKE 1000,1:POKE 1001,254:SYS
49152:GOSUB 50000
50 IF
(FP AND 128)=0 THEN GOTO 100
60
GOSUB 1000
70
PRINT"COPY FILE (Y/N)"
80 GET
A$:IF A$="" THEN 80
85 IF
A$="Y" THEN GOSUB 4000
90
GOTO 50
100
CLOSE 1:CLOSE 15
110
GOSUB 50000
120
END
1000
REM *** GET NEXT FILE ***
1010
F$="":ZZ=0
1020
TT=AD:FP=PEEK(AD)
1025
IF (FP AND 128)=0 THEN RETURN
1030
AD=AD+3
1040
IF PEEK(AD)=160 OR ZZ=16 THEN GOTO 1065
1050
PRINT CHR$(PEEK(AD));:F$=F$+CHR$(PEEK(AD))
1060
AD=AD+1:ZZ=ZZ+1:GOTO 1040
1065
J=AD-TT
1066
FOR K=J TO 30:PRINT" ";:NEXT K
1070
AD=TT:LO=PEEK(AD+28):HI=PEEK(AD+29)
1080
FL=256*HI+LO
1090
PRINT FL
1100
AD=TT+32:M=M+1
1110
IF M=8 THEN M=0:AD=32768:GOSUB 2000
1120
RETURN
2000
REM *** NEXT FILE BLOCK ***
2010
POKE 781,0:POKE 782,128:POKE 1000,1:POKE 1001,254:SYS
49152:GOSUB 50000
2020
RETURN
3000
REM *** GET USER DATA ***
3010
PRINT"SOURCE DRIVE";:INPUT SD
3020
PRINT"DESTINATION DRIVE";:INPUT DD
3030
PRINT"[SHIFT+CLR/HOME]";
3040
RETURN
4000
REM *** COPY FILE ***
4010
OPEN 5,DD,15,"S:"+F$:CLOSE 5
4020
OPEN 6,SD,2,F$
4030
OPEN 7,DD,1,F$
4040
FOR Y=1 TO FL
4050
POKE 781,0:POKE 782,64:POKE 1000,6:POKE 1001,254:SYS
49152:GOSUB 50000
4060
POKE 781,0:POKE 782,64:POKE 1000,7:POKE 1001,254:SYS
49200:GOSUB 50000
4070
NEXT Y
4080
CLOSE 6:CLOSE 7:RETURN
10010
DATA 120,8,72,165,248,72,165,249,72,134,248,132,249,138,72,152,72,174
10020
DATA 232,3,32,198,255,160,0,32,228,255,145,248,200,204,233,3,208
10030
DATA 245,104,168,104,170,104,133,249,104,133,248,104,40,96,120,8,72
10040
DATA 165,248,72,165,249,72,134,248,132,249,138,72,152,72,174,232
10050
DATA 3,32,201,255,160,0,177,248,32,210,255,200,204,233,3,208,245
10060
DATA 104,168,104,170,104,133,249,104,133,248,104,40,96
50000
REM *** RESET ALL CHANNELS ***
50010
POKE 781,0:SYS 65478
50020
POKE 781,0:SYS 65481
50030
RETURN