exxos wrote: Sun Oct 14, 2018 6:23 pm
Isn't that the pattern used by TOS when trying to size RAM ?
I was actually reading through the TOS code before to see if it was

The below code could possibly do it, although it's not an exact 40 byte pattern. However, at this point screen memory is at $10000 and there's no way I can see for this code to overwrite that address.
Code: Select all
/*
* We now need to size the actual memory present. We test memory,
* starting at 128K and increasing by 128K each time. For each area of
* memory, we start at the current address, and work downwards, storing
* a series of values; we then verify that the values have been stored
* correctly. An invalid value (or a bus error when we try to access a
* memory location) causes us to stop and size the memory accordingly.
*/
lea.l $00008000,a7
movea.l (_buserror).w,a4
lea.l st_ramsize_done(pc),a0 /* bus error means end of ram */
move.l a0,(_buserror).w
move.w #$FB55,d3 /* d3.w = difference between adjacent stored values */
move.l #$00020000,d7 /* d7 = address of first memory test zone & gap between memory test zones */
movea.l d7,a0 /* a0 = address of current test zone */
next_zone:
movea.l a0,a1 /* a1 -> memory being tested */
move.w d0,d2 /* d2.w = test value */
moveq.l #42,d1 /* d1.w = loop count-1 */
store_mem:
move.w d2,-(a1) /* store a value */
add.w d3,d2 /* update the value for next time */
dbf d1,store_mem /* rinse & repeat */
/* now check the values we stored */
movea.l a0,a1 /* a1 -> test area */
moveq.l #42,d1 /* loop count */
check_mem:
cmp.w -(a1),d0
bne.s st_ramsize_done /* miscompare, ram invalid, exit */
clr.w (a1) /* else zero it out */
add.w d3,d0 /* update for next compare */
dbf d1,check_mem /* until we're done */
adda.l d7,a0 /* point to next test area */
bra.s next_zone
st_ramsize_done: /* bus error or bad ram */
suba.l d7,a0 /* (a0 -> first zone that failed) */
move.l a0,d5 /* d5 = st ram size */
move.l a4,(_buserror).w
frank.lukas wrote: Sun Oct 14, 2018 5:50 pm
test cartridge + null modem cable (9600Baud8N1)
Yeah I must confess I don't think I have a serial cable ... :/