tonma Posted April 11 Share Posted April 11 Hi. It's the very first time I code a game on Atari 8-bit computer. I have my 800 xl 40 years ago and it's time to work on it. I begun 2 weeks ago reading book and testing the hardware. I played MazezaM on supernes and thought it'll be a good game for testing. I found hirudov web site and don't saw any atari version. I just saw an already done version here on atariage by XXL. So I apologize for this second version. But As I have finish it, I post it. The main purpose of this development was to understand the hardware and watch how many data I can put in the original atari 400 8ko Ram version. Before making a more comlex game. I still have free memory on the Player/Missile ram. Nearly $475 octets. The game have simple sound fx when you move a crate. 42 levels with name. 100% asm. Press START to begin and "r" in game to restart level. mazezam_atari8bit.zip 15 2 Quote Link to comment Share on other sites More sharing options...
xxl Posted April 11 Share Posted April 11 great version - congratulations 🙂 1 1 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 11 Share Posted April 11 Crashes a 130XE with U1M installed with or without using the "X" command Quote Link to comment Share on other sites More sharing options...
+DjayBee Posted April 11 Share Posted April 11 4 minutes ago, TGB1718 said: Crashes a 130XE with U1M installed with or without using the "X" command This is the legacy of XXL. 🤪 2 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 11 Share Posted April 11 (edited) 16 minutes ago, DjayBee said: This is the legacy of XXL. 🤪 Maybe , also tried booting a SDX3.3 disk with it on and it crashes just the same. Ok, figured it out as I suspected, won't run with any DOS:- See the program segments below, will have to try it from the SIDE 3 loader, just a pain getting it on there D4:MAZEZAM.XEX Select Output Device Screen, Printer or Disk Segment 1: Load:0600 End:0BF6 Size:05F7 Segment 2: Load:0C00 End:0CCC Size:00CD Segment 3: Load:1000 End:106F Size:0070 Segment 4: Load:1BC0 End:1FE6 Size:0427 Segment 5: Load:0CCD End:0FD1 Size:0305 ****** COMPLETE ****** Press Return to Continue EDIT: put it in a SIDE3 and tried loading directly from the loader menu, still crashes, I set the system to OSB stock memory and OS XL/XE stock memory, still crashes Edited April 11 by TGB1718 Quote Link to comment Share on other sites More sharing options...
tonma Posted April 11 Author Share Posted April 11 (edited) Yeah sure. I never use DOS nor test with it. The only part I use ingame is the Cassette/Tape Buffer at $400 for decompressing the levels. Thanks for the test, i'll debug it to understand that. Segment 1: Load:0600 End:0BF6 Size:05F7 Main Code Segment 2: Load:0C00 End:0CCC Size:00CD Display List Segment 3: Load:1000 End:106F Size:0070 Character Set Segment 4: Load:1BC0 End:1FE6 Size:0427 Data part 1 Segment 5: Load:0CCD End:0FD1 Size:0305 Data part 2 Edited April 11 by tonma Quote Link to comment Share on other sites More sharing options...
+DjayBee Posted April 11 Share Posted April 11 Does 8ko mean that your program has only 8KB or that you will use only 8KB of the machine, meaning addresses from $0000-$1FFF only? This makes for a very big difference. Quote Link to comment Share on other sites More sharing options...
pps Posted April 11 Share Posted April 11 1 hour ago, tonma said: Yeah sure. I never use DOS nor test with it. The only part I use ingame is the Cassette/Tape Buffer at $400 for decompressing the levels. Thanks for the test, i'll debug it to understand that. Segment 1: Load:0600 End:0BF6 Size:05F7 Main Code Segment 2: Load:0C00 End:0CCC Size:00CD Display List Segment 3: Load:1000 End:106F Size:0070 Character Set Segment 4: Load:1BC0 End:1FE6 Size:0427 Data part 1 Segment 5: Load:0CCD End:0FD1 Size:0305 Data part 2 You will crash almost every DOS and even GameDOS using that memory locations. Page 6 is OK, and for "standard" DOS compatibility better don't use anything till $2000 then with blocks, that have to be loaded. Quote Link to comment Share on other sites More sharing options...
tonma Posted April 11 Author Share Posted April 11 42 minutes ago, DjayBee said: Does 8ko mean that your program has only 8KB or that you will use only 8KB of the machine, meaning addresses from $0000-$1FFF only? This makes for a very big difference. Yep. I want to target the original Atari 400 with only 8ko of ram ($000-$1FFF). I forgot to put it in the name of the post, but I explain it later "original atari 400 8ko Ram version" 3 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted April 11 Share Posted April 11 Have a go with running it through exomizer to produce a single part loader @ $2000 which is fine for most DOS's. e.g. exomizer sfx $600 -n -t 168 -Di_table_addr=$500 -Di_load_addr=$2000 -o mazeam_exomizer.xex mazezam.xex mazeam_exomizer.xex 2 Quote Link to comment Share on other sites More sharing options...
+DjayBee Posted April 11 Share Posted April 11 12 minutes ago, tonma said: Yep. I want to target the original Atari 400 with only 8ko of ram ($000-$1FFF). I forgot to put it in the name of the post, but I explain it later "original atari 400 8ko Ram version" Then you have to do it your current way and forget about using a DOS because as Wrathchild just wrote: Loading something with/from DOS requires more or less to start at $2000. To make it run on real hardware you need to create a boot medium which does not need any DOS but reads raw disk sectors or tape blocks. The Atari's OS out of the box supports nearly any starting address and can load one continguous block of data by itself. In your case this would be $0600-$1FE6. 1 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted April 11 Share Posted April 11 This is also true of XEX loaders used in most cart devices, SIDE Loader etc. These tend to load the XEX loader bootstrap to $700 and so writing over that area during the loading is going to crash things. 1 Quote Link to comment Share on other sites More sharing options...
tonma Posted April 11 Author Share Posted April 11 26 minutes ago, Wrathchild said: Have a go with running it through exomizer to produce a single part loader @ $2000 which is fine for most DOS's. e.g. exomizer sfx $600 -n -t 168 -Di_table_addr=$500 -Di_load_addr=$2000 -o mazeam_exomizer.xex mazezam.xex mazeam_exomizer.xex 2.87 kB · 0 downloads Thanks so much Quote Link to comment Share on other sites More sharing options...
xxl Posted April 11 Share Posted April 11 (edited) 2 hours ago, DjayBee said: Loading something with/from DOS requires more or less to start at $2000. this is not entirely true - you can create a substitute for DOS, e.g. xBootDOS in the first version had a MEMLO of $700 (the sector buffer was under $600) I think that with a bit of will you can fit xBootDOS below $600. 2 hours ago, tonma said: I want to target the original Atari 400 with only 8ko of ram ($000-$1FFF). I have solution: Boot Loaders with ZX0 decompression on the fly and work with memlo for less than $600 (I have an analogous loader with ZX0 decompressor on the fly for a tape recorder and it takes 2 records) If you are interested in such a solution, I will dig out the old project. ==== I like the idea of writing a game for Atari with 8KB RAM more and more Edited April 11 by xxl 1 2 Quote Link to comment Share on other sites More sharing options...
ascrnet Posted April 11 Share Posted April 11 First of all congratulations 🎉, it is a great achievement to make such a nice game using few resources and in assembly language. 🤩 Secondly tell us more what assembler you used, support program, etc... also interesting series that in the future you publish the source code on github for example to encourage people to develop. 😉 1 1 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 12 Share Posted April 12 (edited) As I couldn't find a way to load and run this program, I converted it into a boot disk (attached) using BUG/65 The program runs fine this way mazezam.atr Edited April 12 by TGB1718 1 1 Quote Link to comment Share on other sites More sharing options...
baktra Posted April 12 Share Posted April 12 Two tips: 1. Consider starting the game not only by pressing the START key, but also by pressing a joystick button. 2. After some time, the ATRACT mode is activated, even though one is actively playing the game. Consider resetting the ATRACT register after each detected joystick input. 1 1 Quote Link to comment Share on other sites More sharing options...
tonma Posted April 12 Author Share Posted April 12 (edited) 23 hours ago, xxl said: I have solution: Boot Loaders with ZX0 decompression on the fly and work with memlo for less than $600 (I have an analogous loader with ZX0 decompressor on the fly for a tape recorder and it takes 2 records) If you are interested in such a solution, I will dig out the old project. It's interesting. But don't dig for now. I don't have tape anymore to test. The main problem here for the dos as I understand, is that we need dos to run drivers of sd reader via sio. For computer with 16ko at least, I can change my addresses above $2000 and make an xex for it. And if we can use sd card on 400 with 8ko ram + dos, do we have enough space ? 23 hours ago, xxl said: I like the idea of writing a game for Atari with 8KB RAM more and more Yep. It's always fun to code with limits. I rewrote lot of my code again and again to reduce with more clever. But i can certainly reduce it a lot more. Edited April 12 by tonma Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted April 12 Share Posted April 12 2 minutes ago, tonma said: And if we can use sc card on 400 with 8ko ram + dos, do we have enough space ? No, DOS will take too much memory in an 8K system, your code just will not fit. The only solution(s) for an 8K machine is a boot disk like I posted as it doesn't require any DOS or a Cassette boot using the same method 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted April 12 Share Posted April 12 4 minutes ago, tonma said: And if we can use sc card on 400 with 8ko ram + dos, do we have enough space ? Don't rule out using an 8K ROM, any self-modifying code and DATA / SCREEN RAM can be located in low memory but most code will happily run from ROM. The vast majority of users these days will have a device that can run a ROM image 1 1 Quote Link to comment Share on other sites More sharing options...
tonma Posted April 12 Author Share Posted April 12 17 hours ago, ascrnet said: First of all congratulations 🎉, it is a great achievement to make such a nice game using few resources and in assembly language. 🤩 Secondly tell us more what assembler you used, support program, etc... also interesting series that in the future you publish the source code on github for example to encourage people to develop. 😉 Thanks. I use Mads with a simple notepad for the code and the grafix. I'll certainly make my own tool for converting gfx later. For the Github, it's a good idea but I need to change all comments in english and clean a little 😅. There's a lot of tests inside, note sure it's a good code for learning. 1 Quote Link to comment Share on other sites More sharing options...
tonma Posted April 12 Author Share Posted April 12 41 minutes ago, TGB1718 said: As I couldn't find a way to load and run this program, I converted it into a boot disk (attached) using BUG/65 The program runs fine this way Thanks. I'll look for this tools for a next version. Quote Link to comment Share on other sites More sharing options...
tonma Posted April 12 Author Share Posted April 12 24 minutes ago, baktra said: Two tips: 1. Consider starting the game not only by pressing the START key, but also by pressing a joystick button. 2. After some time, the ATRACT mode is activated, even though one is actively playing the game. Consider resetting the ATRACT register after each detected joystick input. Thanks, I'll add that. Totaly forgot about Atract. 1 Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted April 12 Share Posted April 12 also, most SD card readers don't need the menu selection system and can't set images without it, The ones without displays of any kind might require the menu but it's up to them to find a solution. Once he image is selected, the machine won't be using any of that menu memory anyway. 1 Quote Link to comment Share on other sites More sharing options...
+DjayBee Posted April 12 Share Posted April 12 1 hour ago, tonma said: Thanks. I'll look for this tools for a next version. You don't need an external tool to generate a boot disk image. A little bit of magic with MADS' assembler directives can generate an ATR diskimage directly from the assembly process. If you like, I can support you there. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.