                                                             Stand '95

----------------------------------------------------------------------
         SENSATION:  Die INICRON 512 KB-Speichererweiterung !
----------------------------------------------------------------------

Wir haben beschlossen, die INICRON Speichererweiterung jetzt als 
Selbstbaul|sung herauszubringen, also Selberl|ten ist angesagt ! Keine 
Angst, wer auch nur etwas  L|ten  kann,  hat schnell eine eigene,
512 KB gro~e, akkugebufferte Speichererweiterung !

Welche Eigenschaften besitzt die INICRON Speichererweiterung ?

Bis auf wenige  Ausnahmen  kann  man  die  INICRON Speichererweiterung 
genau  so  wie  eine  DOBBERTIN  oder  DK'TRONICS  Speichererweiterung 
einsetzen.

Der absolute Hammer: Sie ist akkugepuffert, d.h. auch nach Ausschalten 
des Rechners bleiben die  Daten  erhalten  !  Das  ist ein sagenhafter 
Vorteil und Vergleichbares hat es auf dem CPC noch nicht gegeben !

Man kann die Speichererweiterung u.a.  sehr gut als RAM-Disk einsetzen 
z.B. mit RDOS. Dann kann man  die RAM-Disk als zus{tzliches Laufwerk C 
ansprechen.  Durch  die  Akkupufferung   hat  man  alle  gespeicherten 
Programme sofort nach dem Einschalten zur Verf}gung.
Weiterhin  l{~t   sich   die   Speichererweiterung   hervorragend  als 
Datenspeicher  f}r  Daten  jeglicher   Art   einsetzen  z.B.  Screens, 
Hintergr}nde, Texte usw.

Sie ist in 128KB-Schritten aufr}stbar.  Wer  sich nicht den Vollausbau 
leisten kann, kauft sich soviel Speicher, wie der Geldbeutel zul{~t.

Sie ist sehr  einfach  gestaltet,  d.h.  der  L|taufwand  h{lt sich in 
Grenzen. (Sie kommt mit nur vier (!) Standart-Logikbausteinen aus !)

Sie braucht nicht in  den  Rechner  eingebaut  zu  werden, sondern man 
steckt sie einfach auf den Expansionport.

Sie ist weitgehend DOBBERTIN und DK'tronics kompatibel, d.h. Programme 
die Speichererweiterungen unterst}tzen (z.B.  CPM, RDOS, DISC'O'MAGIC, 
SOFTBRENNER,    DISCOLOGY,    CRIME    usw.)    arbeiten    mit    der 
Speichererweiterung zusammen.

Die Speichererweiterung funktioniert NUR mit  CPC  6128 oder 6128 PLUS 
zusammen. Der Grund  ist  der  sensationell  einfache (=preisg}nstige) 
Aufbau.

Durch den  Aufbau  bedingt  ist  auch  die  Art  und  Weise,  wie  der 
zus{tzliche Speicher eingeblendet werden kann:  n{mlich ab Adresse 
&4000-&7FFF. Tats{chlich ist  dies  auch  die  gebr{uchlichste Art der 
Einblendung    -    s{mtliche    uns    bekannten    Programme,    die 
Speichererweiterungen  unterst}tzen,   blenden   Zusatz-Speicher   bei 
&4000-&7FFF ein.
Die Dobbertin Speichererweiterung  bietet  als zus{tzliche M|glichkeit 
an, den Zusatzspeicher auch komplett von &0000-&FFFF oder teilweise 
von  &C000-&FFFF   einzublenden.   Der   Hardwareaufwand   f}r   diese 
vergleichsweise "exotischen"  Konfigurationen  w{re  SEHR  viel gr|~er 
gewesen, so da~ wir auf diese M|glichkeiten verzichtet haben.

F}r Interessierte, die selber gerne  programmieren, ist am Schlu~ eine 
]bersicht, wie  das  Zusatz-RAM  angesprochen  wird  (vergl.  auch CPC 
SYSTEMBUCH S.169/556).

Auf alle F{lle ist die  INICRON  512 KB-Speichererweiterung ein echter 
Knaller und empfiehlt sich f}r alle,  die  Ihren  CPC mit bis zu einem 
halben Megabyte auftunen wollen.

Was kostet der Spa~ ?

Durch g}nstigen Einkauf  k|nnen  wir  die  SRAMs  (4  St}ck  werden f}r 
Vollausbau ben|tigt) derzeit  f}r  DM  15.00/St}ck  anbieten  ! (Falls 
jemand die SRAMs (128k x 8, 32 PIN, DIL, LOW POWER) g}nstiger bekommt, 
bitte melden !)

