Jump to content
Asmusr

4K Short'n'Sweet game contest

Recommended Posts

Classic99 actually includes the Line-by-Line assembler (and LINES) in DSK1 (MM_LBLA.OBJ and MM_LINES.OBJ). They can be loaded with LOAD AND RUN. Instructions for loading and starting are on page 51 of the manual.

 

Classic99 also does a save state of the MiniMemory RAM and should restart with the correct data. I can't check right now though I saw the file on my disk. ;) Let me know if that's not working.

 

Can't help you with the CS1 save at the moment. ;)

 

Got it! Yup, it loads fine. However, it does not look like the memory state is saved after exiting Classic99. When I restart the emulator and go into Easy Bug and examine memory starting at >7D00, it's all zeroed out...

Share this post


Link to post
Share on other sites

 

Got it! Yup, it loads fine. However, it does not look like the memory state is saved after exiting Classic99. When I restart the emulator and go into Easy Bug and examine memory starting at >7D00, it's all zeroed out...

 

Make sure you're not out of date - current version is 398. I just downloaded and tested it here and it worked fine. It should create a file called 'minimemNV.bin' in the Classic99 folder. Also note that you need to be using the built-in MiniMemory, if you created your own module I don't think it knows to save it. ;)

  • Like 1

Share this post


Link to post
Share on other sites

I think I'm going to give the LBLA a shot the old fashioned way, at least for a couple of days and see how I fare with it. It might very well prove to be too painful to continue, but hey it's worth of shot :)

 

I created a programming worksheet to help me out. We'll see how it goes. If for any reason you guys don't hear from me for a few days, please check with the local asylums...

 

post-25753-0-31095300-1515084746_thumb.jpg

  • Like 2

Share this post


Link to post
Share on other sites

I created a programming worksheet to help me out. We'll see how it goes. If for any reason you guys don't hear from me for a few days, please check with the local asylums...

 

That's pretty old school. ;) I've never seen a sheet like that before! It makes me remember hand-assembling on the 6502. ;)

Share this post


Link to post
Share on other sites

 

That's pretty old school. ;) I've never seen a sheet like that before! It makes me remember hand-assembling on the 6502. ;)

 

I use it when I program my ELF :)

Share this post


Link to post
Share on other sites

I created a programming worksheet to help me out.

 

I think the column headers should have your descriptive text and not information about what is column 1, column 2 etc. ;)

Share this post


Link to post
Share on other sites

About 60% of the game done. Title screen done, game mechanics started and scoring + speech implemented. No sound yet. Hardest part still ahead. Finishing game mechanics and optimization for 4k rom limit. Should be doable until march, hoping I dont get distracted too much and that life and work keep cool. Will be a 2 player game unless I find some space for AI after optimizing. Going for scratch pad RAM only. Want it to run on plain 8k guidry boards.

  • Like 2

Share this post


Link to post
Share on other sites

 

I think the column headers should have your descriptive text and not information about what is column 1, column 2 etc. ;)

 

Fully agree. However, that's what Excel spit out and I'm sticking with it :-D

Share this post


Link to post
Share on other sites

About 60% of the game done. Title screen done, game mechanics started and scoring + speech implemented. No sound yet. Hardest part still ahead. Finishing game mechanics and optimization for 4k rom limit. Should be doable until march, hoping I dont get distracted too much and that life and work keep cool. Will be a 2 player game unless I find some space for AI after optimizing. Going for scratch pad RAM only. Want it to run on plain 8k guidry boards.

 

You are waaaaayyyyy ahead of me here... I'm still deciding what I want to do and what I can fit in 760 bytes!

Share this post


Link to post
Share on other sites

 

You are waaaaayyyyy ahead of me here... I'm still deciding what I want to do and what I can fit in 760 bytes!

 

Don't worry, I'm sure I'll spend a whole lot of time trying to cramm all this in 4k, which is compared to 760 bytes quite a luxury :-D

  • Like 1

Share this post


Link to post
Share on other sites

About 60% of the game done. Title screen done, game mechanics started and scoring + speech implemented. No sound yet. Hardest part still ahead. Finishing game mechanics and optimization for 4k rom limit. Should be doable until march, hoping I dont get distracted too much and that life and work keep cool. Will be a 2 player game unless I find some space for AI after optimizing. Going for scratch pad RAM only. Want it to run on plain 8k guidry boards.

