CP3F External Address-Mapping ROM-RAM-IO

1) Programmadresse:

  Im Prinzip 12 Bit als Kombination aus den 6 Adressleitungen und den 8 Datenleitungen.

   Allerdings ist der Adressraum in 2K Blöcke unterteilt.

 

Das prinzipielle Address-mapping sieht so aus:

Komponente/Chip

Addresse

(Signale ADB6..1)

 

2k ROM

000 XXX

Muss ein ROM sein

2k ROM/RAM

001-XXX

 

...

 

 

2k ROM/RAM

101-XXX

 

2k ROM/RAM/IO

110-XXX

2k RAM/ROM  oder 8 -Indirekt Addr-IO

IO

111-000

111-001

...

111-111

Direkt IO0 / Indirekt IO 38H(56D)

Direkt IO1 / Indirekt IO 39H(57D)

...

Direkt IO7 / Indirekt IO 3FH(63D)

 

 

 

 

 

Pro Baustein (z.B. MP282/LP600 oder LP1000) gibt es einen 2kByte großen Adressraum, der von dem eingebauten Programmcounter angesteuert wird:

ADB6..5 kommt immer aus den Bits 6,5,4 des Y-Registers.

 

Der Baustein gibt die Programmdaten aus wenn die Adresse 6..4 mit der Einstellung an den Pins „PAD“ 3.1 übereinstimmt. Beim Lesen der Opcodes zählt der Programmcounter einfach hoch.

  Die internen Register Q,Z bleiben unverändert wenn ein anderes Modul selektiert wird (im Y-Register)

 

Der Programmcounter wird nur bei Sprüngen (JMP, JAZ  usw) und beim Unterprogrammaufruf (JSB) neu geladen. Aus dem Opcode werden die unteren 11 Adressbits gebildet. Die oberen drei Bits kommen aus den Bits 4..6 des Y-Registers.

 

3) RAMadresse:

Der externe RAM-Bereich kann nur über das „Z-Register“ in dem jeweiligen Modul angesprochen werden: Ein Baustein (z.B. SGS-M383) wird über die Adressleitungen ADB6..1 ausgewählt. Die Leitungen ADB6..1 kommen beim RAM-Zugriff aus dem X-Register.

Auf das RAM kann indirekt nun wie folgt zugegriffen werden:

   las   1     ; lade 1 ->Akku

   sax         ; Akku->X-reg  (= RAM-Modul 1 untere 256 Bytes)

   lal   10H   ; Beispieladresse im RAM

   szx         ; akku -> Z-register(X-Reg) / ins 1 RAM-Modul Z-Reg

; nun Schreiben

   six         ; akku -> RAM(Y-Reg,Z-Reg) / Schreibe ins Modul X an die Stelle Z

: Lesen

   lix         ; RAM(Y-Reg,Z-Reg) -> Akku

 
Beispiel eines 256 Byte RAM -Moduls (SGS M383).

3) IO-Register-adresse:

 a) IO-Select - SGS 4 Bit Vergleich mit A6..3:

            -> Adresse A6..4: 110 nur indirekt Adressierbar

            -> Adresse A6..4: 111  direkt (IN 0..7,OUT 0..7)+indirekt  Adressierbar  

b) IOSelect - GIM: 3-bit Vergleich mit A6..4 -> direkt und indirekt Adressierbar

 

Ein „typisches“ System:

 

 

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

    <-prev           >Top<     >Hardware<        Last Modified: 6.April.2025 Impressum