From 518bf194a3ad39ad404ebd6f1cafc594c43d0950 Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Tue, 13 Mar 2007 19:57:46 +0000 Subject: [PATCH] new stuff --- firmware/WDC/README | 260 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 firmware/WDC/README diff --git a/firmware/WDC/README b/firmware/WDC/README new file mode 100644 index 0000000..d8a07df --- /dev/null +++ b/firmware/WDC/README @@ -0,0 +1,260 @@ +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.