[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ADTpro protocol for sending VSDRIVE and BASIC over serial



On Wednesday, June 12, 2013 12:18:28 AM UTC-5, BLuRry wrote:
> 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

that will be handy pretty soon,  but these are not basic programs, its the bootstrap process from ADT pro