Jump to content
IGNORED

Minikernel Developer's Guide


Recommended Posts

You can do a minikernel (mostly) in bB.

 

I don't know if thats helpful or just trying to dodge things that should be confronted head on.

 

ie you don't really need to know much assembly but you still need to know

nuts and bolts (and you need enough assembly to understand what you get from

bB anyway)

 

 

 

 

This code example wouldn't compile for me, not sure if I broke something in my bB setup?

 

got the error :

 

old value: $f699 new value: $f69c
old value: $00c6 new value: $00c9
segment: fffc vs current org: 10004
2190 bytes of ROM space left
D:\Applications\2600Development\Projects\Examples\x6_1_5.bas.asm (2841): error: Origin Reverse-indexed.
Edited by Muddyfunster

That's pretty cool. It would have never occurred to me to try to do a minikernel in bB. I'm not sure that example would be any easier to teach than the assembly equivalent, though.

 

Anyway, for purposes of my guide, one of my goals is to teach some assembly to experienced bB coders, which, as you seem to be saying, can be useful to bB programmers even if they primarily stick to bB.

 

I'm trying to think how to put this without sounding like I'm telling you how you should be doing it, 'cause I'm not.

 

You show some bB and then some equivalent assembly. My off the top of my head, gut reaction is that that's a good way to do it.

 

The bB gives you something familiar to hang it (eg the assembly) on.

 

I was just pointing out that you could take that farther.

 

 

Now if it was me, I think I'd start with the bB show the how and why of the assembly it produces, then

how it could be improved and how you might do things in assembly that aren't practical in bB

(I'm thinking specifically the bit of code that does the MOD 15 and timing in a loop as a good example).

 

But I'm not sure that that's better than just saying 'here, learn some assembly it's not that hard'. :)

 

 

 

This code example wouldn't compile for me, not sure if I broke something in my bB setup?

 

got the error :

 

old value: $f699 new value: $f69c
old value: $00c6 new value: $00c9
segment: fffc vs current org: 10004
2190 bytes of ROM space left
D:\Applications\2600Development\Projects\Examples\x6_1_5.bas.asm (2841): error: Origin Reverse-indexed.

 

 

Oops

Yes, I should have mentioned that.

 

Does it actually not compile? Or does it compile and give you that warning?

 

I never really doped that out.

 

It seems to produce the correct code.

 

You get that if you assign 'minikernel' to the value of a label

 

I'm guessing that inserting a JSR to the minikernel (ie to the label) shifts the label

and that that gets fixed on a subsequent pass.

It works for me - I get the report due to shifting rom - but the compiled rom works.

 

The values reported are slightly different for me. Are you using the latest bB? I forget at which release it happened, but the dasm included with the my bB has fixes specifically related to shifting ROM.

  • 1 month later...

The last planned lesson in this guide is now up! It's possible that I'll do an appendix or two, but if I don't, at least I'll still be able to say that the guide is done. :-D

 

Thanks once again to RevEng for agreeing to do technical review for each lesson.

  • Like 4
  • 4 weeks later...

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.

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...