Print-Technik HelpPlus 128 |
zurück
Autor: Johann E. Klasek
Geschichtliches
Ursprünglich stellte die Firma Print-Technik aus Österreich das "Help-Modul" her, das dann in ein HelpPlus-Modul erweitert wurde. Es gibt vier bekannte Varianten, wobei die letzte davon, das Modul HelpPlus 128 hier beschrieben wird.
Techniche Aspekte
Ressourcen
Banking
Erst in der letzten Ausprägung, HelpPlus 128, ist das Modul so gestaltet, dass es den BASIC-Speicher nicht einschränkt, indem sich das Modul ausblenden kann. Dazu wird ein Teil des Moduls im IO1-Bereich $DE00 bis $DEFF dauerhaft eingeblendet, wo jene Code-Teile liegen, die das Modul dazu verwendet, auf das vollständige RAM, auch bei ausgeblendeten Modul zuzugreifen.
Nach einem Reset verbiegt die Initialisierung einige BASIC-Vektoren, die in den $DE00-Bereich zeigen und dann schaltet (blendet) sich das Modul aus. Wird ein HelpPlus-Kommando verwendet, wird das Modul wieder aktiviert, wobei die Kommandos dann bei Zugriffe auf den BASIC-Speicher, das Modul temporär über den Prozessorport $01 kurzfristig wegblenden. Erst am Ende des Kommandos blendet sich das Modul wieder dauerhaft aus.
Programmierung
- Modul ausblenden
- Schreiben mit Bit 1 = 1 auf eine Adresse von $DE00 bis $DEFF.
LDA #$02
STA $DE00
- Modul einblenden
- Schreiben mit Bit 1 = 0 auf eine Adresse von $DE00 bis $DEff.
LDA #$00
STA $DE00
- Modul temporär ausblenden und wieder einblenden
- Bit 0 von Prozessorport $01 löschen, Zugriffe durchführen und wieder setzen.
DEC $01
... ; Speicher unter $8000 bis $9FFF lesend zugreifen
INC $01
Aufbau
Platine
Oberseite |
Oberseite näher |
Unterseite |
|
|
|
Bauteile
-
EPROM 27128 DIL 28-polig
-
74LS00 4 2-fach-NAND
-
74LS10 3 3-fach-NAND
-
74LS74 dual RS-FF
Signale
- D0L
- D0-Latch (nicht genutzt)
- D1L
- D1-Latch (Modul deaktiviert, wenn 1)
- LSEL
- Latch Select: am Clock-Pin der RS-FF, bei fallender Flanke
- SEL
- EPROM Select: Vorstufe von /CS ohne R/W
Logik
-
SEL = !( /IO1 * /ROML * !(!/ROMH * !D0L) )
Selektion des EPROMs, wenn im IO1-Bereich oder $8000-$9FFF
oder $A000-$BFFF bei aktivem D0-Latch (D0=0).
Die letzte Möglichkeite wird aber am Modul nicht genutzt,
da /ROMH nur bei aktivem /GAME (in einer 16K-Konfiguration)
aktiv werden würde
- /CS = !(R/W * SEL)
Lesezugriff und eines von IO1-Zugriff, $8000-$9FFF, $A000-$BFFF mit D0-Latch auf 0
-
/EXPROM = D1L
-
/LSEL = !(PHI2 * ! R/W * ! /IO1)
Schreibzugriff auf IO1 in CPU-Takthälfte bewirkt die Übernahme
von D0, D1 in den Latches (RS-FF).
- Kippschalter
- Modul aktiv: Schalter ist offen
EPROM A13 = 1, /PRE (Anschluss S eines RS-FF) des FF ist 1 (inaktiv)
Q = 0 nach Reset -> /EXROM aktiv
- Modul inaktiv: Schalter ist geschlossen
EPROM A13 = 0, /PRE (Anschluss S eines RS-FF) des FF ist 0,
weshalb das FF gesetzt ist und der Ausgang Q bleibt high,
somit ies /EXROM nicht "aktiv".