00000000: 85 81 9F 2F 2A 2A 2F 0D 9F 2F 2A 20 C4 49 53 4B |.../**/../* .ISK|
00000010: 20 52 4F 55 54 49 4E 45 53 20 46 4F 52 20 54 48 | ROUTINES FOR TH|
00000020: 45 20 C3 4F 4D 4D 4F 44 4F 52 45 20 31 35 34 31 |E .OMMODORE 1541|
00000030: 20 2A 2F 0D 1C 0D 1C 0D 1C 0D 9A 53 54 52 55 43 | */........STRUC|
00000040: 54 20 44 53 54 41 54 20 DB 0D 9A 0D 9A 20 20 20 |T DSTAT ..... |
00000050: 20 20 20 20 20 20 49 4E 54 20 52 43 4F 44 45 3B | INT RCODE;|
00000060: 0D 9A 20 20 20 20 20 20 20 20 43 48 41 52 20 52 |.. CHAR R|
00000070: 4D 45 53 53 41 47 45 5B 34 30 5D 3B 0D 9A 20 20 |MESSAGE[40];.. |
00000080: 20 20 20 20 20 20 20 49 4E 54 20 54 52 41 43 4B | INT TRACK|
00000090: 3B 0D 9A 20 20 20 20 20 20 20 20 20 49 4E 54 20 |;.. INT |
000000A0: 53 45 43 54 4F 52 3B 0D 9A 0D 9A 20 20 20 20 20 |SECTOR;.... |
000000B0: 20 20 20 20 20 20 20 20 DD 20 44 53 3B 0D 1C 0D | . DS;...|
000000C0: 1C 0D 1F 23 44 45 46 49 4E 45 20 C4 D3 31 20 20 |...#DEFINE ..1 |
000000D0: 44 53 2E 52 43 4F 44 45 0D 1F 23 44 45 46 49 4E |DS.RCODE..#DEFIN|
000000E0: 45 20 C4 D3 32 20 20 44 53 2E 52 4D 45 53 53 41 |E ..2 DS.RMESSA|
000000F0: 47 45 0D 1F 23 44 45 46 49 4E 45 20 C4 D3 33 20 |GE..#DEFINE ..3 |
00000100: 20 44 53 2E 54 52 41 43 4B 0D 1F 23 44 45 46 49 | DS.TRACK..#DEFI|
00000110: 4E 45 20 C4 D3 34 20 20 44 53 2E 53 45 43 54 4F |NE ..4 DS.SECTO|
00000120: 52 0D 1F 0D 1F 23 44 45 46 49 4E 45 20 4F 50 45 |R....#DEFINE OPE|
00000130: 4E 44 49 53 4B 43 48 41 4E 28 44 45 56 2C 53 54 |NDISKCHAN(DEV,ST|
00000140: 52 29 20 4F 50 45 4E 28 44 45 56 2C 31 35 2C 53 |R) OPEN(DEV,15,S|
00000150: 54 52 29 0D 1F 23 44 45 46 49 4E 45 20 43 4C 4F |TR)..#DEFINE CLO|
00000160: 53 45 44 49 53 4B 43 48 41 4E 28 46 44 45 53 29 |SEDISKCHAN(FDES)|
00000170: 20 20 20 43 4C 4F 53 45 28 46 44 45 53 29 0D 1F | CLOSE(FDES)..|
00000180: 0D 1F 23 44 45 46 49 4E 45 20 57 52 49 54 45 53 |..#DEFINE WRITES|
00000190: 54 41 54 28 29 20 20 20 20 20 20 20 20 20 20 20 |TAT() |
000001A0: 50 52 49 4E 54 46 28 22 C4 49 53 4B 20 53 54 41 |PRINTF(".ISK STA|
000001B0: 54 45 3A 25 44 2C 25 53 25 44 2C 25 44 22 2C C4 |TE:%D,%S%D,%D",.|
000001C0: D3 31 2C C4 D3 32 2C C4 D3 33 2C C4 D3 33 29 0D |.1,..2,..3,..3).|
000001D0: 1F 23 44 45 46 49 4E 45 20 44 45 4C 45 54 45 28 |.#DEFINE DELETE(|
000001E0: 46 44 45 53 2C 46 4E 41 4D 45 29 20 20 20 20 46 |FDES,FNAME) F|
000001F0: 50 52 49 4E 54 46 28 46 44 45 53 2C 22 53 30 3A |PRINTF(FDES,"S0:|
00000200: 25 53 22 2C 46 4E 41 4D 45 29 0D 1F 23 44 45 46 |%S",FNAME)..#DEF|
00000210: 49 4E 45 20 52 45 4E 41 4D 45 28 46 44 45 53 2C |INE RENAME(FDES,|
00000220: 46 52 4F 4D 2C 54 4F 29 20 20 46 50 52 49 4E 54 |FROM,TO) FPRINT|
00000230: 46 28 46 44 45 53 2C 22 52 30 3A 25 53 3D 25 53 |F(FDES,"R0:%S=%S|
00000240: 22 2C 54 4F 2C 46 52 4F 4D 29 0D 1F 23 44 45 46 |",TO,FROM)..#DEF|
00000250: 49 4E 45 20 46 4F 52 4D 41 54 28 46 44 45 53 2C |INE FORMAT(FDES,|
00000260: 44 4E 41 4D 45 2C 49 44 29 20 46 50 52 49 4E 54 |DNAME,ID) FPRINT|
00000270: 46 28 46 44 45 53 2C 22 4E 30 3A 25 53 2C 25 53 |F(FDES,"N0:%S,%S|
00000280: 22 2C 44 4E 41 4D 45 2C 49 44 29 0D 1F 23 44 45 |",DNAME,ID)..#DE|
00000290: 46 49 4E 45 20 43 4F 50 59 28 46 44 45 53 2C 46 |FINE COPY(FDES,F|
000002A0: 52 4F 4D 2C 54 4F 29 20 20 20 20 46 50 52 49 4E |ROM,TO) FPRIN|
000002B0: 54 46 28 46 44 45 53 2C 22 43 30 3A 25 53 3D 25 |TF(FDES,"C0:%S=%|
000002C0: 53 22 2C 54 4F 2C 46 52 4F 4D 29 0D 1F 0D 1F 23 |S",TO,FROM)....#|
000002D0: 44 45 46 49 4E 45 20 44 49 53 4B 43 4F 4D 28 46 |DEFINE DISKCOM(F|
000002E0: 44 45 53 2C 53 54 52 29 20 20 20 20 20 46 50 52 |DES,STR) FPR|
000002F0: 49 4E 54 46 28 46 44 45 53 2C 22 25 53 22 2C 53 |INTF(FDES,"%S",S|
00000300: 54 52 29 0D 1C 0D 1C 0D 96 49 4E 54 20 44 49 53 |TR)......INT DIS|
00000310: 4B 53 54 41 54 28 46 44 45 53 29 0D 1C 0D 1C 49 |KSTAT(FDES)....I|
00000320: 4E 54 20 46 44 45 53 3B 0D 1C 0D 1C DB 0D 1C 0D |NT FDES;........|
00000330: 1C 20 20 20 20 46 53 43 41 4E 46 28 46 44 45 53 |. FSCANF(FDES|
00000340: 2C 22 25 44 2C 25 2E 2C 53 25 44 2C 25 44 22 2C |,"%D,%.,S%D,%D",|
00000350: 26 C4 D3 31 2C C4 D3 32 2C 26 C4 D3 33 2C 26 C4 |&..1,..2,&..3,&.|
00000360: D3 34 29 3B 0D 1C 0D 1C 20 20 20 20 52 45 54 55 |.4);.... RETU|
00000370: 52 4E 28 C4 D3 31 29 3B 0D 1C 0D 1C DD 0D 1C 0D |RN(..1);........|
00000380: 00 |. |
.../**/../* DISK ROUTINES FOR THE COMMOD
ORE 1541 */........STRUCT DSTAT .....
INT RCODE;.. CHAR RMESSAGE[
40];.. INT TRACK;.. INT
SECTOR;.... . DS;......#DEFI
NE DS1 DS.RCODE..#DEFINE DS2 DS.RMESSA
GE..#DEFINE DS3 DS.TRACK..#DEFINE DS4
DS.SECTOR....#DEFINE OPENDISKCHAN(DEV,ST
R) OPEN(DEV,15,STR)..#DEFINE CLOSEDISKCH
AN(FDES) CLOSE(FDES)....#DEFINE WRITES
TAT() PRINTF("DISK STATE:%D,%S
%D,%D",DS1,DS2,DS3,DS3)..#DEFINE DELETE(
FDES,FNAME) FPRINTF(FDES,"S0:%S",FNAM
E)..#DEFINE RENAME(FDES,FROM,TO) FPRINT
F(FDES,"R0:%S=%S",TO,FROM)..#DEFINE FORM
AT(FDES,DNAME,ID) FPRINTF(FDES,"N0:%S,%S
",DNAME,ID)..#DEFINE COPY(FDES,FROM,TO)
FPRINTF(FDES,"C0:%S=%S",TO,FROM)....#
DEFINE DISKCOM(FDES,STR) FPRINTF(FDE
S,"%S",STR)......INT DISKSTAT(FDES)....I
NT FDES;......... FSCANF(FDES,"%D,%.,
S%D,%D",&DS1,DS2,&DS3,&DS4);.... RETU
RN(DS1);.........
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL