[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ADTpro protocol for sending VSDRIVE and BASIC over serial
On Tuesday, June 11, 2013 11:40:57 PM UTC-5, osgeld wrote:
> Java and I dont get along to well so I cant seem to pin it down in the source code, but for example speedy boot prodos...
>
>
>
> Apple Sends 0xB2 (2)
>
> I send back 0x50 (P)
>
> one byte containing the LSB of the filesize
>
> one byte containing the MSB of the filesize
>
> prodos file one byte at a time and it goes well
>
>
>
>
>
> I have tried many things and keep locking on sending the VSDRIVE driver, and I have not gotten to basic yet but will need it as well
>
>
>
> So Mr David can you fill me in on these 2 protocol's please?
>
>
>
> Thank you very much in advance!
I cannot tell you about the protocol, but I can tell you how to load a basic program in raw and run it -- I had to solve this for Apple Game Server years ago...
-------------------------------------
/**
* Address of routine to run the current basic program
*/
public static final int BASIC_RUN = 0x00d566;
/**
* Basic program starting address pointer
*/
public static final int BASIC_PTR_START = 0x0067;
/**
* Basic variable LOMEM variable pointer
*/
public static final int BASIC_PTR_LOMEM = 0x0069;
/**
* Basic variable HIMEM variable pointer
*/
public static final int BASIC_PTR_HIMEM = 0x0073;
/**
* Basic program ending address pointer
*/
public static final int BASIC_PTR_END = 0x00AF;
int length = loadGame(game);
// Set start address of basic program
storeMemory(0xD8, 0x00); // Reset onErr flag
storeMemory(toInt(game.getStart()) - 1, 0);
storeMemory(BASIC_PTR_START, DataUtil.getWord(toInt(game.getStart())));
storeMemory(BASIC_PTR_END, DataUtil.getWord(toInt(game.getStart() + length)));
storeMemory(BASIC_PTR_LOMEM, DataUtil.getWord(toInt(game.getStart() + length)));
storeMemory(BASIC_PTR_HIMEM, DataUtil.getWord(0x00BEFF));
// Now execute it!
jmp(BASIC_RUN, false);
-------------------------------------
-B