C128 UniComal80 Cartridge
Suche
Index
FAQ
Kontakt
Zurück
Comal80 Cartridge Reversed (2.Feb.2008)

Das seltene C128 Comal80-Cartridge beinhaltet einen recht schnellen 3-Pass Interpreter. Das Modul wird durch eine kleine Banking-Logik konfiguriert, belegt so wenig Speicher, der vom Nutzer zum Schreiben von Programmen verwendet werden kann.

Auf dieser Seite sind die technischen Interna des Moduls zu finden. Damit sollte eine Emulation oder reale Hardware nachgebildet werden können.


Zuerst wurde das Modul geöffnet und die vorhandenen Bauteile gesichtet. Die Firmware der beiden ROMs wurden schon in der Vergangenheit gesichert.
Comal80 Cart.

Nur ohne die notwendige Logik ist die Firmware recht wertlos.
Zum Durchmessen der einzelnen Leiterbahnen musste dann die komplette Platine abgeräumt werden.

Comal80 Cart.
Es wurde sehr schnell sichtbar, daß einige Signal-Leitungen nur zur etwaigen Weiterentwicklung (?) auf den Rand der Platine gelegt wurden. Diese wurden in einigen ungenutzen Jumpern zusammengefasst.
Besonders interessant war die Verwendung eines 74LS125. Dieser sollte es dem Programmierer scheinbar ermöglichen, die Register-Werte auszulesen. Ein Luxus den ich noch nie in einem Steckmodul gesehen habe.
Die Software wird über ROMH eingeblendet und mit 3 Bits (D4-D6) der Datenleitungen das Banking konfiguriert. Mit D4 wird die Bank des aktuellen ROMs und mit D5/6 das ROM selbst ausgewählt.






Comal80 Cart.




Im     Schaltplan wurden die ungenutzen Jumper nur teilweise berücksichtigt.




PDF74LS161



Download UniComal Firmware C128

Commodore 128 Uni-Comal-Cartridge: Logic-Encoding

----------------------------------------------------------------------------
Function Table 74LS139
----------------------------------------------------------------------------
G1
G A (R/W:1/0) B (IO/1)

0 0 0 = y0 Register Write (74LS125 on Tri-State, Load 74161 Flip-Flops)
0 1 0 = y1 Register Read (74LS125 on Output, Read 74161 Flip-Flops )

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
G2 A (D5) B (D6)

0 0 0 y0 U1 ROM
0 0 1 y1 unused
0 1 0 y2 U2 ROM
0 1 1 y3 U3 ROM

----------------------------------------------------------------------------

Banking will be switched by D4 : 0 = low($0000) / 1= high ($4000)

----------------------------------------------------------------------------

Example Configuration
---------------------

switch_U1_low:
lda %x000 %D7(x=unused)D6,D5 : ROM (%00 =U1) D4:Banking (0=$0000, 1=$4000)
sta io_1
rts


switch_U1_high: lda %x001 %D7(x=unused)D6,D5 : ROM (%00 =U1) D4:Banking (0=$0000, 1=$4000)
sta io_1
rts


 

Letzte Änderung: 2019-01-03 12:12:18
  Rubrik:  C128
Rubriken-Übersicht
 8 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!