Projekt: Läsa FLEX disketter med GreaseWeazle
Postat: 11 augusti 2023, 10:25:23
Denna tråd ska handla om hur man kan läsa TSC FLEX-disketter med hjälp av GreaseWeazle.
Svenskt forum för elektroniksnack.
https://elektronikforumet.com/forum/
Det arkivet har jag, problemet är att få det till disketter.pi314 skrev: ↑11 augusti 2023, 11:00:07 Här verkar det finnas en del "flex-godis".
http://ftp.flexusergroup.com:8080
Användarnamn: flexuser
Lösenord: "Namnet på ditt favoritoperativsystem i gemener"
Hur man skapar disketter vet jag inte.
/Pi
Kod: Markera allt
# TSC FLEX: SS/DD with SD (FM) cylinder 0.
# Definition is a simplified version of the DS/DD format.
disk flex.35
cyls = 35 # Kan vara 35 eller 40
heads = 1 # Enkelsidig
tracks 0.0 ibm.fm # Första spåret SD
bps = 256 # Varje sektor har 256 byte
iam = no
gap3 = 16
gap4a = 16
secs = 10 # 10 sektorer
interleave = 4 # Interleave 4
id = 1 # Hmmm, borde vara 0, ska testas
h = 0 # Huvud 0
end
tracks 1-34.0 ibm.fm # Spår 1-34
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10 # 10 sektorer
interleave = 6 # Interleave 6
id = 1 # Starta med sektor ID 1
h = 0 # Huvud 0
end
end
Kod: Markera allt
track 0 sector 0 boot sector
0 2 extended boot sector
0 3 System Information Record (SIR)
0 4 not used
0 5 start of the directory area.
... ... the rest of track 0 is used for
directory storage
1 1 start of the data and program
storage area of diskette
Kod: Markera allt
This is the layout of the SIR:
The first 16 bytes are not used (all zeros)
offset(hex) size(hex) contents
----------- --------- -------------------------
$10 $0B Volume Label
$1B $01 Volume Number High byte
$1C $01 Volume Number Low byte
$1D $01 First User Track
$1E $01 First User Sector
$1F $01 Last User Track
$20 $01 Last User Sector
$21 $01 Total Sectors High byte
$22 $01 Total Sectors Low byte
$23 $01 Creation Month
$24 $01 Creation Day
$25 $01 Creation Year
$26 $01 Max Track
$27 $01 Max Sector
Kod: Markera allt
0010 - 00 00 00 00 00 00 00 00 00 00 00 = Ingen Volume Lable
001B - 00 = Volume Number High byte
001C - 07 = Volume Number Low byte
001D - 16 = First User Track = spår 10
001E - 0A = First User Sector = sektor 22
001F - 16 = Last User Track = 22
0020 - 03 = Last User Sector = 3
0021 - 00 = Total Sectors High Byte = 0
0022 - 89 = Total Sectors Low Byte =137
0023 - 07 = Creation Month = 7
0024 - 0D = Creation Day = 13
0025 - 57 = Creation Year = 87
0026 - 22 = Max Track = 34
0027 - 0A = Max Sector = 10
Kod: Markera allt
0010 - 53 59 53 54 45 4D 00 00 00 00 00 = SYSTEM
001B - 1A = Volume Number High byte
001C - 99 = Volume Number Low byte
001D - 27 = First User Track = spår 39
001E - 0A = First User Sector = sektor 10
001F - 27 = Last User Track = 39
0020 - 14 = Last User Sector = 20
0021 - 00 = Total Sectors High Byte = 0
0022 - 0B = Total Sectors Low Byte = 11
0023 - 03 = Creation Month = 3
0024 - 0F = Creation Day = 15
0025 - 54 = Creation Year = 84
0026 - 27 = Max Track = 39
0027 - 14 = Max Sector = 20
Kod: Markera allt
# TSC FLEX: DS/SD with SD (FM) cylinder 0.
disk flex.40.ds
cyls = 40
heads = 2
tracks 0.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 4
id = 1
end
tracks 0.1 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 4
h = 0
id = 11
end
tracks 1-39.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
id = 1
h = 0
end
tracks 1-39.1 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
h = 0
id = 11
end
end
Kod: Markera allt
disk flex.35
cyls = 35
heads = 1
tracks 0.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 4
id = 1
h = 0
end
tracks 1-34.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
id = 1
h = 0
end
end
Avsaknad av pull-up borde dock ge problem med skrivning eller att den inte fungerar alls. Läs-data-signalen termineras av kontrollern.Mickecarlsson skrev: ↑12 augusti 2023, 10:12:46eller, som MiaM påpekade, att jag saknar Pull-Upp-motstånd på enheten. Detta kollar jag senare.
Vet inte om detta reflekteras i det faktiska lågnivåformatet men detta att ha en skillnad på första sektorn på första spåret kan kanske vara kopplat till disksystem som har enkel densitet för bootsektorn och resten kör dubbel densitet. Eftersom FLEX kan köras på olika hårdvaror så kan det väl mycket väl vara så att det är skillnad mellan FLEX-disketter för RT-datorn och FLEX-disketter för SWTPC till exempel?Mickecarlsson skrev: ↑12 augusti 2023, 10:12:46En FLEX diskett har denna layout:
Track 0 does not have a sector 1. All of the other tracks don't have a sector 0.
Kod: Markera allt
disk flex.35.sssd
cyls = 35
heads = 1
tracks 0-34.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
id = 1
h = 0
end
end
disk flex.40.sssd
cyls = 40
heads = 1
tracks 0-39.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
id = 1
h = 0
end
end
disk flex.40.dssd
cyls = 40
heads = 2
tracks 0-39.0 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
id = 1
end
tracks 0-39.1 ibm.fm
bps = 256
iam = no
gap3 = 16
gap4a = 16
secs = 10
interleave = 6
h = 0
id = 11
end
end