[abc80] Diskettstation till ABC-80
H. Peter Anvin
hpa at zytor.com
Fre Aug 20 09:34:11 PDT 2010
On 08/20/2010 01:28 AM, juhasz at abc.se wrote:
>>
>> ABC-DOS/UFD-DOS använder inte DMA ändå. Fast det kanske vore praktiskt
>> om man kunde få PIC:en att signalera RDY till ABC-bussen; kanske via en
>> extern krets.
> Det går säkert! Ett litet aber är dock att jag bara har portarna
> card-select via latchen (out 1) och data in/out (in/out 0) implementerade.
> Behöver inte DOS-et också någon statusport eller två för att funka? Och
> register för sektor etc.?
>
DOS-et behöver följande portar:
IN 0 - (INP#) data in
IN 1 - (STATUS#) status
IN 7 - (RST#) global reset
OUT 0 - (OUT#) data out
OUT 1 - (CS#) card select
OUT 2 - (C1#) start command
OUT 4 - (C3#) local reset
C1#, C3# och RST# används bara som strobesignaler; inga data skickas med.
Jag tror att du skulle kunna göra detta i din PIC32 t.o.m. utan extern
buffer helt enkelt genom att skicka dessa 7 signaler plus databussen
till en 16-bitars parallelport; programmera den att ge interrupt om
någon av dessa 7 signaler är låg. Om du får IN 7 eller OUT 1 med fel
selectkod kan du tillfälligt stänga av interrupt på de andra signalerna,
eller så kan du helt enkelt strunta i dem.
Sen sköter du demultiplex i din interrupthandler helt enkelt.
En stor fördel med det är att du lätt kan simulera flera enheter i samma
PIC på samma gång, t.ex. ett skrivarinterface.
Ett något större problem är att om du ska köra på ABC80 (ej 800) så
måste du ju också ha ett DOS-ROM. Om du ska simulera det med PIC-en så
måste du ha åtminstone XMEMRD# och A15-A0 till chippet med; annars så
kan du ju ha en sockel för ett riktigt ROM; för det så skicka XMEMRD#
till OE# och (A15 | ~A14 | ~A13 | A12) till CS#
(4K ROM på address 6000h). Alternativt kan du ha ett 8K ROM som också
innehåller optionsrom-arean (för skivare o.s.v.); släpp bara A12 från
ekvationen; avkodnings-PROMMet inuti själva ABC80 gör att du inte får
XMEMRD# när bildminnet addresseras.
-hpa
--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.
More information about the ABC80
mailing list