[abc80] ABC80 kasettrutiner

Erik Isaksson exon at lysator.liu.se
Mon Okt 12 13:59:38 PDT 2009


Hm, den disassembleringen skulle jag haft :-)

Jag gjorde mig omaket att börja disassemblera kassettrutinerna själv, 
och insåg ganska snart vad som var fel. Det visar sig att min 
PIO-emulering inte var som den skulle, eller rättare sagt, Z80-emulatorn 
hanterade inte interrupter på ett korrekt sätt. Innan hade jag triggat 
en interrupt på varje flank i insignalen, men PIOn (eller någon yttre 
enhet) ska ju inte generera ett ytterligare interrupt förrän Z80n 
hanterat det första interruptet (väntar på RETI). Kassettinterruptet 
fungerade visst så att det inne i interruptrutinen väntade på en ev. 
flank (indikerad 'etta'), och då triggade jag ett nytt interrupt 
istället... *loser*

Nu när jag fixat ett grundläggande stöd för INT REQ-ACK-RET så funkar 
det mycket bättre! ABCWin har nu läst in sitt första program via 
emulerad kassett! *tjohoo*

Som det ser ut i dagsläget så jobbar in- och avspelning mot en "ljudfil" 
i raw-format (15.6kHz sample rate), men man kan ju tänka sig någon 
inbyggd codec som omvandlar signalen till binärdata, som abccas ungefär 
fast "on-the-fly". En annan tanke är ju att ta emot och skicka signalen 
från/till ljudkortet och därmed kunna koppla in en riktig bandspelare 
till datorn! Fast vill man det? Det var väl den gamla hårdvaran man vill 
slippa från början :-)

Jag tar gärna emot idéer på hur kassettemuleringen kan fungera mot 
windows-filsystemet, det känns inte helt uppenbart hur man ska göra.

/ E


juhasz at abc.se wrote:
> Åh, lite aktivitet på listan precis när jag packat upp ABC:n efter senaste
> flytten! ;)
>
> Har du kollat in min inscannade version av "Programvaran i ABC80"? Där
> finns beskrivning av hur kassettrutinerna fungerar. Tror att
> inläsningsrutiner sätter nåt interrupt i PIO:n...
>
> se
>
> http://mac.abc.se/~juhasz/abc80/Programvaran%20i%20ABC80/
>
> Sen har jag ju rutinen som konverterar filer till kassettkompatibla
> wav-filer som kan läsas av en ABC80 om de spelas in på kassettingången.
> Fast den gör nog precis tvärtom mot vad du vill åstadkomma......
>
> http://juhasz.se/abc80/abccas.zip
>
> Såg också att det i helgen var retrogaming-mässa i Alviks medborgarhus här
> i stockholm. Lite frestad att sticka dit nån gång med ABC80:n och lite
> "riktiga" spel.... ;-)
>
> Robert
>
>   
>> Hej listan!
>>
>> Är det någon som har bra koll på hur ABC80s kassettrutiner fungerar i
>> detalj? Jag försöker få emulatorn att läsa och skriva via CAS:, men det
>> går inget vidare. 'Mikrodatorns ABC' har en hyfsad beskrivning av
>> elektroniken och formaten, så jag trodde det skulle vara en kakbit att
>> implementera, men någonstans går det fel. Inspelning funkar troligen,
>> jag har fått ut en CAS:-fil i något vi kan kalla raw-format genom att
>> sampla PIO CHB bit 6 i 15,6kHz (en gång per scan-line), och den både ser
>> och låter OK ut. Avspelning funkar däremot inte alls, troligtvis hittar
>> den inte ens SYN-bytarna i början av blocken eftersom jag bara får
>> "HITTAR EJ FILEN" ett tag efter "LOAD CAS:" (annars borde det väl bli
>> checksummefel eller liknande). I princip triggar jag en PIO
>> CHB-interrupt på varje flank i insignalen genom att dra bit 7 låg, och
>> det ser ut som om rutinerna reagerar på rätt sätt och nollställer
>> latchen som de ska. Ibland ser jag dock att jag får en "extra"
>> nollställning utan synbar anledning. Jag har ingen större lust att börja
>> disassemblera kassettrutinerna för att lista ut vad som går fel, så om
>> någon kan komma med lite input vore det trevligt!
>>
>> Tack på förhand
>> / E
>>
>> _______________________________________________
>> ABC80 mailing list
>> ABC80 at abc80.org
>> http://www.abc80.org/mailman/listinfo/abc80
>>
>>     
>
>   



More information about the ABC80 mailing list