Using the built in ROM monitor of the S-50
By modifying the system disk I brought the s-50 to dump its EPROM
contents to midi.
Analyzing the ROM I found a feature that might be useful
for experiments, the ROM monitor.
To get into the monitor keep the '0' key pressed when switching
the s-50 on. There wont be any picture on the video monitor and
the display in the sampler will show only some dim letters.
Now you need a terminal connected via midi to the s-50.
The monitor does not echo the input and accepts the commands
only in uppercase letters. All parameters are 16bit words as
four hex digits and no blanks are allowed between commands and
parameters.
Commands:
- '/'
- prints a slash and returns to main loop
- M
- prints the version of the monitor
- R addr count
- dump the next count bytes starting at addr
- W addr count
- read count bytes from terminal and store to addr
- I addr count
- fill memory at addr with count bytes of byte
- B
- G addr word
- jump to address addr with Register $1e loaded with word.
This command doesnt return to the monitor unless you jump to an self written
routine and set word to the monitor main loop address (013f).
Example: G20800000
Jumps to the reset address of the 8096. This leaves the monitor
and the sampler starts again.
Another alternative to leave the monitor is:
G02D40000
At 02D4 there is an rst command that forces the 8096 to reset
the peripheral chips to. The same as at power on.
If you have no terminal at hand that can be used with the midi port
there is a very simple program in Omikron Basic for the ATARI ST.
REPEAT
A$= INKEY$
IF A$<>"" THEN
A$= CHR$( CVIL(A$) AND 255)
PRINT A$;
Midiout( ASC(A$))
ENDIF
IF FN Midistat%L<>0 THEN
B$= CHR$(FN Midiin%L)
PRINT B$;
ENDIF
UNTIL A$= CHR$(27)
END
DEF FN Midistat%L
BIOS (R%L,1,3)
RETURN R%L
DEF FN Midiin%L
REPEAT
BIOS (R%L,1,3)
UNTIL R%L<>0
BIOS (R%L,2,3)
RETURN R%L AND 255
DEF PROC Midiout(B%)
BIOS (,3,3,B%)
RETURN
Happy hacking!