|
Post by dino2gnt on Feb 25, 2022 3:17:43 GMT
Well, it sort of works:
Send 45 07 FF 00 FF Response 46 07 FF 00 FF Dump 256 bytes from 0x7FF00 to 0x80000
[INFO] SCI-bus (PCM) message Tx list: 45 07 FF 00 FF
[RX->] SCI-bus (PCM) low-speed message: 3D 02 05 87 01 00 55 94 EA 46 07 FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 43 4F 50 59 52 49 47 48 54 20 31 39 39 36 20 43 48 52 59 53 4C 45 52 20 43 4F 52 50 4F 52 11 00 01 01 88 FA 00 01 9E 17 FA 01 B7 37 75 01 B6 FA 00 01 88 C5 00 FA 00 01 88 3C 01 27 76 37 87 FD A6 37 30 00 01 B0 E8 27 4C 00 00 00 00 98 06 6B 06 11 07 41 06 64 06 51 06 42 06 00 00 00 00 01 0C D7 02 11 07 10 07 6E 61 6E 00 69 6E 66 00 6F 76 66 00 20 20 20 20 20 00 20 2D 39 39 00 52 45 41 44 20 00 57 52 49 54 45 20 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 0C 96 00 25 03 31 00 21 80 00 00 09 EB 00 1D A4 3D 00 27 87 01 21 6F 00 00 03 43 00 00 80 00 00 09 E1 00 1D A4 3D 00 12 8E 02 A6 37 30 00 01 B0 21 84 00 47 03 52 00 35 80 00 00 09 D5 00 1D A4 3D 00 0F 87 01 00 55 5E 4F 47 01 00 22 00 26 00 00 36 79 03 03 53 92 53 92 D2 53 93 53 93 B5 FF 35 80 00 00 04 0E 00 04 24 21 AD 0C FC 21 AD 00 26 00 25 45 20
Think maybe 256 bytes at once is just a bit too much
|
|
|
Post by dino2gnt on Feb 25, 2022 6:01:51 GMT
There we go.
[INFO] SCI-bus (PCM) message Tx list: 45 07 FF BF 00 40
[RX->] SCI-bus (PCM) low-speed message: 3D 00 95 87 01 00 02 A8 41 46 07 FF BF 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 43 4F 50 59 52 49 47 48 54 20 31 39 39 36 20 43 48 52 59 53 4C 45 52 20 43 4F 52 50 4F 52 41 54 49 4F 4E FF 32 46 00 01 00 00 04 37 80 00 B2 FA 24 21 AD 11 B6 21 AD 00 26 00 25 45 72 52 0A 1C F7 00 1C F6 21 AD 00 1B 00 36 79 00 36 79 03 03 02 97 02 02 98 4F B5 FF 35 80 00 00 04 03 00 04 24 21 AD 0D EE 21 AD 00 26 00 25 45 5D Some known text from the end of the ROM space... ;-)
|
|
|
Post by admin on Feb 25, 2022 9:23:18 GMT
Nicely done!
I just updated the scanner firmware to handle the request/response of your custom bootloader app. Block length is 1 byte long.
// Custom bootloader by dino2gnt: // TX: 45 AA BB CC DD // RX: 46 AA BB CC DD XX YY ZZ // --------------------------- // 45: request flash memory block // 46: flash memory block response // AA: memory bank // BB: offset HB // CC: offset LB // DD: block length (max. 255 bytes) // XX YY ZZ: flash memory values
Also removed strict requirement for high-speed mode messages to begin with FX byte.
Please try it and let me know if it's any good! I will update the GUI to save bytes to a binary file once the scanner firmware is sorted out.
|
|
|
Post by dino2gnt on Feb 25, 2022 14:13:32 GMT
// Custom bootloader by dino2gnt: // TX: 45 AA BB CC DD // RX: 46 AA BB CC DD XX YY ZZ // --------------------------- // 45: request flash memory block // 46: flash memory block response // AA: memory bank // BB: offset HB // CC: offset LB // DD: block length (max. 255 bytes) // XX YY ZZ: flash memory values It is actually:
// Custom bootloader by dino2gnt: // TX: 45 AA BB CC DD // RX: 46 AA BB CC DD XX YY ZZ // --------------------------- // 45: request flash memory block // 46: flash memory block response // AA: memory bank // BB: offset HB // CC: offset LB // DD: block length HB // EE: block length LB // XX YY ZZ: flash memory values
It will return up to 65535 bytes in a go if you ask for it.
|
|
|
Post by admin on Feb 25, 2022 14:24:10 GMT
Fixed. Go big or go home, right?
|
|
|
Post by dino2gnt on Mar 7, 2022 5:48:04 GMT
I managed to write some data to the flash tonight.
|
|
Piton
Junior Member
Posts: 94
|
Post by Piton on Mar 7, 2022 11:44:56 GMT
|
|
|
Post by admin on Mar 7, 2022 12:10:57 GMT
Nice work, Dino! Thanks Konstantin for the assembler.
The asm68hc16.c source file didn't compile for me at first, I had to comment out this #if directive in asmguts.h:
//#if 0 // these should already be defined in sys/types.h (included from stdio.h) typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; //#endif
|
|
Piton
Junior Member
Posts: 94
|
Post by Piton on Mar 7, 2022 12:54:15 GMT
|
|
|
Post by admin on Mar 7, 2022 13:04:14 GMT
Yeah, that's more elegant, now I feel dumb lol!
Compiled the makerom tool as well.
This is a great software suite.
|
|
Piton
Junior Member
Posts: 94
|
Post by Piton on Mar 7, 2022 13:29:34 GMT
I spent an hour figuring out the INCLUDE directive. You need to define through a point(dot). My old project for current assembler, find differences.
.INCLUDE qsm.s
.INCLUDE sim.s
org 100h
ldaa #55h
bsr Tx_Char
loop:
ldaa #55h
staa SWSR
ldaa #0AAh
staa SWSR
bsr Rx_Char
cmpa #'R' ; Cmd_Read ?
bne case_wr
bsr Tx_Char
; Page
bsr Rx_Char
bsr Tx_Char
tab
tbxk
;Addr
bsr Rx_Char
bsr Tx_Char
tab
bsr Rx_Char
bsr Tx_Char ; echo
xgab
xgdx ; IX = AddrStart
;Size
bsr Rx_Char
bsr Tx_Char ; echo
cmpa #0 ;Check Size
beq error
tab
looprd:
ldaa #55h
staa SWSR
ldaa #0AAh
staa SWSR
ldaa 0,x
bsr Tx_Char
aix #1
decb
bne looprd
bra loop
case_wr:
cmpa #'W' ; Cmd_Write ?
bne error
bsr Tx_Char
error:
ldaa #'?'
bsr Tx_Char
bra loop
Tx_Char:
brclr SCSR, #1, Tx_Char
staa SCDR+1
rts
Rx_Char:
ldaa #55h
staa SWSR
ldaa #0AAh
staa SWSR
brclr SCSR+1, #40h, Rx_Char ; Check flag RDRF
ldaa SCDR+1
rts
end
|
|
|
Post by dino2gnt on Mar 7, 2022 16:25:32 GMT
Dang. Wish I'd have found this before I bought one!
|
|
|
Post by admin on Mar 7, 2022 17:21:46 GMT
asm68hc16 doesn't know 20-bit addressing?
Example:
jsr SCI_TX
assembles to
FA 01 20
instead of
FA 00 01 20
IDA goes crazy when I try to disassemble this binary.
|
|
Piton
Junior Member
Posts: 94
|
Post by Piton on Mar 7, 2022 18:34:47 GMT
Fixed Error.
|
|
|
Post by admin on Mar 7, 2022 19:05:30 GMT
It worked, thank you!
Another issue arised. This line
SCI_TX: brclr 0FFC0Ch, #1, SCI_TX
assembles to
3A 01 FC 0C FB
instead of
3A 01 FC 0C FF FA
I can't see an easy fix in the source file for this, do you?
|
|