Seite 1 von 2

IO Adressen für ZX81 und Module

Verfasst: 22.04.2017, 14:58
von PokeMon
Hmm gibt es eine komplette Liste mit allen bekannten ZX81 IO Adressen und neueren Modulen aus dem Kreise vom ZX Team ?
Ich stolpere da immer wieder drüber bei Hardware Entwicklungen und Anpassungen - sowas muss es doch geben.
Gut wäre auch Spiegeladressen zu dokumentieren, also inwiefern die Adressen auch tatsächlich geprüft werden.

Gibts da einen Link ?
Ich kann nichts finden aktuell, auch nicht über Google.
Wenn nicht, dann sollten wir hier im Forum zentral eine Liste pflegen.

IO adresses list ZX81 address

Verfasst: 22.04.2017, 16:04
von PokeMon
Ich habe mal eine erste Liste erstellt.

Das sollte man aus meiner Sicht um bekannt und häufig benutzte Module ergänzen.
Als da wären:
ZeddyNet, PIO Karte (hat die einen speziellen Namen), Mr.X und andere bekannte AY Derivate, eventuell weitere wichtige Karten aus dem MeFISDOS Umfeld, die mir momentan nicht geläufig sind.

Wichtig wären denke ich:
Default Adressen, alternative Adressen, Wechsel durch Jumper oder nur Programmierung (CPLD), welche Bits genau dekodiert werden (Spiegeladressen)

Re: IO Adressen für ZX81 und Module

Verfasst: 22.04.2017, 19:16
von siggi
M. W. hat Sascha im Kontext des Sound-Projekts (Mr. X.) auch mal Adressensammlung betrieben und eine Liste zusammengestellt. Auf die Schnelle habe ich die allerdings nicht gefunden ....

Gruß
Siggi

IO Adressen Liste, ZeddyNet, PIO

Verfasst: 22.04.2017, 19:36
von PokeMon
Siehste, ging mir genauso. Drum dachte ich, es wird Zeit für einen passen Thread.
Mit Suchbegriff IO Adressen. Habe mal noch ein paar ergänzt hier.

Re: IO Adressen für ZX81 und Module

Verfasst: 22.04.2017, 23:50
von ZX-Heinz
Gute und überfällige Idee.
MrX von Sascha benutzt die beiden IO-Adressen #DF und #1F. Für die 6-Kanalmusik (zweite MrX-Karte) nehme ich noch #BF und #3F. Die Sprachkarte MrZ von Joachim benutzt denselben Port wie MrX.
Die Adressierung ist aber nicht vollständig. Auf Saschas Karte sitzt ein GAL, und nur die Adressleitungen A1-A3 und A5-A7 werden abgefragt. Damit sind auch #CF und #0F durch MrX belegt. Das macht auch Sinn, da ZONX z.B. #CF und #0F benutzt, und die ZONX-Software damit auch auf MrX läuft.
Heinz

Re: IO Adressen für ZX81 und Module

Verfasst: 23.04.2017, 10:56
von tokabln
H4TH VDrive Connection Board

#7B bzw. #7F :mrgreen:

Re: IO Adressen für ZX81 und Module

Verfasst: 23.04.2017, 12:56
von PokeMon
Ja und weiter ?
Vollständig decodiert (alle Adressbits) oder nur bestimmte ?
Kann man die Adressen ändern, wenn ja wie (Jumper oder Programmierung) und auf welche alternativen Adressen ?
Was heißt bzw. ? Beide Adressen oder eine von beiden wird benutzt ?

Das ist ja genau der Grund, warum ich das zusammentragen will, weil die Informationen a) verstreut und b) oft unvollständig sind. :wink:

Re: IO Adressen für ZX81 und Module

Verfasst: 23.04.2017, 23:42
von PokeMon
Ich habe die Liste oben mal ergänzt um Mr.X und ZeddyNet.
Zu den beiden Modulen habe ich genügend Informationen gefunden.
Fehlt mir noch VDRIVE und PIO Karte von Joachim.
Was gibt es sonst noch so an Karten ?

