Tom Posted November 7, 2005 Share Posted November 7, 2005 Can anybody explain me, what the first four pointers (right after the cartridge identification word) in the cartridge header are good for ? Are these used by BIOS functions ? Is it safe to simply set them to 0 ? Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted November 7, 2005 Share Posted November 7, 2005 Can anybody explain me, what the first four pointers (right after the cartridge identification word) in the cartridge header are good for ? Are these used by BIOS functions ? Is it safe to simply set them to 0 ? 961635[/snapback] I don't think they are used. http://atarihq.com/danb/files/CV-Tech.txt Quote Link to comment Share on other sites More sharing options...
Tom Posted November 7, 2005 Author Share Posted November 7, 2005 (edited) Ok, I found a BIOS disassembly. They point to buffers in RAM which some BIOS functions use. If you don't call those particular BIOS functions, the pointers can contain *any* value. (The whole point in this seems to be to let the programmer have control over where these buffers are placed, since they can be fairly large. You could probably even overlay some them.) Edited November 7, 2005 by Tom Quote Link to comment Share on other sites More sharing options...
Bruce Tomlin Posted November 8, 2005 Share Posted November 8, 2005 They're used by various routines in the BIOS. If you don't use those routines (many of which I'm not sure how you're supposed to use them), then it doesn't matter. Basically, you're supposed to point them to the RAM locations where you want certain tables stored. From a disassembly I have (not sure where I got the variable names, probably I came up with them myself), the header is: 8000: Cart_Sig - AA55 = title screen, 55AA = no title screen 8002: RamSprtTab - RAM sprite attribute table pointer 8004: RAMSprtIdx - sprite index table pointer 8006: VDP_Temp - pointer to temp image storage (up to 40 bytes used) 8008: CtlState - pointer to controller state table (2 + 2x5 bytes) 800A: Cart_Start - start of cartridge code 800C: RST 08H 800F: RST 10H 8012: RST 18H 8015: RST 20H 8018: RST 28H 801B: RST 30H 801E: RST 38H 8021: NMI 8024: Cart_Title - Title string "LINE 3/LINE 2/yyyy" Quote Link to comment Share on other sites More sharing options...
Tom Posted November 8, 2005 Author Share Posted November 8, 2005 This document contains a BIOS listing (original, not a commented disassembly ?): http://www.geocities.com/newcoleco/cv-coding-guide.zip Apparently the BIOS contains among other things sprite multiplexing routines. 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.