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 Laufwerknummer 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 Laufwerknummer 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
Laufwerknummer 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]QUELLAUFWERK#";:INPUT Q
20
PRINT"ZIELLAUFWERK#";:INPUT Z
25 FOR
I=49152 TO 49247:READ A:POKE I,A:NEXT I
30
PRINT"[SHIFT+CLR/HOME]";
40 SYS
57812"$",Q
50
POKE 780,0:POKE 781,0:POKE
782,128:SYS 65493
60 AD=32773:FE=0
70 PO=0:F$="":FL=PEEK(AD+2)+256*PEEK(AD+3)
80 IF
(PEEK(AD)<>34) AND (PO<20) THEN AD=AD+1:
PO=PO+1:GOTO 80
90 IF
PO=20 THEN END
100
AD=AD+1
110 IF
FE=0 THEN PRINT"[RVS ON]";
120
PRINT CHR$(34);
130 IF
PEEK(AD)<>34 THEN F$=F$+CHR$(PEEK(AD)):
AD=AD+1:GOTO 130
140
PRINT F$+CHR$(34);:AD=AD+1
150 IF
PEEK(AD)<>0 THEN PRINT CHR$(PEEK(AD));:
AD=AD+1:GOTO 150
160 IF
FE=0 THEN PRINT:PRINT:GOTO 260
170 IF
FL>10 THEN PRINT"[CSR LFT]";
180 IF
FL>100 THEN PRINT"[CSR LFT]";
190
PRINT STR$(FL);
200
PRINT" ";
210 IF
FL<10 THEN PRINT" ";
220
PRINT"KOPIEREN?"
230
GET A$:IF A$="" THEN 230
240 IF
A$="J" THEN GOSUB 1000
260
AD=AD+1:FE=FE+1:GOTO 70
1000
REM *** FILECOPY ***
1010
OPEN 15,Z,15,"S:"+F$:CLOSE
15
1020
OPEN 6,Q,2,F$
1030
OPEN 7,Z,1,F$
1040
FOR I=1 TO FL
1050
POKE 781,0:POKE 782,64:POKE
1000,6:POKE 1001,254:
SYS 49152
1060
POKE 781,0:POKE 782,64:POKE
1000,7:POKE 1001,254:
SYS 49200
1070
NEXT I
1080
CLOSE 7:CLOSE 6
1090
POKE 781,0:SYS 65478
1100
POKE 781,0:SYS 65481
1110
RETURN
10000
REM *** BLOCK R/W ***
10010
DATA 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,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