Die    Leiterplatte    (Doppelseitig,    chemisch    durchkontaktiert, 
verzinnt=sehr gut zu l|ten):    DM  28.00
4 SRAMs a DM 15.00              DM  60.00
Porto                           DM   4.00
-----------------------------------------
                                DM  92.00

Dazu kommen die Kosten der Bauteile (je nach Einkauf -> selberkaufen):

Bauteile                    ca. DM  30.00
-----------------------------------------
                            ca. DM 122.00 f}r eine 512K-Erweiterung

Die  Bau/L|tanleitung   &   St}ckliste   &   Bauteile/Einkaufsliste  & 
Testprogramm gibt's kostenlos dazu.

Wer also Interesse hat, melde sich bitte bei:

Ingo & Nicolai Willers
Horststra~e 9

31061 Alfeld/Leine

Tel.:05181/5765

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


Hier eine ]bersicht, wie das Zusatz-RAM angesprochen wird:

Von BASIC aus:

OUT &7F00,&C0 'schaltet Normalzustand an
          &C1 'blendet Block 3 bei &C000-&FFFF ein
          &C2 'blendet komlett Z-RAM ein. Ohne Vorkehrungen=Absturz
          &C3 'blendet Block 3 bei &C000-&FFFF ein + "siehe Tabelle"
          &C4 'blendet BLock 0 bei &4000-&7FFF ein
          &C5 'blendet Block 1 bei &4000-&7FFF ein
          &C6 'blendet Block 2 bei &4000-&7FFF ein
          &C7 'blendet Block 3 bei &4000-&7FFF ein

Bis hierhin kannte man die Einstellungen  noch vom "normalen" CPC 6128 
ohne externen Zusatzspeicher. Jetzt  folgen  die Einstellungen f}r das 
aufgesteckte Zusatz-RAM:
          ----------------------------------------
          &C8 'nicht angesprochen
          &C9 'nicht angesprochen
          &CA 'nicht angesprochen
          &CB 'nicht angesprochen
          &CC 'blendet BLock 4 bei &4000-&7FFF ein
          &CD 'blendet BLock 5 bei &4000-&7FFF ein
          &CE 'blendet BLock 6 bei &4000-&7FFF ein
          &CF 'blendet BLock 7 bei &4000-&7FFF ein
          ----------------------------------------
          &D0 'nicht angesprochen
          ...
          ...usw. siehe Tabelle unten !

Die Bl|cke k|nnen auch bequem mit folgender Formel angew{hlt werden:

OUT &7F00,(block AND 3)+196+(block AND 28)*2

In Assembler k|nnen die Bl|cke so angew{hlt werden:

BLENDER    ;A=BLOCK (0-31)
LD C,A
AND 28
ADD A      ;*2
LD B,A
LD A,C
AND 3
ADD 196
ADD B
LD B,&7F
OUT (C),A  ;Jetzt ZRAM bei &4000-&7FFF einblenden
RET        ;Fertig


F}r einfachen Zugriff innerhalb  einer  64KB-Bank  gibt's folgende zwei 
Proggies:


ERAM_READ ;HL=read_adr (&0000-&FFFF)
PUSH BC
PUSH HL
LD A,H:RLCA:RLCA
AND 3:OR &C4
LD B,&7F:OUT (C),A
RES 7,H:SET 6,H
LD A,(HL)
POP HL
POP BC
RET ;A=byte

ERAM_WRITE ;A=byte,DE=write_adr (&0000-&FFFF)
PUSH BC
PUSH DE
PUSH AF
LD A,D:RLCA:RLCA
AND 3:OR &C4
LD B,&7F:OUT (C),A
RES 7,D:SET 6,D
POP AF
LD (DE),A
POP DE
POP BC
RET

Und noch ein kleines Schmankerl f}r v|llig durchgehenden Zugriff
(erreicht   wird   dies   durch   ein   Pseudo-19-bit-Register   unter 
Zuhilfenahme des i-Registers):

