Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » EPROMs in Tastaturen » Themenansicht

Autor Thread - Seiten: -1-
000
06.07.2008, 18:40 Uhr
Olli

Avatar von Olli

Hallo,

in z.B. einer K7673 steckt ja neben dem U884 ein EPROM - enthaellt dieser ausfuehrbahren Maschinencode? Da sind teilweise komische Hex-Dinge die keine sinnvollen Operationen ergeben wie z.B. b039 - b0 waere CLR - und 39?... ergibt nicht so viel Sinn oder? Gibt es evtl. eine feste Startadresse? Hat einer Sourcen zu irgendeiner der Tastatur-EPROMs?
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
06.07.2008, 19:08 Uhr
Gast: Kingstener




Quellcode:
ROM:0000                    ; Segment type: Pure code
ROM:0000                    ; segment ROM
ROM:0000 00 00              irq0:           .word irq0              ; DATA XREF: ROM:irq0o
ROM:0000                                                            ; ROM:irq1o ...
ROM:0000                                                            ; T0, Serial out
ROM:0002 00 00              irq1:           .word irq0              ; T0, Serial out
ROM:0004 00 00              irq2:           .word irq0              ; T0, Serial out
ROM:0006 00 00              irq3:           .word irq0              ; T0, Serial out
ROM:0008 00 00              irq4:           .word irq0              ; T0, Serial out
ROM:000A 01 10              irq5:           .word sub_110           ; T1
ROM:000C
ROM:000C                    ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
ROM:000C
ROM:000C
ROM:000C                                    ; public start
ROM:000C                    start:
ROM:000C 000 31 F0                          srp     #0F0h           ; Set register pointer
ROM:000E 000 8C 4D                          ld      R8, #4Dh        ; Load data
ROM:0010 000 7C 01                          ld      R7, #1          ; Load data
ROM:0012 000 6C 00                          ld      R6, #0          ; Load data
ROM:0014 000 BC 20                          ld      R11, #20h       ; Load data
ROM:0016 000 2C FA                          ld      R2, #0FAh       ; Load data
ROM:0018 000 3C A3                          ld      R3, #0A3h       ; Load data
ROM:001A 000 1C 0C                          ld      R1, #0Ch        ; Load data
ROM:001C 000 31 10                          srp     #10h            ; Set register pointer
ROM:001E 000 9F                             ei                      ; Enable interrupts
ROM:001F
ROM:001F                    loc_1F:                                 ; CODE XREF: start+2Ej
ROM:001F                                                            ; sub_343+3j
ROM:001F 000 E6 03 00                       ld      p3, #0          ; Port 3
ROM:0022 000 E6 FF 80                       ld      spl, #80h      ; Stack pointer
ROM:0025 000 B0 39                          clr     byte_839        ; Clear
ROM:0027 000 E6 3A E0                       ld      byte_83A, #0E0h ; Load data
ROM:002A 000 B0 20                          clr     byte_820        ; Clear
ROM:002C 000 B0 6B                          clr     byte_86B        ; Clear
ROM:002E 000 E6 23 0A                       ld      byte_823, #0Ah  ; Load data
ROM:0031 000 E6 22 32                       ld      byte_822, #32h  ; Load data
ROM:0034 000 E6 35 24                       ld      byte_835, #24h  ; Load data

so sieht mein Reassembler den entsprechenden ROM

Dieser Beitrag wurde am 06.07.2008 um 19:15 Uhr von Kingstener editiert.
Seitenanfang Seitenende
(Gast) Zitatantwort || Editieren || Löschen
002
06.07.2008, 19:41 Uhr
Olli

Avatar von Olli

d.h. die ersten 12 bytes beinhalten immer 6 Adressen?

Z.Zt. siehts bei mir noch so aus...


Quellcode:
0000  00 00     dec    P0
0002  00 00     dec    P0
0004  00 00     dec    P0
0006  00 00     dec    P0
0008  00 00     dec    P0
000a  01 10     dec     @r:16
000c  31 f0     srp    #240
000e  8c 4d     ld     r8,#77
0010  7c 01     ld     r7,#1
0012  6c 00     ld     r6,#0
0014  bc 20     ld     r11,#32
0016  2c fa     ld     r2,#250
0018  3c a3     ld     r3,#163
001a  1c 0c     ld     r1,#12
001c  31 10     srp    #16
001e  9f        ei    
001f  e6 03 00  ld     P3,#0
0022  e6 ff 80  ld     SPL,#128
0025  b0 39     clr    57
0027  e6 3a e0  ld     58,#224
002a  b0 20     clr    32
002c  b0 6b     clr    107
002e  e6 23 0a  ld     35,#10
0031  e6 22 32  ld     34,#50
0034  e6 35 24  ld     53,#36


