Codebreaker re-released with fixes for MESS and *real* Apple-1s with noncontiguous memory.

5 replies [Last post]
Offline
Joined: Sep 13 2011
Posts: 17

WAVs, monitor, source, etc...: http://asciiexpress.net/files/codebreaker.zip

There was a bug that did not show up with OpenEmulator or POM1, but did with MESS and Mimeo. I do not recall why I did this, but my putchar code ORA $80 before outputting the character. After removing that Corey Cohen confirmed that it now works for Mimeo. I also tested with MESS and OpenEmulator.

I had to create two versions of this game. One for Replica-1 (because of the R/O E000) and one for everything else.

Changelog:

* 8k version that uses 0000-0FFF and E000-EFFF
* 8k version that uses 0000-1FFF for Replica-1
* Tested on OpenEmulator, MESS, and an Apple-1 Mimeo clone (Thanks Corey Cohen!)
* WAV files recreated with 10 sec leader and 48KHz sample rate. Tested with Mimeo (Corey), OpenEmulator, and MESS.

README:

Use the 4+4k version for Apple-1s, clones, emulators, etc... with
4K at 0000-0FFF and 4K at E000-EFFF where E000 is R/W.

Load/run with:

C100R
280.BFFR E000.EFFFR
280R

NOTE: if E000 is R/O (e.g. Replica-1) then use the 8k version.

Use the 8k version for Apple-1s, clones, emulations, etc... with
8K at 0000-1FFF.

Load/run with:

C100R
280.1AFFR
280R

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Offline
Joined: Sep 3 2005
Posts: 93
Re: Codebreaker re-released with fixes for MESS and *real* ...

Great stuff.
I will add the both new versions to the 'Ultimate Apple 1 software collection' and remove the old version.

I do have a question with regards to saving on CFFA1. For the 4+4k version, should I save it in two parts (part A and B), so these parts will need to be loaded back separately?

Because of file naming limitations on the CFFA1 I will probably have to name them something like this:

CODEBREAK.REP
CODEBREAK.A
CODEBREAK.B

Cheers
Philip

Offline
Joined: Sep 3 2005
Posts: 93
Re: Codebreaker re-released with fixes for MESS and *real* ...

To answer my own question. Yes, it is possible to load a multi part program from CFFA1.

First thing I did was to save the first part that uses 0000-0FFF, then I saved the second part that uses E000-EFFF.
when I tried to load the parts back in that order it did not work at all. After trying a few time unsuccessfully I suddenly thought I should try loading them in reverse order as maybe loading the E000-EFFF part last was somehow wiping the previously loaded lower memory addresses. Wether my reasoning was correct or not, it seemed to work!

So I now have the following added to the CFFA1 image:

CODEBREAKER.REP (Replica 1 version)

CODEBREAKER.PT1 (E000-EFFF)
CODEBREAKER.PT2 (0000-0FFF)

Both the Replica 1 version and the multi load version are launched by 280R

I'll upload the latest .po file to to my iDisk sometime today. The version number will be updated to 2.6 to reflect the changes.

***EDIT: After powering down the emulator and powering it up some time later I can not seem to get the multipart version of codebreaker to load/run anymore. Strange.
*** EDIT2: Problem seems to be fixed now.

Offline
Joined: Sep 13 2011
Posts: 17
Re: Codebreaker re-released with fixes for MESS and *real* ...

nama_chari wrote:

***EDIT: After powering down the emulator and powering it up some time later I can not seem to get the multipart version of codebreaker to load/run anymore. Strange.

What format should .PT1 and .PT2 be? Are they binary or monitor listing? Thanks. Also the 000-FFF part should be loaded at 280, not 000.

Offline
Joined: Sep 3 2005
Posts: 93
Re: Codebreaker re-released with fixes for MESS and *real* ...

The problem was that I miscounted the length by one byte when saving. It seems to work fine now.

PT1 and PT2 are save as the default BIN format on the CFFA1.

Phil

P.S. yes, it was very easy to see that the code starts at 280

Offline
Joined: Sep 13 2011
Posts: 17
Re: Codebreaker re-released with fixes for MESS and *real* ...

Excellent. BTW I update the .zip file to include a .po file that can be used with OpenEmulator CFFA emulation. I stored the files as:

CODEBREAKER
CODEBREAKER.HI
CODEBREAKER.LO

I also observed that .HI must be loaded before .LO. I should probably rename to PT1 and PT2.

I also stored the correct starting addresses for each file.

I'd never used the CFFA emulation in OE before. Very handy. I updated my build script (I should really have created a Makefile) to create the .po automatically.

Thanks for testing.