#include "6809.h"
char *Name[0x10000];
int In[0x10000], Out[0x10000], Trash[0x10000];
unsigned char DP_In[0x10000], DP_Out[0x10000];
void init_vectrex_bios(void) {
int i;
for (i = 0; i < 0x10000; i++) {
Name[i] = "";
In[i] = Out[i] = Trash[i] = 0;
DP_In[i] = DP_Out[i] = 0;
}
/*
F8DE was not included in the register info:
;-----------------------------------------------------------------------;
; F8D8 New_High_Score ;
; ;
; This routine compares a players score string, pointed to by the ;
; X register, to the current hi score, pointed by the U register. If ;
; the player's score is higher than the currently saved hi score, then ;
; the player's score will be copied into the hi score buffer pointed ;
; to by the U register. ;
; ;
; ENTRY X-reg points to a player's score string ;
; U-reg points to the high score string (usually $CBEB?) ;
; ;
; X-reg, U-reg, D-reg trashed ;
;-----------------------------------------------------------------------;
New_High_Score: BSR Compare_Score ;Compare the scores
CMPA #$01
BNE LF8E4 ;Return if X is not > U
LF8DE: LDA ,X+ ;Copy the new high score
STA ,U+
BPL LF8DE ;until end of string encountered
LF8E4: RTS
*/
Name[0xF8DE] = "Text_Copy_String";
In[0xF8DE] = R_X|R_U;
Out[0xF8DE] = 0;
Trash[0xF8DE] = R_X|R_U|R_A;
Name[0xF14C] = "Init_VIA";
In[0xF14C] = 0;
Out[0xF14C] = R_DP;
DP_Out[0xF14C] = 0xD0;
Trash[0xF14C] = R_A|R_B|R_X;
Name[0xF164] = "Init_OS_RAM";
In[0xF164] = 0;
Out[0xF164] = R_DP;
DP_Out[0xF164] = 0xC8;
Trash[0xF164] = R_A|R_B|R_X;
Name[0xF18B] = "Init_OS";
In[0xF18B] = 0;
Out[0xF18B] = R_DP;
DP_Out[0xF18B] = 0xD0;
Trash[0xF18B] = R_A|R_B|R_X;
Name[0xF192] = "Wait_Recal";
In[0xF192] = 0;
Out[0xF192] = R_DP;
DP_Out[0xF192] = 0xD0;
Trash[0xF192] = R_A|R_B|R_X;
Name[0xF1A2] = "Set_Refresh";
In[0xF1A2] = R_DP;
DP_In[0xF1A2] = 0xD0;
Out[0xF1A2] = 0;
Trash[0xF1A2] = R_A|R_B;
Name[0xF1AA] = "DP_to_D0";
In[0xF1AA] = 0;
Out[0xF1AA] = R_DP|R_A; // A = 0xD0
DP_Out[0xF1AA] = 0xD0;
Trash[0xF1AA] = 0;
Name[0xF1AF] = "DP_to_C8";
In[0xF1AF] = 0;
Out[0xF1AF] = R_DP|R_A; // A = 0xC8
DP_Out[0xF1AF] = 0xC8;
Trash[0xF1AF] = 0;
Name[0xF1B4] = "Read_Btns_Mask";
In[0xF1B4] = R_A;
Out[0xF1B4] = R_A;
Trash[0xF1B4] = R_B|R_X;
Name[0xF1BA] = "Read_Btns";
In[0xF1BA] = 0;
Out[0xF1BA] = R_A;
Trash[0xF1BA] = R_B|R_X;
Name[0xF1F5] = "Joy_Analog";
In[0xF1F5] = R_DP;
DP_In[0xF1F5] = 0xD0;
Out[0xF1F5] = 0;
Trash[0xF1F5] = R_A|R_X;
Name[0xF1F8] = "Joy_Digital";
In[0xF1F8] = R_DP;
DP_In[0xF1F8] = 0xD0;
Out[0xF1F8] = 0;
Trash[0xF1F8] = R_A|R_X;
Name[0xF256] = "Sound_Byte";
In[0xF256] = R_A|R_B;
Out[0xF256] = R_X; // X = 0xC800
Trash[0xF256] = R_D;
Name[0xF259] = "Sound_Byte_x";
In[0xF259] = R_A|R_B|R_X;
Out[0xF259] = 0;
Trash[0xF259] = R_D;
Name[0xF25B] = "Sound_Byte_raw";
In[0xF25B] = R_A|R_B;
Out[0xF25B] = 0;
Trash[0xF25B] = R_D;
Name[0xF272] = "Clear_Sound";
In[0xF272] = R_DP;
DP_In[0xF272] = 0xD0;
Out[0xF272] = 0;
Trash[0xF272] = R_A|R_B|R_X;
Name[0xF27D] = "Sound_Bytes";
In[0xF27D] = R_DP|R_U;
DP_In[0xF27D] = 0xD0;
Out[0xF27D] = 0;
Trash[0xF27D] = R_A|R_B|R_X|R_U;
Name[0xF284] = "Sound_Bytes_x";
In[0xF284] = R_DP|R_U;
DP_In[0xF284] = 0xD0;
Out[0xF284] = 0;
Trash[0xF284] = R_A|R_B|R_X|R_U;
Name[0xF289] = "Do_Sound";
In[0xF289] = R_DP;
DP_In[0xF289] = 0xD0;
Out[0xF289] = 0;
Trash[0xF289] = R_A|R_B|R_X|R_U;
Name[0xF28C] = "Do_Sound_x";
In[0xF28C] = R_DP;
DP_In[0xF28C] = 0xD0;
Out[0xF28C] = 0;
Trash[0xF28C] = R_A|R_B|R_X|R_U;
Name[0xF29D] = "Intensity_1F";
In[0xF29D] = R_DP|R_A;
DP_In[0xF29D] = 0xD0;
Out[0xF29D] = 0;
Trash[0xF29D] = R_A|R_B;
Name[0xF2A1] = "Intensity_3F";
In[0xF2A1] = R_DP|R_A;
DP_In[0xF2A1] = 0xD0;
Out[0xF2A1] = 0;
Trash[0xF2A1] = R_A|R_B;
Name[0xF2A5] = "Intensity_5F";
In[0xF2A5] = R_DP|R_A;
DP_In[0xF2A5] = 0xD0;
Out[0xF2A5] = 0;
Trash[0xF2A5] = R_A|R_B;
Name[0xF2A9] = "Intensity_7F";
In[0xF2A9] = R_DP|R_A;
DP_In[0xF2A9] = 0xD0;
Out[0xF2A9] = 0;
Trash[0xF2A9] = R_A|R_B;
Name[0xF2AB] = "Intensity_a";
In[0xF2AB] = R_DP|R_A;
DP_In[0xF2AB] = 0xD0;
Out[0xF2AB] = 0;
Trash[0xF2AB] = R_A|R_B;
Name[0xF2BE] = "Dot_ix_b";
In[0xF2BE] = R_X|R_B;
Out[0xF2BE] = R_X;
Trash[0xF2BE] = R_A|R_B;
Name[0xF2C1] = "Dot_ix";
In[0xF2C1] = R_X;
Out[0xF2C1] = R_X;
Trash[0xF2C1] = R_A|R_B;
Name[0xF2C3] = "Dot_d";
In[0xF2C3] = R_DP|R_A|R_B;
DP_In[0xF2C3] = 0xD0;
Out[0xF2C3] = 0;
Trash[0xF2C3] = R_A|R_B;
Name[0xF2C5] = "Dot_here";
In[0xF2C5] = R_DP;
DP_In[0xF2C5] = 0xD0;
Out[0xF2C5] = 0;
Trash[0xF2C5] = R_A|R_B;
Name[0xF2D5] = "Dot_List";
In[0xF2D5] = R_DP|R_X;
DP_In[0xF2D5] = 0xD0;
Out[0xF2D5] = R_X;
Trash[0xF2D5] = R_A|R_B;
Name[0xF2DE] = "Dot_List_Reset";
In[0xF2DE] = R_DP|R_X;
DP_In[0xF2DE] = 0xD0;
Out[0xF2DE] = R_X;
Trash[0xF2DE] = R_A|R_B;
Name[0xF2E6] = "Recalibrate";
In[0xF2E6] = R_DP;
DP_In[0xF2E6] = 0xD0;
Out[0xF2E6] = 0;
Trash[0xF2E6] = R_A|R_B|R_X;
Name[0xF2F2] = "Moveto_x_7F";
In[0xF2F2] = R_DP|R_X;
DP_In[0xF2F2] = 0xD0;
Out[0xF2F2] = 0;
Trash[0xF2F2] = R_A|R_B;
Name[0xF2FC] = "Moveto_d_7F";
In[0xF2FC] = R_DP|R_A|R_B;
DP_In[0xF2FC] = 0xD0;
Out[0xF2FC] = 0;
Trash[0xF2FC] = R_A|R_B;
Name[0xF308] = "Moveto_ix_FF";
In[0xF308] = R_DP|R_X;
DP_In[0xF308] = 0xD0;
Out[0xF308] = R_X;
Trash[0xF308] = R_A|R_B;
Name[0xF30C] = "Moveto_ix_7F";
In[0xF30C] = R_DP|R_X;
DP_In[0xF30C] = 0xD0;
Out[0xF30C] = R_X;
Trash[0xF30C] = R_A|R_B;
Name[0xF30E] = "Moveto_ix_b";
In[0xF30E] = R_DP|R_B|R_X;
DP_In[0xF30E] = 0xD0;
Out[0xF30E] = R_X;
Trash[0xF30E] = R_A|R_B;
Name[0xF310] = "Moveto_ix";
In[0xF310] = R_DP|R_X;
DP_In[0xF310] = 0xD0;
Out[0xF310] = R_X;
Trash[0xF310] = R_A|R_B;
Name[0xF312] = "Moveto_d";
In[0xF312] = R_DP|R_A|R_B;
DP_In[0xF312] = 0xD0;
Out[0xF312] = 0;
Trash[0xF312] = R_D;
Name[0xF34A] = "Reset0Ref_D0";
In[0xF34A] = 0;
Out[0xF34A] = R_DP;
DP_Out[0xF34A] = 0xD0;
Trash[0xF34A] = R_A|R_B;
Name[0xF34F] = "Check0Ref";
In[0xF34F] = R_DP;
DP_In[0xF34F] = 0xD0;
Out[0xF34F] = 0;
Trash[0xF34F] = R_A|R_B;
Name[0xF354] = "Reset0Ref";
In[0xF354] = R_DP;
DP_In[0xF354] = 0xD0;
Out[0xF354] = 0;
Trash[0xF354] = R_A|R_B;
Name[0xF35B] = "Reset_Pen";
In[0xF35B] = R_DP;
DP_In[0xF35B] = 0xD0;
Out[0xF35B] = 0;
Trash[0xF35B] = R_A|R_B;
Name[0xF36B] = "Reset0Int";
In[0xF36B] = R_DP;
DP_In[0xF36B] = 0xD0;
Out[0xF36B] = 0;
Trash[0xF36B] = R_A|R_B;
Name[0xF373] = "Print_Str_hwyx";
In[0xF373] = R_DP|R_U;
DP_In[0xF373] = 0xD0;
Out[0xF373] = R_U;
Trash[0xF373] = R_A|R_B|R_X;
Name[0xF378] = "Print_Str_yx";
In[0xF378] = R_DP|R_U;
DP_In[0xF378] = 0xD0;
Out[0xF378] = R_U;
Trash[0xF378] = R_A|R_B|R_X;
Name[0xF37A] = "Print_Str_d";
In[0xF37A] = R_DP|R_U|R_A|R_B;
DP_In[0xF37A] = 0xD0;
Out[0xF37A] = R_U;
Trash[0xF37A] = R_A|R_B|R_X;
Name[0xF385] = "Print_List_hw";
In[0xF385] = R_DP|R_U;
DP_In[0xF385] = 0xD0;
Out[0xF385] = R_U;
Trash[0xF385] = R_A|R_B|R_X;
Name[0xF38A] = "Print_List";
In[0xF38A] = R_DP|R_U;
DP_In[0xF38A] = 0xD0;
Out[0xF38A] = R_U;
Trash[0xF38A] = R_A|R_B|R_X;
Name[0xF38C] = "Print_List_chk";
In[0xF38C] = R_DP|R_U;
DP_In[0xF38C] = 0xD0;
Out[0xF38C] = R_U;
Trash[0xF38C] = R_A|R_B|R_X;
Name[0xF391] = "Print_Ships_x";
In[0xF391] = R_DP|R_A|R_B|R_X;
DP_In[0xF391] = 0xD0;
Out[0xF391] = 0;
Trash[0xF391] = R_B|R_X|R_U;
Name[0xF393] = "Print_Ships";
In[0xF393] = R_DP|R_A|R_B|R_X;
DP_In[0xF393] = 0xD0;
Out[0xF393] = 0;
Trash[0xF393] = R_B|R_X|R_U;
Name[0xF3AD] = "Mov_Draw_VLc_a";
In[0xF3AD] = R_DP|R_X;
DP_In[0xF3AD] = 0xD0;
Out[0xF3AD] = R_X;
Trash[0xF3AD] = R_A|R_B;
Name[0xF3B1] = "Mov_Draw_VL_b";
In[0xF3B1] = R_DP|R_B|R_X;
DP_In[0xF3B1] = 0xD0;
Out[0xF3B1] = R_X;
Trash[0xF3B1] = R_A|R_B;
Name[0xF3B5] = "Mov_Draw_VLcs";
In[0xF3B5] = R_DP|R_X;
DP_In[0xF3B5] = 0xD0;
Out[0xF3B5] = R_X;
Trash[0xF3B5] = R_A|R_B;
Name[0xF3B7] = "Mov_Draw_VL_ab";
In[0xF3B7] = R_DP|R_A|R_B|R_X;
DP_In[0xF3B7] = 0xD0;
Out[0xF3B7] = R_X;
Trash[0xF3B7] = R_A|R_B;
Name[0xF3B9] = "Mov_Draw_VL_a";
In[0xF3B9] = R_DP|R_A|R_X;
DP_In[0xF3B9] = 0xD0;
Out[0xF3B9] = R_X;
Trash[0xF3B9] = R_A|R_B;
Name[0xF3BC] = "Mov_Draw_VL";
In[0xF3BC] = R_DP|R_X;
DP_In[0xF3BC] = 0xD0;
Out[0xF3BC] = R_X;
Trash[0xF3BC] = R_A|R_B;
Name[0xF3BE] = "Mov_Draw_VL_d";
In[0xF3BE] = R_DP|R_A|R_B|R_X;
DP_In[0xF3BE] = 0xD0;
Out[0xF3BE] = R_X;
Trash[0xF3BE] = R_A|R_B;
Name[0xF3CE] = "Draw_VLc";
In[0xF3CE] = R_DP|R_X;
DP_In[0xF3CE] = 0xD0;
Out[0xF3CE] = R_X;
Trash[0xF3CE] = R_A|R_B;
Name[0xF3D2] = "Draw_VL_b";
In[0xF3D2] = R_DP|R_B|R_X;
DP_In[0xF3D2] = 0xD0;
Out[0xF3D2] = R_X;
Trash[0xF3D2] = R_A|R_B;
Name[0xF3D6] = "Draw_VLcs";
In[0xF3D6] = R_DP|R_X;
DP_In[0xF3D6] = 0xD0;
Out[0xF3D6] = R_X;
Trash[0xF3D6] = R_A|R_B;
Name[0xF3D8] = "Draw_VL_ab";
In[0xF3D8] = R_A|R_B|R_X;
Out[0xF3D8] = R_X;
Trash[0xF3D8] = R_A|R_B;
Name[0xF3DA] = "Draw_VL_a";
In[0xF3DA] = R_DP|R_A|R_X;
DP_In[0xF3DA] = 0xD0;
Out[0xF3DA] = R_X;
Trash[0xF3DA] = R_A|R_B;
Name[0xF3DD] = "Draw_VL";
In[0xF3DD] = R_DP|R_X;
DP_In[0xF3DD] = 0xD0;
Out[0xF3DD] = R_X;
Trash[0xF3DD] = R_A|R_B;
Name[0xF3DF] = "Draw_Line_d";
In[0xF3DF] = R_DP|R_A|R_B|R_X;
DP_In[0xF3DF] = 0xD0;
Out[0xF3DF] = R_X;
Trash[0xF3DF] = R_A|R_B;
Name[0xF404] = "Draw_VLp_FF";
In[0xF404] = R_DP|R_X;
DP_In[0xF404] = 0xD0;
Out[0xF404] = R_X;
Trash[0xF404] = R_A|R_B;
Name[0xF408] = "Draw_VLp_7F";
In[0xF408] = R_DP|R_X;
DP_In[0xF408] = 0xD0;
Out[0xF408] = R_X;
Trash[0xF408] = R_A|R_B;
Name[0xF40C] = "Draw_VLp_scale";
In[0xF40C] = R_DP|R_X;
DP_In[0xF40C] = 0xD0;
Out[0xF40C] = R_X;
Trash[0xF40C] = R_A|R_B;
Name[0xF40E] = "Draw_VLp_b";
In[0xF40E] = R_DP|R_B|R_X;
DP_In[0xF40E] = 0xD0;
Out[0xF40E] = R_X;
Trash[0xF40E] = R_A|R_B;
Name[0xF410] = "Draw_VLp";
In[0xF410] = R_DP|R_X;
DP_In[0xF410] = 0xD0;
Out[0xF410] = R_X;
Trash[0xF410] = R_A|R_B;
Name[0xF434] = "Draw_Pat_VL_a";
In[0xF434] = R_X|R_A;
Out[0xF434] = R_X;
Trash[0xF434] = R_A|R_B;
Name[0xF437] = "Draw_Pat_VL";
In[0xF437] = R_X;
Out[0xF437] = R_X;
Trash[0xF437] = R_A|R_B;
Name[0xF439] = "Draw_Pat_VL_d";
In[0xF439] = R_X|R_D;
Out[0xF439] = R_X;
Trash[0xF439] = R_A|R_B;
Name[0xF46E] = "Draw_VL_mode";
In[0xF46E] = R_DP|R_X;
DP_In[0xF46E] = 0xD0;
Out[0xF46E] = R_X;
Trash[0xF46E] = R_A|R_B;
Name[0xF495] = "Print_Str";
In[0xF495] = R_DP|R_U;
DP_In[0xF495] = 0xD0;
Out[0xF495] = R_U;
Trash[0xF495] = R_A|R_B|R_X;
Name[0xF511] = "Random_3";
In[0xF511] = 0;
Out[0xF511] = R_A;
Trash[0xF511] = 0;
Name[0xF517] = "Random";
In[0xF517] = 0;
Out[0xF517] = R_A;
Trash[0xF517] = 0;
Name[0xF533] = "Init_Music_Buf";
In[0xF533] = 0;
Out[0xF533] = 0;
Trash[0xF533] = R_A|R_B|R_X;
Name[0xF53F] = "Clear_x_b";
In[0xF53F] = R_X|R_B;
Out[0xF53F] = 0;
Trash[0xF53F] = R_A|R_B;
Name[0xF542] = "Clear_C8_RAM";
In[0xF542] = 0;
Out[0xF542] = 0;
Trash[0xF542] = R_A|R_B|R_X;
Name[0xF545] = "Clear_x_256";
In[0xF545] = R_X|R_A|R_B;
Out[0xF545] = R_D; // D = 0xFFFF
Trash[0xF545] = 0;
Name[0xF548] = "Clear_x_d";
In[0xF548] = R_X|R_A|R_B;
Out[0xF548] = R_D; // D = 0xFFFF
Trash[0xF548] = 0;
Name[0xF550] = "Clear_x_b_80";
In[0xF550] = R_A|R_B|R_X;
Out[0xF550] = R_A|R_B; // A = 0x80 B = 0x00
Trash[0xF550] = 0;
Name[0xF552] = "Clear_x_b_a";
In[0xF552] = R_A|R_B|R_X;
Out[0xF552] = R_B; // B = 0x00
Trash[0xF552] = R_A;
Name[0xF55A] = "Dec_3_Counters";
In[0xF55A] = 0;
Out[0xF55A] = R_X|R_B; // X = 0xC82E B = 0xFF
Trash[0xF55A] = 0;
Name[0xF55E] = "Dec_6_Counters";
In[0xF55E] = 0;
Out[0xF55E] = R_X|R_B; // X = 0xC82E B = 0xFF
Trash[0xF55E] = 0;
Name[0xF563] = "Dec_Counters";
In[0xF563] = R_B|R_X;
Out[0xF563] = R_B; // B = 0xFF
Trash[0xF563] = 0;
Name[0xF56D] = "Delay_3";
In[0xF56D] = 0;
Out[0xF56D] = R_B; // B = 0xFF
Trash[0xF56D] = 0;
Name[0xF571] = "Delay_2";
In[0xF571] = 0;
Out[0xF571] = R_B; // B = 0xFF
Trash[0xF571] = 0;
Name[0xF575] = "Delay_1";
In[0xF575] = 0;
Out[0xF575] = R_B; // B = 0xFF
Trash[0xF575] = 0;
Name[0xF579] = "Delay_0";
In[0xF579] = 0;
Out[0xF579] = R_B; // B = 0xFF
Trash[0xF579] = 0;
Name[0xF57A] = "Delay_b";
In[0xF57A] = R_B;
Out[0xF57A] = R_B; // B = 0xFF
Trash[0xF57A] = 0;
Name[0xF57D] = "Delay_RTS";
In[0xF57D] = 0;
Out[0xF57D] = 0;
Trash[0xF57D] = 0;
Name[0xF57E] = "Bitmask_a";
In[0xF57E] = R_A;
Out[0xF57E] = R_A;
Trash[0xF57E] = R_X;
Name[0xF584] = "Abs_a_b";
In[0xF584] = R_A|R_B;
Out[0xF584] = R_A|R_B;
Trash[0xF584] = 0;
Name[0xF58B] = "Abs_b";
In[0xF58B] = R_A;
Out[0xF58B] = R_A;
Trash[0xF58B] = 0;
Name[0xF593] = "Rise_Run_Angle";
In[0xF593] = R_A|R_B|R_DP;
DP_In[0xF593] = 0xC8;
Out[0xF593] = R_A|R_B;
Trash[0xF593] = 0;
Name[0xF5D9] = "Get_Rise_Idx";
In[0xF5D9] = R_A;
Out[0xF5D9] = R_A|R_B;
Trash[0xF5D9] = R_X;
Name[0xF5DB] = "Get_Run_Idx";
In[0xF5DB] = R_A;
Out[0xF5DB] = R_A|R_B;
Trash[0xF5DB] = R_X;
Name[0xF5EF] = "Rise_Run_Idx";
In[0xF5EF] = R_DP;
DP_In[0xF5EF] = 0xC8;
Out[0xF5EF] = 0;
Trash[0xF5EF] = R_A|R_B;
Name[0xF5FF] = "Rise_Run_X";
In[0xF5FF] = R_A|R_B;
Out[0xF5FF] = R_A|R_B;
Trash[0xF5FF] = 0;
Name[0xF601] = "Rise_Run_Y";
In[0xF601] = R_A|R_B;
Out[0xF601] = R_A|R_B;
Trash[0xF601] = 0;
Name[0xF603] = "Rise_Run_Len";
In[0xF603] = R_A|R_B;
Out[0xF603] = R_A|R_B;
Trash[0xF603] = 0;
Name[0xF610] = "Rot_VL_ab";
In[0xF610] = R_A|R_B|R_X|R_U;
Out[0xF610] = R_DP|R_X|R_U;
DP_Out[0xF610] = 0xC8;
Trash[0xF610] = R_A|R_B;
Name[0xF616] = "Rot_VL";
In[0xF616] = R_A|R_B|R_X|R_U;
Out[0xF616] = R_DP|R_X|R_U;
DP_Out[0xF616] = 0xC8;
Trash[0xF616] = R_A|R_B;
Name[0xF61F] = "Rot_VL_Mode";
In[0xF61F] = R_DP|R_A|R_X|R_U;
DP_In[0xF61F] = 0xC8;
Out[0xF61F] = R_X|R_U;
Trash[0xF61F] = R_A|R_B;
Name[0xF62B] = "Rot_VL_M_dft";
In[0xF62B] = R_DP|R_A|R_X|R_U;
DP_In[0xF62B] = 0xC8;
Out[0xF62B] = R_X|R_U;
Trash[0xF62B] = R_A|R_B;
Name[0xF65B] = "Xform_Run_a";
In[0xF65B] = R_DP|R_A;
DP_In[0xF65B] = 0xC8;
Out[0xF65B] = R_A;
Trash[0xF65B] = R_B;
Name[0xF65D] = "Xform_Run";
In[0xF65D] = R_DP;
DP_In[0xF65D] = 0xC8;
Out[0xF65D] = R_A;
Trash[0xF65D] = R_B;
Name[0xF661] = "Xform_Rise_a";
In[0xF661] = R_DP|R_A;
DP_In[0xF661] = 0xC8;
Out[0xF661] = R_A;
Trash[0xF661] = R_B;
Name[0xF663] = "Xform_Rise";
In[0xF663] = R_DP;
DP_In[0xF663] = 0xC8;
Out[0xF663] = R_A;
Trash[0xF663] = R_B;
Name[0xF67F] = "Move_Mem_a_1";
In[0xF67F] = R_A|R_X|R_U;
Out[0xF67F] = R_A|R_B; // A = 0xFF
Trash[0xF67F] = 0;
Name[0xF683] = "Move_Mem_a";
In[0xF683] = R_A|R_X|R_U;
Out[0xF683] = R_A|R_B; // A = 0xFF
Trash[0xF683] = 0;
Name[0xF687] = "Init_Music_chk";
In[0xF687] = R_DP|R_U;
DP_In[0xF687] = 0xC8;
Out[0xF687] = 0;
Trash[0xF687] = R_A|R_B|R_X|R_Y|R_U;
Name[0xF68D] = "Init_Music";
In[0xF68D] = R_DP|R_U;
DP_In[0xF68D] = 0xC8;
Out[0xF68D] = 0;
Trash[0xF68D] = R_A|R_B|R_X|R_Y|R_U;
Name[0xF692] = "Init_Music_dft";
In[0xF692] = R_DP|R_U;
DP_In[0xF692] = 0xC8;
Out[0xF692] = 0;
Trash[0xF692] = R_A|R_B|R_X|R_Y|R_U;
Name[0xF7A9] = "Select_Game";
In[0xF7A9] = R_A|R_B;
Out[0xF7A9] = R_DP;
DP_Out[0xF7A9] = 0xC8;
Trash[0xF7A9] = R_A|R_B|R_X|R_Y;
Name[0xF835] = "Display_Option";
In[0xF835] = R_A|R_Y;
Out[0xF835] = 0;
Trash[0xF835] = R_A|R_B|R_U|R_X;
Name[0xF84F] = "Clear_Score";
In[0xF84F] = R_X;
Out[0xF84F] = 0;
Trash[0xF84F] = R_A|R_B;
Name[0xF85E] = "Add_Score_a";
In[0xF85E] = R_A|R_U|R_X;
Out[0xF85E] = 0;
Trash[0xF85E] = R_A|R_B;
Name[0xF87C] = "Add_Score_d";
In[0xF87C] = R_A|R_B|R_X;
Out[0xF87C] = 0;
Trash[0xF87C] = R_A|R_B;
Name[0xF8B7] = "Strip_Zeros";
In[0xF8B7] = R_B|R_X;
Out[0xF8B7] = 0;
Trash[0xF8B7] = R_A|R_B;
Name[0xF8C7] = "Compare_Score";
In[0xF8C7] = R_X|R_U;
Out[0xF8C7] = R_A;
Trash[0xF8C7] = R_B;
Name[0xF8D8] = "New_High_Score";
In[0xF8D8] = R_X|R_U;
Out[0xF8D8] = 0;
Trash[0xF8D8] = R_X|R_U|R_A|R_B;
Name[0xF8E5] = "Obj_Will_Hit_u";
In[0xF8E5] = R_X|R_Y|R_U|R_A|R_B;
Out[0xF8E5] = R_C;
Trash[0xF8E5] = 0;
Name[0xF8F3] = "Obj_Will_Hit";
In[0xF8F3] = R_X|R_Y|R_U|R_A|R_B;
Out[0xF8F3] = R_C;
Trash[0xF8F3] = 0;
Name[0xF8FF] = "Obj_Hit";
In[0xF8FF] = R_X|R_Y|R_A|R_B;
Out[0xF8FF] = R_C;
Trash[0xF8FF] = 0;
Name[0xF92E] = "Explosion_Snd";
In[0xF92E] = R_DP|R_U;
DP_In[0xF92E] = 0xC8;
Out[0xF92E] = 0;
Trash[0xF92E] = R_A|R_B|R_X;
Name[0xFF9F] = "Draw_Grid_VL";
In[0xFF9F] = R_DP|R_X|R_Y;
DP_In[0xFF9F] = 0xD0;
Out[0xFF9F] = R_X|R_Y;
Trash[0xFF9F] = R_A|R_B;
}