Mint azt már tudjuk egy ideje, eredetileg Plug and Play rendszert terveztek a bõvítõkártyákhoz, amibõl csak a gyári EXDOS és hozzá adott BRIDGE készült el ilyen módon. (Mivel nem volt errõl szóló dokumentáció, így sajnos a magyar fejlesztések nem követték ezt a rendszert.)
Ime, hogy hogyan számolja ki az EXDOS a WD portcímét:
LD C,0B3H
IN C,(C) ;C=ROM szegmensszáma
SRL C ;C=C/2
BIT 1,C
JR Z,LDCBD
LD C,10H
Ebbõl kiderül, hogy a lehetséges ROM címekhez, az IO tartomány fel osztható ki, 80H-tól az alaplap jelenlegi, ill. esetleges késõbbi eszközei helyezkednek el. A BRIDGE-n 3 darab Socket Address címvezeték helyezkedik, el, ez 8 kártyát tesz lehetõvé. A kártyákon az eredeti EXOS ROM tesztet figyelembe véve a következõ aktív ROM szegmensek és IO címek lehetnek:
0: 10H, 00-0FH
1: 20H,30H, 10-1FH
2: 40H,50H, 20-2FH
3: 60H,70H, 30-3FH
4: 80H,90H, 40-4FH
5: A0H,B0H, 50-5FH
6: C0H,D0H, 60-6FH
7: E0H,F0H, 70-7FH
A fenti SRL-es számítási módot tekintve lehetséges az is, hogy 1 kártya két lehetséges ROM-ja, elossza 8-8 arányban a lehetséges 16 portot. Az EXDOS ezt mindenesetre nem teszi, 10-13H a WD, 18H a kártya vezérlõregisztere.
Még egy érdekesség a fenti rutinról: valószínûleg a fejlesztési fázisból benne maradt egy kivételkezelés, ami gyári konfigurációban akkor lép mûködésbe, ha a cartridge-ban van az EXDOS ROM, ekkor kiszámolt bázis port címet a jól ismert 10H-val helyettesíti, ami a gyári BRIDGE-hez kötött EXDOS kártyának felel meg.
Anno a Turbo EXDOS fejlesztésekor tapasztaltam, hogy a ROMLOAD-dal betöltött EXDOS ROM nem mûködött a PNP portcím számítás miatt, hiszen nem a 20H-ra lett töltve. Viszont ennek a kivételkezelésnek az lett a mellékhatása, hogy x4 vagy xC végû szegmensre töltve mûködik a betöltött EXDOS ROM. (Magyarán egy RAMDISK 3 után mehetett a ROMLOAD)
A portcímszámolgatás még egy másik esetben került elõ: egyes magyar gyártású BRIDGE-ekben nem volt megfelelõen bekötve SA0-SA2, így más címre dekódolódott az EXDOS, ezért pár program ami fix WD címeket használt, nem mûködött. (Ezt anno be is küldtem az Enterpressbe.)