Jump to content
Nebulon

What does the system ROM do?

Recommended Posts

It contains common short routines to save cartridge space like loading graphics, making font small, bold, and Italic, and etc. Shows skill select screen. It also have sound player routines.

  • Like 1

Share this post


Link to post
Share on other sites

Perhaps this list I've compiled in 2010 from the official Coleco Industries CV programming documents will give you and new CV homebrewers an idea of what is hidden in the ColecoVision BIOS. Please note that it is not necessary to use any of this to make a CV game working properly, but it is quite powerful and useful routines that can save us time coding and space in game cartridges.

ColecoVision BIOS is also refered as OS 7prime, also refered simply as OS7.
* because it was the 7th revision of the BIOS when the console was released

OS 7prime BIOS Jump table
Note: P (at the end): special entry points for Pascal programs.

1F61 > 0300 : PLAY_SONGS
1F64 > 0488 : ACTIVATEP
1F67 > 06C7 : PUTOBJP
1F6A > 1D5A : REFLECT_VERTICAL
1F6D > 1D60 : REFLECT_HORIZONTAL
1F70 > 1D66 : ROTATE_90
1F73 > 1D6C : ENLARGE
1F76 > 114A : CONTROLLER_SCAN
1F79 > 118B : DECODER
1F7C > 1979 : GAME_OPT
1F7F > 1927 : LOAD_ASCII
1F82 > 18D4 : FILL_VRAM
1F85 > 18E9 : MODE_1
1F88 > 116A : UPDATE_SPINNER
1F8B > 1B0E : INIT_TABLEP
1F8E > 1B8C : GET_VRAMP
1F91 > 1C10 : PUT_VRAMP
1F94 > 1C5A : INIT_SPR_ORDERP
1F97 > 1C76 : WR_SPR_NM_TBLP
1F9A > 0F9A : INIT_TIMERP
1F9D > 0FB8 : FREE_SIGNALP
1FA0 > 1044 : REQUEST_SIGNALP
1FA3 > 10BF : TEST_SIGNALP
1FA6 > 1CBC : WRITE_REGISTERP
1FA9 > 1CED : WRITE_VRAMP
1FAC > 1D2A : READ_VRAMP
1FAF > 0655 : INIT_WRITERP
1FB2 > 0203 : SOUND_INITP
1FB5 > 0251 : PLAY_ITP
1FB8 > 1B08 : INIT_TABLE
1FBB > 1BA3 : GET_VRAM
1FBE > 1C27 : PUT_VRAM
1FC1 > 1C66 : INIT_SPR_ORDER
1FC4 > 1C82 : WR_SPR_NM_TBL
1FC7 > 0FAA : INIT_TIMER
1FCA > 0FC4 : FREE_SIGNAL
1FCD > 1053 : REQUEST_SIGNAL
1FD0 > 10CB : TEST_SIGNAL
1FD3 > 0F37 : TIME_MGR
1FD6 > 023B : TURN_OFF_SOUND
1FD9 > 1CCA : WRITE_REGISTER
1FDC > 1D57 : READ_REGISTER
1FDF > 1D01 : WRITE_VRAM
1FE2 > 1D3E : READ_VRAM
1FE5 > 0664 : INIT_WRITER
1FE8 > 0679 : WRITER
1FEB > 11C1 : POLLER
1FEE > 0213 : SOUND_INIT
1FF1 > 025E : PLAY_IT
1FF4 > 027F : SOUND_MAN
1FF7 > 04A3 : ACTIVATE
1FFA > 06D8 : PUTOBJ
1FFD > 003B : RAND_GEN

OS 7prime BIOS Symbols

0069 AMERICA 60 = NTSC, 50 = PAL
006A ASCII_TABLE Pointer to uppercase ASCII pattern
006C NUMBER_TABLE Pointer to numbers 0-9 pattern
00FC FREQ_SWEEP Frequency sweep
012F ATN_SWEEP Attenuation sweep
0190 DECLSN Decrement low nibble (in UTILITY)
019B DECMSN Decrement high nibble (in (UTILITY)
01A6 MSNTOLSN Copy high nibble to low nibble (in UTILITY)
01B1 ADD816 Add signed 8bit value A to 16bit [HL]
01D5 LEAVE_EFFECT Called by a special sound effect function when done
02EE EFXOVER (in PROCESS_DATA_AREA to get next note)
07E8 PX_TO_PTRN_POS Pixel to pattern plane position
080B PUT_FRAME Copy a block of names to VRAM
0898 GET_BKGRND Copy a block of names from VRAM to RAM
08C0 CALC_OFFSET Returns DE := offset for the coordinates (E,D)
1D43 CTRL_PORT_PTR (in READ_VRAM, equal I/O port# BF)
1D47 DATA_PORT_PTR (in READ_VRAM, equal I/O port# BE)
1D6C ENLRG It is the local name of the ENLARGE routine


OS 7prime External symbols

in RAM (7000-73FF)
73B9 STACK Stack pointer address
73C3 VDP_MODE_WORD Copy of the first two VDP registers
73C5 VDP_STATUS_BYTE Contents of default NMI handler
73C6 DEFER_WRITES Boolean flag to defer writes to VRAM
73C7 MUS_SPRITES Boolean flag to sprite multiplexing
73C9 RAND_NUM Pointer to pseudo random number value

in ROM (game cartridge header)
8000 CARTRIDGE Cartridge starting address
8002 LOCAL_SPR_TABLE Pointer to sprite name table
8004 SPRITE_ORDER Pointer to sprite order table
8006 WORK_BUFFER Pointer to temporary storage in RAM
8008 CONTROLLER_MAP Pointer to controller memory map
800A START_GAME Pointer to game start code
800C RST_8H_RAM Reset 8 soft vector
800F RST_10H_RAM Reset 10 soft vector
8012 RST_18H_RAM Reset 18 soft vector
8015 RST_20H_RAM Reset 20 soft vector
8018 RST_28H_RAM Reset 28 soft vector
801B RST_30H_RAM Reset 30 soft vector
801E IRQ_INT_VECT Software interrupt vector (RST 38H)
8021 NMI_INT_VECT NMI soft vector
8024 GAME_NAME String of ASCII characters

Edited by newcoleco
  • Like 3

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