ERAM_READ ;iHL=read_adr (&00000-&7FFFF) ->HL=bit 0-15,i=bit 16-18
PUSH BC
PUSH HL
LD A,H:RLCA:RLCA
AND 3:OR &C4:LD C,A:LD A,i:RLA:RLA:RLA:OR C
LD B,&7F:OUT (C),A
RES 7,H:SET 6,H
LD A,(HL)
POP HL
POP BC
RET ;A=byte

ERAM_WRITE ;A=byte,iDE=write_adr (&00000-&7FFFF) ->DE=bit 0-15,i=bit 16-18
PUSH BC
PUSH DE
PUSH AF
LD A,D:RLCA:RLCA
AND 3:OR &C4:LD C,A:LD A,i:RLA:RLA:RLA:OR C
LD B,&7F:OUT (C),A
RES 7,D:SET 6,D
POP AF
LD (DE),A
POP DE
POP BC
RET



]bersicht }ber die einstellbaren Konfigurationen:
-------------------------------------------------

Generell kann man sagen:  Die  INICRON  Speichererweiterung wird immer 
------------------------  dann   angesprochen, wenn Bit 2 des Konfi-
                          gurationsbytes gesetzt war (=Einblendung 
                          eines 16KB Blocks bei &4000-&7FFF).