--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
06.07.2008, 19:57 Uhr
Gast: Kingstener




Zitat:
Olli schrieb
d.h. die ersten 12 bytes beinhalten immer 6 Adressen?

ja, sind die Adressen der Interruptroutinen und bei 0Ch geht das Programm los
Seitenanfang Seitenende
(Gast) Zitatantwort || Editieren || Löschen
004
06.07.2008, 20:25 Uhr
Olli

Avatar von Olli

was bedeutet es, wenn die ersten 8 byte so aussehen?


Quellcode:
olivleh1@kartoffel z8> cc -o z8dis z8dis.c && ./z8dis /home/olivleh1/K7673.01 | less

Z8 Disassembler Ver 1.0

2048 bytes read
0000  25 11     .word  $2511
0002  87 58     .word  $8758
0004  00 00     .word  $0000
0006  00 00     .word  $0000

ein 2716 hat kein 0x2511 oder 0x8758
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 06.07.2008 um 20:25 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
06.07.2008, 21:14 Uhr
holm

Avatar von holm

Guckt mal nach, ob ide Daten/Adresßbeine des Roms wirklich dahin gehen, wo sie hingehören...war manchmal ein ekliger Geck...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
06.07.2008, 21:48 Uhr
Gast: Schnulli



Guten Abend,

doch das geht. An den U884 kann ein externer Speicher (TOR0,TOR1) angeschlossen werden. So lassen sich volle 64k adressieren.

Schau Dir mal Volkers Pohlers Seiten zum JUTE an. Beim U883 wird das auch so gemacht. Der U884 ist ja nichts anderes. Es ist nur der interne Eprom nach draußen geführt.

Wenn es keinen externen Speicher gibt, wären die Einträge natürlich sinnlos.

Dieser Beitrag wurde am 06.07.2008 um 21:50 Uhr von lenin editiert.
Seitenanfang Seitenende
(Gast) Zitatantwort || Editieren || Löschen
007
06.07.2008, 21:54 Uhr
Gast: Kingstener




Zitat:
Olli schrieb
was bedeutet es, wenn die ersten 8 byte so aussehen?


Quellcode:
olivleh1@kartoffel z8> cc -o z8dis z8dis.c && ./z8dis /home/olivleh1/K7673.01 | less

Z8 Disassembler Ver 1.0

2048 bytes read
0000  25 11     .word  $2511
0002  87 58     .word  $8758
0004  00 00     .word  $0000
0006  00 00     .word  $0000

ein 2716 hat kein 0x2511 oder 0x8758

ist in diesem Fall nicht relevant, Ports sind nicht für externen Speicher programmiert und laut IMR wird nur irq5 verwendet(jedenfalls nach der Programmierung der Steuerregister am Programmanfang)
Seitenanfang Seitenende
(Gast) Zitatantwort || Editieren || Löschen
008
07.07.2008, 07:20 Uhr
Olli

Avatar von Olli

So, nun kann mein Disassembler Marken setzen - nur die "Totcode" Erkennung (wo dann Variablen definiert sind) klappt noch nicht so 100%


Quellcode:
Z8 Disassembler Ver 1.0

2048 bytes read
                mark_0000:
0000  00 00             .word  mark_0000
0002  00 00             .word  mark_0000
0004  00 00             .word  mark_0000
0006  00 00             .word  mark_0000
0008  00 00             .word  mark_0000
000a  01 10             .word  mark_0001
000c  31 f0             srp    #240
000e  8c 4d             ld     r8,#77
0010  7c 01             ld     r7,#1
0012  6c 00             ld     r6,#0
0014  bc 20             ld     r11,#32
0016  2c fa             ld     r2,#250
0018  3c a3             ld     r3,#163
001a  1c 0c             ld     r1,#12
001c  31 10             srp    #16
001e  9f                ei    
                mark_0002:
001f  e6 03 00          ld     P3,#0
0022  e6 ff 80          ld     SPL,#128
0025  b0 39             clr    57
0027  e6 3a e0          ld     58,#224

Ab $400 in dem EPROM scheinen die Tasten zu liegen - jeweils mit einer 01 vorangestellt:

0400 01 31
0402 01 33
0404 01 35
0406 01 37
0408 01 39
040a 01 7e
040c 01 8d
040e 01 2d
0410 01 86
0412 01 cd
0414 01 a3
0416 01 2f
0418 00 00
041a 00 00
041c 01 8e
041e 00 00
0420 01 71