I didn't knew the contest already started...

Share this post


Link to post
Share on other sites

nanochess, I didn't know you were into the TI?

 

I love your efforts on the Intellivision! When you started IntyBasic, I was hoping to do something with it.

I haven't got very far with it. I am still trying to learn how to do something good on the TI for 35+ years....

 

For me the Intellivision and TI are my first systems and I still love them.

Of course, I later had the Colecovision and then the C=64 which filled my teen years. Some great games on that computer!

 

I still want to create something fun for the TI or Intellivision... I just need to acquire a stronger skill set. LOL

 

Any idea when miner is going to be released?

 

Be well.

  • Like 2

Share this post


Link to post
Share on other sites

 

You are waaaaayyyyy ahead of me here... I'm still deciding what I want to do and what I can fit in 760 bytes!

I think John Dow wrote an assembler in BASIC that let you use the entire 4K of RAM. So you'd still be using 1980's tools for your efforts.

  • Like 2

Share this post


Link to post
Share on other sites

I think John Dow wrote an assembler in BASIC that let you use the entire 4K of RAM. So you'd still be using 1980's tools for your efforts.

 

Did not know that... Do you happen to have a copy by any chance?

 

In any case, I did take a dive into using the LBLA :) So far so good, but I predict a whole lot more pain as the project grows. My best bet is to try and test every routine separately as much as is possible in order to avoid major program rewriting. I also typed the program into a text editor and tested pasting it into LBLA under Classic99 and it worked like a charm except I lost the program after I reloaded the LBLA and i'm still waiting to hear back from Tursi on this (likely user error). It is actually easier to write down the instructions on paper than typing them in, at least for me, so the latter process will be a backup in case I keep losing my programs...

 

post-25753-0-48065200-1515263904_thumb.jpg

 

PS: I don't know why AA keeps insisting on posting my pictures sideways even though the original images are upright...

Share this post


Link to post
Share on other sites

I answered Vorticon's query about the LBLA but I'll answer here too -- the file included with Classic99 loads a full 4k, so it overwrites from >7000 through to >7FFF. I have no idea the correct addresses and likely I just dumped the full 4k. ;)

 

But it shouldn't be necessary to reload the LBLA - it's also in the NVRAM. I've suggested he try just running OLD and not reloading the assembler, and hopefully that will solve it. Otherwise we just need to edit the OBJ file to load only the needed memory.

Share this post


Link to post
Share on other sites

So this MM thing really requires a much tighter level of thinking... Yesterday I spent a couple of hours trying to figure out why my test program was not working, only to finally find out that the LBLA symbol table only has room for 10 entries (40 bytes) starting at >7CD8 and it was overwriting the start of my program at the default >7D00 as I had 12 labels it it... Nothing a judiciously placed AORG can't solve, but I never had to worry about such issues with the EA despite writing some sizable programs like SkyChart for example. Effectively I was spoiled rotten!

Now I have to really be careful in minimizing the use of labels because at 4 bytes per label they are expensive in memory!!!

The good news is that I'm starting to get the hang of using the MM and LBLA :) That said, even though I am putting everything on paper, I am still cheating a bit by copying and pasting into Classic99 for testing purposes. Last night I typed in my routines on the real thing and saved them to tape, but it only worked if I saved the entire 4K of the MM (>7000 to >7FFF) which is just fine because when I reload, then the LBLA will be back in memory. Oh and by the way the battery in my MM is dead, so I have no backup and I need to open it up and replace it....

Onward and upward :)

Share this post


Link to post
Share on other sites

So this MM thing really requires a much tighter level of thinking... Yesterday I spent a couple of hours trying to figure out why my test program was not working, only to finally find out that the LBLA symbol table only has room for 10 entries (40 bytes) starting at >7CD8 and it was overwriting the start of my program at the default >7D00 as I had 12 labels it it... Nothing a judiciously placed AORG can't solve, but I never had to worry about such issues with the EA despite writing some sizable programs like SkyChart for example. Effectively I was spoiled rotten!

Now I have to really be careful in minimizing the use of labels because at 4 bytes per label they are expensive in memory!!!

