Jump to content

CurtisP's Photo


Member Since 29 Mar 2007
OFFLINE Last Active Nov 21 2018 8:16 PM

#4162224 Minikernel - Player Scores

Posted by CurtisP on Wed Nov 21, 2018 8:18 PM

I like the use of the minikernal to display dice, and I'm rather pleased that this little project I did years ago is being updated and still in use.

#4092923 C02 Compiler

Posted by CurtisP on Thu Aug 16, 2018 3:03 PM

I added some more #pragma directives to the compiler, rambase and writebas, which specify the base address for reading and writing variables in RAM, to allow doe Superchip RAM and CBS RAM+.


There's also a #pragma zeropage deircetive and a zeropage type modifier, which allows setting a base address in zero page and declaration of zero page variables.


In addition, variables declared const are specifically allocated in ROM.

#4007546 Got my first IIe ....

Posted by CurtisP on Sat Apr 14, 2018 10:23 AM

I agree, this is almost certainly a security dongle.

#3993696 Tribute to Adventure / Ready Player One

Posted by CurtisP on Sun Mar 25, 2018 5:59 PM

I downloaded the binary and put it on my Atari Flashback Portable.

#3991443 GEOS

Posted by CurtisP on Thu Mar 22, 2018 3:10 PM

GEOS was really only usable with two floppy drives and a mouse, but once you had those, it was quite nice.

#3979831 Space Raid source code

Posted by CurtisP on Wed Mar 7, 2018 11:58 AM

The only caveat is that all comments are in Spanish. Being my first Atari game never thought in writing commments in English, maybe someday I'll translate them.


The comments are easy enough to translate. I am impressed by how detailed the comments are. 

#3971953 Need some help with dasm include enhancement

Posted by CurtisP on Sun Feb 25, 2018 12:09 PM

You can mix & match menu, game and score kernels so the location of things will move around in 6507 BIN. Sure I could prebuild each combination, at the moment I have plans for 2 menu, 3 game kernels and 3 score kernels so would need to pre-build 18 BIN for inclusion by the C code, but that quickly becomes large as new choices are added.  A new score option was suggested by kdgarris, which would bump that up to 24 pre-built BINs.  Add a new menu option after that and we're at 36.

To complicate the above, I'm working on having it push the free space to the front of the 6507 code, so if the choices result in 3K of 6507 code an extra 1K will be available in the C code space.

Additionally, letting dasm build from source means easier debugging via Stella, it'll pick up the symbol file and show my labels rather than like LF093.


I agree that it's easier to just let the assembler do all the work of locating the included code. You also don't have to deal wiith linking of object code. I wanted the same simplicity in C02 (http://atariage.com/...4-c02-compiler/) but rather than using dasm's include functionality, the compiler copies the include file contents directly into the asm file that is generated.

#3966955 Atari Flashback Portable question

Posted by CurtisP on Mon Feb 19, 2018 3:55 PM

What file system was the Kodak 256MB card formatted with (FAT16, FAT32, etc...)?

#3961129 data statement?

Posted by CurtisP on Mon Feb 12, 2018 8:39 PM

It would be nice if any commands that use temp variables had them listed next to them on the bB page so we would know how far down the list (6, 5, 4, 3, 2, 1) we can go with our own use of temp variables when using a certain command. If we're using a command that uses temp1 and temp2, we'd know it's safe to use temp6, temp5, temp4, and temp3, then use them the way you mentioned above.


I did this in the documentation for the standard libraries in C02 (http://atariage.com/...4-c02-compiler/). 


It may not be too hard to figure this out for batari Basic.

#3961090 Minikernel - Player Scores

Posted by CurtisP on Mon Feb 12, 2018 7:54 PM


Can you combine this with a healthbar on one side? (say left and score on the right?)


Without reviewing the code, I'm guessing that a healthbar would have to use an asymmetric playfield. There may not be enough free RAM to implement it, though.


Edit: I can't do two scores and a healthbar, but it should be possible to write a minikernel that does one two-digit score and a healthbar.

#3961087 Minikernel - Player Scores

Posted by CurtisP on Mon Feb 12, 2018 7:52 PM

Seems like most people who know how to do anything have either disappeared or are too busy because of demanding jobs.


Both of those describe me. I also tend to jump between interests. In fact, I don't even remember writing this minikernel. Of course it has been over 10 years.

#3961083 One long sprite made up of all the pixels

Posted by CurtisP on Mon Feb 12, 2018 7:47 PM

Awesome!  I didn't know that adding to playerXheight would copy any rows like that.  That could be a handy trick.  Did you still have to define the colors of the rows that weren't yet in existence, presumably?


There isn't any copying of rows happening. All that changing playerXheight does is make the player taller ot shorter. 


The reason the player is solid pixels is because settng player1pointerlo to 1 and player1pointerhi to 255 makes the player data point to location 65280 ($FF00) which is at the end of the catridge ROM and the compile just happens to fill unused space with 255's ($FF). If the compiled code ever exceeds 3,584 bytes, then you will the player will contain apparently random patterns.


As for the colors, I'm assuming that the example posted used the single-color player option. If multi-color were enabled, the all the lines of the player would be color $FF, or white.



#3957131 p0 on same scanline as m0, nudges it up or down slightly.

Posted by CurtisP on Thu Feb 8, 2018 7:50 PM

I highly advise reading through the Collect tutorial, then looking at some other kernels. It will keep you from reinventing the wheel.

#3953133 Games over 4K

Posted by CurtisP on Sun Feb 4, 2018 1:23 PM


Or a PLD (Programmable Logic Device), such as a 22V10, that contains the bankswitching logic and can be programmed to support a variety of bankswitching methods. 



In other words, flash a Melody board and call it a day? 

#3952695 Games over 4K

Posted by CurtisP on Sat Feb 3, 2018 9:23 PM

So I'm curious how this works..  Is there a little bit of extra hardware in the cartridge that "listens" in on those addresses and then directs the bus to a bank?  Perhaps a simple set of transistors turned high by the read? (I'm not an electronics whiz)


There is extra hardware in the cart. A flip flop and some NAND gates to drive it. See this thread http://atariage.com/...nkswitching-f8/


Edit: This is how it would have been done back in the day. See below for how it's done now.