petit chou Posted July 9, 2015 Share Posted July 9, 2015 Hey everybody, I apologize if anyone has asked these question before -- I tried searching with limited success. I am working on writing a roguelike for the INTV, now using IntyBASIC ideally to be part of the contest. The problem is that the program I want to write, including its art assets, is kind of huge and unwieldy and I have genuine worries that I'm not going to be able to cram everything I'd like into the address space. The IntyBASIC manual has this to say about the subject: Using modern Flash cart and homebrew cartridge PCBs allows following addresses to be used without additional programming: $2000-$2FFF $5000-$6FFF $A000-$BFFF $C100-$FFFF The memory_map.txt file in the SDK, however, has what appears to be a much larger selection of addresses: $0400 - $04FF RAM/ROM ok on all but Intellivision 2. $0500 - $06FF RAM/ROM ok. $0700 - $0CFF RAM/ROM ok if no Intellivoice. $0D00 - $0FFF RAM/ROM ok. $2000 - $2FFF RAM/ROM ok if no ECS. $4000 - $47FF RAM/ROM ok if no ECS. $4800 ROM ok. RAM ok only if boot ROM at $7000. $4801 - $4FFF RAM/ROM ok. $5000 - $5014 ROM ok. RAM ok only if boot ROM at $7000 or $4800. $5015 - $6FFF RAM/ROM ok. $7000 ROM ok if no ECS. RAM at $7000 confuses EXEC boot sequence. $7001 - $77FF RAM/ROM ok if no ECS. $7800 - $7FFF ROM ok if no ECS. Do not map RAM here due to GRAM alias. $8000 - $8FFF RAM/ROM ok. Avoid STIC alias at $8000 - $803F. $9000 - $B7FF RAM/ROM ok. $B800 - $BFFF ROM ok. Do not map RAM here due to GRAM alias. $C000 - $CFFF RAM/ROM ok. Avoid STIC alias at $C000 - $C03F. $D000 - $DFFF RAM/ROM ok. $E000 - $EFFF RAM/ROM ok if no ECS. $F000 - $F7FF RAM/ROM ok. $F800 - $FFFF ROM ok. Do not map RAM here due to GRAM alias. So, the questions I have: Does IntyBASIC attach to the areas listed in the memory map but not listed in its documentation ($4000-$4FFF, $7000-$7FFF, $8040-$9FFF) in order to store variables? What about its prologue/epilogue routines? Clearly those routines have to go somewhere, but I'm a little confused about what determines where they show up. The prologue looks like it starts at $5000 and it looks like the epilogue is using some of the address space in the $4000 block to store some routines, but is there any extra space that can be squeezed out of these areas? There is no ORG directive at the beginning of the epilogue. Do those routines just go wherever the compiler's location counter happens to be pointing when it goes to include this? Will I need to worry about the epilogue writing itself to bizarre or inappropriate places if my code stops near one of the memory boundaries, or will the BASIC compiler make sure that doesn't happen? Where is the entry point for IntyBASIC programs? I'd like to make a custom title screen if possible. If I start my program with ASM ORG $7000, will it begin execution there and bypass the EXEC? (Does IntyBASIC need the EXEC?) I noticed that there's some code at $4800 in the epilogue pertaining to the Intellivoice, but it looks like it may not be present if the Intellivoice isn't used. (I realize half the reason for using BASIC instead of assembly language is to not have to worry about fiddly details like this, but I want to make good, appropriate decisions about how to organize my program and figure out what all I will be able to include as far as assets go before I begin any major coding.) Thanks a bunch! Quote Link to comment Share on other sites More sharing options...
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.