Ich glaube siggi ist der größte Sammler hier in der Runde und darf auch gerne mal drüber schauen, ob es so korrekt dokumentiert ist. :wink:

Re: IO Adressen für ZX81 und Module

Verfasst: 24.04.2017, 00:08
von siggi
Moin!
Da solltest Du noch mal wohlwollend reinschauen:

viewtopic.php?f=2&t=696

N8
Siggi

Re: IO Adressen für ZX81 und Module

Verfasst: 24.04.2017, 15:01
von Joachim
Je nach Jumper-Belegung ergeben sich für das Ansprechen der Z80-PIO folgende Adressen:

$C7, $CF, $D7, $DF
$A7, $AF, $B7, $BF
$87, $8F, $97, $9F
$67, $6F, $77, $7F
$47, $4F, $57, $5F
$27, $2F, $37, $3F
$07, $0F, $17, $1F

Diese Adressen werden auch auf der Multi-IO-Platine (drei PIO plus USART) verwendet. Zusätzlich dann aber noch
$E7 und $F7

Für das Festplatten-Interface (da sind noch welche im Einsatz) sind es die Adressen:
$B7 und $BF

Re: IO Adressen für ZX81 und Module

Verfasst: 24.04.2017, 17:16
von PokeMon
Und sind da immer alle Adressbits decodiert ?

Re: IO Adressen für ZX81 und Module