Ich gehe mal davon aus, das die Tasten 1 3 5 7 und 9 in irgendeiner Art und Weise zusammen gehoeren, und daher hintereinander aufgefuehrt werden. Nur was soll 7e (~) udn vor allem 8d und 86 sein? Diese liegen doch ausserhalb von 00-7F der ASCII-Codepage.
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 07.07.2008 um 07:23 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
07.07.2008, 09:16 Uhr
paulotto



Hallo Olli,

Reihenfolge der Tastencodes hängt von der Anordnung der Tasten in der Matrix ab, die ja über Zeilen und Spalten angespochen wird und wie die Ports des U884 dan mit dieser Matrix verbunden sind: z.B. so:
;400 begin lower case of first char table
.byte 47h ;'G'
.byte 42h ;'B'
.byte 36h ;'6'
.byte 5Ah ;'Z'
.byte 35h ;'5'
.byte 54h ;'T'
.byte 48h ;'H'
.byte 4Eh ;'N'
.byte 41h ;'A'
.byte 59h ;'Y'
.byte 32h ;'2'
.byte 57h ;'W'
.byte 31h ;'1'
.byte 51h ;'Q'
.byte 53h ;'S'
.byte 58h ;'X'
;410
.byte 4Ah ;'J'
.byte 4Dh ;'M'
.byte 38h ;'8'
.byte 49h ;'I'
.byte 37h ;'7'
.byte 55h ;'U'
.byte 4Bh ;'K'
.byte 2Ch ;','
.byte 44h ;'D'
.byte 43h ;'C'
.byte 34h ;'4'
.byte 52h ;'R'
.byte 33h ;'3'
.byte 45h ;'E'
.byte 46h ;'F'
.byte 56h ;'V'
(Die Tastatur läßt sich in verschiedene Modi schalten. Hier liegen die Großbuchstaben auf dem lower case.)
Das ist ein Beispiel aus meinem Tastaturprogramm (auch mit U884) für eine K7659.
7e ist doch innerhalb ASCII und die Codes mit gesetztem Bit 7 sind vielleicht für die Kennzeichnung von Sondertasten. Warum die eine 01 davorsetzen, ist mir nicht klar. Hat vielleicht auch so eine ähnliche Bedeutung wie gesetztes Bit 7. Laß mir doch bitte mal dein Binary zukommen.

Gruß

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
07.07.2008, 11:44 Uhr
Olli

Avatar von Olli

Hallo Klaus,

Binary liegt hier:

http://pofo.de/P8000/misc/EPROM-Sammlung/KEYBOARD/K801.02
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
07.07.2008, 18:14 Uhr
Olli

Avatar von Olli

http://pofo.de/P8000/misc/sources/EAW/Firmware/Firmware_-_MON8-WEGA-Terminal/Terminalsoftware/p8t.4.main.s

das hilft ein kleines bischen weiter....
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 07.07.2008 um 18:25 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
07.07.2008, 20:31 Uhr
paulotto



das hilft nicht viel...
da muß man schon durch die Quellen der Tastatur durch
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
07.07.2008, 20:33 Uhr
paulotto



am besten wäre natürlich der Schaltplan der Tastatur mit Zuordnung der Tasten zu den Spalten und Zeilen der Matrix und zu den Ports des U884...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
07.07.2008, 21:03 Uhr
Olli

Avatar von Olli

das habe ich gerade ne Stunde versucht.... bis auf eine Taste hab ich nix gefunden... ist auch schwer abtastpunkte auf der Tasten-Platine zu finden und dann noch durch die Leiterplatte gucken... hab erstmal genug fuer heute...

Es scheint 8 Zeilen zu geben. diese 8 Zeilen sind auch an einen V4051 angeschlossen.
Spalten gibt es dann unzaehlige mehr... wenn ich das richtig sehe - 16... hier mein erster Matrix-Versuch anhand des EPROMs... "q" konnte ich als einziges bisher Pol-maessig auf den Steckern bei gedrueckter Stellung zuordnen.... fuer "e" was ja auf der selben Zeile liegen sollte laesst sich nicht die Spalte finden.
Ist uebrigens eine ganz schnoede K7672 Tasten-Leiterplatte - hat da keiner eine Zuordnung von Zeilen und Spalten an den 2 Anschlussstellen zu?

http://pofo.de/P8000/misc/matrix_K801
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 07.07.2008 um 21:03 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek