Now what?
TK
terryk at foothill.net
Wed May 26 05:07:03 GMT 1999
-----Original Message-----
From: Bruce Plecan <nacelp at bright.net>
To: gmecm at esl.eng.ohio-state.edu <gmecm at esl.eng.ohio-state.edu>
Date: Tuesday, May 25, 1999 12:34 PM
Subject: Now what?
>I have some questions, if you look thru this,
>
>0000 L0000 = 0x0000
>0000 L0010 = 0x0010 Why do the numbers "jump", here??
>0010 L0011 = 0x0011
>0011 L0012 = 0x0012
>0012 L0013 = 0x0013
>0013 L0014 = 0x0014
>0014 L0015 = 0x0015
>0015 L0016 = 0x0016
>0016 L0017 = 0x0017
They don't. There are "labels" or locations. L0010 is a address 0x0010. In
the configuration file for the disassembly, you can put:
L0010 = TPS and it will use the work TPS where ever the location L0010 is
found. But since you didn't do that, it just drops the actual address in
there instead.
>
>snip
>
>0030 L0031 = 0x0031
>0031 L0033 = 0x0033
>0033 L0034 = 0x0034
>0034 L0035 = 0x0035
>0035 L0036 = 0x0036
>0036 L0037 = 0x0037
>0037 L0038 = 0x0038
>0038 L0039 = 0x0039 What happens here?.
>0039 L0048 = 0x0048
>0048 L0058 = 0x0058
>0058 L0059 = 0x0059
>0059 L005A = 0x005A
>005A L005B = 0x005B
>005B L005D = 0x005D
Same thing.
>
>snip
>
>5006 L5009 = 0x5009 Why the jump to the 5 "prefix"
>5009 L500C = 0x500C
>500C L500F = 0x500F
>500F L5012 = 0x5012
>5012 L6000 = 0x6000
0x5000 is the address of some chip. FMU, or something like that. It may also
the the address range of a "mailbox" where values are places so another
processor or control can get to them.
>
>
>8000 .area CODE1 (ABS)
>8000 .org 0x8000
>8000
>8000 .byte 0x08,0x74,0x0A,0xC6,0x59,0x65,0x00,0x00
>8008 .byte 0x5B,0x00,0x20,0x0F,0x4A,0x4A,0x4A,0x4A
>8010 .byte 0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0x44,0x3F
>8018 .byte 0x39,0x33,0x33,0x4A,0x4A,0x4A,0x4A,0x4A
>8020 .byte 0x55,0x55,0x55,0x50,0x4A,0x44,0x3F,0x39
>8028 .byte 0x33,0x33,0x4A,0x4A,0x4A,0x4A,0x55,0x5B
>8030 .byte 0x61,0x5B,0x55,0x50,0x44,0x3F,0x39,0x33
>8038 .byte 0x33,0x55,0x55,0x55,0x61,0x66,0x6C,0x66
>8040 .byte 0x61,0x5B,0x55,0x50,0x44,0x3C,0x33,0x33
>8048 .byte 0x55,0x55,0x72,0x77,0x7D,0x77,0x72,0x6C
>8050 .byte 0x66,0x5B,0x55,0x4A,0x41,0x33,0x33,0x55
>8058 .byte 0x55,0x77,0x7D,0x83,0x7D,0x77,0x72,0x66
>8060 .byte 0x5B,0x55,0x50,0x44,0x39,0x39,0x55,0x55
>8068 .byte 0x77,0x7D,0x89,0x7D,0x77,0x72,0x66,0x5B
>8070 .byte 0x55,0x50,0x4A,0x39,0x39,0x55,0x55,0x77
>8078 .byte 0x83,0x89,0x83,0x7D,0x72,0x66,0x5B,0x55
>8080 .byte 0x50,0x4A,0x3C,0x3C,0x55,0x55,0x77,0x83
>8088 .byte 0x89,0x83,0x7D,0x72,0x6C,0x61,0x5B,0x55
>8090 .byte 0x50,0x3F,0x3F,0x55,0x55,0x77,0x83,0x89
>8098 .byte 0x83,0x7D,0x77,0x72,0x66,0x5B,0x55,0x52
>80A0 .byte 0x41,0x41,0x55,0x55,0x77,0x7D,0x89,0x7D
>80A8 .byte 0x83,0x7D,0x77,0x6C,0x5E,0x58,0x55,0x44
>80B0 .byte 0x44,0x55,0x55,0x77,0x7D,0x89,0x89,0x89
>80B8 .byte 0x83,0x7D,0x72,0x5E,0x5B,0x58,0x44,0x44
>80C0 .byte 0x55,0x55,0x77,0x7D,0x89,0x89,0x89,0x83
>80C8 .byte 0x7D,0x72,0x5E,0x5E,0x5E,0x47,0x47,0x55
>80D0 .byte 0x55,0x77,0x7D,0x89,0x89,0x89,0x83,0x7D
>80D8 .byte 0x72,0x5E,0x5E,0x5E,0x47,0x47,0x55,0x55
>80E0 .byte 0x77,0x7D,0x89,0x89,0x89,0x83,0x7D,0x72
>80E8 .byte 0x61,0x5E,0x5E,0x4A,0x4A,0x55,0x55,0x77
>80F0 .byte 0x7D,0x89,0x89,0x89,0x83,0x7D,0x72,0x61
>80F8 .byte 0x61,0x61,0x50,0x50,0x55,0x55,0x77,0x7D
>8100 .byte 0x89,0x89,0x89,0x83,0x7D,0x72,0x64,0x61
>8108 .byte 0x61,0x5B,0x58,0x20,0x20,0x07,0x64,0x69
>8110 .byte 0x69,0x69,0x6F,0x75,0x7A,0x64,0x69,0x69
>8118 .byte 0x69,0x6F,0x75,0x7A,0x64,0x69,0x69,0x69
>8120 .byte 0x6F,0x75,0x7A,0x64,0x64,0x64,0x69,0x6C
>8128 .byte 0x6F,0x72,0x64,0x64,0x64,0x66,0x68,0x69
>8130 .byte 0x6F,0x64,0x64,0x64,0x64,0x68,0x6C,0x6F
>8138 .byte 0x64,0x64,0x64,0x64,0x66,0x69,0x6C,0x64
>8140 .byte 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64
>8148 .byte 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64
>8150 .byte 0x64,0x64,0x64,0x64,0x61,0x61,0x61,0x5B
>8158 .byte 0x58,0x55,0x64,0x69,0x69,0x69,0x58,0x55
>8160 .byte 0x52,0x64
>8162 L8162: .byte 0xC7
>8163 L8163: .byte 0x64
>8164 L8164: .byte 0x64
>8165 L8165: .byte 0x09,0x4F
>8167 L8167: .byte 0x05
>8168 L8168: .byte 0x0C,0xCD
>816A L816A: .byte 0x05
>816B L816B: .byte 0x0D
>816C L816C: .byte 0x00,0x2B
>816E L816E: .byte 0xFF,0x39
>8170 L8170: .byte 0xFF,0xEE
>
>snip
>
>90FC L90FC: pulx What needs to be done with this to make sense of
>it??
Weeeeelllll, you need to id some address locations. I start with the ALDL
list which almost always starts with the two prom ID addresses. If you have
the ALDL sequence, you can drop those names into the config file and they
will be used in the disassembled output.
For the code below, you need to have the Motorola opcode list. Then you can
translate.
>90FD pulx - take the current value on the stack and load it into
the x register and point to the next item on the stack.
>90FE pula - same, but place it in the A register
>90FF pulb - "
>9100 ins
>9101 rts return from subroutine.
>9102 L9102: pshy - blah, blah, blah, get that HC11 book!
>9104 pshb
>9105 pshx
>9106 suba 0x00,x
>9108 bcc L910B
>910A clra
>910B L910B: subb 0x01,x
>910D bcc L9110
>910F clrb
>9110 L9110: pshx
>9111 puly
>9113 psha
>9114 ldaa #0x10
>9116 mul
>9117 pshb
>9118 tab
>9119 abx
>911A pula
>911B pulb
>911C psha
>911D ldaa #0x10
>911F mul
>9120 pshb
>9121 ldab 0x02,y
>9124 mul
>9125 abx
>9126 pshx
>9127 ldab 0x02,y
>912A abx
>912B tsy
>912D ldd 0x03,x
>912F sba
>9130 ldab 0x03,y
>9133 bcc L913B
>9135 nega
>9136 mul
>9137 adca 0x03,x
>9139 bra L9141
>913B L913B: mul
>913C adca #0x00
>913E nega
>913F adda 0x03,x
>9141 L9141: pulx
>9142 psha
>9143 ldd 0x03,x
>9145 sba
>9146 ldab 0x03,y
>9149 bcc L9151
>914B nega
>914C mul
>914D adca 0x03,x
>914F bra L9157
>9151 L9151: mul
>9152 adca #0x00
>9154 nega
>9155 adda 0x03,x
>9157 L9157: pulb
>9158 psha
>9159 sba
>915A ldab 0x02,y
>915D bcc L9166
>915F nega
>9160 mul
>9161 adca 0x01,y
>9164 bra L916D
>9166 L9166: mul
>9167 adca #0x00
>9169 nega
>916A adda 0x01,y
>916D L916D: ins
>916E pulx
>916F pulx
>9170 pulb
>9171 puly
>9173 rts
>9174 L9174: pshx
>9175 pshb
>9176 ldab 0x00,x
>9178 inx
>9179 bra L9183
>917B L917B: sba
>917C bcc L917F
>917E clra
>917F L917F: pshx
>9180 pshb
>9181 ldab #0x10
>9183 L9183: mul
>9184 pshb
>9185 tab
>9186 abx
>9187 ldd 0x00,x
>9189 sba
>918A pulb
>918B bcc L9193
>918D nega
>918E mul
>918F adca 0x00,x
>9191 bra L9199
>9193 L9193: mul
>9194 adca #0x00
>9196 nega
>9197 adda 0x00,x
>9199 L9199: pulb
>919A pulx
>919B rts
>919C L919C: pshb
>919D pshx
>919E pshx
>919F tsx
>91A0 suba 0x00,x
>91A2 bcc L91AB
>91A4 negb
>91A5 addb 0x00,x
>91A7 stab 0x00,x
>91A9 ldab 0x04,x
>91AB L91AB: mul
>91AC stab 0x01,x
>91AE psha
>91AF ldd 0x03,x
>91B1 negb
>91B2 beq L91B7
>91B4 mul
>91B5 adca #0x00
>91B7 L91B7: tab
>91B8 pula
>91B9 addd 0x00,x
>91BB pulx
>91BC pulx
>91BD ins
>91BE rts
>91BF E0VECT: pshx
>91C0 pshb
>91C1 psha
>91C2 lsrd
>91C3 psha
>91C4 ldy #0x0000
>91C8 tba
>91C9 beq L91D9
>91CB L91CB: ldab 0x00,x
>91CD aby
>91CF ldab 0x01,x
>91D1 aby
>91D3 ldab #0x02
>91D5 abx
>91D6 deca
>91D7 bne L91CB
>91D9 L91D9: pshx
>91DA ldx #0xFF00
>91DD stx L400B
>91E0 tsx
>91E1 dec 0x02,x
>91E3 pulx
>91E4 bpl L91CB
>91E6 ins
>91E7 pula
>91E8 pulb
>91E9 pulx
>91EA rts
>91EB ECVECT: ldx #0x4000
>91EE bclr 0x04,x,#0x04
>91F1 bra L91F9
>
>snip
>
>FFF4 VECTF4: .word F4VECT OK ??
>FFF6 VECTF6: .word F6VECT
>FFF8 VECTF8: .word F8VECT
>FFFA VECTFA: .word FAVECT
>FFFC VECTFC: .word FCVECT
>FFFE RSTVEC: .word RESET
These are of the restart or "event" addresses. The FFFE is the restart
address. When the processor starts, it starts running the program that is at
the address stored in the two bytes at FFFE and FFFF. The others are
illegal opcode (where does it go if that happens), software interupt program
address and a few others.
Terry
>
>Thanks
>Doc Grumpy Sneezy Sleepy Bashful
>
>
More information about the Gmecm
mailing list