P8000/firmware/WDC/README

261 lines
6.5 KiB
Plaintext

Erstellung der WDC Firmware
===========================
Firmware Version: 4.2
Dokument Version: 1.2 (2007-03-13)
Autor dieses Dokumentes: Oliver Lehmann
Dokumentenhistorie:
1.2
- Abschnitt ueber das generieren mit z80-asm unter UNIX hinzugefuegt
1. Firmwaregenerierung auf dem PC
=================================
Die WDC Firmware ist auf dem PC unter UNIX o. komp. OS generierbar.
Der hier verwendete Assembler ist der Z80-ASM von
http://wwwhomes.uni-bielefeld.de/achim/z80-asm.html
Der dort bereitgestellte Assembler hat einen marginal unterschiedlichen
Befehlssatz. Daher ist es noetig, das ASM Sourcefile wdc.firm.s zu pat-
chen. Im Grunde werden nur alle Vorkommen der Datendefinitionssteueran-
weisungen "db" durch "defb", und "text" durch "defm" ersetzt. Ausserdem
versteht der Assembler keine Steueranweisungen zur Programmeinteilung
wie "begin" oder "end", oder Steueranweisungen fuer Assemblerlisting
wie "eject". Diese Steueranweisungen wurden ersatzlos entfernt.
1.1. Erzeugen der Firmware
-------------------------
Nachdem der Assembler compiliert und installiert ist, wird die Firmware
gepatcht:
patch -p0 < z80-asm.patch
Im Anschluss daran wird die Sourcedatei assembliert:
z80-asm wdc.firm.s wdc.firm.o
Nun muss der durch den z80-asm vorgestellte Header verworfen werden:
dd if=wdc.firm.o of=wdc.firm bs=1 skip=10
Jetzt enthaellt die Datei "firmware" die WDC Firmware, welche noch
gesplittet werden muss:
dd if=wdc.firm of=WDC_1_4.2 bs=1 count=4096 >&/dev/null
dd if=wdc.firm of=WDC_2_4.2 bs=1 skip=4096 >&/dev/null
2. Firmwaregenerierung auf dem P8000
====================================
2.1. Erzeugen der Firmware
------------------------
Um die Firmware erstellen zu koennen, muss die WEGA-Cross-Software
auf dem Computer installiert sein. Sobald die Software installiert
ist, kann die Firmware mittels Eingabe von "make" erzeugt werden:
#1 make
u80as -u -o wdc.firm.o wdc.firm.s
ld -o wdc.firm wdc.firm.o
strip -h wdc.firm
dd if=wdc.firm of=WDC_1_4.2 bs=1 count=4096 >&/dev/null
dd if=wdc.firm of=WDC_2_4.2 bs=1 skip=4096 >&/dev/null
#2
Die erzeugten Firmwaredateien lauten WDC_1_4.2 und WDC_2_4.2.
3. Programmieren der EPROMS
===========================
Im ersten Schritt werden die beiden EPROMs programmiert und deren
Checksummen ermittelt. Diese Checksummen werden im Anschluss ne-
giert. Danach werden die ermittelten Checksummen an folgende Posi-
tionen des 2. EPROMs nachprogrammiert.
0FF8h - 0FF9h Checksumme 1. EPROM 0000h-0FFFh
0FFAh - 0FFBh Checksumme 1. EPROM 0000h-0FFFh negiert
0FFCh - 0FFDh Checksumme 2. EPROM 0000h-0FF7h
0FFEh - 0FFFh Checksumme 2. EPROM 0000h-0FF7h negiert
3.1. EPROM 1 programmieren
----------------------------
Bitte starten Sie unter WEGA das Programm "pburn" und waehlen dort
aus:
select ?:p
p: programming prom
source filename [-w] [-D] [-B] [-os hex] : WDC_2_1.2 -B
destination promtype [-ol hex] : e2732
*** warning - is prom really e2732, not e2732a ?
continue ?y
ready to program :
source file : WDC_2_4.2 segment 0 start 0 end fff byte
destination promtyp : e2732 start 0 end fff byte ?(y/r/s/m/v/l/t/q)y
program file WDC_2_4.2 to prom e2732
crc_checksum: 2c43
Die ermittelte Checksumme (2C43) ist zu notieren.
3.2. EPROM 2 programmieren
----------------------------
Bitte starten Sie unter WEGA das Programm "pburn" und waehlen dort
aus:
select ?:p
p: programming prom
source filename [-w] [-D] [-B] [-os hex] : WDC_2_4.2 -B
destination promtype [-ol hex] : e2732
*** warning - is prom really e2732, not e2732a ?
continue ?y
ready to program :
source file : WDC_2_4.2 segment 0 start 0 end fff byte
destination promtyp : e2732 start 0 end fff byte ?(y/r/s/m/v/l/t/q)y
program file WDC_2_4.2 to prom e2732
crc_checksum: 14bc
3.3. Checksumme EPROM 2 ermitteln
-----------------------------------
Mir ist keine Moeglichkeit bekannt mittels "pburn" nur die Check-
summe eines Teils des EPROMs zu ermitteln. Aus diesem Grund muss
hier leider auf UDOS und "UPROG" zurueckgegriffen werden.
Nachdem sie WEGA ordnungsgemaess abgefahren haben starten sie bit-
te UDOS mittels der UDOS Vertriebsdiskette. Sobald sich UDOS mit
seinem Prompt meldet ist "UPROG" zu starten.
#T E2732 N=FF8
READY TO READ?y
PROM CRC: 2C03
PROM NOT ERASED
Die ermittelte Checksumme (2C03) ist zu notieren
3.4. Checksummen negieren
---------------------------
Die Negierung der aus 2.1. und 2.3. ermittelten Checksummen kann
zum Beispiel mittels dem Rechenprogramm "bc" unter WEGA vorgenom-
men werden.
#1 bc
obase=16
ibase=16
FFFF-a
b
- fuer a ist die zu negierende Checksumme einzusetzen
- b ist die zu a gehoerige negierte Checksumme
Beispiel:
#1 bc
obase=16
ibase=16
FFFF-2C43
D3BC
Beide negierten Checksummen sind zu notieren.
3.5. Checksummen nachprogrammieren
----------------------------------
Nun sind die Checksummen aus 2.1, 2.3. und 2.4 nachzuprogrammie-
ren. Dabei ist im 2. EPROM ab 0FF8h die Checksumme aus 2.1., deren
Negat aus 2.4., die Checksumme aus 2.3. und deren Negat aus 2.4.
zu programmieren (siehe auch Abschn. 2.).
Beispiel:
Abschn. Checksumme
2.1. 2C43
2.4. (aus 2.1.) D3BC
2.3 2C03
2.4. (aus 2.3.) D3FC
3.5.1. Nachprogrammieren mittels "UPROG" unter UDOS
---------------------------------------------------
Sollten Sie sich aufgrund von Abschn. 2.4. noch unter UDOS befin-
den, koennen sie hier ohne einen Wechsel zu WEGA die Checksummen
mittels "UPROG" nachprogrammieren.
#B E2732
ADDRESS TO MODIFY?FF8
0FF8 FF 2C
0FF9 FF 43
0FFA FF D3
0FFB FF BC
0FFC FF 2C
0FFD FF 03
0FFE FF D3
0FFF FF FC
ADDRESS TO MODIFY?q
3.5.2. Nachprogrammieren mittels "pburn" unter WEGA
---------------------------------------------------
Befinden sie sich unter WEGA, und wollen dort die Checksummen
nachprogrammieren, starten sie bitte "pburn".
select ?:b
b: bytemode prom
source promtype : e2732
*** warning - is prom really e2732, not e2732a ?
continue ?y
ready to bytemode :
source promtyp : e2732 ?(y/q)y
byteprogram prom e2732
address to program ?FF8
0ff8: ff 2C
0ff9: ff 43
0ffa: ff D3
0ffb: ff BC
0ffc: ff 2C
0ffd: ff 03
0ffe: ff D3
0fff: ff FC
*** the specified address out of address range
address to program ?q
crc_checksum: 5d66
Die Erstellung der WDC Firmware ist hiermit abgeschlossen.