The good news is that I'm starting to get the hang of using the MM and LBLA :) That said, even though I am putting everything on paper, I am still cheating a bit by copying and pasting into Classic99 for testing purposes. Last night I typed in my routines on the real thing and saved them to tape, but it only worked if I saved the entire 4K of the MM (>7000 to >7FFF) which is just fine because when I reload, then the LBLA will be back in memory. Oh and by the way the battery in my MM is dead, so I have no backup and I need to open it up and replace it....

Onward and upward :)

 

Dunno if it might help, but have got copies of 2 TI-BASIC utils that a Marty Knoll did for the MM cart. One is a TI-BASIC disassembler, the other one is a MM mem relocator (shifting code around to get over the lack of memory)

 

99ER2-5.DSK - MMDISASM_M

99ER2-7.DSK - MEMRELOC_M

99ER2-7.DSK

99ER2-5.DSK

Share this post


Link to post
Share on other sites

nanochess, I didn't know you were into the TI?

Just trying to have a pretext to learn to code in 9900 :grin:

 

I love your efforts on the Intellivision! When you started IntyBasic, I was hoping to do something with it.

I haven't got very far with it. I am still trying to learn how to do something good on the TI for 35+ years....

Thanks! and the newest versions make coding even easier. ;)

 

For me the Intellivision and TI are my first systems and I still love them.

Of course, I later had the Colecovision and then the C=64 which filled my teen years. Some great games on that computer!

 

I still want to create something fun for the TI or Intellivision... I just need to acquire a stronger skill set. LOL

 

Any idea when miner is going to be released?

 

Be well.

Miner 2049er for Intellivision is in beta testing already, just one detail reported to me and it should be available by end of year if everything goes well in the physical side of boxes, manuals and so.

  • Like 1

Share this post


Link to post
Share on other sites

 

Dunno if it might help, but have got copies of 2 TI-BASIC utils that a Marty Knoll did for the MM cart. One is a TI-BASIC disassembler, the other one is a MM mem relocator (shifting code around to get over the lack of memory)

 

99ER2-5.DSK - MMDISASM_M

99ER2-7.DSK - MEMRELOC_M

 

Interesting. I'll take a look at them. Thanks!

Share this post


Link to post
Share on other sites

 

Interesting. I'll take a look at them. Thanks!

 

No problem! Always thought these 2 TI-BASIC utils, and LBLA, would have been a reasonably effective development package (given obvious limitations)

 

99ner mags that describe usage are:

http://www.mainbyte.com/ti99/micro/go99.asp?search_string=&type99=Assembly+Language&Send=Search

 

Mini Memory Relocator - ftp://whtech.com/magazines/99er/99er8305.pdf

Mini Memory Disassembler Utility - ftp://whtech.com/magazines/99er/99er8303.pdf

Share this post


Link to post
Share on other sites

MM and LBLA workflow not as bad as anticipated surprisingly. I'm not yet sure if the project I have in mind will fit in 760 bytes, but so far it's looking promising. The trick for me is to try and break up the program into as many small independently testable routines as possible which would be easy to debug and edit without too much retyping. Once they are certified to work, then I can later roll them directly into the main program. I have a decent library of assembly routines I have accumulated through my previous work to achieve various things, but the challenge has been to creatively modify them so they fit better within the memory constraints I am working with, and in a way I found that to be quite fun. Weird...

Share this post


Link to post
Share on other sites

MM and LBLA workflow not as bad as anticipated surprisingly. I'm not yet sure if the project I have in mind will fit in 760 bytes, but so far it's looking promising. The trick for me is to try and break up the program into as many small independently testable routines as possible which would be easy to debug and edit without too much retyping. Once they are certified to work, then I can later roll them directly into the main program. I have a decent library of assembly routines I have accumulated through my previous work to achieve various things, but the challenge has been to creatively modify them so they fit better within the memory constraints I am working with, and in a way I found that to be quite fun. Weird...

 

So what do you think the next step(s) would be? Once you've filled that 760 bytes, do you save that chunk of code as a reloadable data source, then start again on a new chunk of code? So you might end up with (say) 4 chunks of 760 bytes that you load up that you then piece together with CALL LINK in TI-BASIC?. Or do you take all the opcodes & end up combining them all in a bunch of DATA/CALL LOAD (ie POKE) TI-BASIC commands until you filled as much of the 4k MM as possible?

 

Always wondered how you could fill the 4k with LBLA.

Edited by palmheads

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...