home *** CD-ROM | disk | FTP | other *** search
- #include <cpu_prog_model.h>
- #include <cpu6502_addrm.h>
-
-
-
- void CMP_imm( code)
- PM *code;
- {
- short int temp_value;
-
- temp_value = code->Ac - code->Me [imm_address( code)];
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_zer( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = zero_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_zex( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = zero_x_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_abs( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = abs_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_abx( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = abs_x_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_aby( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = abs_y_address( code);
-
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
-
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_inx( code)
- PM *code;
- {
- unsigned short int address;
-
- short temp_value;
-
- address = ind_x_address( code);
-
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
- void CMP_iny( code)
- PM *code;
- {
- unsigned short int address;
-
- short temp_value;
-
- address = ind_y_address( code);
-
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Ac - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
-
- set_neg_zero_stat( code, temp_value);
- }
-
-
- void CPX_imm( code)
- PM *code;
- {
- short int temp_value;
-
- temp_value = code->Xr - code->Me [imm_address( code)];
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
- void CPX_zer( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = zero_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Xr - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
- void CPX_abs( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = abs_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Xr - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
- void CPY_imm( code)
- PM *code;
- {
- short int temp_value;
-
- temp_value = code->Yr - code->Me [imm_address( code)];
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
- void CPY_zer( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = zero_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Yr - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
- void CPY_abs( code)
- PM *code;
- {
- unsigned short int address;
- short int temp_value;
-
- address = abs_address( code);
- mem_check( address, &(code->Me [address]), code, Func_LOAD);
- temp_value = code->Me [address];
-
- temp_value = code->Yr - temp_value;
- code->Ca = (temp_value >= 0);
- temp_value &= 0xFF;
- set_neg_zero_stat( code, temp_value);
- }
-
-
-