C128 Comal
Zurück   Index    FAQ        5 User online       


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, dass 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

Valid XHTML 1.0 Transitional Valid CSS!

© 1999-2017 Retro-CMS by M. Sachse http://www.cbmhardware.de