February 2nd, 2024, 12:55
HaQue wrote:adapter working? Translatable to English: https://www.phantom.sannata.org/viewtopic.php?t=40212&start=165Hello everyone, I'm fine, the development of the device has not been abandoned, but has been paused.
I don’t want to open source it yet, maybe later.
I didn’t unsubscribe to the topic because I didn’t see the notifications... Such a monstrous coincidence.
The latest available firmware has added:
* advanced multi-level CLI
* ATA bus debugging mode: the device is connected third to a standard cable, captures messages on the bus, caches them in the controller memory and displays them in the CLI.
* ZIP support improvements: soft-eject support, compatibility with music equipment, successfully tested on Boss BR8, Roland SP808, Roland SP808ex, Roland VS840vx.
* error correction.
February 2nd, 2024, 12:56
HaQue wrote:Anyone know anything about these expansion boards for the SP?
https://reverb.com/au/item/56525330-rare-roland-sp808-op2-scsi-digital-i-o-expansion-board-for-sp-808-sp-808ex-worldwide-shippingVery Rare Roland SP808-OP2 expansion card for SP-808, SP-808EX.
Adds SCSI, Digital In/Out, and balanced stereo input / output with XLR Mic input.Two XLR Inputs with Line/Mic switch - Two XLR Outputs - Digital SP/DIF In/Out - SCSI port for adding an extra Zip drive.
I wonder if this port is useful in any way?
February 2nd, 2024, 13:06
HaQue wrote:Wondering if it is possible to use the technique in this post to somehow access other parts of the system. Namely put CPU in a different mode that ignores onboard OTPROM and boot from flash with some code.
https://hackaday.io/project/188508-repu ... 039-h8300h
Also wondering about how the buttons tell the OS what to do. Looking to see if a button press is sent via an ascii code or some protocol, what happens if we send something unexpected?
I edited together some images of the test mode. The RAM looks interesting. Not sure what PRAM0, PRAM1, IRAM0, IRAM1, GRAM and ERAM are. I have seen reference to IRAM being CPU Instruction RAM, but not so sure that is what it is here.
Status + FX A --> MIDI Update
Status + FX B --> Zip Update
Status + FX C --> Develop Monitor
Status + FX D --> Diagnostic Mode<< EMERGENCY >>
SYSTEM is BROKEN !
Please consult quali -
fied Roland Service.February 23rd, 2024, 9:24
February 23rd, 2024, 15:37
February 27th, 2024, 1:53
February 28th, 2024, 7:27
February 29th, 2024, 12:16
February 29th, 2024, 12:24
February 29th, 2024, 12:28
HaQue wrote:
as for disassembly, specify Hitachi H8S advanced, and H8S/2215R. Closest I go to the actual CPU.
the following seemed to work for a dodgy memory map.
March 15th, 2024, 3:31
March 31st, 2024, 16:24
December 29th, 2024, 21:57
December 29th, 2024, 22:09
grounder314 wrote:From the creators of SCSI2SD and ZuluSCSI, looks like there 'may' finally be and alternative to the ZIP in the SP-808:
JUST RELEASED...
https://www.zuluide.com
https://github.com/rabbitholecomputing/ZuluIDE-firmware
ZuluIDE™ is a IDE computer storage emulation platform, where CD-ROM drive images are stored on a standard FAT32 or exFAT-formatted SD card. SDXC cards of up to 512GB are supported.
Features
Emulates IDE/ATAPI CD-ROM drives of any size.
Emulates ZIP100 ATAPI removable media.
Open-source firmware, licensed under the GPLv3
ROM:00171ABB aSelf: .ascii "SELF"<0>
ROM:00171AC0 aZip_0: .ascii "ZIP "<0>
ROM:00171AC5 aHd: .ascii "HD "<0>
ROM:00171ACA aCd: .ascii "CD "<0>
ROM:00171ACF byte_171ACF: .byte 0x2D ; DATA XREF: sub_10617A+112↑r
ROM:00171AD0 aSzhc: .ascii "SZHC" ; 06 00 00 00 00 00 00 // Command entry 1
ROM:00171AD0 ; 06 1B 00 00 00 00 00 // START/STOP UNIT
ROM:00171AD0 ; 06 1E 00 00 00 00 00 // PREVENT/ALLOW MEDIA REMOVAL
ROM:00171AD0 ; 06 03 00 00 00 00 00 // REQUEST SENSE
ROM:00171AD4 word_171AD4: .word 0x600 ; DATA XREF: sub_12AA72:loc_12AAB0↑o
ROM:00171AD6 .word 0
ROM:00171AD8 .word 0
ROM:00171ADA word_171ADA: .word 6 ; DATA XREF: sub_12AAF2+30↑o
ROM:00171ADA ; sub_12AB76+4A↑o
ROM:00171ADC .byte 0x1B
ROM:00171ADD .byte 0
ROM:00171ADE .byte 0
ROM:00171ADF .byte 0
ROM:00171AE0 .byte 0
ROM:00171AE1 .byte 0
ROM:00171AE2 byte_171AE2: .byte 6 ; DATA XREF: sub_12AC0E+4E↑o
ROM:00171AE3 .byte 0x1E
ROM:00171AE4 .byte 0
ROM:00171AE5 .byte 0
ROM:00171AE6 .byte 0
ROM:00171AE7 .byte 0
ROM:00171AE8 .byte 0
ROM:00171AE9 byte_171AE9: .byte 6 ; DATA XREF: sub_12ACB0+4A↑o
ROM:00171AEA .byte 3
ROM:00171AEB .byte 0
ROM:00171AEC .byte 0
ROM:00171AED .byte 0
ROM:00171AEE .byte 0
ROM:00171AEF .byte 0
ROM:00171AF0 aIomega: .ascii "IOMEGA "<0> ; DATA XREF: sub_12AE88+130↑o
ROM:00171AF9 aIomega_0: .ascii "iomega "<0> ; DATA XREF: sub_12AE88+148↑o
ROM:00171B02 aZip: .ascii "ZIP"<0> ; DATA XREF: sub_12AE88+166↑o
ROM:00171B06 byte_171B06: .byte 6 ; DATA XREF: sub_12AE88+6E↑o
ROM:00171B07 .byte 0x12 ; ATAPI 06 12 00 00 00 00 00 // INQUIRYDecember 30th, 2024, 13:24
sub_12E8E0+11A ; ---------------------------------------------------------------------------
sub_12E8E0+11A
sub_12E8E0+11A loc_12E9FA: ; CODE XREF: sub_12E8E0+106↑j
sub_12E8E0+11A sub.w e5, e5 ; Subtract binary
sub_12E8E0+11C
sub_12E8E0+11C loc_12E9FC: ; CODE XREF: sub_12E8E0+E2↑j
sub_12E8E0+11C ; sub_12E8E0+112↑j
sub_12E8E0+11C mov.w e5, e5 ; Move data
sub_12E8E0+11E bne loc_12E9C4:8 ; Branch if not equal
sub_12E8E0+120 mov.b r5l, r0l ; Move data
sub_12E8E0+122 extu.w r0 ; Extend as unsigned
sub_12E8E0+124 extu.l er0 ; Extend as unsigned
sub_12E8E0+126 mov.b @(1:16,er6), r1l ; Move data
sub_12E8E0+12A and.b #0x80, r1l ; Logical AND
sub_12E8E0+12C mov.b @er6, r2l ; Move data
sub_12E8E0+12E and.b #0x7F, r2l ; Logical AND
sub_12E8E0+130 or.b r2l, r1l ; Logical OR
sub_12E8E0+132 mov.b r1l, @(0x41E864:32,er0) ; Move data
sub_12E8E0+13A mov.l #8, er0 ; Move data
sub_12E8E0+140 push.l er0 ; Push data on stack
sub_12E8E0+144 mov.l #aIomega, er1 ; Move data
sub_12E8E0+14A mov.l er6, er0 ; Move data
sub_12E8E0+14C adds #4, er0 ; Add with sign extension
sub_12E8E0+14E adds #4, er0 ; Add with sign extension
sub_12E8E0+150 jsr unk_400228:24 ; Jump to subroutine
sub_12E8E0+154 adds #4, sp ; Add with sign extension
sub_12E8E0+156 mov.b r0l, r0l ; Move data
sub_12E8E0+158 bne loc_12EA5C:8 ; Branch if not equal
sub_12E8E0+15A mov.l #8, er0 ; Move data
sub_12E8E0+160 push.l er0 ; Push data on stack
sub_12E8E0+164 mov.l #aIomega_0, er1 ; Move data
sub_12E8E0+16A mov.l er6, er0 ; Move data
sub_12E8E0+16C adds #4, er0 ; Add with sign extension
sub_12E8E0+16E adds #4, er0 ; Add with sign extension
sub_12E8E0+170 jsr unk_400228:24 ; Jump to subroutine
sub_12E8E0+174 adds #4, sp ; Add with sign extension
sub_12E8E0+176 mov.b r0l, r0l ; Move data
sub_12E8E0+178 beq loc_12EBB4:16 ; Branch if equal
sub_12E8E0+17C
sub_12E8E0+17C loc_12EA5C: ; CODE XREF: sub_12E8E0+158↑j
sub_12E8E0+17C mov.l #3, er0 ; Move data
sub_12E8E0+182 push.l er0 ; Push data on stack
sub_12E8E0+186 mov.l #aZip, er1 ; Move data
sub_12E8E0+18C mov.l er6, er0 ; Move data
sub_12E8E0+18E add.l #0x10, er0 ; Add binary
sub_12E8E0+194 jsr unk_400228:24 ; Jump to subroutine
sub_12E8E0+198 adds #4, sp ; Add with sign extension
sub_12E8E0+19A cmp.b #1, r0l ; Compare
sub_12E8E0+19C bne loc_12EAA4:8 ; Branch if not equal
sub_12E8E0+19E mov.b r5l, r0l ; Move data
sub_12E8E0+1A0 extu.w r0 ; Extend as unsigned
sub_12E8E0+1A2 extu.l er0 ; Extend as unsigned
sub_12E8E0+1A4 mov.b #1, r1l ; Move data
sub_12E8E0+1A6 mov.b r1l, @(0x41E8AC:32,er0) ; Move data
sub_12E8E0+1AE mov.b r5l, r0l ; Move data
sub_12E8E0+1B0 bsr sub_12F40E:16 ; Branch to subroutine
sub_12E8E0+1B4 mov.b r5l, r0l ; Move data
sub_12E8E0+1B6 bsr sub_12F482:16 ; Branch to subroutine
sub_12E8E0+1BA mov.b r5l, r0l ; Move data
sub_12E8E0+1BC bsr sub_12F6B0:16 ; Branch to subroutine
sub_12E8E0+1C0 jmp loc_12EBB4:24 ; Jump
sub_12E8E0+1C4 ; ---------------------------------------------------------------------------
sub_12E8E0+1C4
mov.b r5l, r0l ; Get device ID/index
extu.w r0 ; Zero-extend to word
extu.l er0 ; Zero-extend to long
```
mov.b @(1:16,er6), r1l ; Get byte from er6+1
and.b #0x80, r1l ; Keep only bit 7
mov.b @er6, r2l ; Get byte from er6
and.b #0x7F, r2l ; Keep bits 0-6
or.b r2l, r1l ; Combine the bits
mov.b r1l, @(0x41E864:32,er0) ; Store to status array at 0x41E864+device_id
mov.l #8, er0 ; Length = 8
push.l er0 ; Push length
mov.l #aIomega, er1 ; "IOMEGA " string
mov.l er6, er0 ; Buffer pointer
adds #8, er0 ; Buffer+8
jsr unk_400228 ; Compare strings
mov.l #8, er0 ; Length = 8
push.l er0
mov.l #aIomega_0, er1 ; "iomega " string
mov.l er6, er0 ; Same buffer
adds #8, er0 ; Buffer+8
jsr unk_400228 ; Compare strings
mov.l #3, er0 ; Length = 3
push.l er0
mov.l #aZip, er1 ; "ZIP" string
mov.l er6, er0 ; Buffer pointer
add.l #0x10, er0 ; Buffer+16
jsr unk_400228 ; Compare strings
cmp.b #1, r0l ; Check result
bne loc_12EAA4 ; Skip if not ZIP
mov.b r5l, r0l ; Get device ID
mov.b #1, r1l ; Set flag = 1
mov.b r1l, @(0x41E8AC:32,er0) ; Store flag to array at 0x41E8AC+device_id
December 31st, 2024, 6:07
loc_12EB76:
mov.b r5l, r0l ; Get device ID
mov.b #2, r1l ; Status = 2
mov.b r1l, @(0x41E8AC:32,er0) ; Store status for device
mov.l @er4, er0 ; Get constructed value
cmp.l #0x951229, er0 ; Compare with 0x951229
bcs loc_12EBA2 ; Jump if less than
; If greater or equal:
mov.b #3, r1l ; Status = 3
mov.b r1l, @(0x41E8AC:32,er0) ; Store new status
mov.b r5l, r0l
bsr sub_12F40E ; Initialize something - guessing here, need to look.
bsr sub_12F54C ; More initialization?
bsr sub_12F646 ; Final initialization??
January 10th, 2025, 18:27
January 22nd, 2025, 16:09
January 31st, 2025, 3:45
January 31st, 2025, 5:50
Powered by phpBB © phpBB Group.