Craig Bower wrote: > Hi All, > > I'm trying to find out the start and end locations of any and all cassette > tape routines built into the //e ROM code. > > Reason? I want to reprogram these areas on my Applewin emulator to do > something else. As it's extremely unlikely I'll ever hook a cassette tape > player to my PC. > If you are interested in the monitor only, see the monitor Rom listing, although, if you have the enhanced IIe roms, most of the routines are in actually in the C500 page. The C500 space is not in the rom listing anywhere, but you can poke the intcxrom bytes and copy it down to main Ram from applesoft. The main monitor cassette port code is at FECD (write) and FEFD (read). And there is a 9 byte routine at FCC9 for writing some header. In the unenhanced IIe, the cassette routines are in the same spot as in the II+. For the Applesoft cassette routines; run, don't walk for the nearest copy of Beagle basic, which has complete replacement routines for all five of them. However, if you are working with an enhanced IIe, the relocation of SHLOAD to the C500 space messes up things a bit. And Scrldn doesn't work at all on an enhanced IIe. However, most of the routines can be relocted elsewhere with some minor tinkering. I'm doing the same basic thing you are, but burning the ROMS for my IIe. With my enhanced IIe, I have substituted SWAP for SHLOAD (by putting it down the C500 space just like SHLOAD was.) I've got ELSE in place of LOAD (only problem was changing the token identifier), TONE in place of SAVE, REPEAT in place of RECALL, and UNTIL in place of STORE (and overflowing into the never used HFIND at F5CB). Repeat and Until are from an article in Apple Assembly Line. This part is all done and tested out. I had also put HSCRN in place of WAIT, but decided WAIT was more useful. I am debating scrapping SPEED and vectoring it to HSCRN down in the C500 space by way of F777, which is the enhanced IIe way to TAPEPNT. I may also trash HIMEM for something useful, since I use mostly PRODOS and using HIMEM with PRODOS running is asking for trouble. Between the two entries at SHLOAD, and the read and write entries in the monitor, there are four ways down to the C500 area, so the potential is there. The only thing you can't do from the C500 space is talk to a slot. And you have to remember to get the slots turned on after you exit and before you JMP or RTS somewhere else. So watch for commands that JMP NEWSTT, and don't put them there, or at least not their ends. Note that other excitement is possible too. If you can live without lowercase support from Applesoft, you could take the II+ version, and write it together with the enhanced IIe monitor, and use Beagle Basic pretty much as is (except SCRLDN, which won't work.) If you are willing to loose a half done implementation of double low res graphics, you could put the either the enhanced IIe applesoft (with new commands) in place of the IIc applesoft, and you would lose only the SWAP command. (Anything that could fit inside the D000 to F7FF space of Applesoft would still work.) I think you could also put this self contained applesoft into a GS as well. I don't know enough about GS Roms to say, but If I find the pinout of that odd ROM, I should be able to replace it with either a 128K 32 pin eprom and adapter, or two 64L 28 pin eproms and adapter. Then I could have the new Applesoft there as well. It might be easier to find a book on AC Basic or some other Basic that will run on an older version of P-16, so that everything will fit on a single floppy (which is the problem with a couple of other Basics for the GS (System 6 only.) ROM hacking stretches my limited hacking skills to their limits. I'm trying to put the IIc 65C02 disassembler into the IIe. Almost made it, last time, and I think I found the problem. Just need to find time to try again. If I can't get it to work, I may use the IIe debug rom image (which has a 65C02 dissassembler, and other goodies) add in the self contained Applesoft described above, and go with that. Hope this helps. Mike "mspangler" writes: >I'm doing the same basic thing you are, but burning the ROMS for my >IIe. With my enhanced IIe, I have substituted SWAP for SHLOAD (by >putting it down the C500 space just like SHLOAD was.) I've got ELSE in >place of LOAD (only problem was changing the token identifier), TONE in >place of SAVE, REPEAT in place of RECALL, and UNTIL in place of STORE >(and overflowing into the never used HFIND at F5CB). Repeat and Until >are from an article in Apple Assembly Line. Interesting. My idea for enhancing the ROMs on an Apple IIe is to do the same thing as Apple did with later ROMs in the IIc - replace the ROM with double capacity ROM (2x 2764 -> 2x 27128 for the beige IIe, 1x 27128 -> 27256 for the platinum IIe) and use the cassette output from the IOU (pin 7) to select between the two banks. With appropriate code in both banks, the cassette routines can still function. This will add at least 12KB of code space which should allow some interesting additions... The tricky bit is that the interrupt handler has to save the machine state and all 8 bits are in use: $44 memory state bit 7 = 1 if ALTZP set bit 6 = 1 if 80STORE & PAGE2 bit 5 = 1 if aux RAM read bit 4 = 1 if aux RAM write bit 3 = 1 if banked RAM read bit 2 = 1 if D000 page 1 and RAMREAD bit 1 = 1 if D000 page 2 and RAMREAD bit 0 = 1 if internal Cs ROM enabled (IIe) if alt ROM bank enabled (IIc) I think I can use the spare bit 5 of the P (status register) stored on the stack. -- David Wilson School of IT & CS, Uni of Wollongong, Australia mspangler wrote: > This part is all done and tested out. I had also put HSCRN in place of > WAIT, but decided WAIT was more useful. Really? I have never seen a good use for WAIT that couldn't be programmed in one line of Applesoft if actually needed. HSCRN (which I assume reads the Hi-Res screen) is much more useful, though I generally do it with a one-dot shape table and an XDRAW AT, followed by an examination of the collision counter. If tucked away in a GOSUB routine and not used so frequently that performance becomes an issue, it is compact and effective. -michael New Applesoft BASIC interface for NadaNet networking! Home page: http://members.aol.com/MJMahon/