"Nicht angesprochen" bedeutet, da~  das  zus{tzliche, AUFGESTECKTE ERAM
nicht  angesprochen  wird;  stattdessen   geht   der  Zugriff  in  das 
EINGEBAUTE ERAM (das, welches der 6128 von Haus aus eingebaut hat).

----------------------------------------------------------------------
KONFIGURA-   !    n=nomaler RAM-Block, z=Zusatz-RAM
TIONSBYTE    !    Jeder Block bzw. jedes Adre~viertel = 16 KB
             !
hex/bin      !  CPU-ADRE~VIERTEL
--Bank 0---------0--1--2--3----VERWENDUNG------NORMALE LAGE VIDEORAM
C0 11000000     n0-n1-n2-n3    Normalzustand    n3=screen
C1 11000001     n0-n1-n2-z3    CPM:BIOS,usw.    n1=screen
C2 11000010     z0-z1-z2-z3    CPM:TPA          (n1=Screen)
C3 11000011     n0-n3-n2-z3    CPM:n3=Hushtab   (n1=Screen)
C4 11000100     n0-z0-n2-n3    Block 0, Bankm.  n3=screen
C5 11000101     n0-z1-n2-n3    Block 1, Bankm.  n3=screen
C6 11000110     n0-z2-n2-n3    Block 2, Bankm.  n3=screen
C7 11000111     n0-z3-n2-n3    Block 3, Bankm.  n3=screen
--Bank 1---
C8 11001000     nicht angesprochen
C9 11001001     nicht angesprochen
CA 11001010     nicht angesprochen
CB 11001011     nicht angesprochen
CC 11001100     n0-z4-n2-n3    Block 4          n3=screen
CD 11001101     n0-z5-n2-n3    Block 5          n3=screen
CE 11001110     n0-z6-n2-n3    Block 6          n3=screen
CF 11001111     n0-z7-n2-n3    Block 7          n3=screen
--Bank 2---
D0 11010000     nicht angesprochen
D1 11010001     nicht angesprochen
D2 11010010     nicht angesprochen
D3 11010011     nicht angesprochen
D4 11010100     n0-z8-n2-n3    Block 8          n3=screen
D5 11010101     n0-z9-n2-n3    Block 9          n3=screen
D6 11010110     n0-z10-n2-n3   Block 10         n3=screen
D7 11010111     n0-z11-n2-n3   Block 11         n3=screen
--Bank 3---
D8 11011000     nicht angesprochen
D9 11011001     nicht angesprochen
DA 11011010     nicht angesprochen
DB 11011011     nicht angesprochen
DC 11011100     n0-z12-n2-n3   Block 12         n3=screen
DD 11011101     n0-z13-n2-n3   Block 13         n3=screen
DE 11011110     n0-z14-n2-n3   Block 14         n3=screen
DF 11011111     n0-z15-n2-n3   Block 15         n3=screen
--Bank 4---
E0 11100000     nicht angesprochen
E1 11100001     nicht angesprochen
E2 11100010     nicht angesprochen
E3 11100011     nicht angesprochen
E4 11100100     n0-z16-n2-n3   Block 16         n3=screen
E5 11100101     n0-z17-n2-n3   Block 17         n3=screen
E6 11100110     n0-z18-n2-n3   Block 18         n3=screen
E7 11100111     n0-z19-n2-n3   Block 19         n3=screen
--Bank 5---
E8 11101000     nicht angesprochen
E9 11101001     nicht angesprochen
EA 11101010     nicht angesprochen
EB 11101011     nicht angesprochen
EC 11101100     n0-z20-n2-n3   Block 20         n3=screen
ED 11101101     n0-z21-n2-n3   Block 21         n3=screen
EE 11101110     n0-z22-n2-n3   Block 22         n3=screen
EF 11101111     n0-z23-n2-n3   Block 23         n3=screen
--Bank 6---
F0 11110000     nicht angesprochen
F1 11110001     nicht angesprochen
F2 11110010     nicht angesprochen
F3 11110011     nicht angesprochen
F4 11110100     n0-z24-n2-n3   Block 24         n3=screen
F5 11110101     n0-z25-n2-n3   Block 25         n3=screen
F6 11110110     n0-z26-n2-n3   Block 26         n3=screen
F7 11110111     n0-z27-n2-n3   Block 27         n3=screen
---Bank 7--                                     
F8 11111000     nicht angesprochen
F9 11111001     nicht angesprochen
FA 11111010     nicht angesprochen
FB 11111011     nicht angesprochen
FC 11111100     n0-z28-n2-n3   Block 28         n3=screen
FD 11111101     n0-z29-n2-n3   Block 29         n3=screen
FE 11111110     n0-z30-n2-n3   Block 30         n3=screen
FF 11111111     n0-z31-n2-n3   Block 31         n3=screen
----------------------------------------------------------------------

Anmerkung zur INICRON Speichererweiterung:
Da man am CPC ohne weiteres nur max. 512KB ERAM betreiben kann, der 
CPC 6128 aber schon  64KB  ERAM  eingebaut  hat,  sind 64KB eigentlich 
verloren, weil doppelt  vorhanden.  Damit  man  diese "doppelten" 64KB 
nutzen kann, gibt's einen speziellen Schalter.

Mit diesem  Schalter  kann  man  bestimmen,   ob  im  Bereich  der  ERAM-
Konfiguration C4-C7 (Block 0-3)  das  eingebaute oder das aufgesteckte 
(akkugepufferte) ERAM zur Verf}gung stehen soll.
Die Nutzung dieser M|glichkeit ist nicht ganz unproblematisch:
Ein paar Programme arbeiten nicht mit "akkugepuffertem Block 0-3", dann 
sollte man diesen Schalter auf "Aus" schalten.
