COMMODORE VC-1541-II floppy illesztése a ZX-81-hez


A teljes összeállítás


A SZOFTVERRŐL:

A címben említett kapcsolat megvalósítása csupán része egy átfogóbb átalakításnak a ZX81-en. Az átalakítás munkásabb része a hardvert érinti, a szoftverhez csak a letölthető hex-fájlt kell beégetni egy megfelelő ROM-ba. A hardver munkákhoz kapcsolási rajz áll rendelkezésre (illetve letölthető).
A szoftver egy 16 KB-os EPROM-ban üzemel, mely 4 db 4 KB-os lapra van felosztva. Az éppen aktuális lap a $2000...$2FFF memóriaterületen helyezkedik el. Indítása a RAND USR 8888 paranccsal történik, melynek eredményeképpen egy (jelenleg) 2 oldalból álló "USER-ROM"-lista jelenik meg ( 1., 2., 3. kép). Jelenleg az első oldal 7., 8., 9. programja valamint a második oldal 0. és 7. programja nem működik.
1. kép


2. kép


3. kép


A programok közül a legjelentősebb a "ZX MONITOR", mely az EPROM teljes 1. lapját és a 0. lap egy részét is elfoglalja. A MONITOR a C/+4 Commodore gép monitorjához hasonló utasitásokat tartalmaz, úgymint: A, G, M, T, C, F, H, >, D, L, S. Ez a MONITOR persze házi készítésű, és így némi kívánnivalót hagy maga után --- az indexregiszteres utasitásokat (IX és IY tartalmazókat **) nem lehet közvetlenül beírni az assemblerben; de disassemblálni teljeskörűen lehet. A ROM-lapok közötti lapozáshoz a $4021 cimre kell beírni a kívánt ROM-lap számát (00, 01, 02, 03) ; például a ">" paranccsal (4., 5. kép).
4. kép


5. kép


Jelenleg az EPROM 2. és 3. lapja teljesen üres, eltekintve a leggyakrabban használt és így minden lapon közös rutinoktól (például minden lap legelején a lapozó rutin). A Commodore floppyt (VC-1541 II.) kezelő programrészlet a 0. lapon helyezkedik el a $25B8...$2ABB címtartományban. Ezen parancsok szintaxisa a következő:

L "$" = directory. ( 6. kép)
L "név" = a megnevezett fájlt a kimentési címétől betölti (név* is működik). (7. kép)
L "S:név" = törli a megnevezett fájlt (scratch) (8. kép)
S "név (max16)" TÓL IG = menti a megadott címek közötti memóriatartalmat a megadott nevű fájlba. A címeket négykarakteres hexa címként kell beírni, előtte és közöttük egy-egy szóközt kell hagyni. Az IG-cimet már nem menti ki. (9. kép)
6. kép


7. kép


8. kép


9. kép


** = az indexregiszteres utasitásokat így lehet beadni assembláláskor:
A3200
ALD B,(HL)
ALD C,B
AI FD A6 11 : az "I" jelzőkarakter után közvetlenül a gépi kódot írjuk be, ez például az AND (IY+11) utasitás lesz.
A LD A,(5308)


A HARDVERRŐL:

Mint ismert, a ZX-81 alapromja a $0000...$1FFF területen van. Az itt ismertetett USER-ROM a $2000...$2FFF területen van, egymást átfedő 4 lapon.
A $3000...$37FF címtartományra egy 2 KB-os statikus CMOS-RAM-ot helyeztem el. Ez a RAM különösen alkalmas assembly programok fejlesztésére mivel elszállás utáni reseteléskor megőrzi tartalmát, míg a főtár ilyenkor törlődik. Néhány mikroamperes fogyasztása révén még ellátható egy külső vagy belső - három sorbakapcsolt gombelemből álló - tápegységgel, igy programfejlesztéskor szükségtelen elővenni a lemezmeghajtót, mivel tartalmát hetekig megőrzi.
A $3800...$3FFF címtartomány az I/O-terület. Ide lett kikódolva a ROM-lapozó ($3F7A), és a floppyhoz szükséges vonalakat kezelő áramkörök ($3877). Még rengeteg üres cím van.
A főtár a $4000 címen kezdődik. Az eredeti 1 KB-os RAM kiszedése után ide két darab - egyenként 8 KB-os - statikus CMOS-RAM került beépítésre, így most a $4000...$7FFF terület a főtár ( a két RAM-IC egymásra lett helyezve, lábaik összeforrasztva, kivéve a 20. lábat(10. kép).
10. kép


A kapcsolási rajzon a megjelölt részletek funkciói az alábbiak:

      1 = az alap-ROM visszhangját letiltja és a főtár területet kódolja ki
      2 = közvetlen videojelkimenet a nagyfrekis egység kihagyásával
      3 = RESET-gomb egy világitódiódával
      4 = a megszünt régi RAM
      5 = a két új 8 KB-os RAM
      6 = az eredeti stabilizátor + hütőlap kikerült a gépből, igy a betáp közvetlen 5 V-os
      A = memóriamegőrző külső táp alkalmazása esetén szükséges
      B = a USER-ROM, a 2 KB-os RAM és az I/O-területet kódolja ki
      C = egy piezo-lapkával a fóliabillentyüzet hallhatóvá válik
      D = a floppy használatához szükséges soros vonalak áramkörei
      E = az előző pontbani áramkörök cimének kikódolásához
      F = a ROM-lapozó áramkör és ennek cimkikódolása
Az eredeti kapcsolás átalakításai


Az újonnan hozzáépítettek




Mint a 11. és 12. képen látható, a nyomtatott áramkör eléggé zsúfolt (a floppyhoz szükséges áramkörök utólag lettek beépitve). A manapság széles változatban kapható SMD alkatrészekkel mindez jóval kulturáltabban kivitelezhető.


11. kép


12. kép



A Rom-listákat tartalmazó fájlok innen letölthetők:
Belső ROM
User ROM

A Rom-listákat tartalmazó fájlokat az alább letölthető programmal lehet szerkeszteni:
HEXA-Editor

Érdeklődés esetén készséggel válaszolok további részletes kérdésekre az alábbi e-mail cimen:
myhomepage@citromail.hu

Margitai István 2006. október 20.