Verfasst: 24.04.2017, 18:34
von siggi
PokeMon hat geschrieben:
23.04.2017, 23:42
Ich glaube siggi ist der größte Sammler hier in der Runde und darf auch gerne mal drüber schauen, ob es so korrekt dokumentiert ist. :wink:
Naja, ich bin seit 2004 im Team und kenne deshalb allenfalls die danach kommenden Karten näher ...
Was gibt es sonst noch so an Karten ?
- ZxPand, R/W 0x07? (weiß nicht viel darüber)
- Joy81 (programm. Joystick-Interface) R/W alle ungeraden Adressen (ganz übel beim Programmieren, zerschießt Einstellungen aller anderer Karten am Bus)
- Chroma81 (serieller Port) ???
- MMC-Interface (mit PIPO-Interface) W: 0x0F (Cardselect Latch), RW 0x1F PIPO; voll decodiert, nicht änderbar
- MiniMefisdos-Platine: W 0x7F (bankswitching latch), RW "Pio-Port" 0x47; voll decodiert bis auf A5, nicht änderbar
- Mr. X Nr2. (für 6-kanal-Sound) ???
- Modem-Karten für ZX*TERM80 0x73 und 0x77 (siehe http://www.user.dccnet.com/wrigter/inde ... serial.htm)

Floppy-Interface????????
Memotech-Interfaces (Centronics) ?????

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 09:35
von Joachim
Ergänzung: Sowohl die Z80-PIO-Karte als auch die Multi-IO-Platine verwenden zur Erzeugung des Freigabesignals die Adressleitungen A0-A2 und A5-A7. A3 und A4 werden zur Steuerung an der Z80-PIO hinsichtlich Portauswahl und Modusauswahl (Daten/Steuerung) verwendet.

Wie es sich mit dem Festplatteninterface verhält - da müsste sich Kai einschalten.

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 10:47
von siggi
Ach ja, den NU gibt's ja auch noch. Und der decodiert recht unvollständig (siehe "Schaltplan, m. W. nur A0, A5 und A7 benutzt) und benutzt laut Ollis Code:

Code: Alles auswählen

; On-board 4 digit ASCII LED display. Data in A8..A14, character address by A6 (A5 for iss1a) and A15
#define PORT_LED1	5eh
#define PORT_LED0	1eh

#define PORT_KBIN	0feh	; Keyboard input
#define PORT_LATCH 	05Fh	; Latch output

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 13:41
von PokeMon
Danke für den vielen Input, ich werde die Liste in Kürze erweitern.

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 13:46
von siggi
Hier gibt's noch was zu Chroma und dessen Ports (16-bittig adressiert):

http://www.fruitcake.plus.com/Sinclair/ ... iption.txt

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 15:49
von siggi

Re: IO Adressen für ZX81 und Module

Verfasst: 25.04.2017, 19:27
von siggi
Joachim hat geschrieben:
25.04.2017, 09:35
Wie es sich mit dem Festplatteninterface verhält - da müsste sich Kai einschalten.
Habe mir mal den Schaltplan angesehen: A3-A7 werden voll ausdecodiert, A0-A2 habe ich nicht gefunden. Wahrscheinlich werden die einfach ignoriert, weil sie sowieso alle HIGH sein sollen ....

Gruß
Siggi

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 19:21
von PokeMon
ZX-Heinz hat geschrieben:
22.04.2017, 23:50
Gute und überfällige Idee.
MrX von Sascha benutzt die beiden IO-Adressen #DF und #1F. Für die 6-Kanalmusik (zweite MrX-Karte) nehme ich noch #BF und #3F. Die Sprachkarte MrZ von Joachim benutzt denselben Port wie MrX.
Hallo Heinz,

wie kommst Du auf BFh und 3Fh ?
Hast Du das selbst ausgedacht ?
Sascha hatte mal in Absprache mit Yerzmyey die Adressen C7h/D7h bzw. 07h/17h ausgetüftelt oder vorgeschlagen.

viewtopic.php?f=2&t=696

Gibt es überhaupt "Standard" Software mit 6-Kanal Sound ?

LG Karl

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 19:43
von PokeMon
Joachim hat geschrieben:
24.04.2017, 15:01
Je nach Jumper-Belegung ergeben sich für das Ansprechen der Z80-PIO folgende Adressen:

$C7, $CF, $D7, $DF
$A7, $AF, $B7, $BF
$87, $8F, $97, $9F
$67, $6F, $77, $7F
$47, $4F, $57, $5F
$27, $2F, $37, $3F
$07, $0F, $17, $1F

Diese Adressen werden auch auf der Multi-IO-Platine (drei PIO plus USART) verwendet. Zusätzlich dann aber noch
$E7 und $F7

Für das Festplatten-Interface (da sind noch welche im Einsatz) sind es die Adressen:
$B7 und $BF
Joachim,
folgende Fragen dazu:

Gibt es einen besonderen Namen für die Karte oder einfach nur Z80-PIO ?
Mit so einer Bezeichnung könnte es viele Karten im Z80 Bereich geben ...

Sind die Adressen EF und F7 auch jumperbar auf der Multi-IO Platine ?
Vollständig decodiert ?

Festplatten Interface ist eine separate Karte ?
Ist die vollständig decodiert ?

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 20:19
von Joachim
Hallo Karl!
Die Z80-PIO-Karte hat keinen anderen Namen. Vielleicht könnte man sie um die Bezeichnung 'des ZX-Teams' erweitern.
Ja, auf der Mulit-IO-Platine sind alle Adressen jumperbar. Die Dekodierung erfolgt wie bei der Z80-PIO: A0, A1, A2, A5, A6 und A7 gehen auf einen '138er, A3 und A4 gehen zur PIO und entscheiden über Daten- oder Steuerwort. Damit m.E. eine vollständige Dekodierung.
Die Harddisk-IF-Karte ist eine eigenständige Karte und wird, wenn ich den Schaltplan von Kai richtig interpretiere, über A3 bis A7 dekodiert.

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 22:25
von PokeMon
siggi hat geschrieben:
25.04.2017, 10:47
Ach ja, den NU gibt's ja auch noch. Und der decodiert recht unvollständig (siehe "Schaltplan, m. W. nur A0, A5 und A7 benutzt) und benutzt laut Ollis Code:

Code: Alles auswählen

; On-board 4 digit ASCII LED display. Data in A8..A14, character address by A6 (A5 for iss1a) and A15
#define PORT_LED1	5eh
#define PORT_LED0	1eh

#define PORT_KBIN	0feh	; Keyboard input
#define PORT_LATCH 	05Fh	; Latch output
Vielleicht kann Ollie da nochmal drüber schauen. Laut Schaltplan sollten es nur 5E und 5F sein.
1E ist eigentlich deckungsgleich mit 5E - es sei denn, es würde auch noch A6 ausgewertet.
Ich kann aber nur A5 und A7 erkennen, neben A0. Wobei A0 low nur schreiben erlaubt wäre ...

Überhaupt kann ich das ASCII LED Display im Schaltplan vom ZX81NU Rev. B nicht finden ?!

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 22:58
von PokeMon
So ich habe jetzt mal die Liste im ersten Beitrag aktualisiert.
Als Sortierkriterium habe ich nach IO Adresse gewählt, das ist glaube ich hilfreicher als alphabetisch auch wenn das bei manchen Interfaces schwierig ist, weil Adressbereiche oder Adressen weit auseinanderliegen.

VDRIVE müsste also Adresse 7Fh sein, wobei die unteren 4 Bits nicht decodiert werden. Das Interface reagiert im Prinzip auf 7xh. Aber wichtig oder interessant ist ja in dem Zusammenhang die Adresse, die tatsächlich benutzt wird im Programm.
Bildschirmfoto 2017-05-11 um 22.55.22.png
Bildschirmfoto 2017-05-11 um 22.55.22.png (99.7 KiB) 2786 mal betrachtet

Re: IO Adressen für ZX81 und Module

Verfasst: 11.05.2017, 23:01
von PokeMon
PS: Ich werde die Adressen F4h-F7h möglichst voll ausdecodiert im nächsten ZXblast nutzen mit der Option einer Änderung im Bedarfsfall. Mal schauen.

Re: IO Adressen für ZX81 und Module

Verfasst: 12.05.2017, 09:47
von siggi
PokeMon hat geschrieben:
11.05.2017, 22:25
siggi hat geschrieben:
25.04.2017, 10:47
Ach ja, den NU gibt's ja auch noch. Und der decodiert recht unvollständig (siehe "Schaltplan, m. W. nur A0, A5 und A7 benutzt) und benutzt laut Ollis Code:

Code: Alles auswählen

; On-board 4 digit ASCII LED display. Data in A8..A14, character address by A6 (A5 for iss1a) and A15
#define PORT_LED1	5eh
#define PORT_LED0	1eh

#define PORT_KBIN	0feh	; Keyboard input
#define PORT_LATCH 	05Fh	; Latch output
Vielleicht kann Ollie da nochmal drüber schauen. Laut Schaltplan sollten es nur 5E und 5F sein.
1E ist eigentlich deckungsgleich mit 5E - es sei denn, es würde auch noch A6 ausgewertet.
Ich kann aber nur A5 und A7 erkennen, neben A0. Wobei A0 low nur schreiben erlaubt wäre ...

Überhaupt kann ich das ASCII LED Display im Schaltplan vom ZX81NU Rev. B nicht finden ?!
"Basst scho" (wie man im im tiefsten Süden wohl sagen würde). Denn im undokumentierten Teil der Schaltung (nicht im "Schaltplan" drin), wird wohl noch mehr decodiert, wie Ollis Code entlarvt :mrgreen: :
holmatic hat geschrieben:
28.03.2017, 20:48
; On-board 4 digit ASCII LED display. Data in A8..A14, character address by A6 and A15

PORT_LED1= 0x5e
PORT_LED0= 0x1e


; LED: Display text after call,
; corrupts HL,BC

HW_NU_DISP_LED::
POP HL ; Return-Address = Text Source
HW_NU_DISP_DIRECT::
LD B,(HL)
SET 7,B ; Addr 11 first
LD C,#PORT_LED1
IN B,(C)
INC HL

LD B,(HL)
SET 7,B
LD C,#PORT_LED0
IN B,(C)
INC HL

LD B,(HL)
RES 7,B
LD C,#PORT_LED1
IN B,(C)
INC HL

LD B,(HL)
RES 7,B
LD C,#PORT_LED0
IN B,(C)
INC HL

JP (HL) ; RET to behind text
Gruß
Siggi

PS: Werde wohl noch ein paar Dioden und Transis auf den NU d'raufnageln müssen, damit die Adressen vollständiger ausdecodiert werden und sich der NU weniger mit anderen Karten beisst ...