* 6809 assembly program generated by cmoc 0.1.40 * 1 ORG 0 FCC 'g GCE 2015' FCB $80 FDB vx_music_1 FCB $FFFFFFF8 FCB $50 FCB $20 FCB $FFFFFFAA FCC 'CMOC' FCB $80 FCB 0 program_start EQU * LBSR INILIB initialize standard library and global variables LBSR _main call main() LBSR _exit use LBSR to respect calling convention functions_start EQU * ******************************************************************************* * FUNCTION Apply_vel_to_ship_pos(): defined at tgvectrex.c:2228 _Apply_vel_to_ship_pos EQU * PSHS U LEAU ,S * Line tgvectrex.c:2230: function call: Get_ship_vel() LDB 5,U variable id, declared at tgvectrex.c:2228 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_vel(): unsigned char LBSR _Get_ship_vel LEAS 2,S * Line tgvectrex.c:2231: function call: Get_ship_rotation() LDB 5,U variable id, declared at tgvectrex.c:2228 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_rotation(): unsigned char LBSR _Get_ship_rotation LEAS 2,S * Line tgvectrex.c:2235: function call: Change_ship_pos_by() * Line tgvectrex.c:2235: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:2235: function call: fp2_14_cos() LDD G00213+0,PCR variable this_X_rotation, declared at tgvectrex.c:1353 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int * Line tgvectrex.c:2235: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:2235: function call: fp2_14_cos() LDD G00214+0,PCR variable this_Y_rotation, declared at tgvectrex.c:1354 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD G00209+0,PCR variable this_vel, declared at tgvectrex.c:1347 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 4 of Change_ship_pos_by(): int * Line tgvectrex.c:2234: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:2234: function call: fp2_14_sin() LDD G00213+0,PCR variable this_X_rotation, declared at tgvectrex.c:1353 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD G00209+0,PCR variable this_vel, declared at tgvectrex.c:1347 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 3 of Change_ship_pos_by(): int * Line tgvectrex.c:2233: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:2233: function call: fp2_14_cos() LDD G00213+0,PCR variable this_X_rotation, declared at tgvectrex.c:1353 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int * Line tgvectrex.c:2233: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:2233: function call: fp2_14_sin() LDD G00214+0,PCR variable this_Y_rotation, declared at tgvectrex.c:1354 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD G00209+0,PCR variable this_vel, declared at tgvectrex.c:1347 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 2 of Change_ship_pos_by(): int LDB 5,U variable id, declared at tgvectrex.c:2228 CLRA promoting byte argument to word PSHS B,A argument 1 of Change_ship_pos_by(): unsigned char LBSR _Change_ship_pos_by LEAS 8,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Change_ship_pos_by(): defined at tgvectrex.c:2112 _Change_ship_pos_by EQU * PSHS U LEAU ,S * Line tgvectrex.c:2118: assignment: += LDD 6,U variable dx, declared at tgvectrex.c:2112 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$01 decimal 1 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Line tgvectrex.c:2119: assignment: += LDD 8,U variable dy, declared at tgvectrex.c:2112 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$02 decimal 2 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Line tgvectrex.c:2120: assignment: += LDD 10,U variable dz, declared at tgvectrex.c:2112 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$03 decimal 3 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Change_ship_rotation_by(): defined at tgvectrex.c:2123 _Change_ship_rotation_by EQU * PSHS U LEAU ,S * Line tgvectrex.c:2126: assignment: += LDD 6,U variable X_rotation, declared at tgvectrex.c:2123 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$04 decimal 4 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Line tgvectrex.c:2127: assignment: += LDD 8,U variable Y_rotation, declared at tgvectrex.c:2123 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$05 decimal 5 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Line tgvectrex.c:2128: assignment: += LDD 10,U variable Z_rotation, declared at tgvectrex.c:2123 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$06 decimal 6 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Change_ship_time_by(): defined at tgvectrex.c:2218 _Change_ship_time_by EQU * PSHS U LEAU ,S * Line tgvectrex.c:2220: assignment: += LDD 6,U variable dt, declared at tgvectrex.c:2218 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$09 decimal 9 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,X ADDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Change_ship_velocity_by(): defined at tgvectrex.c:2153 _Change_ship_velocity_by EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:2156: init of variable this_speed CLRA * LDB #$08 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand * optim: stripPushLeas1 ADDB #8 optim: optimizeStackOperations1 * optim: stripExtraClrA_B STD -2,U variable this_speed * Line tgvectrex.c:2161: if * LDD #$14 optim: optimizeStackOperations1 * PSHS B,A optim: optimizeStackOperations1 LEAX G00224+0,PCR address of array ships * optim: removeUselessLdd LSLB ROLA * optimizeLoadDX LDD D,X get r-value CMPD #20 optim: optimizeStackOperations1 BLE L00236 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2161: assignment: = CLRA LDB #$14 decimal 20 signed * PSHS B,A optim: optimizeStackOperations1 LEAX G00224+0,PCR address of array ships LDD -2,U variable this_speed LSLB ROLA LEAX D,X add byte offset LDD #20 optim: optimizeStackOperations1 STD ,X L00236 EQU * else * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Display_Vectrex_point(): defined at tgvectrex.c:181 _Display_Vectrex_point EQU * PSHS U LEAU ,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Display_Vectrex_vector(): defined at tgvectrex.c:176 _Display_Vectrex_vector EQU * PSHS U LEAU ,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Draw_ShipsPassedTotal(): defined at tgvectrex.c:1957 _Draw_ShipsPassedTotal EQU * * Line tgvectrex.c:1958: function call: Drawbignumat() LDY #$82 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$C8 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00186+0,PCR variable ShipsPassedTotal, declared at tgvectrex.c:1308 PSHS X,B,A optim: optimizePshsOps LBSR _Drawbignumat LEAS 6,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_credits(): defined at tgvectrex.c:1974 _Draw_credits EQU * * Line tgvectrex.c:1976: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF9C STD G00194+0,PCR * Line tgvectrex.c:1977: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF88 STD G00195+0,PCR * Line tgvectrex.c:1978: function call: ch128str() LEAX G00148+0,PCR address of array CREDITS_STR128 PSHS X argument 1 of ch128str(): unsigned char[] LBSR _ch128str LEAS 2,S * Line tgvectrex.c:1979: if LDB G00164+0,PCR variable Credits CMPB #$09 BLS L00239 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1980: function call: ch128() CLRA LDB #$0A decimal 10 signed PSHS B,A argument 1 of ch128(): int LBSR _ch128 LEAS 2,S BRA L00240 jump over else clause L00239 EQU * else * Line tgvectrex.c:1982: function call: ch128() LDB G00164+0,PCR CLRA ADDB #$01 optim: changeAddDToAddB * optim: stripExtraClrA_B PSHS B,A argument 1 of ch128(): unsigned char LBSR _ch128 LEAS 2,S L00240 EQU * end if * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_highscore(): defined at tgvectrex.c:1938 _Draw_highscore EQU * * Line tgvectrex.c:1940: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$2A STD G00194+0,PCR * Line tgvectrex.c:1941: assignment: = * optim: stripConsecutiveLoadsToSameReg * optim: stripExtraClrA_B LDB #$82 STD G00195+0,PCR * Line tgvectrex.c:1943: function call: ch96str() LEAX G00147+0,PCR address of array HIGH_SCORE_STR96 PSHS X argument 1 of ch96str(): unsigned char[] LBSR _ch96str LEAS 2,S * Line tgvectrex.c:1945: function call: Drawsmallnumat() LDY #$69 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$0900 optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps * Line tgvectrex.c:1945: function call: numdigits() LDD G00178+0,PCR variable HighScore, declared at tgvectrex.c:1298 PSHS B,A argument 1 of numdigits(): int LBSR _numdigits LEAS 2,S CLRA promotion of binary operand LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B PULS X LBSR MUL16 LSRA RORB LSRA RORB LSRA RORB LSRA RORB LSRA RORB LSRA RORB LSRA RORB PSHS B,A CLRA LDB #$CC decimal 204 signed SUBD ,S++ PSHS B,A argument 2 of Drawsmallnumat(): int LDD G00178+0,PCR variable HighScore, declared at tgvectrex.c:1298 PSHS B,A argument 1 of Drawsmallnumat(): int LBSR _Drawsmallnumat LEAS 6,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_last_game_score(): defined at tgvectrex.c:1986 _Draw_last_game_score EQU * * Line tgvectrex.c:1988: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF24 STD G00194+0,PCR * Line tgvectrex.c:1989: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$82 STD G00195+0,PCR * Line tgvectrex.c:1990: function call: ch96str() LEAX G00146+0,PCR address of array SCORE_STR96 PSHS X argument 1 of ch96str(): unsigned char[] LBSR _ch96str LEAS 2,S * Line tgvectrex.c:1991: function call: Drawsmallnumat() LDY #$69 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$FF24 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00179+0,PCR variable LastScore, declared at tgvectrex.c:1299 PSHS X,B,A optim: optimizePshsOps LBSR _Drawsmallnumat LEAS 6,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_score(): defined at tgvectrex.c:1933 _Draw_score EQU * * Line tgvectrex.c:1935: function call: Drawbignumat() LDY #$82 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$FF24 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00180+0,PCR variable Score, declared at tgvectrex.c:1300 PSHS X,B,A optim: optimizePshsOps LBSR _Drawbignumat LEAS 6,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_shields_left(): defined at tgvectrex.c:1928 _Draw_shields_left EQU * * Line tgvectrex.c:1930: function call: Drawbignumat() LDY #$8C optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$FFF6 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00182+0,PCR variable Shields, declared at tgvectrex.c:1303 PSHS X,B,A optim: optimizePshsOps LBSR _Drawbignumat LEAS 6,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Draw_ship_at_rotated_scale(): defined at tgvectrex.c:2179 _Draw_ship_at_rotated_scale EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:2183: function call: setintensity() CLRA LDB #$55 decimal 85 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S * Line tgvectrex.c:2187: function call: Set_rotation_vars() LDY 16,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX 14,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 12,U variable Xrot, declared at tgvectrex.c:2179 PSHS X,B,A optim: optimizePshsOps LBSR _Set_rotation_vars LEAS 6,S * Line tgvectrex.c:2188: for init * Line tgvectrex.c:2188: assignment: = LEAX G00159+0,PCR address of array ShipMeshPointers LDB 5,U variable model CLRA index expression is of byte type ABX optim: removeAndOrMulAddSub LDB ,X get r-value STB -1,U LBRA L00242 jump to for condition L00241 EQU * * Line tgvectrex.c:2188: for body * Line tgvectrex.c:2196: function call: Transform_point() * Line tgvectrex.c:2196: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA LDB #$02 decimal 2 signed PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 3 of Transform_point(): int * Line tgvectrex.c:2195: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 2 of Transform_point(): int * Line tgvectrex.c:2194: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA CLRB PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 1 of Transform_point(): int LBSR _Transform_point LEAS 6,S * Line tgvectrex.c:2197: function call: Get_screenpos() LDD G00218+0,PCR variable transformed_Z, declared at tgvectrex.c:1362 ADDD 10,U optim: pushDLoadAdd * * PSHS B,A argument 3 of Get_screenpos(): int LDD G00217+0,PCR variable transformed_Y, declared at tgvectrex.c:1361 ADDD 8,U optim: pushDLoadAdd * * PSHS B,A argument 2 of Get_screenpos(): int LDD G00216+0,PCR variable transformed_X, declared at tgvectrex.c:1360 ADDD 6,U optim: pushDLoadAdd * * PSHS B,A argument 1 of Get_screenpos(): int LBSR _Get_screenpos LEAS 6,S * Line tgvectrex.c:2200: function call: gotoxy() LDX G00142+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient ADDD G00230+0,PCR optim: pushDLoadAdd * * PSHS B,A argument 2 of gotoxy(): int LDX G00141+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient ADDD G00229+0,PCR optim: pushDLoadAdd * * PSHS B,A argument 1 of gotoxy(): int LBSR _gotoxy LEAS 4,S * Line tgvectrex.c:2201: function call: putPenDown() LBSR _putPenDown * Line tgvectrex.c:2205: function call: Transform_point() * Line tgvectrex.c:2205: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA LDB #$05 decimal 5 signed PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 3 of Transform_point(): int * Line tgvectrex.c:2204: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA LDB #$04 decimal 4 signed PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 2 of Transform_point(): int * Line tgvectrex.c:2203: function call: mul_short_by_fp2_14_returning_short() LDD 18,U variable scale_fp, declared at tgvectrex.c:2179 PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LEAX G00160+0,PCR address of array ShipMesh * optim: optimizePshsOps CLRA LDB #$03 decimal 3 signed PSHS X,B,A optim: optimizePshsOps LDA -1,U LDB #$06 MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value SEX promoting byte argument to word PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): char LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A argument 1 of Transform_point(): int LBSR _Transform_point LEAS 6,S * Line tgvectrex.c:2206: function call: Get_screenpos() LDD G00218+0,PCR variable transformed_Z, declared at tgvectrex.c:1362 ADDD 10,U optim: pushDLoadAdd * * PSHS B,A argument 3 of Get_screenpos(): int LDD G00217+0,PCR variable transformed_Y, declared at tgvectrex.c:1361 ADDD 8,U optim: pushDLoadAdd * * PSHS B,A argument 2 of Get_screenpos(): int LDD G00216+0,PCR variable transformed_X, declared at tgvectrex.c:1360 ADDD 6,U optim: pushDLoadAdd * * PSHS B,A argument 1 of Get_screenpos(): int LBSR _Get_screenpos LEAS 6,S * Line tgvectrex.c:2210: function call: gotoxy() LDX G00142+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient ADDD G00230+0,PCR optim: pushDLoadAdd * * PSHS B,A argument 2 of gotoxy(): int LDX G00141+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient ADDD G00229+0,PCR optim: pushDLoadAdd * * PSHS B,A argument 1 of gotoxy(): int LBSR _gotoxy LEAS 4,S * Line tgvectrex.c:2212: function call: putPenUp() LBSR _putPenUp * Useless label removed * Line tgvectrex.c:2188: for increment(s) INC -1,U L00242 EQU * * Line tgvectrex.c:2188: for condition LEAX G00159+0,PCR address of array ShipMeshPointers * optim: stripExtraPulsX LDB 5,U CLRA ADDB #$01 optim: changeAddDToAddB * optim: stripExtraClrA_B * optim: stripExtraPulsX * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B PSHS B optim: stripPushLeas LDB -1,U variable meshIndex, declared at tgvectrex.c:2181 * optim: stripExtraClrA_B * optim: stripPushLeas1 CMPB ,S+ compare with LSB LBLO L00241 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:2215: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Drawbignum(): defined at tgvectrex.c:1911 _Drawbignum EQU * PSHS U LEAU ,S * Line tgvectrex.c:1913: function call: Drawnum() LDX #$80 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable num, declared at tgvectrex.c:1911 PSHS X,B,A optim: optimizePshsOps LBSR _Drawnum LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Drawbignumat(): defined at tgvectrex.c:1916 _Drawbignumat EQU * PSHS U LEAU ,S * Line tgvectrex.c:1918: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 6,U STD G00194+0,PCR * Line tgvectrex.c:1918: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 8,U STD G00195+0,PCR * Line tgvectrex.c:1919: function call: Drawbignum() LDD 4,U variable num, declared at tgvectrex.c:1916 PSHS B,A argument 1 of Drawbignum(): int LBSR _Drawbignum LEAS 2,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Drawnum(): defined at tgvectrex.c:1887 _Drawnum EQU * PSHS U LEAU ,S LEAS -3,S * Line tgvectrex.c:1890: init of variable tens LDD #$2710 10000 STD -2,U variable tens * Line tgvectrex.c:1892: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$04 STB -3,U L00245 EQU * * Line tgvectrex.c:1893: for body * Line tgvectrex.c:1894: if LDD 4,U variable num CMPD -2,U variable tens BGE L00249 * optim: branchToNextLocation * Useless label removed LDB -3,U variable i, declared at tgvectrex.c:1889 * optim: loadCmpZeroBeqOrBne BNE L00250 * optim: condBranchOverUncondBranch L00249 EQU * then * Line tgvectrex.c:1896: function call: ch() LDB 7,U variable size, declared at tgvectrex.c:1887 CLRA promoting byte argument to word PSHS B,A argument 2 of ch(): unsigned char LDX 4,U left LDD -2,U right LBSR SDIV16 * optim: stripExtraPulsX * optim: optimizeTfrPush CLRA LDB #$0A decimal 10 signed * optim: stripExtraPulsX LBSR SDIV16 ADDD #$01 optim: pushDLoadAdd * * CLRA promoting byte argument to word PSHS B,A argument 1 of ch(): unsigned char LBSR _ch LEAS 4,S L00250 EQU * else * Useless label removed * Line tgvectrex.c:1898: assignment: = LDX -2,U left CLRA LDB #$0A right LBSR SDIV16 * optim: optimizeTfrOp STX -2,U optim: optimizeTfrOp * Line tgvectrex.c:1899: if LDB -3,U variable i, declared at tgvectrex.c:1889 * optim: loadCmpZeroBeqOrBne BNE L00254 * optim: condBranchOverUncondBranch * Useless label removed BRA L00084 return (tgvectrex.c:1899) L00254 EQU * else * Useless label removed * Line tgvectrex.c:1900: assignment: -= LDB -3,U variable i SUBB #$01 -= operator at tgvectrex.c:1900 STB -3,U * Useless label removed LBRA L00245 * Useless label removed L00084 EQU * end of Drawnum() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Drawsmallnum(): defined at tgvectrex.c:1906 _Drawsmallnum EQU * PSHS U LEAU ,S * Line tgvectrex.c:1908: function call: Drawnum() LDX #$60 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable num, declared at tgvectrex.c:1906 PSHS X,B,A optim: optimizePshsOps LBSR _Drawnum LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Drawsmallnumat(): defined at tgvectrex.c:1922 _Drawsmallnumat EQU * PSHS U LEAU ,S * Line tgvectrex.c:1924: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 6,U STD G00194+0,PCR * Line tgvectrex.c:1924: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 8,U STD G00195+0,PCR * Line tgvectrex.c:1925: function call: Drawsmallnum() LDD 4,U variable num, declared at tgvectrex.c:1922 PSHS B,A argument 1 of Drawsmallnum(): int LBSR _Drawsmallnum LEAS 2,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_eigenvector_to(): defined at tgvectrex.c:2246 _Get_eigenvector_to EQU * PSHS U LEAU ,S * Line tgvectrex.c:2255: assignment: = * Line tgvectrex.c:2255: function call: Scratch_atan2_fakedegrees() LDX 8,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable dx, declared at tgvectrex.c:2246 PSHS X,B,A optim: optimizePshsOps LBSR _Scratch_atan2_fakedegrees LEAS 4,S STD G00222+0,PCR * Line tgvectrex.c:2257: if LDD 8,U variable dz ADDD #0 BGE L00257 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2257: assignment: += LDD G00222+0,PCR variable dirXZ ADDD #$80 += operator at tgvectrex.c:2257 STD G00222+0,PCR L00257 EQU * else * Useless label removed * Line tgvectrex.c:2260: assignment: = * Line tgvectrex.c:2260: function call: asin_of_fp2_14() LDD 6,U variable dy, declared at tgvectrex.c:2246 PSHS B,A * Line tgvectrex.c:2260: function call: isqrt() LDX 8,U left LDD 8,U right LBSR MUL16 PSHS B,A LDX 6,U left LDD 6,U right LBSR MUL16 PSHS B,A LDX 4,U left LDD 4,U right LBSR MUL16 ADDD ,S++ ADDD ,S++ PSHS B,A argument 1 of isqrt(): int LBSR _isqrt LEAS 2,S PULS X LBSR SDIV16 TFR X,D quotient PSHS B,A argument 1 of asin_of_fp2_14(): int LBSR _asin_of_fp2_14 LEAS 2,S STD G00223+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_screenpos(): defined at tgvectrex.c:2055 _Get_screenpos EQU * PSHS U LEAU ,S * Line tgvectrex.c:2057: assignment: = LDX #$0400 left LDD 4,U right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 8,U variable z, declared at tgvectrex.c:2055 * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX G00229+0,PCR optim: optimizeTfrOp * Line tgvectrex.c:2057: assignment: = LDX #$0400 left LDD 6,U right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 8,U variable z, declared at tgvectrex.c:2055 * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX G00230+0,PCR optim: optimizeTfrOp * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_destination(): defined at tgvectrex.c:2144 _Get_ship_destination EQU * PSHS U LEAU ,S * Line tgvectrex.c:2148: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0A decimal 10 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00210+0,PCR * Line tgvectrex.c:2149: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0B decimal 11 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00211+0,PCR * Line tgvectrex.c:2150: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0C decimal 12 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00212+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_pos(): defined at tgvectrex.c:2030 _Get_ship_pos EQU * PSHS U LEAU ,S * Line tgvectrex.c:2035: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$01 decimal 1 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00206+0,PCR * Line tgvectrex.c:2036: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$02 decimal 2 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00207+0,PCR * Line tgvectrex.c:2037: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$03 decimal 3 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00208+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_rotation(): defined at tgvectrex.c:2131 _Get_ship_rotation EQU * PSHS U LEAU ,S * Line tgvectrex.c:2134: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$04 decimal 4 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00213+0,PCR * Line tgvectrex.c:2135: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$05 decimal 5 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00214+0,PCR * Line tgvectrex.c:2136: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$06 decimal 6 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00215+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_scale(): defined at tgvectrex.c:2040 _Get_ship_scale EQU * PSHS U LEAU ,S * Line tgvectrex.c:2042: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$07 decimal 7 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00203+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_status(): defined at tgvectrex.c:2045 _Get_ship_status EQU * PSHS U LEAU ,S * Line tgvectrex.c:2047: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0D decimal 13 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STB G00202+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_time(): defined at tgvectrex.c:2139 _Get_ship_time EQU * PSHS U LEAU ,S * Line tgvectrex.c:2141: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$09 decimal 9 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00204+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_type(): defined at tgvectrex.c:2446 _Get_ship_type EQU * PSHS U LEAU ,S * Line tgvectrex.c:2448: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA CLRB PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STB G00205+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Get_ship_vel(): defined at tgvectrex.c:2223 _Get_ship_vel EQU * PSHS U LEAU ,S * Line tgvectrex.c:2225: assignment: = LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$08 decimal 8 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD G00209+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Head_ship_towards_destination(): defined at tgvectrex.c:2293 _Head_ship_towards_destination EQU * PSHS U LEAU ,S * Line tgvectrex.c:2295: function call: Get_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2293 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S * Line tgvectrex.c:2296: function call: Get_ship_destination() LDB 5,U variable id, declared at tgvectrex.c:2293 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_destination(): unsigned char LBSR _Get_ship_destination LEAS 2,S * Line tgvectrex.c:2298: function call: Rotate_ship_toward_by_fakepercent() LDY #$10 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00212+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00211+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00210+0,PCR variable this_X_destination, declared at tgvectrex.c:1349 PSHS X,B,A optim: optimizePshsOps LDB 5,U variable id, declared at tgvectrex.c:2293 CLRA promoting byte argument to word PSHS B,A argument 1 of Rotate_ship_toward_by_fakepercent(): unsigned char LBSR _Rotate_ship_toward_by_fakepercent LEAS 10,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION InsertCoin(): defined at tgvectrex.c:1948 _InsertCoin EQU * * Line tgvectrex.c:1950: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF79 STD G00194+0,PCR * Line tgvectrex.c:1951: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF88 STD G00195+0,PCR * Line tgvectrex.c:1952: function call: setintensity() LDB G00170+0,PCR variable global_flashing_intensity, declared at tgvectrex.c:1282 CLRA promoting byte argument to word PSHS B,A argument 1 of setintensity(): unsigned char LBSR _setintensity LEAS 2,S * Line tgvectrex.c:1953: function call: ch128str() LEAX G00149+0,PCR address of array INSERT_COIN_STR128 PSHS X argument 1 of ch128str(): unsigned char[] LBSR _ch128str LEAS 2,S * Line tgvectrex.c:1954: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Main_loop(): defined at tgvectrex.c:168 _Main_loop EQU * L00259 EQU * * Line tgvectrex.c:169: for body * Line tgvectrex.c:170: function call: playTailgunner() LBSR _playTailgunner * Line tgvectrex.c:172: assignment: += LDX #$03E8 left LDD G00132+0,PCR right LBSR SDIV16 TFR X,D quotient ADDD G00134+0,PCR optim: pushDLoadAdd * * STD G00134+0,PCR * Useless label removed BRA L00259 * Useless label removed * Useless label removed * optim: instrFollowingUncondBranch * END FUNCTION ******************************************************************************* * FUNCTION Playintro(): defined at tgvectrex.c:1714 _Playintro EQU * * Line tgvectrex.c:1716: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$CE STD G00165+0,PCR * Line tgvectrex.c:1716: assignment: = * optim: stripExtraClrA_B * optim: stripConsecutiveLoadsToSameReg LDB #$40 STB G00166+0,PCR * Line tgvectrex.c:1717: assignment: = * optim: removeClr CLRB LDB #$00 optim: changeLoadDToLoadB STD G00169+0,PCR * Line tgvectrex.c:1717: assignment: = * optim: stripExtraClrA_B * optim: removeClr * optim: removeClr * optim: stripExtraClrA_B STD G00172+0,PCR * Line tgvectrex.c:1718: assignment: = * optim: removeClr * optim: removeClr * optim: removeClr * optim: stripExtraClrA_B STD G00193+0,PCR * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Press_start(): defined at tgvectrex.c:1965 _Press_start EQU * * Line tgvectrex.c:1967: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FF88 STD G00194+0,PCR * Line tgvectrex.c:1968: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FFF6 STD G00195+0,PCR * Line tgvectrex.c:1969: function call: setintensity() LDB G00170+0,PCR variable global_flashing_intensity, declared at tgvectrex.c:1282 CLRA promoting byte argument to word PSHS B,A argument 1 of setintensity(): unsigned char LBSR _setintensity LEAS 2,S * Line tgvectrex.c:1970: function call: ch128str() LEAX G00150+0,PCR address of array PRESS_START_STR128 PSHS X argument 1 of ch128str(): unsigned char[] LBSR _ch128str LEAS 2,S * Line tgvectrex.c:1971: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Render_lasers(): defined at tgvectrex.c:2378 _Render_lasers EQU * * Line tgvectrex.c:2381: if LDB G00136+0,PCR variable Pressed_Key CMPB #$0A BEQ L00263 * optim: branchToNextLocation * Useless label removed LDB G00136+0,PCR variable Pressed_Key CMPB #$0D BEQ L00263 * optim: branchToNextLocation * Useless label removed LDB G00139+0,PCR variable mouse_fire, declared at tgvectrex.c:142 * optim: loadCmpZeroBeqOrBne LBEQ L00264 * optim: condBranchOverUncondBranch L00263 EQU * then * Line tgvectrex.c:2382: assignment: = CLRA CLRB * optim: removeClr STB G00136+0,PCR * Line tgvectrex.c:2383: if LDB G00231+0,PCR variable firing, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne LBNE L00268 * optim: branchToNextLocation * Useless label removed LDB G00234+0,PCR variable reloaded, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne LBEQ L00268 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2385: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB G00231+0,PCR * Line tgvectrex.c:2385: assignment: = * optim: stripExtraClrA_B CLRB * optim: removeClr STB G00234+0,PCR * Line tgvectrex.c:2386: assignment: = * Line tgvectrex.c:2386: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX * optim: optimizePshsOps LDX #$28 optim: transformPshsDPshsD PSHS Y,X optim: optimizePshsOps * optim: stripExtraClrA_B LDB #$28 decimal 40 signed PSHS B,A argument 2 of plot_fire(): int * optim: stripExtraClrA_B CLRB PSHS B,A argument 1 of plot_fire(): int LBSR _plot_fire LEAS 10,S STB G00232+0,PCR * Line tgvectrex.c:2387: assignment: = * Line tgvectrex.c:2387: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$28 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$03E8 optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LBSR _plot_fire LEAS 10,S STB G00233+0,PCR LBRA L00270 jump over else clause L00268 EQU * else * Line tgvectrex.c:2389: if LDB G00232+0,PCR variable firedone1, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BNE L00272 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:2390: assignment: = * Line tgvectrex.c:2390: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00228+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00227+0,PCR index 0 in array firex[] PSHS X,B,A optim: optimizePshsOps CLRA CLRB PSHS B,A argument 1 of plot_fire(): int LBSR _plot_fire LEAS 10,S STB G00232+0,PCR L00272 EQU * else * Useless label removed * Line tgvectrex.c:2392: if LDB G00233+0,PCR variable firedone2, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BNE L00275 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:2393: assignment: = * Line tgvectrex.c:2393: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00228+2,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00227+2,PCR optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LBSR _plot_fire LEAS 10,S STB G00233+0,PCR L00275 EQU * else * Useless label removed * Line tgvectrex.c:2395: assignment: = LDB G00232+0,PCR variable firedone1, declared at tgvectrex.c:2377 TSTB boolean negation: get Z flag TFR CC,B ANDB #4 keep Z flag LSRB shift Z flag to bit 0 of B LSRB TSTB || BNE L00277 || yields true LDB G00233+0,PCR variable firedone2, declared at tgvectrex.c:2377 TSTB boolean negation: get Z flag TFR CC,B ANDB #4 keep Z flag LSRB shift Z flag to bit 0 of B LSRB TSTB || BEQ L00278 L00277 EQU * || at tgvectrex.c:2395 yields true, B != 0 L00278 EQU * STB G00231+0,PCR L00270 EQU * end if LBRA L00279 jump over else clause L00264 EQU * else * Line tgvectrex.c:2398: if LDB G00231+0,PCR variable firing, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne LBEQ L00281 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2399: if LDB G00232+0,PCR variable firedone1, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BNE L00283 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:2400: assignment: = * Line tgvectrex.c:2400: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00228+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00227+0,PCR index 0 in array firex[] PSHS X,B,A optim: optimizePshsOps CLRA CLRB PSHS B,A argument 1 of plot_fire(): int LBSR _plot_fire LEAS 10,S STB G00232+0,PCR L00283 EQU * else * Useless label removed * Line tgvectrex.c:2402: if LDB G00233+0,PCR variable firedone2, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BNE L00286 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:2403: assignment: = * Line tgvectrex.c:2403: function call: plot_fire() LDY G00138+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00137+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00228+2,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00227+2,PCR optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LBSR _plot_fire LEAS 10,S STB G00233+0,PCR L00286 EQU * else * Useless label removed * Line tgvectrex.c:2405: assignment: = LDB G00232+0,PCR variable firedone1, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BEQ L00288 && at tgvectrex.c:2405 yields false, B == 0 LDB G00233+0,PCR variable firedone2, declared at tgvectrex.c:2377 * optim: loadCmpZeroBeqOrBne BEQ L00288 && at tgvectrex.c:2405 yields false, B == 0 LDB #1 && yields true L00288 EQU * TSTB boolean negation: get Z flag TFR CC,B ANDB #4 keep Z flag LSRB shift Z flag to bit 0 of B LSRB STB G00231+0,PCR BRA L00289 jump over else clause L00281 EQU * else * Line tgvectrex.c:2406: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB G00234+0,PCR L00289 EQU * end if L00279 EQU * end if * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Render_ships(): defined at tgvectrex.c:2451 _Render_ships EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:2453: init of variable id CLR -1,U variable id * Line tgvectrex.c:2454: for init * Line tgvectrex.c:2454: assignment: = CLRA CLRB * optim: removeClr STB -1,U LBRA L00291 jump to for condition L00290 EQU * * Line tgvectrex.c:2454: for body * Line tgvectrex.c:2455: function call: Get_ship_status() LDB -1,U variable id, declared at tgvectrex.c:2453 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_status(): unsigned char LBSR _Get_ship_status LEAS 2,S * Line tgvectrex.c:2456: if LDB G00202+0,PCR variable this_status, declared at tgvectrex.c:1337 * optim: loadCmpZeroBeqOrBne LBNE L00295 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2457: function call: Get_ship_type() LDB -1,U variable id, declared at tgvectrex.c:2453 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_type(): unsigned char LBSR _Get_ship_type LEAS 2,S * Line tgvectrex.c:2458: function call: Get_ship_pos() LDB -1,U variable id, declared at tgvectrex.c:2453 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S * Line tgvectrex.c:2459: function call: Get_ship_rotation() LDB -1,U variable id, declared at tgvectrex.c:2453 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_rotation(): unsigned char LBSR _Get_ship_rotation LEAS 2,S * Line tgvectrex.c:2460: function call: Get_ship_scale() LDB -1,U variable id, declared at tgvectrex.c:2453 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_scale(): unsigned char LBSR _Get_ship_scale LEAS 2,S * Line tgvectrex.c:2464: function call: Draw_ship_at_rotated_scale() LDY G00203+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00215+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00214+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00213+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY G00208+0,PCR optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00207+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00206+0,PCR variable this_X, declared at tgvectrex.c:1343 PSHS X,B,A optim: optimizePshsOps LDB G00205+0,PCR variable this_model, declared at tgvectrex.c:1342 CLRA promoting byte argument to word PSHS B,A argument 1 of Draw_ship_at_rotated_scale(): unsigned char LBSR _Draw_ship_at_rotated_scale LEAS 16,S L00295 EQU * else * Useless label removed * Useless label removed * Line tgvectrex.c:2454: for increment(s) INC -1,U L00291 EQU * * Line tgvectrex.c:2454: for condition LDB -1,U variable id CMPB #$03 LBLO L00290 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Rotate_ship_toward_by_fakepercent(): defined at tgvectrex.c:2271 _Rotate_ship_toward_by_fakepercent EQU * PSHS U LEAU ,S * Line tgvectrex.c:2275: function call: Get_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2271 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S * Line tgvectrex.c:2276: function call: Get_eigenvector_to() LDD G00208+0,PCR variable this_Z, declared at tgvectrex.c:1345 PSHS B,A LDD 10,U variable z, declared at tgvectrex.c:2271 SUBD ,S++ PSHS B,A argument 3 of Get_eigenvector_to(): int LDD G00207+0,PCR variable this_Y, declared at tgvectrex.c:1344 PSHS B,A LDD 8,U variable y, declared at tgvectrex.c:2271 SUBD ,S++ PSHS B,A argument 2 of Get_eigenvector_to(): int LDD G00206+0,PCR variable this_X, declared at tgvectrex.c:1343 PSHS B,A LDD 6,U variable x, declared at tgvectrex.c:2271 SUBD ,S++ PSHS B,A argument 1 of Get_eigenvector_to(): int LBSR _Get_eigenvector_to LEAS 6,S * Line tgvectrex.c:2277: function call: Get_ship_rotation() LDB 5,U variable id, declared at tgvectrex.c:2271 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_rotation(): unsigned char LBSR _Get_ship_rotation LEAS 2,S * Line tgvectrex.c:2283: function call: Change_ship_rotation_by() LDD 12,U variable fakepercent, declared at tgvectrex.c:2271 TFR D,X optim: stripExtraPulsX LDD G00215+0,PCR variable this_Z_rotation, declared at tgvectrex.c:1355 COMA COMB ADDD #1 * optim: stripExtraPulsX LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB PSHS B,A argument 4 of Change_ship_rotation_by(): int LDY 12,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$80 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$FF optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$80 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00214+0,PCR variable this_Y_rotation, declared at tgvectrex.c:1354 PSHS X,B,A optim: optimizePshsOps LDD G00222+0,PCR variable dirXZ, declared at tgvectrex.c:1366 SUBD ,S++ ADDD ,S++ ANDA ,S+ ANDB ,S+ SUBD ,S++ PULS X LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB PSHS B,A argument 3 of Change_ship_rotation_by(): int LDY 12,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$80 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$FF optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$80 optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00213+0,PCR variable this_X_rotation, declared at tgvectrex.c:1353 PSHS X,B,A optim: optimizePshsOps LDD G00223+0,PCR variable dirY, declared at tgvectrex.c:1367 SUBD ,S++ ADDD ,S++ ANDA ,S+ ANDB ,S+ SUBD ,S++ PULS X LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB PSHS B,A argument 2 of Change_ship_rotation_by(): int LDB 5,U variable id, declared at tgvectrex.c:2271 CLRA promoting byte argument to word PSHS B,A argument 1 of Change_ship_rotation_by(): unsigned char LBSR _Change_ship_rotation_by LEAS 8,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Scratch_atan2_fakedegrees(): defined at tgvectrex.c:1158 _Scratch_atan2_fakedegrees EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1160: init of variable result CLRA LDB #$80 decimal 128 signed PSHS B,A * Line tgvectrex.c:1160: function call: fxpt_atan2() LDX 6,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable x, declared at tgvectrex.c:1158 PSHS X,B,A optim: optimizePshsOps LBSR _fxpt_atan2 LEAS 4,S TFR A,B shift D 8 bits right CLRA unsigned SUBD ,S++ STD -2,U variable result * Line tgvectrex.c:1162: if * optim: storeLoad CMPD #$FFC0 BGT L00298 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1163: return with value LDD -2,U variable result ADDD #$80 128 BRA L00052 return (tgvectrex.c:1163) * optim: instrFollowingUncondBranch L00298 EQU * else * Line tgvectrex.c:1164: if LDD -2,U variable result CMPD #$40 BLT L00301 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1165: return with value LDD -2,U variable result ADDD #$FF80 65408 BRA L00052 return (tgvectrex.c:1165) L00301 EQU * else * Useless label removed * Useless label removed * Line tgvectrex.c:1167: return with value LDD -2,U variable result, declared at tgvectrex.c:1160 * optim: branchToNextLocation L00052 EQU * end of Scratch_atan2_fakedegrees() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Set_rotation_vars(): defined at tgvectrex.c:2164 _Set_rotation_vars EQU * PSHS U LEAU ,S * Line tgvectrex.c:2166: assignment: = * Line tgvectrex.c:2166: function call: fp2_14_sin() LDD 4,U variable Xrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S STD G00190+0,PCR * Line tgvectrex.c:2167: assignment: = * Line tgvectrex.c:2167: function call: fp2_14_cos() LDD 4,U variable Xrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S STD G00187+0,PCR * Line tgvectrex.c:2168: assignment: = * Line tgvectrex.c:2168: function call: fp2_14_sin() LDD 6,U variable Yrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S STD G00191+0,PCR * Line tgvectrex.c:2169: assignment: = * Line tgvectrex.c:2169: function call: fp2_14_cos() LDD 6,U variable Yrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S STD G00188+0,PCR * Line tgvectrex.c:2170: assignment: = * Line tgvectrex.c:2170: function call: fp2_14_sin() LDD 8,U variable Zrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S STD G00192+0,PCR * Line tgvectrex.c:2171: assignment: = * Line tgvectrex.c:2171: function call: fp2_14_cos() LDD 8,U variable Zrot, declared at tgvectrex.c:2164 PSHS B,A argument 1 of fp2_14_cos(): int LBSR _fp2_14_cos LEAS 2,S STD G00189+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Set_ship_destinationto(): defined at tgvectrex.c:2314 _Set_ship_destinationto EQU * PSHS U LEAU ,S * Line tgvectrex.c:2317: assignment: = LDD 6,U variable x, declared at tgvectrex.c:2314 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0A decimal 10 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:2318: assignment: = LDD 8,U variable y, declared at tgvectrex.c:2314 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0B decimal 11 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:2319: assignment: = LDD 10,U variable z, declared at tgvectrex.c:2314 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$0C decimal 12 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Set_ship_status(): defined at tgvectrex.c:2066 _Set_ship_status EQU * PSHS U LEAU ,S * Line tgvectrex.c:2068: assignment: = LDB 7,U variable NewStatus, declared at tgvectrex.c:2066 CLRA PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps LDB #$0D optim: changeLoadDToLoadB PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Set_ship_velocityto(): defined at tgvectrex.c:2309 _Set_ship_velocityto EQU * PSHS U LEAU ,S * Line tgvectrex.c:2311: assignment: = LDD 6,U variable vel, declared at tgvectrex.c:2309 PSHS B,A LEAX G00224+0,PCR address of array ships * optim: optimizePshsOps CLRA LDB #$08 decimal 8 unsigned PSHS X,B,A optim: optimizePshsOps LDA 5,U LDB #$0E MUL result of type byte in B CLRA promotion of binary operand LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Shield(): defined at tgvectrex.c:1994 _Shield EQU * * Line tgvectrex.c:1996: if LDD G00184+0,PCR variable shieldsubticksleft, declared at tgvectrex.c:1305 * optim: loadCmpZeroBeqOrBne BNE L00304 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1997: function call: startAsyncSound() CLRA LDB #$04 decimal 4 signed PSHS B,A argument 1 of startAsyncSound(): int LBSR _startAsyncSound LEAS 2,S * Line tgvectrex.c:2000: assignment: = * Line tgvectrex.c:2000: function call: div_int_by_int_returning_fp2_14() LDX #$03 optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$0A decimal 10 signed PSHS X,B,A optim: optimizePshsOps LBSR _div_int_by_int_returning_fp2_14 LEAS 4,S STD G00184+0,PCR * Line tgvectrex.c:2003: assignment: -= LDD G00182+0,PCR variable Shields SUBD #$01 -= operator at tgvectrex.c:2003 STD G00182+0,PCR BRA L00305 jump over else clause L00304 EQU * else * Line tgvectrex.c:2005: assignment: -= LDD G00184+0,PCR variable shieldsubticksleft SUBD #$01 -= operator at tgvectrex.c:2005 STD G00184+0,PCR L00305 EQU * end if * Line tgvectrex.c:2007: function call: draw_shields() LBSR _draw_shields * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Start_attack_wave(): defined at tgvectrex.c:1781 _Start_attack_wave EQU * PSHS U LEAU ,S LEAS -13,S * Line tgvectrex.c:1783: init of variable Z LDD #$07D0 2000 STD -7,U variable Z * Line tgvectrex.c:1783: init of variable scale_fp * Line tgvectrex.c:1783: function call: div_int_by_int_returning_fp2_14() LDX #$1388 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$07CF decimal 1999 signed PSHS X,B,A optim: optimizePshsOps LBSR _div_int_by_int_returning_fp2_14 LEAS 4,S STD -3,U variable scale_fp * Line tgvectrex.c:1787: for init * Line tgvectrex.c:1787: assignment: = CLRA CLRB * optim: removeClr STB -1,U LBRA L00307 jump to for condition L00306 EQU * * Line tgvectrex.c:1787: for body * Line tgvectrex.c:1788: assignment: = * Line tgvectrex.c:1788: function call: pickrandom() LDX #$03 optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S STD -13,U * Line tgvectrex.c:1789: if * optim: storeLoad CMPD #$01 BNE L00311 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1790: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$FC7C STD -11,U * Line tgvectrex.c:1790: assignment: = * Line tgvectrex.c:1790: function call: pickrandom() LDX #$01F4 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FE0C constant expression: 65036 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S STD -9,U * Line tgvectrex.c:1790: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$40 STD -5,U BRA L00312 jump over else clause L00311 EQU * else * Line tgvectrex.c:1791: if LDD -13,U variable randomedge CMPD #$02 BNE L00314 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1792: assignment: = * Line tgvectrex.c:1792: function call: pickrandom() LDX #$01F4 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FE0C constant expression: 65036 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S STD -11,U * Line tgvectrex.c:1792: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$02BC STD -9,U * Line tgvectrex.c:1792: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD -5,U BRA L00315 jump over else clause L00314 EQU * else * Line tgvectrex.c:1794: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$0384 STD -11,U * Line tgvectrex.c:1794: assignment: = * Line tgvectrex.c:1794: function call: pickrandom() LDX #$01F4 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FE0C constant expression: 65036 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S STD -9,U * Line tgvectrex.c:1794: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$C0 STD -5,U L00315 EQU * end if L00312 EQU * end if * Line tgvectrex.c:1796: function call: initialise_ship() LDY -3,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY -5,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$80 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY #$C0 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY -7,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX -9,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD -11,U variable X, declared at tgvectrex.c:1783 PSHS X,B,A optim: optimizePshsOps LDB G00201+0,PCR variable nextwaveshiptype, declared at tgvectrex.c:1331 CLRA promoting byte argument to word PSHS B,A argument 2 of initialise_ship(): unsigned char LDB -1,U variable i, declared at tgvectrex.c:1785 * optim: stripExtraClrA_B PSHS B,A argument 1 of initialise_ship(): unsigned char LBSR _initialise_ship LEAS 18,S * Useless label removed * Line tgvectrex.c:1787: for increment(s) INC -1,U L00307 EQU * * Line tgvectrex.c:1787: for condition LDB -1,U variable i CMPB #$03 LBLO L00306 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:1801: assignment: = CLRA LDB #$03 decimal 3 signed PSHS B optim: stripPushLeas LDB G00201+0,PCR * optim: stripExtraClrA_B ADDB #$01 optim: changeAddDToAddB * optim: stripExtraClrA_B * optim: stripPushLeas1 ANDB ,S+ STB G00201+0,PCR * Line tgvectrex.c:1803: assignment: = * optim: stripExtraClrA_B CLRB * optim: stripExtraClrA_B * optim: stripExtraClrA_B STD G00185+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Start_new_game(): defined at tgvectrex.c:1806 _Start_new_game EQU * * Line tgvectrex.c:1808: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$02 STD G00193+0,PCR * Line tgvectrex.c:1809: assignment: = * optim: stripExtraClrA_B CLRB LDB #$00 optim: changeLoadDToLoadB STD G00180+0,PCR * Line tgvectrex.c:1811: assignment: = * optim: stripConsecutiveLoadsToSameReg * optim: stripExtraClrA_B LDB #$50 STD G00182+0,PCR * Line tgvectrex.c:1812: assignment: = * optim: removeClr CLRB * optim: removeClr * optim: removeClr STD G00186+0,PCR * Line tgvectrex.c:1814: assignment: = * optim: removeClr * optim: removeClr * optim: removeClr STB G00201+0,PCR * Line tgvectrex.c:1817: function call: Start_attack_wave() LBSR _Start_attack_wave * Line tgvectrex.c:1821: assignment: = * Line tgvectrex.c:1821: function call: millis() LBSR _millis STD G00177+0,PCR * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION Transform_point(): defined at tgvectrex.c:2101 _Transform_point EQU * PSHS U LEAU ,S * Line tgvectrex.c:2104: assignment: = * Line tgvectrex.c:2104: function call: mul_short_by_fp2_14_returning_short() LDX G00190+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 8,U variable z, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2104: function call: mul_short_by_fp2_14_returning_short() LDX G00187+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 6,U variable y, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S SUBD ,S++ STD G00219+0,PCR * Line tgvectrex.c:2105: assignment: = * Line tgvectrex.c:2105: function call: mul_short_by_fp2_14_returning_short() LDX G00187+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 8,U variable z, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2105: function call: mul_short_by_fp2_14_returning_short() LDX G00190+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 6,U variable y, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S ADDD ,S++ STD G00220+0,PCR * Line tgvectrex.c:2106: assignment: = * Line tgvectrex.c:2106: function call: mul_short_by_fp2_14_returning_short() LDX G00191+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable x, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2106: function call: mul_short_by_fp2_14_returning_short() LDX G00188+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00220+0,PCR variable XZ, declared at tgvectrex.c:1364 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S SUBD ,S++ STD G00218+0,PCR * Line tgvectrex.c:2107: assignment: = * Line tgvectrex.c:2107: function call: mul_short_by_fp2_14_returning_short() LDX G00188+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable x, declared at tgvectrex.c:2101 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2107: function call: mul_short_by_fp2_14_returning_short() LDX G00191+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00220+0,PCR variable XZ, declared at tgvectrex.c:1364 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S ADDD ,S++ STD G00221+0,PCR * Line tgvectrex.c:2108: assignment: = * Line tgvectrex.c:2108: function call: mul_short_by_fp2_14_returning_short() LDX G00192+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00219+0,PCR variable XY, declared at tgvectrex.c:1363 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2108: function call: mul_short_by_fp2_14_returning_short() LDX G00189+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00221+0,PCR variable YX, declared at tgvectrex.c:1365 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S SUBD ,S++ STD G00216+0,PCR * Line tgvectrex.c:2109: assignment: = * Line tgvectrex.c:2109: function call: mul_short_by_fp2_14_returning_short() LDX G00189+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00219+0,PCR variable XY, declared at tgvectrex.c:1363 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S PSHS B,A * Line tgvectrex.c:2109: function call: mul_short_by_fp2_14_returning_short() LDX G00192+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00221+0,PCR variable YX, declared at tgvectrex.c:1365 PSHS X,B,A optim: optimizePshsOps LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S ADDD ,S++ STD G00217+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Update_ship(): defined at tgvectrex.c:2322 _Update_ship EQU * PSHS U LEAU ,S * Line tgvectrex.c:2324: function call: Get_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S * Line tgvectrex.c:2325: function call: Apply_vel_to_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Apply_vel_to_ship_pos(): unsigned char LBSR _Apply_vel_to_ship_pos LEAS 2,S * Line tgvectrex.c:2327: function call: Change_ship_velocity_by() * Line tgvectrex.c:2327: function call: div_int_by_int_returning_fp2_14() LDX #$0A optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LBSR _div_int_by_int_returning_fp2_14 LEAS 4,S PSHS B,A argument 2 of Change_ship_velocity_by(): int LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Change_ship_velocity_by(): unsigned char LBSR _Change_ship_velocity_by LEAS 4,S * Line tgvectrex.c:2328: if LDD G00208+0,PCR variable this_Z CMPD #$64 LBGE L00317 * optim: condBranchOverUncondBranch * Useless label removed LDD G00181+0,PCR variable UsingShields CMPD #$01 LBNE L00317 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2329: function call: startAsyncSound() CLRA LDB #$01 decimal 1 signed PSHS B,A argument 1 of startAsyncSound(): int LBSR _startAsyncSound LEAS 2,S * Line tgvectrex.c:2333: function call: Set_ship_destinationto() LDD #$0BB8 constant expression: 3000 decimal PSHS B,A argument 4 of Set_ship_destinationto(): int * Line tgvectrex.c:2332: function call: pickrandom() LDX #$64 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FF9C constant expression: 65436 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S PSHS B,A argument 3 of Set_ship_destinationto(): int * Line tgvectrex.c:2331: function call: pickrandom() LDX #$64 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FF9C constant expression: 65436 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S PSHS B,A argument 2 of Set_ship_destinationto(): int LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Set_ship_destinationto(): unsigned char LBSR _Set_ship_destinationto LEAS 8,S * Line tgvectrex.c:2335: function call: Get_ship_vel() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_vel(): unsigned char LBSR _Get_ship_vel LEAS 2,S * Line tgvectrex.c:2336: function call: Set_ship_velocityto() LDD G00209+0,PCR variable this_vel, declared at tgvectrex.c:1347 COMA COMB ADDD #1 PSHS B,A argument 2 of Set_ship_velocityto(): int LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Set_ship_velocityto(): unsigned char LBSR _Set_ship_velocityto LEAS 4,S * Line tgvectrex.c:2337: function call: Apply_vel_to_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Apply_vel_to_ship_pos(): unsigned char LBSR _Apply_vel_to_ship_pos LEAS 2,S * Line tgvectrex.c:2338: function call: Head_ship_towards_destination() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Head_ship_towards_destination(): unsigned char LBSR _Head_ship_towards_destination LEAS 2,S * Line tgvectrex.c:2339: function call: Change_ship_time_by() CLRA LDB #$01 decimal 1 signed PSHS B,A argument 2 of Change_ship_time_by(): int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Change_ship_time_by(): unsigned char LBSR _Change_ship_time_by LEAS 4,S * Line tgvectrex.c:2340: function call: Get_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S L00317 EQU * else * Useless label removed * Line tgvectrex.c:2342: if LDD G00208+0,PCR variable this_Z CMPD #$09C4 BLE L00321 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2343: function call: Set_ship_status() CLRA LDB #$02 decimal 2 unsigned PSHS B,A argument 2 of Set_ship_status(): unsigned int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Set_ship_status(): unsigned char LBSR _Set_ship_status LEAS 4,S LBRA L00322 jump over else clause L00321 EQU * else * Line tgvectrex.c:2345: if LDD G00208+0,PCR variable this_Z CMPD #$32 BLT L00323 * optim: branchToNextLocation * Useless label removed LDD G00206+0,PCR variable this_X CMPD #$F894 BLT L00323 * optim: branchToNextLocation * Useless label removed LDD G00206+0,PCR variable this_X CMPD #$076C BGT L00323 * optim: branchToNextLocation * Useless label removed LDD G00207+0,PCR variable this_Y CMPD #$F894 BLT L00323 * optim: branchToNextLocation * Useless label removed LDD G00207+0,PCR variable this_Y CMPD #$076C BLE L00324 * optim: condBranchOverUncondBranch L00323 EQU * then * Line tgvectrex.c:2346: if LDD G00208+0,PCR variable this_Z CMPD #$32 BGE L00330 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2347: function call: Set_ship_status() CLRA LDB #$03 decimal 3 unsigned PSHS B,A argument 2 of Set_ship_status(): unsigned int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Set_ship_status(): unsigned char LBSR _Set_ship_status LEAS 4,S BRA L00331 jump over else clause L00330 EQU * else * Line tgvectrex.c:2349: function call: Set_ship_status() CLRA LDB #$04 decimal 4 unsigned PSHS B,A argument 2 of Set_ship_status(): unsigned int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Set_ship_status(): unsigned char LBSR _Set_ship_status LEAS 4,S L00331 EQU * end if * Line tgvectrex.c:2351: assignment: += LDD G00185+0,PCR variable ShipsPassedThisWave ADDD #$01 += operator at tgvectrex.c:2351 STD G00185+0,PCR * Line tgvectrex.c:2352: assignment: += LDD G00186+0,PCR variable ShipsPassedTotal ADDD #$01 += operator at tgvectrex.c:2352 STD G00186+0,PCR LBRA L00332 jump over else clause L00324 EQU * else * Line tgvectrex.c:2354: function call: Get_ship_destination() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_destination(): unsigned char LBSR _Get_ship_destination LEAS 2,S * Line tgvectrex.c:2355: if LDD G00206+0,PCR variable this_X, declared at tgvectrex.c:1343 * optim: loadCmpZeroBeqOrBne BNE L00333 * optim: condBranchOverUncondBranch * Useless label removed LDD G00207+0,PCR variable this_Y, declared at tgvectrex.c:1344 * optim: loadCmpZeroBeqOrBne BNE L00333 * optim: condBranchOverUncondBranch * Useless label removed LDD G00208+0,PCR variable this_Z CMPD #$07D0 LBGT L00334 * optim: branchToNextLocation L00333 EQU * then * Line tgvectrex.c:2357: function call: Get_ship_time() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_time(): unsigned char LBSR _Get_ship_time LEAS 2,S * Line tgvectrex.c:2358: if CLRA LDB #$27 decimal 39 signed PSHS B,A LDX G00204+0,PCR left * optim: stripExtraClrA_B LDB #$28 right LBSR SDIV16 CMPD ,S++ LBNE L00338 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2359: function call: Get_ship_pos() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_pos(): unsigned char LBSR _Get_ship_pos LEAS 2,S * Line tgvectrex.c:2360: if LDD G00208+0,PCR variable this_Z CMPD #$03E8 BGE L00340 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2361: function call: Set_ship_destinationto() CLRA CLRB PSHS B,A argument 4 of Set_ship_destinationto(): int * optim: stripExtraClrA_B * optim: stripExtraClrA_B PSHS B,A argument 3 of Set_ship_destinationto(): int * optim: stripExtraClrA_B * optim: stripExtraClrA_B PSHS B,A argument 2 of Set_ship_destinationto(): int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Set_ship_destinationto(): unsigned char LBSR _Set_ship_destinationto LEAS 8,S LBRA L00341 jump over else clause L00340 EQU * else * Line tgvectrex.c:2367: function call: Set_ship_destinationto() LDD #$FF38 constant expression: 65336 decimal PSHS B,A argument 4 of Set_ship_destinationto(): int * Line tgvectrex.c:2366: function call: pickrandom() LDX #$C8 left LDD G00208+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD #$07D0 decimal 2000 signed * optim: stripExtraPulsX LBSR SDIV16 PSHS X optim: optimizeTfrPush * optim: optimizeTfrPush LDX #$FF38 left LDD G00208+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD #$07D0 decimal 2000 signed * optim: stripExtraPulsX LBSR SDIV16 TFR X,D quotient PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S PSHS B,A argument 3 of Set_ship_destinationto(): int * Line tgvectrex.c:2365: function call: pickrandom() LDX #$012C left LDD G00208+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD #$07D0 decimal 2000 signed * optim: stripExtraPulsX LBSR SDIV16 PSHS X optim: optimizeTfrPush * optim: optimizeTfrPush LDX #$FED4 left LDD G00208+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD #$07D0 decimal 2000 signed * optim: stripExtraPulsX LBSR SDIV16 TFR X,D quotient PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S PSHS B,A argument 2 of Set_ship_destinationto(): int LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Set_ship_destinationto(): unsigned char LBSR _Set_ship_destinationto LEAS 8,S L00341 EQU * end if L00338 EQU * else * Useless label removed L00334 EQU * else * Useless label removed * Line tgvectrex.c:2371: function call: Head_ship_towards_destination() LDB 5,U variable id, declared at tgvectrex.c:2322 CLRA promoting byte argument to word PSHS B,A argument 1 of Head_ship_towards_destination(): unsigned char LBSR _Head_ship_towards_destination LEAS 2,S * Line tgvectrex.c:2372: function call: Change_ship_time_by() CLRA LDB #$01 decimal 1 signed PSHS B,A argument 2 of Change_ship_time_by(): int LDB 5,U variable id, declared at tgvectrex.c:2322 * optim: stripExtraClrA_B PSHS B,A argument 1 of Change_ship_time_by(): unsigned char LBSR _Change_ship_time_by LEAS 4,S L00332 EQU * end if L00322 EQU * end if * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION Update_ships(): defined at tgvectrex.c:2469 _Update_ships EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:2471: init of variable shipid CLR -1,U variable shipid * Line tgvectrex.c:2472: for init * Line tgvectrex.c:2472: assignment: = CLRA CLRB * optim: removeClr STB -1,U BRA L00345 jump to for condition L00344 EQU * * Line tgvectrex.c:2472: for body * Line tgvectrex.c:2473: function call: Get_ship_status() LDB -1,U variable shipid, declared at tgvectrex.c:2471 CLRA promoting byte argument to word PSHS B,A argument 1 of Get_ship_status(): unsigned char LBSR _Get_ship_status LEAS 2,S * Line tgvectrex.c:2474: if LDB G00202+0,PCR variable this_status CMPB #$02 BHS L00349 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2475: function call: Update_ship() LDB -1,U variable shipid, declared at tgvectrex.c:2471 CLRA promoting byte argument to word PSHS B,A argument 1 of Update_ship(): unsigned char LBSR _Update_ship LEAS 2,S L00349 EQU * else * Useless label removed * Useless label removed * Line tgvectrex.c:2472: for increment(s) INC -1,U L00345 EQU * * Line tgvectrex.c:2472: for condition LDB -1,U variable shipid CMPB #$03 BLO L00344 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION asin_of_fp2_14(): defined at tgvectrex.c:946 _asin_of_fp2_14 EQU * PSHS U LEAU ,S * Line tgvectrex.c:963: if LDD 4,U variable angle CMPD #$80 BLE L00352 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:963: return with value LEAX G00152+0,PCR address of array asintab * optim: optimizePshsOps LDD 4,U variable angle, declared at tgvectrex.c:946 PSHS X,B,A optim: optimizePshsOps LDD #$0100 decimal 256 signed SUBD ,S++ LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB COMA COMB ADDD #1 BRA L00046 return (tgvectrex.c:963) L00352 EQU * else * Useless label removed * Line tgvectrex.c:964: return with value LEAX G00152+0,PCR address of array asintab LDD 4,U variable angle LSLB ROLA * optimizeLoadDX LDD D,X get r-value ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB * optim: branchToNextLocation L00046 EQU * end of asin_of_fp2_14() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION ch(): defined at tgvectrex.c:1852 _ch EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1854: if LDB 5,U variable charno, declared at tgvectrex.c:1852 * optim: loadCmpZeroBeqOrBne LBEQ L00355 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1858: for init * Line tgvectrex.c:1858: assignment: = LEAX G00156+0,PCR address of array font_index * optim: stripExtraPulsX LDB 5,U CLRA ADDB #$FF optim: changeAddDToAddB * optim: stripExtraClrA_B * optim: stripExtraPulsX ABX optim: removeAndOrMulAddSub LDB ,X get r-value STB -1,U BRA L00357 jump to for condition L00356 EQU * * Line tgvectrex.c:1858: for body * Line tgvectrex.c:1859: function call: segment() LDD 6,U variable textscale, declared at tgvectrex.c:1852 PSHS B,A argument 2 of segment(): int LEAX G00154+0,PCR address of array font_points LDB -1,U variable i CLRA index expression is of byte type * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B PSHS B,A argument 1 of segment(): unsigned char LBSR _segment LEAS 4,S * Useless label removed * Line tgvectrex.c:1858: for increment(s) INC -1,U L00357 EQU * * Line tgvectrex.c:1858: for condition LEAX G00155+0,PCR address of array font_length * optim: stripExtraPulsX LDB 5,U CLRA ADDB #$FF optim: changeAddDToAddB * optim: stripExtraClrA_B * optim: stripExtraPulsX * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B PSHS B optim: stripPushLeas LEAX G00156+0,PCR address of array font_index * optim: stripExtraPulsX LDB 5,U * optim: stripExtraClrA_B ADDB #$FF optim: changeAddDToAddB * optim: stripExtraClrA_B * optim: stripExtraPulsX * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B * optim: stripPushLeas1 ADDB ,S+ * optim: stripExtraClrA_B PSHS B optim: stripPushLeas LDB -1,U variable i, declared at tgvectrex.c:1855 * optim: stripExtraClrA_B * optim: stripPushLeas1 CMPB ,S+ compare with LSB BLO L00356 * optim: branchToNextLocation * Useless label removed L00355 EQU * else * Useless label removed * Line tgvectrex.c:1863: assignment: += LDX #$18 left LDD 6,U right LBSR MUL16 TFR D,X optim: stripExtraPulsX CLRA LDB #$80 decimal 128 signed * optim: stripExtraPulsX LBSR SDIV16 TFR X,D quotient ADDD G00194+0,PCR optim: pushDLoadAdd * * STD G00194+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION ch128(): defined at tgvectrex.c:1877 _ch128 EQU * PSHS U LEAU ,S * Line tgvectrex.c:1879: function call: ch() CLRA LDB #$80 decimal 128 signed PSHS B,A argument 2 of ch(): int LDB 5,U variable charno, declared at tgvectrex.c:1877 * optim: stripExtraClrA_B PSHS B,A argument 1 of ch(): unsigned char LBSR _ch LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION ch128str(): defined at tgvectrex.c:1882 _ch128str EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1884: for init * Line tgvectrex.c:1884: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB -1,U BRA L00362 jump to for condition L00361 EQU * * Line tgvectrex.c:1884: for body * Line tgvectrex.c:1884: function call: ch128() LDX 4,U pointer text LDB -1,U variable i CLRA index expression is of byte type * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B PSHS B,A argument 1 of ch128(): unsigned char LBSR _ch128 LEAS 2,S * Useless label removed * Line tgvectrex.c:1884: for increment(s) INC -1,U L00362 EQU * * Line tgvectrex.c:1884: for condition * optim: optimizeIndexedX LDB [4,U] optim: optimizeIndexedX CLRA promotion of binary operand PSHS B optim: stripPushLeas LDB -1,U variable i, declared at tgvectrex.c:1883 * optim: stripExtraClrA_B * optim: stripPushLeas1 CMPB ,S+ compare with LSB BLS L00361 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION ch96(): defined at tgvectrex.c:1867 _ch96 EQU * PSHS U LEAU ,S * Line tgvectrex.c:1869: function call: ch() CLRA LDB #$60 decimal 96 signed PSHS B,A argument 2 of ch(): int LDB 5,U variable charno, declared at tgvectrex.c:1867 * optim: stripExtraClrA_B PSHS B,A argument 1 of ch(): unsigned char LBSR _ch LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION ch96str(): defined at tgvectrex.c:1872 _ch96str EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1874: for init * Line tgvectrex.c:1874: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB -1,U BRA L00366 jump to for condition L00365 EQU * * Line tgvectrex.c:1874: for body * Line tgvectrex.c:1874: function call: ch96() LDX 4,U pointer text LDB -1,U variable i CLRA index expression is of byte type * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B PSHS B,A argument 1 of ch96(): unsigned char LBSR _ch96 LEAS 2,S * Useless label removed * Line tgvectrex.c:1874: for increment(s) INC -1,U L00366 EQU * * Line tgvectrex.c:1874: for condition * optim: optimizeIndexedX LDB [4,U] optim: optimizeIndexedX CLRA promotion of binary operand PSHS B optim: stripPushLeas LDB -1,U variable i, declared at tgvectrex.c:1873 * optim: stripExtraClrA_B * optim: stripPushLeas1 CMPB ,S+ compare with LSB BLS L00365 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION clipoff(): defined at tgvectrex.c:1461 _clipoff EQU * PSHS U LEAU ,S * Line tgvectrex.c:1465: return with value * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD #$FFB0 constant expression: 65456 decimal CMPD 4,U optim: optimize16BitStackOps1 BLE L00372 if true CLRB BRA L00373 false L00372 EQU * LDB #1 L00373 EQU * TSTB && BEQ L00371 && at tgvectrex.c:1465 yields false, B == 0 LDD 4,U variable x CMPD #$50 BLT L00374 if true CLRB BRA L00375 false L00374 EQU * LDB #1 L00375 EQU * TSTB && BEQ L00371 && at tgvectrex.c:1465 yields false, B == 0 LDB #1 && yields true L00371 EQU * TSTB && BEQ L00370 && at tgvectrex.c:1465 yields false, B == 0 * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD #$FFC0 constant expression: 65472 decimal CMPD 6,U optim: optimize16BitStackOps1 BLE L00376 if true CLRB BRA L00377 false L00376 EQU * LDB #1 L00377 EQU * TSTB && BEQ L00370 && at tgvectrex.c:1465 yields false, B == 0 LDB #1 && yields true L00370 EQU * TSTB && BEQ L00369 && at tgvectrex.c:1465 yields false, B == 0 LDD 6,U variable y CMPD #$40 BLT L00378 if true CLRB BRA L00379 false L00378 EQU * LDB #1 L00379 EQU * TSTB && BEQ L00369 && at tgvectrex.c:1465 yields false, B == 0 LDB #1 && yields true L00369 EQU * * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION debug_ship(): defined at tgvectrex.c:1746 _debug_ship EQU * PSHS U LEAU ,S LEAS -30,S * Line tgvectrex.c:1749: init of variable ship_next LDA 5,U LDB #$0E MUL result of type byte in B CLRA STD -2,U variable ship_next * Line tgvectrex.c:1752: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -30,U * Line tgvectrex.c:1753: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -28,U * Line tgvectrex.c:1754: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -26,U * Line tgvectrex.c:1755: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -24,U * Line tgvectrex.c:1756: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -22,U * Line tgvectrex.c:1757: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -20,U * Line tgvectrex.c:1758: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -18,U * Line tgvectrex.c:1759: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -16,U * Line tgvectrex.c:1760: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -14,U * Line tgvectrex.c:1761: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -12,U * Line tgvectrex.c:1762: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -10,U * Line tgvectrex.c:1763: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -8,U * Line tgvectrex.c:1764: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -6,U * Line tgvectrex.c:1765: assignment: = LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -2,U variable ship_next, declared at tgvectrex.c:1749 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value STD -4,U * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION div_int_by_int_returning_fp2_14(): defined at tgvectrex.c:1399 _div_int_by_int_returning_fp2_14 EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1402: init of variable sign CLRA LDB #$01 1 STD -2,U variable sign * Line tgvectrex.c:1403: if LDD 4,U variable num ADDD #0 BGE L00381 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1403: assignment: = LDD 4,U variable num, declared at tgvectrex.c:1399 COMA COMB ADDD #1 STD 4,U * Line tgvectrex.c:1403: assignment: = LDD -2,U variable sign, declared at tgvectrex.c:1402 COMA COMB ADDD #1 STD -2,U L00381 EQU * else * Useless label removed * Line tgvectrex.c:1404: if LDD 6,U variable den ADDD #0 BGE L00384 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1404: assignment: = LDD 6,U variable den, declared at tgvectrex.c:1399 COMA COMB ADDD #1 STD 6,U * Line tgvectrex.c:1404: assignment: = LDD -2,U variable sign, declared at tgvectrex.c:1402 COMA COMB ADDD #1 STD -2,U L00384 EQU * else * Useless label removed * Line tgvectrex.c:1405: return with value LDD -2,U variable sign, declared at tgvectrex.c:1402 PSHS B,A * Line tgvectrex.c:1405: function call: muldiv() LDY 6,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$4000 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable num, declared at tgvectrex.c:1399 PSHS X,B,A optim: optimizePshsOps LBSR _muldiv LEAS 6,S PULS X LBSR MUL16 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION draw_crosshair(): defined at tgvectrex.c:1677 _draw_crosshair EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1680: for init * Line tgvectrex.c:1680: assignment: = CLRA CLRB * optim: removeClr STB -1,U LBRA L00387 jump to for condition L00386 EQU * * Line tgvectrex.c:1680: for body * Line tgvectrex.c:1683: function call: Display_Vectrex_vector() CLRA LDB #$80 decimal 128 signed PSHS B,A LEAX G00157+0,PCR address of array crosshair * optim: optimizePshsOps * optim: stripExtraClrA_B LDB #$03 decimal 3 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 4 LSLB LSLB * optim: removeClr LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B ADDD 6,U optim: pushDLoadAdd * * SUBD ,S++ PSHS B,A argument 4 of Display_Vectrex_vector(): int CLRA LDB #$80 decimal 128 signed PSHS B,A LEAX G00157+0,PCR address of array crosshair * optim: optimizePshsOps * optim: stripExtraClrA_B LDB #$02 decimal 2 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 4 LSLB LSLB * optim: removeClr LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B ADDD 4,U optim: pushDLoadAdd * * SUBD ,S++ PSHS B,A argument 3 of Display_Vectrex_vector(): int CLRA LDB #$80 decimal 128 signed PSHS B,A LEAX G00157+0,PCR address of array crosshair * optim: optimizePshsOps * optim: stripExtraClrA_B LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 4 LSLB LSLB * optim: removeClr LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B ADDD 6,U optim: pushDLoadAdd * * SUBD ,S++ PSHS B,A argument 2 of Display_Vectrex_vector(): int CLRA LDB #$80 decimal 128 signed PSHS B,A LEAX G00157+0,PCR address of array crosshair * optim: stripExtraPulsX LDB -1,U to be multiplied by 4 LSLB LSLB * optim: stripExtraClrA_B * optim: stripExtraPulsX * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B ADDD 4,U optim: pushDLoadAdd * * SUBD ,S++ PSHS B,A argument 1 of Display_Vectrex_vector(): int LBSR _Display_Vectrex_vector LEAS 8,S * Useless label removed * Line tgvectrex.c:1680: for increment(s) INC -1,U L00387 EQU * * Line tgvectrex.c:1680: for condition LDB -1,U variable i CMPB #$0A LBLO L00386 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION draw_shields(): defined at tgvectrex.c:1658 _draw_shields EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1662: if CLRA CLRB PSHS B,A * Line tgvectrex.c:1662: function call: pickrandom() * optim: stripExtraClrA_B LDB #$03 decimal 3 signed PSHS B,A argument 2 of pickrandom(): int * optim: removeClr CLRB PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S CMPD ,S++ LBLE L00391 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1664: function call: setintensity() * Line tgvectrex.c:1664: function call: pickrandom() LDX #$7F optim: transformPshsDPshsD * optim: optimizePshsOps CLRA LDB #$50 decimal 80 signed PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S CLRA promoting byte argument to word PSHS B,A argument 1 of setintensity(): unsigned char LBSR _setintensity LEAS 2,S * Line tgvectrex.c:1665: for init * Line tgvectrex.c:1665: assignment: = CLRA CLRB * optim: removeClr STB -1,U LBRA L00393 jump to for condition L00392 EQU * * Line tgvectrex.c:1665: for body * Line tgvectrex.c:1671: function call: Display_Vectrex_vector() LEAX G00158+0,PCR address of array shieldvec * optim: optimizePshsOps CLRA LDB #$03 decimal 3 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 2 LSLB * optim: stripExtraClrA_B LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B TFR D,X optim: stripExtraPulsX LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 * optim: stripExtraPulsX LBSR MUL16 LSRA RORB LSRA RORB LSRA RORB PSHS B,A argument 4 of Display_Vectrex_vector(): unsigned int LEAX G00158+0,PCR address of array shieldvec * optim: optimizePshsOps CLRA LDB #$02 decimal 2 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 2 LSLB * optim: stripExtraClrA_B LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B TFR D,X optim: stripExtraPulsX LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 * optim: stripExtraPulsX LBSR MUL16 LSRA RORB LSRA RORB LSRA RORB PSHS B,A argument 3 of Display_Vectrex_vector(): unsigned int LEAX G00158+0,PCR address of array shieldvec * optim: optimizePshsOps CLRA LDB #$01 decimal 1 signed PSHS X,B,A optim: optimizePshsOps LDB -1,U to be multiplied by 2 LSLB * optim: stripExtraClrA_B LEAS 1,S ADDB ,S+ * optim: stripExtraClrA_B PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B TFR D,X optim: stripExtraPulsX LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 * optim: stripExtraPulsX LBSR MUL16 LSRA RORB LSRA RORB LSRA RORB PSHS B,A argument 2 of Display_Vectrex_vector(): unsigned int LEAX G00158+0,PCR address of array shieldvec * optim: stripExtraPulsX LDB -1,U to be multiplied by 2 LSLB CLRA index expression is of byte type * optim: stripExtraPulsX * optimizeLoadDX LDB D,X get r-value * optim: stripExtraClrA_B TFR D,X optim: stripExtraPulsX LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 * optim: stripExtraPulsX LBSR MUL16 LSRA RORB LSRA RORB LSRA RORB PSHS B,A argument 1 of Display_Vectrex_vector(): unsigned int LBSR _Display_Vectrex_vector LEAS 8,S * Useless label removed * Line tgvectrex.c:1665: for increment(s) INC -1,U L00393 EQU * * Line tgvectrex.c:1665: for condition LDB -1,U variable i CMPB #$0C LBLO L00392 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:1673: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S L00391 EQU * else * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION draw_text_line(): defined at tgvectrex.c:1824 _draw_text_line EQU * PSHS U LEAU ,S * Line tgvectrex.c:1826: function call: Display_Vectrex_vector() LDX G00142+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient PSHS B,A LDD G00195+0,PCR variable texty, declared at tgvectrex.c:1323 ADDD 10,U optim: pushDLoadAdd * * ADDD ,S++ PSHS B,A argument 4 of Display_Vectrex_vector(): int LDX G00141+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient PSHS B,A LDD G00194+0,PCR variable textx, declared at tgvectrex.c:1322 ADDD 8,U optim: pushDLoadAdd * * ADDD ,S++ PSHS B,A argument 3 of Display_Vectrex_vector(): int LDX G00142+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient PSHS B,A LDD G00195+0,PCR variable texty, declared at tgvectrex.c:1323 ADDD 6,U optim: pushDLoadAdd * * ADDD ,S++ PSHS B,A argument 2 of Display_Vectrex_vector(): int LDX G00141+0,PCR left CLRA LDB #$02 right LBSR SDIV16 TFR X,D quotient PSHS B,A LDD G00194+0,PCR variable textx, declared at tgvectrex.c:1322 ADDD 4,U optim: pushDLoadAdd * * ADDD ,S++ PSHS B,A argument 1 of Display_Vectrex_vector(): int LBSR _Display_Vectrex_vector LEAS 8,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION draw_tg_intro_with_rolling_rotation(): defined at tgvectrex.c:1417 _draw_tg_intro_with_rolling_rotation EQU * PSHS U LEAU ,S LEAS -10,S * Line tgvectrex.c:1419: if LDD 4,U variable from_x CMPD 8,U variable to_x BNE L00397 * optim: branchToNextLocation * Useless label removed LDD 6,U variable from_y CMPD 10,U variable to_y LBEQ L00398 * optim: condBranchOverUncondBranch L00397 EQU * then * Line tgvectrex.c:1424: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 4,U STD G00198+0,PCR * Line tgvectrex.c:1424: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 6,U STD G00199+0,PCR * Line tgvectrex.c:1424: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00200+0,PCR * Line tgvectrex.c:1426: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 8,U STD -10,U * Line tgvectrex.c:1426: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 10,U STD -8,U * Line tgvectrex.c:1426: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD -6,U * Line tgvectrex.c:1427: assignment: += * Line tgvectrex.c:1427: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:1427: function call: fp2_14_sin() LDB 13,U variable rot, declared at tgvectrex.c:1417 * optim: stripExtraClrA_B PSHS B,A argument 1 of fp2_14_sin(): unsigned char LBSR _fp2_14_sin LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD -8,U variable PackY, declared at tgvectrex.c:1420 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S ADDD -6,U optim: pushDLoadAdd * * STD -6,U * Line tgvectrex.c:1428: assignment: = * Line tgvectrex.c:1428: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:1428: function call: fp2_14_cos() LDB 13,U variable rot, declared at tgvectrex.c:1417 CLRA promoting byte argument to word PSHS B,A argument 1 of fp2_14_cos(): unsigned char LBSR _fp2_14_cos LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD -8,U variable PackY, declared at tgvectrex.c:1420 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S STD -8,U * Line tgvectrex.c:1430: assignment: += LDD -6,U variable PackZ ADDD G00165+0,PCR variable intro_z STD -6,U variable PackZ * Line tgvectrex.c:1432: assignment: = LDX #$0400 left LDD -10,U right LBSR MUL16 TFR D,X optim: stripExtraPulsX * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD #$0400 decimal 1024 signed ADDD -6,U optim: optimize16BitStackOps2 * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX -4,U optim: optimizeTfrOp * Line tgvectrex.c:1433: assignment: = LDX #$0400 left LDD -8,U right LBSR MUL16 TFR D,X optim: stripExtraPulsX * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD #$0400 decimal 1024 signed ADDD -6,U optim: optimize16BitStackOps2 * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX -2,U optim: optimizeTfrOp * Line tgvectrex.c:1434: function call: gotoxy() * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD G00144+0,PCR variable intro_y, declared at tgvectrex.c:145 ADDD -2,U optim: optimize16BitStackOps2 PSHS B,A argument 2 of gotoxy(): int * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD G00143+0,PCR variable intro_x, declared at tgvectrex.c:144 ADDD -4,U optim: optimize16BitStackOps2 PSHS B,A argument 1 of gotoxy(): int LBSR _gotoxy LEAS 4,S * Line tgvectrex.c:1436: assignment: += * Line tgvectrex.c:1436: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:1436: function call: fp2_14_sin() LDB 13,U variable rot, declared at tgvectrex.c:1417 CLRA promoting byte argument to word PSHS B,A argument 1 of fp2_14_sin(): unsigned char LBSR _fp2_14_sin LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD G00199+0,PCR variable tgy, declared at tgvectrex.c:1328 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S ADDD G00200+0,PCR optim: pushDLoadAdd * * STD G00200+0,PCR * Line tgvectrex.c:1437: assignment: = * Line tgvectrex.c:1437: function call: mul_short_by_fp2_14_returning_short() * Line tgvectrex.c:1437: function call: fp2_14_cos() LDB 13,U variable rot, declared at tgvectrex.c:1417 CLRA promoting byte argument to word PSHS B,A argument 1 of fp2_14_cos(): unsigned char LBSR _fp2_14_cos LEAS 2,S PSHS B,A argument 2 of mul_short_by_fp2_14_returning_short(): int LDD G00199+0,PCR variable tgy, declared at tgvectrex.c:1328 PSHS B,A argument 1 of mul_short_by_fp2_14_returning_short(): int LBSR _mul_short_by_fp2_14_returning_short LEAS 4,S STD G00199+0,PCR * Line tgvectrex.c:1439: assignment: += LDD G00200+0,PCR variable tgz ADDD G00165+0,PCR variable intro_z STD G00200+0,PCR variable tgz * Line tgvectrex.c:1441: assignment: = LDX #$0400 left LDD G00198+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD G00200+0,PCR variable tgz, declared at tgvectrex.c:1329 ADDD #$0400 optim: pushDLoadAdd * * * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX -4,U optim: optimizeTfrOp * Line tgvectrex.c:1442: assignment: = LDX #$0400 left LDD G00199+0,PCR right LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD G00200+0,PCR variable tgz, declared at tgvectrex.c:1329 ADDD #$0400 optim: pushDLoadAdd * * * optim: stripExtraPulsX LBSR SDIV16 * optim: optimizeTfrOp STX -2,U optim: optimizeTfrOp * Line tgvectrex.c:1445: function call: putPenDown() LBSR _putPenDown * Line tgvectrex.c:1445: function call: gotoxy() * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD G00144+0,PCR variable intro_y, declared at tgvectrex.c:145 ADDD -2,U optim: optimize16BitStackOps2 PSHS B,A argument 2 of gotoxy(): int * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD G00143+0,PCR variable intro_x, declared at tgvectrex.c:144 ADDD -4,U optim: optimize16BitStackOps2 PSHS B,A argument 1 of gotoxy(): int LBSR _gotoxy LEAS 4,S * Line tgvectrex.c:1445: function call: putPenUp() LBSR _putPenUp L00398 EQU * else * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION drawtgintro(): defined at tgvectrex.c:1687 _drawtgintro EQU * PSHS U LEAU ,S LEAS -10,S * Line tgvectrex.c:1690: if LDD G00193+0,PCR variable stopintroflag CMPD #$02 BNE L00402 * optim: condBranchOverUncondBranch * Useless label removed LBRA L00071 return (tgvectrex.c:1690) L00402 EQU * else * Useless label removed * Line tgvectrex.c:1692: if CLRA CLRB PSHS B,A * Line tgvectrex.c:1692: function call: fp2_14_cos() LDB G00166+0,PCR variable intro_rot, declared at tgvectrex.c:1270 * optim: stripExtraClrA_B PSHS B,A argument 1 of fp2_14_cos(): unsigned char LBSR _fp2_14_cos LEAS 2,S CMPD ,S++ BLE L00405 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1694: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$27 STB -1,U BRA L00406 jump over else clause L00405 EQU * else * Line tgvectrex.c:1696: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$08 STB -1,U L00406 EQU * end if * Line tgvectrex.c:1700: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00197+0,PCR * Line tgvectrex.c:1701: for init * Line tgvectrex.c:1701: assignment: = * optim: stripExtraClrA_B * optim: removeClr * optim: removeClr STB -10,U LBRA L00408 jump to for condition L00407 EQU * * Line tgvectrex.c:1701: for body * Line tgvectrex.c:1702: assignment: = CLRA LDB #$80 decimal 128 signed PSHS B,A LEAX G00153+0,PCR address of array tg_intro_placard PSHS X preserve array address, then eval array index LEAX G00197+0,PCR variable tgi, declared at tgvectrex.c:1326 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value CLRA promotion of binary operand LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B STD -9,U * Line tgvectrex.c:1703: assignment: = * optim: stripExtraClrA_B LDB #$80 decimal 128 signed PSHS B,A LEAX G00153+0,PCR address of array tg_intro_placard PSHS X preserve array address, then eval array index LEAX G00197+0,PCR variable tgi, declared at tgvectrex.c:1326 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value CLRA promotion of binary operand LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B STD -7,U * Line tgvectrex.c:1704: assignment: = * optim: stripExtraClrA_B LDB #$80 decimal 128 signed PSHS B,A LEAX G00153+0,PCR address of array tg_intro_placard PSHS X preserve array address, then eval array index LEAX G00197+0,PCR variable tgi, declared at tgvectrex.c:1326 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value CLRA promotion of binary operand LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B STD -5,U * Line tgvectrex.c:1705: assignment: = * optim: stripExtraClrA_B LDB #$80 decimal 128 signed PSHS B,A LEAX G00153+0,PCR address of array tg_intro_placard PSHS X preserve array address, then eval array index LEAX G00197+0,PCR variable tgi, declared at tgvectrex.c:1326 LDD ,X ADDD #1 STD ,X SUBD #1 post increment yields initial value PULS X retrieve array address * optimizeLoadDX LDB D,X get r-value CLRA promotion of binary operand LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B STD -3,U * Line tgvectrex.c:1707: function call: draw_tg_intro_with_rolling_rotation() LDB G00166+0,PCR variable intro_rot, declared at tgvectrex.c:1270 * optim: stripExtraClrA_B PSHS B,A argument 5 of draw_tg_intro_with_rolling_rotation(): unsigned char LDY -5,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY -3,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX -9,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD -7,U variable tgfrom_y, declared at tgvectrex.c:1699 PSHS X,B,A optim: optimizePshsOps LBSR _draw_tg_intro_with_rolling_rotation LEAS 10,S * Useless label removed * Line tgvectrex.c:1701: for increment(s) INC -10,U L00408 EQU * * Line tgvectrex.c:1701: for condition LDB -10,U variable i CMPB -1,U variable objects LBLO L00407 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:1711: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S L00071 EQU * end of drawtgintro() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION fp2_14_cos(): defined at tgvectrex.c:1386 _fp2_14_cos EQU * PSHS U LEAU ,S * Line tgvectrex.c:1388: return with value * Line tgvectrex.c:1388: function call: fp2_14_sin() LDD 4,U variable angle256 ADDD #$40 64 PSHS B,A argument 1 of fp2_14_sin(): int LBSR _fp2_14_sin LEAS 2,S * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION fp2_14_sin(): defined at tgvectrex.c:1381 _fp2_14_sin EQU * PSHS U LEAU ,S * Line tgvectrex.c:1383: if CLRA * LDB #$80 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD 4,U variable angle256, declared at tgvectrex.c:1381 CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #128 optim: optimizeStackOperations1 BLO L00412 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1383: return with value * Line tgvectrex.c:1383: function call: sinsymmetry() CLRA LDB #$7F decimal 127 signed PSHS B optim: stripPushLeas LDD 4,U variable angle256 ADDB #$80 optim: changeAddDToAddB CLRA promotion of binary operand * optim: stripPushLeas1 ANDB ,S+ * optim: stripExtraClrA_B PSHS B,A argument 1 of sinsymmetry(): unsigned char LBSR _sinsymmetry LEAS 2,S COMA COMB ADDD #1 BRA L00055 return (tgvectrex.c:1383) * optim: instrFollowingUncondBranch L00412 EQU * else * Line tgvectrex.c:1383: return with value * Line tgvectrex.c:1383: function call: sinsymmetry() LDB 5,U variable angle256, cast to byte ANDB #$7F CLRA promoting byte argument to word PSHS B,A argument 1 of sinsymmetry(): unsigned char LBSR _sinsymmetry LEAS 2,S BRA L00055 return (tgvectrex.c:1383) * Useless label removed L00055 EQU * end of fp2_14_sin() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION fxpt_atan2(): defined at tgvectrex.c:1109 _fxpt_atan2 EQU * PSHS U LEAU ,S LEAS -10,S * Line tgvectrex.c:1111: if LDD 6,U variable x CMPD 4,U variable y BNE L00415 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1112: if LDD 4,U variable y ADDD #0 BLE L00417 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1113: return with value LDD #$2000 decimal 8192 unsigned LBRA L00051 return (tgvectrex.c:1113) * optim: instrFollowingUncondBranch L00417 EQU * else * Line tgvectrex.c:1114: if LDD 4,U variable y ADDD #0 BGE L00420 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1115: return with value LDD #$A000 decimal 40960 unsigned LBRA L00051 return (tgvectrex.c:1115) * optim: instrFollowingUncondBranch L00420 EQU * else * Line tgvectrex.c:1117: return with value CLRA CLRB LBRA L00051 return (tgvectrex.c:1117) * Useless label removed * Useless label removed L00415 EQU * else * Useless label removed * Line tgvectrex.c:1120: assignment: = * Line tgvectrex.c:1120: function call: s16_nabs() LDD 4,U variable y, declared at tgvectrex.c:1109 PSHS B,A argument 1 of s16_nabs(): int LBSR _s16_nabs LEAS 2,S STD -4,U * Line tgvectrex.c:1120: assignment: = * Line tgvectrex.c:1120: function call: s16_nabs() LDD 6,U variable x, declared at tgvectrex.c:1109 PSHS B,A argument 1 of s16_nabs(): int LBSR _s16_nabs LEAS 2,S STD -2,U * Line tgvectrex.c:1121: if * optim: storeLoad CMPD -4,U variable nabs_y LBGE L00424 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1122: init of variable y_over_x * Line tgvectrex.c:1122: function call: q15_div() LDX 6,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable y, declared at tgvectrex.c:1109 PSHS X,B,A optim: optimizePshsOps LBSR _q15_div LEAS 4,S STD -10,U variable y_over_x * Line tgvectrex.c:1123: init of variable correction * Line tgvectrex.c:1123: function call: q15_mul() * Line tgvectrex.c:1123: function call: s16_nabs() * optim: storeLoad PSHS B,A argument 1 of s16_nabs(): int LBSR _s16_nabs LEAS 2,S PSHS B,A argument 2 of q15_mul(): int LDD #$0B1F decimal 2847 signed PSHS B,A argument 1 of q15_mul(): int LBSR _q15_mul LEAS 4,S STD -8,U variable correction * Line tgvectrex.c:1124: init of variable unrotated * Line tgvectrex.c:1124: function call: q15_mul() LDX -10,U optim: transformPshsDPshsD PSHS X optim: transformPshsDPshsD * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD #$2B1F decimal 11039 signed ADDD -8,U optim: optimize16BitStackOps2 PSHS B,A argument 1 of q15_mul(): int LBSR _q15_mul LEAS 4,S STD -6,U variable unrotated * Line tgvectrex.c:1125: if LDD 6,U variable x ADDD #0 BLE L00426 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1126: return with value LDD -6,U variable unrotated, declared at tgvectrex.c:1124 LBRA L00051 return (tgvectrex.c:1126) * optim: instrFollowingUncondBranch L00426 EQU * else * Line tgvectrex.c:1128: return with value * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD #$8000 decimal 32768 unsigned ADDD -6,U optim: optimize16BitStackOps1 LBRA L00051 return (tgvectrex.c:1128) * Useless label removed * optim: instrFollowingUncondBranch L00424 EQU * else * Line tgvectrex.c:1131: init of variable x_over_y * Line tgvectrex.c:1131: function call: q15_div() LDX 4,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 6,U variable x, declared at tgvectrex.c:1109 PSHS X,B,A optim: optimizePshsOps LBSR _q15_div LEAS 4,S STD -10,U variable x_over_y * Line tgvectrex.c:1132: init of variable correction * Line tgvectrex.c:1132: function call: q15_mul() * Line tgvectrex.c:1132: function call: s16_nabs() * optim: storeLoad PSHS B,A argument 1 of s16_nabs(): int LBSR _s16_nabs LEAS 2,S PSHS B,A argument 2 of q15_mul(): int LDD #$0B1F decimal 2847 signed PSHS B,A argument 1 of q15_mul(): int LBSR _q15_mul LEAS 4,S STD -8,U variable correction * Line tgvectrex.c:1133: init of variable unrotated * Line tgvectrex.c:1133: function call: q15_mul() LDX -10,U optim: transformPshsDPshsD PSHS X optim: transformPshsDPshsD * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD #$2B1F decimal 11039 signed ADDD -8,U optim: optimize16BitStackOps2 PSHS B,A argument 1 of q15_mul(): int LBSR _q15_mul LEAS 4,S STD -6,U variable unrotated * Line tgvectrex.c:1134: if LDD 4,U variable y ADDD #0 BLE L00430 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1135: return with value * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD #$4000 decimal 16384 unsigned SUBD -6,U optim: optimize16BitStackOps1 BRA L00051 return (tgvectrex.c:1135) * optim: instrFollowingUncondBranch L00430 EQU * else * Line tgvectrex.c:1137: return with value * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD #$C000 decimal 49152 unsigned SUBD -6,U optim: optimize16BitStackOps1 BRA L00051 return (tgvectrex.c:1137) * Useless label removed * Useless label removed L00051 EQU * end of fxpt_atan2() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION gotoxy(): defined at tgvectrex.c:878 _gotoxy EQU * PSHS U LEAU ,S * Line tgvectrex.c:883: if LDB G00161+0,PCR variable pen CMPB #$01 BNE L00433 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:883: function call: Display_Vectrex_vector() LDY 6,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY 4,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX G00163+0,PCR optim: transformPshsDPshsD * optim: optimizePshsOps LDD G00162+0,PCR variable last_x, declared at tgvectrex.c:877 PSHS X,B,A optim: optimizePshsOps LBSR _Display_Vectrex_vector LEAS 8,S L00433 EQU * else * Useless label removed * Line tgvectrex.c:884: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 4,U STD G00162+0,PCR * Line tgvectrex.c:884: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 6,U STD G00163+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION graphics_initialisation(): defined at tgvectrex.c:161 _graphics_initialisation EQU * PSHS U LEAU ,S * Line tgvectrex.c:164: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$0320 STD G00142+0,PCR * Line tgvectrex.c:165: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD #$0400 STD G00141+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION init_stars(): defined at tgvectrex.c:1547 _init_stars EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1551: for init * Line tgvectrex.c:1551: assignment: = CLRA CLRB * optim: removeClr STB -1,U LBRA L00436 jump to for condition L00435 EQU * * Line tgvectrex.c:1551: for body * Line tgvectrex.c:1552: assignment: = * Line tgvectrex.c:1552: function call: star_x1() LDB -1,U variable star, declared at tgvectrex.c:1549 CLRA promoting byte argument to word PSHS B,A argument 1 of star_x1(): unsigned char LBSR _star_x1 LEAS 2,S PSHS B,A LEAX G00225+0,PCR address of array pxa LDB -1,U variable star CLRA index expression is of byte type LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1552: assignment: = * Line tgvectrex.c:1552: function call: star_y1() LDB -1,U variable star, declared at tgvectrex.c:1549 CLRA promoting byte argument to word PSHS B,A argument 1 of star_y1(): unsigned char LBSR _star_y1 LEAS 2,S PSHS B,A LEAX G00226+0,PCR address of array pya LDB -1,U variable star CLRA index expression is of byte type LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1553: for init * Line tgvectrex.c:1553: assignment: = CLRA CLRB * optim: removeClr STB -2,U BRA L00440 jump to for condition L00439 EQU * * Line tgvectrex.c:1553: for body * Line tgvectrex.c:1553: function call: move_star() LDB -1,U variable star, declared at tgvectrex.c:1549 CLRA promoting byte argument to word PSHS B,A argument 1 of move_star(): unsigned char LBSR _move_star LEAS 2,S * Useless label removed * Line tgvectrex.c:1553: for increment(s) INC -2,U L00440 EQU * * Line tgvectrex.c:1553: for condition LDA -1,U LDB #$0D MUL result of type byte in B CLRA promotion of binary operand PSHS B optim: stripPushLeas LDB -2,U variable i, declared at tgvectrex.c:1549 * optim: stripExtraClrA_B * optim: stripPushLeas1 CMPB ,S+ compare with LSB BLO L00439 * optim: branchToNextLocation * Useless label removed * Useless label removed * Line tgvectrex.c:1551: for increment(s) INC -1,U L00436 EQU * * Line tgvectrex.c:1551: for condition LDB -1,U variable star CMPB #$10 LBLO L00435 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION initialise_ship(): defined at tgvectrex.c:1721 _initialise_ship EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1723: init of variable ship_next LDA 5,U LDB #$0E MUL result of type byte in B STB -1,U variable ship_next * Line tgvectrex.c:1726: assignment: = LDB 7,U variable model_type, declared at tgvectrex.c:1721 CLRA PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1727: assignment: = LDD 8,U variable x, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1728: assignment: = LDD 10,U variable y, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1729: assignment: = LDD 12,U variable z, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1730: assignment: = LDD 14,U variable Xrot, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1731: assignment: = LDD 16,U variable Yrot, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1732: assignment: = LDD 18,U variable Zrot, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1733: assignment: = LDD 20,U variable scale_fp, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1734: assignment: = CLRA LDB #$14 decimal 20 signed PSHS B,A * Line tgvectrex.c:1734: function call: pickrandom() * optim: stripExtraClrA_B LDB #$78 decimal 120 signed PSHS B,A argument 2 of pickrandom(): int LDB #$50 optim: removeAndOrMulAddSub PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S PULS X LBSR MUL16 TFR D,X optim: stripExtraPulsX CLRA LDB #$64 decimal 100 signed * optim: stripExtraPulsX LBSR SDIV16 TFR X,D quotient PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1736: assignment: = CLRA CLRB PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1737: assignment: = * Line tgvectrex.c:1737: function call: pickrandom() LDX #$0190 optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FE70 constant expression: 65136 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1738: assignment: = * Line tgvectrex.c:1738: function call: pickrandom() LDX #$012C optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$FED4 constant expression: 65236 decimal PSHS X,B,A optim: optimizePshsOps LBSR _pickrandom LEAS 4,S PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1739: assignment: = LDD 12,U variable z, declared at tgvectrex.c:1721 PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X CLRA index expression is of byte type LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1743: assignment: = CLRA CLRB PSHS B,A LEAX G00224+0,PCR address of array ships PSHS X preserve array address, then eval array index LEAX -1,U variable ship_next, declared at tgvectrex.c:1723 LDB ,X INC ,X * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address LEAX D,X add byte offset LDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION irand(): defined at tgvectrex.c:887 _irand EQU * PSHS U LEAU ,S * Line tgvectrex.c:889: return with value * Line tgvectrex.c:889: function call: urandom16() LBSR _urandom16 TFR D,X optim: stripExtraPulsX LDD 4,U variable max, declared at tgvectrex.c:887 * optim: stripExtraPulsX LBSR SDIV16 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION isqrt(): defined at tgvectrex.c:913 _isqrt EQU * PSHS U LEAU ,S LEAS -6,S * Line tgvectrex.c:915: init of variable res CLRA CLRB STD -6,U variable res * Line tgvectrex.c:916: init of variable one LDD #$4000 16384 STD -4,U variable one * Line tgvectrex.c:920: while L00444 EQU * while condition at tgvectrex.c:920 LDD -4,U variable one CMPD 4,U variable op BLS L00445 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:920: assignment: >>= LEAX -4,U variable one, declared at tgvectrex.c:916 LDD ,X get word to be shifted LSRA RORB LSRA RORB STD ,X store shifted word BRA L00444 go to while condition L00445 EQU * after end of while starting at tgvectrex.c:920 * Line tgvectrex.c:922: while L00447 EQU * while condition at tgvectrex.c:922 LDD -4,U variable one, declared at tgvectrex.c:916 * optim: loadCmpZeroBeqOrBne BEQ L00448 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:923: if * Line tgvectrex.c:923: assignment: = * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD -6,U variable res, declared at tgvectrex.c:915 ADDD -4,U optim: optimize16BitStackOps1 STD -2,U * optim: optimize16BitCompares * optim: optimize16BitCompares CMPD 4,U optim: optimize16BitCompares BHI L00450 optim: optimize16BitCompares * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:924: assignment: -= LDD 4,U variable op SUBD -2,U variable limit STD 4,U variable op * Line tgvectrex.c:925: assignment: += LDD -6,U variable res ADDD -4,U variable one STD -6,U variable res * Line tgvectrex.c:926: assignment: += * optim: storeLoad ADDD -4,U variable one STD -6,U variable res L00450 EQU * else * Useless label removed * Line tgvectrex.c:928: assignment: >>= LEAX -6,U variable res, declared at tgvectrex.c:915 LDD ,X get word to be shifted LSRA RORB STD ,X store shifted word * Line tgvectrex.c:929: assignment: >>= LEAX -4,U variable one, declared at tgvectrex.c:916 LDD ,X get word to be shifted LSRA RORB LSRA RORB STD ,X store shifted word BRA L00447 go to while condition L00448 EQU * after end of while starting at tgvectrex.c:922 * Line tgvectrex.c:935: return with value LDD -6,U variable res, declared at tgvectrex.c:915 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION main(): defined at tgvectrex.c:2806 _main EQU * PSHS U LEAU ,S LEAS -4,S * Line tgvectrex.c:2815: function call: pre_graphics_initialisation() LBSR _pre_graphics_initialisation * Line tgvectrex.c:2817: function call: graphics_initialisation() LDD -2,U variable argv, declared at tgvectrex.c:2809 PSHS B,A argument 2 of graphics_initialisation(): char ** LEAX -4,U variable argc, declared at tgvectrex.c:2808 PSHS X argument 1 of graphics_initialisation(): int * LBSR _graphics_initialisation LEAS 4,S * Line tgvectrex.c:2819: function call: post_graphics_initialisation() LBSR _post_graphics_initialisation * Line tgvectrex.c:2821: function call: Main_loop() LBSR _Main_loop * Line tgvectrex.c:2823: return with value CLRA CLRB * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION millis(): defined at tgvectrex.c:204 _millis EQU * * Line tgvectrex.c:212: return with value LDD G00134+0,PCR variable millis_time, declared at tgvectrex.c:138 * optim: branchToNextLocation * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION mouseX(): defined at tgvectrex.c:190 _mouseX EQU * * Line tgvectrex.c:196: return with value CLRA CLRB * optim: branchToNextLocation * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION mouseY(): defined at tgvectrex.c:199 _mouseY EQU * * Line tgvectrex.c:201: return with value CLRA CLRB * optim: branchToNextLocation * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION move_star(): defined at tgvectrex.c:1529 _move_star EQU * PSHS U LEAU ,S LEAS -4,S * Line tgvectrex.c:1531: init of variable x LEAX G00225+0,PCR address of array pxa LDB 5,U variable starno CLRA index expression is of byte type LSLB ROLA * optimizeLoadDX LDD D,X get r-value STD -4,U variable x * Line tgvectrex.c:1531: init of variable y LEAX G00226+0,PCR address of array pya LDB 5,U variable starno CLRA index expression is of byte type LSLB ROLA * optimizeLoadDX LDD D,X get r-value STD -2,U variable y * Line tgvectrex.c:1534: assignment: = LDD -4,U variable x, declared at tgvectrex.c:1531 PSHS B,A * optim: removeUselessLdd LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA SUBD ,S++ ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -4,U * Line tgvectrex.c:1534: assignment: = LDD -2,U variable y, declared at tgvectrex.c:1531 PSHS B,A * optim: removeUselessLdd LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA LSLB ROLA SUBD ,S++ ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -2,U * Line tgvectrex.c:1535: if * Line tgvectrex.c:1535: function call: clipoff() * optim: storeLoad PSHS B,A argument 2 of clipoff(): int LDD -4,U variable x, declared at tgvectrex.c:1531 PSHS B,A argument 1 of clipoff(): int LBSR _clipoff LEAS 4,S TSTB BEQ L00453 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1536: assignment: = * Line tgvectrex.c:1536: function call: star_x1() LDB 5,U variable starno, declared at tgvectrex.c:1529 CLRA promoting byte argument to word PSHS B,A argument 1 of star_x1(): unsigned char LBSR _star_x1 LEAS 2,S STD -4,U * Line tgvectrex.c:1536: assignment: = * Line tgvectrex.c:1536: function call: star_y1() LDB 5,U variable starno, declared at tgvectrex.c:1529 CLRA promoting byte argument to word PSHS B,A argument 1 of star_y1(): unsigned char LBSR _star_y1 LEAS 2,S STD -2,U L00453 EQU * else * Useless label removed * Line tgvectrex.c:1538: assignment: = LDD -4,U variable x, declared at tgvectrex.c:1531 PSHS B,A LEAX G00225+0,PCR address of array pxa LDB 5,U variable starno CLRA index expression is of byte type LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1538: assignment: = LDD -2,U variable y, declared at tgvectrex.c:1531 PSHS B,A LEAX G00226+0,PCR address of array pya LDB 5,U variable starno CLRA index expression is of byte type LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION mul_short_by_fp2_14_returning_short(): defined at tgvectrex.c:1391 _mul_short_by_fp2_14_returning_short EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1393: init of variable sign CLRA LDB #$01 1 STD -2,U variable sign * Line tgvectrex.c:1394: if LDD 4,U variable num ADDD #0 BGE L00456 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1394: assignment: = LDD 4,U variable num, declared at tgvectrex.c:1391 COMA COMB ADDD #1 STD 4,U * Line tgvectrex.c:1394: assignment: = LDD -2,U variable sign, declared at tgvectrex.c:1393 COMA COMB ADDD #1 STD -2,U L00456 EQU * else * Useless label removed * Line tgvectrex.c:1395: if LDD 6,U variable fp ADDD #0 BGE L00459 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1395: assignment: = LDD 6,U variable fp, declared at tgvectrex.c:1391 COMA COMB ADDD #1 STD 6,U * Line tgvectrex.c:1395: assignment: = LDD -2,U variable sign, declared at tgvectrex.c:1393 COMA COMB ADDD #1 STD -2,U L00459 EQU * else * Useless label removed * Line tgvectrex.c:1396: return with value LDD -2,U variable sign, declared at tgvectrex.c:1393 PSHS B,A * Line tgvectrex.c:1396: function call: muldiv() LDY #$4000 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX 6,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable num, declared at tgvectrex.c:1391 PSHS X,B,A optim: optimizePshsOps LBSR _muldiv LEAS 6,S PULS X LBSR MUL16 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION muldiv(): defined at tgvectrex.c:1046 _muldiv EQU * PSHS U LEAU ,S LEAS -8,S * Line tgvectrex.c:1052: init of variable q CLRA CLRB STD -8,U variable q * Line tgvectrex.c:1052: init of variable r * optim: stripExtraClrA_B * optim: stripExtraClrA_B STD -6,U variable r * Line tgvectrex.c:1055: if LDD 4,U variable a CMPD 6,U variable b LBHS L00462 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1056: assignment: = LDX 6,U left LDD 8,U right LBSR DIV16 * optim: optimizeTfrOp STX -4,U optim: optimizeTfrOp * Line tgvectrex.c:1057: assignment: = LDX 6,U left LDD 8,U right LBSR DIV16 STD -2,U * Line tgvectrex.c:1058: while L00464 EQU * while condition at tgvectrex.c:1058 LDD 4,U variable a, declared at tgvectrex.c:1046 * optim: loadCmpZeroBeqOrBne LBEQ L00465 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1059: if LDD 4,U variable a CLRA optim: andA_B0 ANDB #$01 * optim: optimizeAndbTstb BEQ L00467 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1059: assignment: += LDD -8,U variable q ADDD -4,U variable qn STD -8,U variable q * Line tgvectrex.c:1059: assignment: += LDD -6,U variable r ADDD -2,U variable rn STD -6,U variable r * Line tgvectrex.c:1059: if * optim: storeLoad CMPD 8,U variable c BLO L00469 * optim: condBranchOverUncondBranch * Useless label removed LEAX -8,U variable q, declared at tgvectrex.c:1052 LDD ,X ADDD #1 STD ,X * optim: removeUselessOps * Line tgvectrex.c:1059: assignment: -= LDD -6,U variable r SUBD 8,U variable c STD -6,U variable r L00469 EQU * else * Useless label removed L00467 EQU * else * Useless label removed * Line tgvectrex.c:1060: assignment: >>= LEAX 4,U variable a, declared at tgvectrex.c:1046 LDD ,X get word to be shifted LSRA RORB STD ,X store shifted word * Line tgvectrex.c:1060: assignment: <<= LEAX -4,U variable qn, declared at tgvectrex.c:1052 LDD ,X get word to be shifted LSLB ROLA STD ,X store shifted word * Line tgvectrex.c:1060: assignment: <<= LEAX -2,U variable rn, declared at tgvectrex.c:1052 LDD ,X get word to be shifted LSLB ROLA STD ,X store shifted word * Line tgvectrex.c:1060: if LDD -2,U variable rn CMPD 8,U variable c BLO L00473 * optim: condBranchOverUncondBranch * Useless label removed LEAX -4,U variable qn, declared at tgvectrex.c:1052 LDD ,X ADDD #1 STD ,X * optim: removeUselessOps * Line tgvectrex.c:1060: assignment: -= LDD -2,U variable rn SUBD 8,U variable c STD -2,U variable rn L00473 EQU * else * Useless label removed LBRA L00464 go to while condition L00465 EQU * after end of while starting at tgvectrex.c:1058 LBRA L00475 jump over else clause L00462 EQU * else * Line tgvectrex.c:1064: assignment: = LDX 4,U left LDD 8,U right LBSR DIV16 * optim: optimizeTfrOp STX -4,U optim: optimizeTfrOp * Line tgvectrex.c:1065: assignment: = LDX 4,U left LDD 8,U right LBSR DIV16 STD -2,U * Line tgvectrex.c:1066: while L00477 EQU * while condition at tgvectrex.c:1066 LDD 6,U variable b, declared at tgvectrex.c:1046 * optim: loadCmpZeroBeqOrBne LBEQ L00478 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1067: if LDD 6,U variable b CLRA optim: andA_B0 ANDB #$01 * optim: optimizeAndbTstb BEQ L00480 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1067: assignment: += LDD -8,U variable q ADDD -4,U variable qn STD -8,U variable q * Line tgvectrex.c:1067: assignment: += LDD -6,U variable r ADDD -2,U variable rn STD -6,U variable r * Line tgvectrex.c:1067: if * optim: storeLoad CMPD 8,U variable c BLO L00482 * optim: condBranchOverUncondBranch * Useless label removed LEAX -8,U variable q, declared at tgvectrex.c:1052 LDD ,X ADDD #1 STD ,X * optim: removeUselessOps * Line tgvectrex.c:1067: assignment: -= LDD -6,U variable r SUBD 8,U variable c STD -6,U variable r L00482 EQU * else * Useless label removed L00480 EQU * else * Useless label removed * Line tgvectrex.c:1068: assignment: >>= LEAX 6,U variable b, declared at tgvectrex.c:1046 LDD ,X get word to be shifted LSRA RORB STD ,X store shifted word * Line tgvectrex.c:1068: assignment: <<= LEAX -4,U variable qn, declared at tgvectrex.c:1052 LDD ,X get word to be shifted LSLB ROLA STD ,X store shifted word * Line tgvectrex.c:1068: assignment: <<= LEAX -2,U variable rn, declared at tgvectrex.c:1052 LDD ,X get word to be shifted LSLB ROLA STD ,X store shifted word * Line tgvectrex.c:1068: if LDD -2,U variable rn CMPD 8,U variable c BLO L00486 * optim: condBranchOverUncondBranch * Useless label removed LEAX -4,U variable qn, declared at tgvectrex.c:1052 LDD ,X ADDD #1 STD ,X * optim: removeUselessOps * Line tgvectrex.c:1068: assignment: -= LDD -2,U variable rn SUBD 8,U variable c STD -2,U variable rn L00486 EQU * else * Useless label removed LBRA L00477 go to while condition L00478 EQU * after end of while starting at tgvectrex.c:1066 L00475 EQU * end if * Line tgvectrex.c:1071: return with value LDD -8,U variable q, declared at tgvectrex.c:1052 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION numdigits(): defined at tgvectrex.c:1180 _numdigits EQU * PSHS U LEAU ,S LEAS -1,S * Line tgvectrex.c:1183: init of variable result CLR -1,U variable result * Line tgvectrex.c:1187: do-while L00488 EQU * do-while body * Line tgvectrex.c:1185: assignment: = LDX 4,U left CLRA LDB #$0A right LBSR SDIV16 * optim: optimizeTfrOp STX 4,U optim: optimizeTfrOp LEAX -1,U variable result, declared at tgvectrex.c:1183 * optim: removeUselessOps INC ,X * Useless label removed LDD 4,U variable num ADDD #0 BGT L00488 BRA L00490 * optim: instrFollowingUncondBranch L00490 EQU * after end of do-while starting at tgvectrex.c:1187 * Line tgvectrex.c:1188: return with value LDB -1,U variable result, declared at tgvectrex.c:1183 * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION pickrandom(): defined at tgvectrex.c:892 _pickrandom EQU * PSHS U LEAU ,S * Line tgvectrex.c:895: return with value LDD 4,U variable low, declared at tgvectrex.c:892 PSHS B,A * Line tgvectrex.c:895: function call: irand() LDX #$01 optim: transformPshsDPshsD PSHS X optim: transformPshsDPshsD * optim: optimize16BitStackOps2 * optim: optimize16BitStackOps2 LDD 6,U variable high, declared at tgvectrex.c:892 SUBD 4,U optim: optimize16BitStackOps2 ADDD ,S++ PSHS B,A argument 1 of irand(): int LBSR _irand LEAS 2,S ADDD ,S++ * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION playTailgunner(): defined at tgvectrex.c:2481 _playTailgunner EQU * * Line tgvectrex.c:2488: assignment: = * Line tgvectrex.c:2488: function call: fp2_14_sin() LDB G00171+0,PCR variable flashingtexttimer, declared at tgvectrex.c:1283 CLRA promoting byte argument to word PSHS B,A argument 1 of fp2_14_sin(): unsigned char LBSR _fp2_14_sin LEAS 2,S TFR A,B shift D 8 bits right SEX signed ASRB ADDD #$5F optim: pushDLoadAdd * * STB G00170+0,PCR * Line tgvectrex.c:2489: assignment: = LDB G00171+0,PCR CLRA ADDD #$08 8 STB G00171+0,PCR * Line tgvectrex.c:2492: if LDB G00136+0,PCR variable Pressed_Key CMPB #$33 BNE L00492 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2493: assignment: = CLRA CLRB * optim: removeClr STB G00136+0,PCR * Line tgvectrex.c:2494: assignment: += LDB G00164+0,PCR variable Credits ADDB #$01 += operator at tgvectrex.c:2494 STB G00164+0,PCR * Line tgvectrex.c:2495: function call: startAsyncSound() * optim: stripExtraClrA_B LDB #$06 decimal 6 signed PSHS B,A argument 1 of startAsyncSound(): int LBSR _startAsyncSound LEAS 2,S * Line tgvectrex.c:2496: if LDD G00173+0,PCR variable Mode CMPD #$04 BGE L00494 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2497: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$04 STD G00173+0,PCR L00494 EQU * else * Useless label removed L00492 EQU * else * Useless label removed * Line tgvectrex.c:2501: if LDD G00173+0,PCR variable Mode CMPD #$06 BNE L00498 * optim: condBranchOverUncondBranch * Useless label removed LDD G00185+0,PCR variable ShipsPassedThisWave ADDD #0 BLE L00498 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2502: function call: stars() CLRA LDB #$04 decimal 4 signed PSHS B,A argument 1 of stars(): int LBSR _stars LEAS 2,S BRA L00500 jump over else clause L00498 EQU * else * Line tgvectrex.c:2504: function call: stars() CLRA LDB #$01 decimal 1 signed PSHS B,A argument 1 of stars(): int LBSR _stars LEAS 2,S L00500 EQU * end if * Line tgvectrex.c:2527: if LDD G00173+0,PCR variable Mode, declared at tgvectrex.c:1288 * optim: loadCmpZeroBeqOrBne BNE L00502 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2539: function call: Playintro() LBSR _Playintro * Line tgvectrex.c:2545: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$01 STD G00173+0,PCR LBRA L00503 jump over else clause L00502 EQU * else * Line tgvectrex.c:2547: if LDD G00173+0,PCR variable Mode CMPD #$01 LBNE L00505 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2551: function call: Draw_highscore() LBSR _Draw_highscore * Line tgvectrex.c:2552: function call: Draw_last_game_score() LBSR _Draw_last_game_score * Line tgvectrex.c:2554: if LDD G00169+0,PCR variable flashing_intro_timer ADDD #0 BLE L00507 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2555: assignment: -= LDD G00169+0,PCR variable flashing_intro_timer SUBD #$01 -= operator at tgvectrex.c:2555 STD G00169+0,PCR * Line tgvectrex.c:2556: function call: setintensity() LDB G00170+0,PCR variable global_flashing_intensity, declared at tgvectrex.c:1282 CLRA promoting byte argument to word PSHS B,A argument 1 of setintensity(): unsigned char LBSR _setintensity LEAS 2,S * Line tgvectrex.c:2557: if LDD G00169+0,PCR variable flashing_intro_timer, declared at tgvectrex.c:1281 * optim: loadCmpZeroBeqOrBne BNE L00509 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2558: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$40 STB G00166+0,PCR * Line tgvectrex.c:2559: assignment: = * optim: stripConsecutiveLoadsToSameReg LDB #$CE optim: removeAndOrMulAddSub STD G00165+0,PCR * Line tgvectrex.c:2560: assignment: = * optim: stripConsecutiveLoadsToSameReg LDB #$3C optim: removeAndOrMulAddSub STD G00172+0,PCR L00509 EQU * else * Useless label removed L00507 EQU * else * Useless label removed * Line tgvectrex.c:2564: if LDD G00172+0,PCR variable hide_intro_timer, declared at tgvectrex.c:1285 * optim: loadCmpZeroBeqOrBne BNE L00513 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2566: function call: drawtgintro() LBSR _drawtgintro * Line tgvectrex.c:2576: if LDD G00169+0,PCR variable flashing_intro_timer, declared at tgvectrex.c:1281 * optim: loadCmpZeroBeqOrBne BNE L00515 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2577: assignment: -= LDB G00166+0,PCR variable intro_rot SUBB #$02 -= operator at tgvectrex.c:2577 STB G00166+0,PCR * Line tgvectrex.c:2578: assignment: -= LDD G00165+0,PCR variable intro_z SUBD #$01 -= operator at tgvectrex.c:2578 STD G00165+0,PCR * Line tgvectrex.c:2579: if * optim: storeLoad CMPD #$FF39 BGE L00517 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2581: if LDD G00193+0,PCR variable stopintroflag CMPD #$01 BNE L00519 * optim: condBranchOverUncondBranch * Useless label removed LBRA L00128 return (tgvectrex.c:2582) L00519 EQU * else * Useless label removed * Line tgvectrex.c:2584: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$81 STD G00169+0,PCR * Line tgvectrex.c:2585: assignment: = * optim: stripExtraClrA_B CLRB * optim: removeClr STB G00166+0,PCR L00517 EQU * else * Useless label removed L00515 EQU * else * Useless label removed BRA L00523 jump over else clause L00513 EQU * else * Line tgvectrex.c:2589: function call: setintensity() CLRA LDB #$6E decimal 110 signed PSHS B,A argument 1 of setintensity(): int LBSR _setintensity LEAS 2,S * Line tgvectrex.c:2590: assignment: -= LDD G00172+0,PCR variable hide_intro_timer SUBD #$01 -= operator at tgvectrex.c:2590 STD G00172+0,PCR * Line tgvectrex.c:2591: if * optim: storeLoad ADDD #0 BNE L00525 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2592: function call: Start_new_game() LBSR _Start_new_game * Line tgvectrex.c:2593: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$02 STD G00173+0,PCR L00525 EQU * else * Useless label removed L00523 EQU * end if LBRA L00527 jump over else clause L00505 EQU * else * Line tgvectrex.c:2597: if LDD G00173+0,PCR variable Mode CMPD #$02 BNE L00529 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2606: function call: Update_ships() LBSR _Update_ships * Line tgvectrex.c:2607: function call: Render_ships() LBSR _Render_ships * Line tgvectrex.c:2608: function call: Draw_highscore() LBSR _Draw_highscore * Line tgvectrex.c:2609: function call: Draw_last_game_score() LBSR _Draw_last_game_score * Line tgvectrex.c:2617: if CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+26,PCR index 13 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 BLO L00531 * optim: condBranchOverUncondBranch * Useless label removed CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+54,PCR index 27 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 BLO L00531 * optim: condBranchOverUncondBranch * Useless label removed CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+82,PCR index 41 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 BLO L00531 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2620: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$C8 STD G00167+0,PCR * Line tgvectrex.c:2621: assignment: = * optim: stripConsecutiveLoadsToSameReg * optim: stripExtraClrA_B LDB #$03 STD G00173+0,PCR L00531 EQU * else * Useless label removed LBRA L00535 jump over else clause L00529 EQU * else * Line tgvectrex.c:2630: if LDD G00173+0,PCR variable Mode CMPD #$03 BNE L00537 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2635: function call: Draw_highscore() LBSR _Draw_highscore * Line tgvectrex.c:2636: function call: Draw_last_game_score() LBSR _Draw_last_game_score * Line tgvectrex.c:2637: function call: InsertCoin() LBSR _InsertCoin * Line tgvectrex.c:2638: assignment: -= LDD G00167+0,PCR variable insertcoin_mode_timer SUBD #$01 -= operator at tgvectrex.c:2638 STD G00167+0,PCR * Line tgvectrex.c:2639: if * optim: storeLoad ADDD #0 BNE L00539 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2640: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00173+0,PCR L00539 EQU * else * Useless label removed LBRA L00541 jump over else clause L00537 EQU * else * Line tgvectrex.c:2643: if LDD G00173+0,PCR variable Mode CMPD #$04 BNE L00543 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2647: function call: Draw_highscore() LBSR _Draw_highscore * Line tgvectrex.c:2648: function call: Draw_last_game_score() LBSR _Draw_last_game_score * Line tgvectrex.c:2650: if LDB G00164+0,PCR variable Credits, declared at tgvectrex.c:1267 * optim: loadCmpZeroBeqOrBne BEQ L00545 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2651: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$02 STD G00193+0,PCR * Line tgvectrex.c:2652: function call: Draw_credits() LBSR _Draw_credits * Line tgvectrex.c:2653: function call: Press_start() LBSR _Press_start * Line tgvectrex.c:2655: if LDB G00136+0,PCR variable Pressed_Key CMPB #$31 BNE L00547 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2656: assignment: = CLRA CLRB * optim: removeClr STB G00136+0,PCR * Line tgvectrex.c:2657: assignment: -= LDB G00164+0,PCR variable Credits SUBB #$01 -= operator at tgvectrex.c:2657 STB G00164+0,PCR * Line tgvectrex.c:2658: function call: Start_new_game() LBSR _Start_new_game * Line tgvectrex.c:2659: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$05 STD G00173+0,PCR L00547 EQU * else * Useless label removed BRA L00549 jump over else clause L00545 EQU * else L00549 EQU * end if LBRA L00550 jump over else clause L00543 EQU * else * Line tgvectrex.c:2673: if LDD G00173+0,PCR variable Mode CMPD #$05 LBNE L00552 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2675: function call: draw_crosshair() * Line tgvectrex.c:2675: function call: mouseY() LBSR _mouseY PSHS B,A argument 2 of draw_crosshair(): int * Line tgvectrex.c:2675: function call: mouseX() LBSR _mouseX PSHS B,A argument 1 of draw_crosshair(): int LBSR _draw_crosshair LEAS 4,S * Line tgvectrex.c:2677: if LDB G00136+0,PCR variable Pressed_Key CMPB #$20 BEQ L00555 * optim: branchToNextLocation * Useless label removed LDB G00136+0,PCR variable Pressed_Key CMPB #$09 BEQ L00555 * optim: branchToNextLocation * Useless label removed LDB G00140+0,PCR variable mouse_shields, declared at tgvectrex.c:142 * optim: loadCmpZeroBeqOrBne BEQ L00554 * optim: condBranchOverUncondBranch L00555 EQU * LDD G00182+0,PCR variable Shields ADDD #0 BLE L00554 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2678: assignment: = CLRA CLRB * optim: removeClr STB G00136+0,PCR * Line tgvectrex.c:2679: assignment: = * optim: stripExtraClrA_B * optim: stripConsecutiveLoadsToSameReg LDB #$01 optim: removeAndOrMulAddSub STD G00181+0,PCR BRA L00558 jump over else clause L00554 EQU * else * Line tgvectrex.c:2681: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00181+0,PCR L00558 EQU * end if * Line tgvectrex.c:2685: if LDD G00181+0,PCR variable UsingShields CMPD #$01 BNE L00560 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2686: function call: Shield() LBSR _Shield BRA L00561 jump over else clause L00560 EQU * else * Line tgvectrex.c:2688: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00184+0,PCR L00561 EQU * end if * Line tgvectrex.c:2691: function call: Update_ships() LBSR _Update_ships * Line tgvectrex.c:2693: if LDD G00180+0,PCR variable Score CMPD G00178+0,PCR variable HighScore BLE L00563 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2693: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD G00180+0,PCR STD G00178+0,PCR L00563 EQU * else * Useless label removed * Line tgvectrex.c:2694: function call: Render_ships() LBSR _Render_ships * Line tgvectrex.c:2695: function call: Render_lasers() LBSR _Render_lasers * Line tgvectrex.c:2697: function call: Draw_score() LBSR _Draw_score * Line tgvectrex.c:2698: function call: Draw_ShipsPassedTotal() LBSR _Draw_ShipsPassedTotal * Line tgvectrex.c:2699: function call: Draw_shields_left() LBSR _Draw_shields_left * Line tgvectrex.c:2704: if CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+26,PCR index 13 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 LBLO L00566 * optim: condBranchOverUncondBranch * Useless label removed CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+54,PCR index 27 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 LBLO L00566 * optim: condBranchOverUncondBranch * Useless label removed CLRA * LDB #$02 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDD G00224+82,PCR index 41 in array ships[] CLRA promotion of binary operand * optim: stripPushLeas1 CMPB #2 optim: optimizeStackOperations1 BLO L00566 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2707: if LDD G00185+0,PCR variable ShipsPassedThisWave ADDD #0 BLE L00570 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2708: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$32 STD G00168+0,PCR * Line tgvectrex.c:2709: assignment: = * optim: stripConsecutiveLoadsToSameReg * optim: stripExtraClrA_B LDB #$06 STD G00173+0,PCR BRA L00571 jump over else clause L00570 EQU * else * Line tgvectrex.c:2713: if LDD G00186+0,PCR variable ShipsPassedTotal CMPD #$0A BGE L00573 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2714: function call: Start_attack_wave() LBSR _Start_attack_wave * Line tgvectrex.c:2715: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$05 STD G00173+0,PCR BRA L00574 jump over else clause L00573 EQU * else * Line tgvectrex.c:2717: if LDB G00164+0,PCR variable Credits, declared at tgvectrex.c:1267 * optim: loadCmpZeroBeqOrBne BEQ L00576 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2718: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$04 STD G00173+0,PCR BRA L00577 jump over else clause L00576 EQU * else * Line tgvectrex.c:2720: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00173+0,PCR * Line tgvectrex.c:2721: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD G00180+0,PCR STD G00179+0,PCR L00577 EQU * end if L00574 EQU * end if L00571 EQU * end if L00566 EQU * else * Useless label removed LBRA L00579 jump over else clause L00552 EQU * else * Line tgvectrex.c:2727: if LDD G00173+0,PCR variable Mode CMPD #$06 LBNE L00581 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2731: function call: Draw_score() LBSR _Draw_score * Line tgvectrex.c:2732: function call: Draw_ShipsPassedTotal() LBSR _Draw_ShipsPassedTotal * Line tgvectrex.c:2733: function call: Draw_shields_left() LBSR _Draw_shields_left * Line tgvectrex.c:2735: if LDD G00168+0,PCR variable passing_mode_timer ADDD #0 BLE L00583 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2736: assignment: -= LDD G00168+0,PCR variable passing_mode_timer SUBD #$01 -= operator at tgvectrex.c:2736 STD G00168+0,PCR * Line tgvectrex.c:2737: if * optim: storeLoad ADDD #0 BNE L00585 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2738: if LDD G00186+0,PCR variable ShipsPassedTotal CMPD #$0A BGE L00587 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2739: function call: Start_attack_wave() LBSR _Start_attack_wave * Line tgvectrex.c:2740: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$05 STD G00173+0,PCR BRA L00588 jump over else clause L00587 EQU * else * Line tgvectrex.c:2742: if LDB G00164+0,PCR variable Credits, declared at tgvectrex.c:1267 * optim: loadCmpZeroBeqOrBne BEQ L00590 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:2743: assignment: = * optim: stripConsecutiveLoadsToSameReg CLRA LDB #$04 STD G00173+0,PCR BRA L00591 jump over else clause L00590 EQU * else * Line tgvectrex.c:2745: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD G00173+0,PCR * Line tgvectrex.c:2746: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD G00180+0,PCR STD G00179+0,PCR L00591 EQU * end if L00588 EQU * end if L00585 EQU * else * Useless label removed L00583 EQU * else * Useless label removed BRA L00594 jump over else clause L00581 EQU * else L00594 EQU * end if L00579 EQU * end if L00550 EQU * end if L00541 EQU * end if L00535 EQU * end if L00527 EQU * end if L00503 EQU * end if * Line tgvectrex.c:2756: function call: debug_ship() CLRA CLRB PSHS B,A argument 1 of debug_ship(): int LBSR _debug_ship LEAS 2,S * Line tgvectrex.c:2756: function call: debug_ship() CLRA LDB #$01 decimal 1 signed PSHS B,A argument 1 of debug_ship(): int LBSR _debug_ship LEAS 2,S * Line tgvectrex.c:2756: function call: debug_ship() CLRA LDB #$02 decimal 2 signed PSHS B,A argument 1 of debug_ship(): int LBSR _debug_ship LEAS 2,S L00128 EQU * end of playTailgunner() RTS * END FUNCTION ******************************************************************************* * FUNCTION plot_fire(): defined at tgvectrex.c:1583 _plot_fire EQU * PSHS U LEAU ,S LEAS -22,S * Line tgvectrex.c:1594: assignment: = * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD 10,U variable x2, declared at tgvectrex.c:1583 SUBD 6,U optim: optimize16BitStackOps1 STD -20,U * Line tgvectrex.c:1595: assignment: = * optim: optimize16BitStackOps1 * optim: optimize16BitStackOps1 LDD 12,U variable y2, declared at tgvectrex.c:1583 SUBD 8,U optim: optimize16BitStackOps1 STD -18,U * Line tgvectrex.c:1596: assignment: = LDD -20,U variable dx ADDD #0 BGE L00595 if true CLRB BRA L00596 false L00595 EQU * LDB #1 L00596 EQU * TSTB BEQ L00597 if conditional expression is false LDD -20,U variable dx, declared at tgvectrex.c:1593 BRA L00598 end of true expression of conditional L00597 EQU * LDD -20,U variable dx, declared at tgvectrex.c:1593 COMA COMB ADDD #1 L00598 EQU * STD -12,U * Line tgvectrex.c:1597: assignment: = LDD -18,U variable dy ADDD #0 BGE L00599 if true CLRB BRA L00600 false L00599 EQU * LDB #1 L00600 EQU * TSTB BEQ L00601 if conditional expression is false LDD -18,U variable dy, declared at tgvectrex.c:1593 BRA L00602 end of true expression of conditional L00601 EQU * LDD -18,U variable dy, declared at tgvectrex.c:1593 COMA COMB ADDD #1 L00602 EQU * STD -10,U * Line tgvectrex.c:1598: assignment: = LDD -20,U variable dx ADDD #0 BLT L00603 if true CLRB BRA L00604 false L00603 EQU * LDB #1 L00604 EQU * TSTB BEQ L00605 if conditional expression is false LDD #$FFFF constant expression: 65535 decimal BRA L00606 end of true expression of conditional L00605 EQU * LDD -20,U variable dx ADDD #0 BGT L00607 if true CLRB BRA L00608 false L00607 EQU * LDB #1 L00608 EQU * TSTB BEQ L00609 if conditional expression is false CLRA LDB #$01 decimal 1 signed BRA L00610 end of true expression of conditional L00609 EQU * CLRA CLRB L00610 EQU * SEX cast from byte (conditional expression) L00606 EQU * SEX STD -16,U * Line tgvectrex.c:1599: assignment: = LDD -18,U variable dy ADDD #0 BLT L00611 if true CLRB BRA L00612 false L00611 EQU * LDB #1 L00612 EQU * TSTB BEQ L00613 if conditional expression is false LDD #$FFFF constant expression: 65535 decimal BRA L00614 end of true expression of conditional L00613 EQU * LDD -18,U variable dy ADDD #0 BGT L00615 if true CLRB BRA L00616 false L00615 EQU * LDB #1 L00616 EQU * TSTB BEQ L00617 if conditional expression is false CLRA LDB #$01 decimal 1 signed BRA L00618 end of true expression of conditional L00617 EQU * CLRA CLRB L00618 EQU * SEX cast from byte (conditional expression) L00614 EQU * SEX STD -14,U * Line tgvectrex.c:1600: assignment: = LDD -10,U variable dyabs, declared at tgvectrex.c:1593 ASRA RORB STD -8,U * Line tgvectrex.c:1601: assignment: = LDD -12,U variable dxabs, declared at tgvectrex.c:1593 ASRA RORB STD -6,U * Line tgvectrex.c:1602: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 6,U STD -4,U * Line tgvectrex.c:1603: assignment: = * optim: stripConsecutiveLoadsToSameReg LDD 8,U STD -2,U * Line tgvectrex.c:1614: function call: Display_Vectrex_point() * optim: storeLoad PSHS B,A argument 2 of Display_Vectrex_point(): int LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS B,A argument 1 of Display_Vectrex_point(): int LBSR _Display_Vectrex_point LEAS 4,S * Line tgvectrex.c:1616: if LDD -12,U variable dxabs CMPD -10,U variable dyabs LBLT L00620 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1618: for init * Line tgvectrex.c:1618: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD -22,U LBRA L00622 jump to for condition L00621 EQU * * Line tgvectrex.c:1618: for body * Line tgvectrex.c:1620: assignment: += LDD -6,U variable y ADDD -10,U variable dyabs STD -6,U variable y * Line tgvectrex.c:1621: if * optim: storeLoad CMPD -12,U variable dxabs BLT L00626 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1623: assignment: -= LDD -6,U variable y SUBD -12,U variable dxabs STD -6,U variable y * Line tgvectrex.c:1624: assignment: += LDD -2,U variable py ADDD -14,U variable sdy STD -2,U variable py L00626 EQU * else * Useless label removed * Line tgvectrex.c:1626: assignment: += LDD -4,U variable px ADDD -16,U variable sdx STD -4,U variable px * Line tgvectrex.c:1627: if LDD -22,U variable i CMPD #$19 BGT L00629 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1628: function call: Display_Vectrex_point() LDX -2,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS X,B,A optim: optimizePshsOps LBSR _Display_Vectrex_point LEAS 4,S * Line tgvectrex.c:1629: assignment: = LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS B,A LEAX G00227+0,PCR address of array firex LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1629: assignment: = LDD -2,U variable py, declared at tgvectrex.c:1593 PSHS B,A LEAX G00228+0,PCR address of array firey LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X L00629 EQU * else * Useless label removed * Line tgvectrex.c:1631: if LDD -22,U variable i CMPD #$32 BNE L00632 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1631: assignment: = LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS B,A LEAX G00227+0,PCR address of array firex LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1631: assignment: = LDD -2,U variable py, declared at tgvectrex.c:1593 PSHS B,A LEAX G00228+0,PCR address of array firey LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X L00632 EQU * else * Useless label removed * Useless label removed * Line tgvectrex.c:1618: for increment(s) LDD -22,U ADDD #1 STD -22,U L00622 EQU * * Line tgvectrex.c:1618: for condition LDD -22,U variable i CMPD -12,U variable dxabs LBLT L00621 * optim: branchToNextLocation * Useless label removed LBRA L00634 jump over else clause L00620 EQU * else * Line tgvectrex.c:1636: for init * Line tgvectrex.c:1636: assignment: = CLRA CLRB LDB #$00 optim: changeLoadDToLoadB STD -22,U LBRA L00636 jump to for condition L00635 EQU * * Line tgvectrex.c:1636: for body * Line tgvectrex.c:1638: assignment: += LDD -8,U variable x ADDD -12,U variable dxabs STD -8,U variable x * Line tgvectrex.c:1639: if * optim: storeLoad CMPD -10,U variable dyabs BLT L00640 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1641: assignment: -= LDD -8,U variable x SUBD -10,U variable dyabs STD -8,U variable x * Line tgvectrex.c:1642: assignment: += LDD -4,U variable px ADDD -16,U variable sdx STD -4,U variable px L00640 EQU * else * Useless label removed * Line tgvectrex.c:1644: assignment: += LDD -2,U variable py ADDD -14,U variable sdy STD -2,U variable py * Line tgvectrex.c:1645: if LDD -22,U variable i CMPD #$19 BGT L00643 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1646: function call: Display_Vectrex_point() LDX -2,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS X,B,A optim: optimizePshsOps LBSR _Display_Vectrex_point LEAS 4,S * Line tgvectrex.c:1647: assignment: = LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS B,A LEAX G00227+0,PCR address of array firex LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1647: assignment: = LDD -2,U variable py, declared at tgvectrex.c:1593 PSHS B,A LEAX G00228+0,PCR address of array firey LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X L00643 EQU * else * Useless label removed * Line tgvectrex.c:1649: if LDD -22,U variable i CMPD #$32 BNE L00646 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1649: assignment: = LDD -4,U variable px, declared at tgvectrex.c:1593 PSHS B,A LEAX G00227+0,PCR address of array firex LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X * Line tgvectrex.c:1649: assignment: = LDD -2,U variable py, declared at tgvectrex.c:1593 PSHS B,A LEAX G00228+0,PCR address of array firey LDD 4,U variable lr LSLB ROLA LEAX D,X add byte offset LDD ,S++ STD ,X L00646 EQU * else * Useless label removed * Useless label removed * Line tgvectrex.c:1636: for increment(s) LDD -22,U ADDD #1 STD -22,U L00636 EQU * * Line tgvectrex.c:1636: for condition LDD -22,U variable i CMPD -10,U variable dyabs LBLT L00635 * optim: branchToNextLocation * Useless label removed L00634 EQU * end if * Line tgvectrex.c:1652: return with value LDD -22,U variable i CMPD #$1E BLE L00648 if true CLRB BRA L00649 false L00648 EQU * LDB #1 L00649 EQU * * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION plot_star(): defined at tgvectrex.c:1542 _plot_star EQU * PSHS U LEAU ,S * Line tgvectrex.c:1544: function call: starplot() LEAX G00226+0,PCR address of array pya LDD 4,U variable starno LSLB ROLA * optimizeLoadDX LDD D,X get r-value PSHS B,A argument 2 of starplot(): int LEAX G00225+0,PCR address of array pxa LDD 4,U variable starno LSLB ROLA * optimizeLoadDX LDD D,X get r-value PSHS B,A argument 1 of starplot(): int LBSR _starplot LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION post_graphics_initialisation(): defined at tgvectrex.c:2798 _post_graphics_initialisation EQU * * Line tgvectrex.c:2800: assignment: = LDX G00141+0,PCR left CLRA LDB #$02 right LBSR SDIV16 * optim: optimizeTfrOp STX G00143+0,PCR optim: optimizeTfrOp * Line tgvectrex.c:2800: assignment: = LDX G00142+0,PCR left CLRA LDB #$02 right LBSR SDIV16 * optim: optimizeTfrOp STX G00144+0,PCR optim: optimizeTfrOp * Line tgvectrex.c:2801: function call: putPenUp() LBSR _putPenUp * Line tgvectrex.c:2802: function call: init_stars() LBSR _init_stars * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION pre_graphics_initialisation(): defined at tgvectrex.c:2759 _pre_graphics_initialisation EQU * * Line tgvectrex.c:2772: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB G00234+0,PCR * Line tgvectrex.c:2777: assignment: = * optim: stripExtraClrA_B * optim: stripConsecutiveLoadsToSameReg LDB #$6E STB G00135+0,PCR * Line tgvectrex.c:2793: assignment: = * Line tgvectrex.c:2793: assignment: = * optim: stripConsecutiveLoadsToSameReg * optim: stripExtraClrA_B LDB #$1E STD G00132+0,PCR STD G00133+0,PCR * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION putPenDown(): defined at tgvectrex.c:867 _putPenDown EQU * * Line tgvectrex.c:869: assignment: = CLRA * optim: stripConsecutiveLoadsToSameReg LDB #$01 STB G00161+0,PCR * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION putPenUp(): defined at tgvectrex.c:872 _putPenUp EQU * * Line tgvectrex.c:874: assignment: = CLRA CLRB * optim: removeClr STB G00161+0,PCR * Useless label removed RTS * END FUNCTION ******************************************************************************* * FUNCTION q15_div(): defined at tgvectrex.c:1086 _q15_div EQU * PSHS U LEAU ,S * Line tgvectrex.c:1088: if LDD 4,U variable numer ADDD #0 BGE L00651 * optim: condBranchOverUncondBranch * Useless label removed LDD 6,U variable denom ADDD #0 BGE L00651 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1088: return with value * Line tgvectrex.c:1088: function call: muldiv() LDD 6,U variable denom, declared at tgvectrex.c:1086 COMA COMB ADDD #1 PSHS B,A argument 3 of muldiv(): int LDD #$8000 constant expression: 32768 decimal PSHS B,A argument 2 of muldiv(): int LDD 4,U variable numer, declared at tgvectrex.c:1086 COMA COMB ADDD #1 PSHS B,A argument 1 of muldiv(): int LBSR _muldiv LEAS 6,S LBRA L00050 return (tgvectrex.c:1088) L00651 EQU * else * Useless label removed * Line tgvectrex.c:1089: if LDD 4,U variable numer ADDD #0 BGE L00655 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1089: return with value * Line tgvectrex.c:1089: function call: muldiv() LDX 6,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD #$8000 constant expression: 32768 decimal PSHS X,B,A optim: optimizePshsOps LDD 4,U variable numer, declared at tgvectrex.c:1086 COMA COMB ADDD #1 PSHS B,A argument 1 of muldiv(): int LBSR _muldiv LEAS 6,S COMA COMB ADDD #1 BRA L00050 return (tgvectrex.c:1089) L00655 EQU * else * Useless label removed * Line tgvectrex.c:1090: if LDD 6,U variable denom ADDD #0 BGE L00658 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1090: return with value * Line tgvectrex.c:1090: function call: muldiv() LDD 6,U variable denom, declared at tgvectrex.c:1086 COMA COMB ADDD #1 PSHS B,A argument 3 of muldiv(): int LDX #$8000 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable numer, declared at tgvectrex.c:1086 PSHS X,B,A optim: optimizePshsOps LBSR _muldiv LEAS 6,S COMA COMB ADDD #1 BRA L00050 return (tgvectrex.c:1090) L00658 EQU * else * Useless label removed * Line tgvectrex.c:1091: return with value * Line tgvectrex.c:1091: function call: muldiv() LDY 6,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX #$8000 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable numer, declared at tgvectrex.c:1086 PSHS X,B,A optim: optimizePshsOps LBSR _muldiv LEAS 6,S * optim: branchToNextLocation L00050 EQU * end of q15_div() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION q15_mul(): defined at tgvectrex.c:1077 _q15_mul EQU * PSHS U LEAU ,S * Line tgvectrex.c:1080: if LDD 4,U variable j ADDD #0 BGE L00661 * optim: condBranchOverUncondBranch * Useless label removed LDD 6,U variable k ADDD #0 BGE L00661 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1080: return with value * Line tgvectrex.c:1080: function call: muldiv() LDD #$8000 constant expression: 32768 decimal PSHS B,A argument 3 of muldiv(): int LDD 6,U variable k, declared at tgvectrex.c:1077 COMA COMB ADDD #1 PSHS B,A argument 2 of muldiv(): int LDD 4,U variable j, declared at tgvectrex.c:1077 COMA COMB ADDD #1 PSHS B,A argument 1 of muldiv(): int LBSR _muldiv LEAS 6,S LBRA L00049 return (tgvectrex.c:1080) L00661 EQU * else * Useless label removed * Line tgvectrex.c:1081: if LDD 4,U variable j ADDD #0 BGE L00665 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1081: return with value * Line tgvectrex.c:1081: function call: muldiv() LDX #$8000 optim: transformPshsDPshsD * optim: optimizePshsOps LDD 6,U variable k, declared at tgvectrex.c:1077 PSHS X,B,A optim: optimizePshsOps LDD 4,U variable j, declared at tgvectrex.c:1077 COMA COMB ADDD #1 PSHS B,A argument 1 of muldiv(): int LBSR _muldiv LEAS 6,S COMA COMB ADDD #1 BRA L00049 return (tgvectrex.c:1081) L00665 EQU * else * Useless label removed * Line tgvectrex.c:1082: if LDD 6,U variable k ADDD #0 BGE L00668 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1082: return with value * Line tgvectrex.c:1082: function call: muldiv() LDD #$8000 constant expression: 32768 decimal PSHS B,A argument 3 of muldiv(): int LDD 6,U variable k, declared at tgvectrex.c:1077 COMA COMB ADDD #1 PSHS B,A argument 2 of muldiv(): int LDD 4,U variable j, declared at tgvectrex.c:1077 PSHS B,A argument 1 of muldiv(): int LBSR _muldiv LEAS 6,S COMA COMB ADDD #1 BRA L00049 return (tgvectrex.c:1082) L00668 EQU * else * Useless label removed * Line tgvectrex.c:1083: return with value * Line tgvectrex.c:1083: function call: muldiv() LDY #$8000 optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX 6,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD 4,U variable j, declared at tgvectrex.c:1077 PSHS X,B,A optim: optimizePshsOps LBSR _muldiv LEAS 6,S * optim: branchToNextLocation L00049 EQU * end of q15_mul() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION s16_nabs(): defined at tgvectrex.c:1031 _s16_nabs EQU * PSHS U LEAU ,S * Line tgvectrex.c:1039: return with value LDD 4,U variable j ADDD #0 BLT L00670 if true CLRB BRA L00671 false L00670 EQU * LDB #1 L00671 EQU * TSTB BEQ L00672 if conditional expression is false LDD 4,U variable j, declared at tgvectrex.c:1031 BRA L00673 end of true expression of conditional L00672 EQU * LDD 4,U variable j, declared at tgvectrex.c:1031 COMA COMB ADDD #1 L00673 EQU * * optim: branchToNextLocation * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION segment(): defined at tgvectrex.c:1830 _segment EQU * PSHS U LEAU ,S LEAS -12,S * Line tgvectrex.c:1841: assignment: = LDB 5,U variable coords ANDB #$0F CLRA STD -2,U * Line tgvectrex.c:1842: assignment: = LDX -2,U left LDB #$05 optim: removeAndOrMulAddSub LBSR SDIV16 TFR D,X optim: stripExtraPulsX CLRA LDB #$04 decimal 4 signed * optim: stripExtraPulsX LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 6,U variable textscale, declared at tgvectrex.c:1830 * optim: stripExtraPulsX LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -8,U * Line tgvectrex.c:1843: assignment: = LDX -2,U left CLRA LDB #$05 right LBSR SDIV16 * optim: stripExtraPulsX * optim: optimizeTfrPush CLRA LDB #$0C decimal 12 signed * optim: stripExtraPulsX LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 6,U variable textscale, declared at tgvectrex.c:1830 * optim: stripExtraPulsX LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -6,U * Line tgvectrex.c:1845: assignment: = LDB 5,U variable coords, declared at tgvectrex.c:1830 LSRB LSRB LSRB LSRB CLRA STD -4,U * Line tgvectrex.c:1846: assignment: = LDX -4,U left LDB #$05 optim: removeAndOrMulAddSub LBSR SDIV16 TFR D,X optim: stripExtraPulsX CLRA LDB #$04 decimal 4 signed * optim: stripExtraPulsX LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 6,U variable textscale, declared at tgvectrex.c:1830 * optim: stripExtraPulsX LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -12,U * Line tgvectrex.c:1847: assignment: = LDX -4,U left CLRA LDB #$05 right LBSR SDIV16 * optim: stripExtraPulsX * optim: optimizeTfrPush CLRA LDB #$0C decimal 12 signed * optim: stripExtraPulsX LBSR MUL16 TFR D,X optim: stripExtraPulsX LDD 6,U variable textscale, declared at tgvectrex.c:1830 * optim: stripExtraPulsX LBSR MUL16 ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB ASRA RORB STD -10,U * Line tgvectrex.c:1849: function call: draw_text_line() LDY -6,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDY -8,U optim: transformPshsXPshsX PSHS Y optim: transformPshsXPshsX LDX -10,U optim: transformPshsDPshsD * optim: optimizePshsOps LDD -12,U variable fromx, declared at tgvectrex.c:1832 PSHS X,B,A optim: optimizePshsOps LBSR _draw_text_line LEAS 8,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION setintensity(): defined at tgvectrex.c:898 _setintensity EQU * PSHS U LEAU ,S * Line tgvectrex.c:900: assignment: = LDB 5,U variable brightness ANDB #$7F STB G00135+0,PCR * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION sinsymmetry(): defined at tgvectrex.c:1375 _sinsymmetry EQU * PSHS U LEAU ,S * Line tgvectrex.c:1378: if LDB 5,U variable angle128 CMPB #$40 BLS L00675 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1378: return with value LEAX G00151+0,PCR address of array sine * optim: optimizePshsOps LDB 5,U variable angle128, declared at tgvectrex.c:1375 CLRA promotion of binary operand PSHS X,B,A optim: optimizePshsOps LDB #$80 optim: changeLoadDToLoadB LEAS 1,S SUBB ,S+ * optim: stripExtraClrA_B LSLB ROLA PULS X retrieve array address * optimizeLoadDX LDD D,X get r-value BRA L00054 return (tgvectrex.c:1378) * optim: instrFollowingUncondBranch L00675 EQU * else * Line tgvectrex.c:1378: return with value LEAX G00151+0,PCR address of array sine LDB 5,U variable angle128 CLRA index expression is of byte type LSLB ROLA * optimizeLoadDX LDD D,X get r-value BRA L00054 return (tgvectrex.c:1378) * Useless label removed L00054 EQU * end of sinsymmetry() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION star_x1(): defined at tgvectrex.c:1491 _star_x1 EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1492: init of variable xtype CLRA * LDB #$03 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDB 5,U variable idx, declared at tgvectrex.c:1491 LSRB LSRB * optim: stripExtraClrA_B * optim: stripPushLeas1 ANDB #3 optim: optimizeStackOperations1 STB -2,U variable xtype * Line tgvectrex.c:1492: init of variable ytype LDB 5,U variable idx ANDB #$03 STB -1,U variable ytype * Line tgvectrex.c:1494: assignment: = * optim: storeLoad * CLRA optim: optimizeStackOperations1 PSHS B optim: optimizeStackOperations1 LDB -2,U variable xtype, declared at tgvectrex.c:1492 * optim: stripExtraClrA_B EORA #0 optim: optimizeStackOperations1 EORB ,S+ STB 5,U * Line tgvectrex.c:1495: if * optim: storeLoad TSTB BNE L00678 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1496: return with value LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 ASRA RORB COMA COMB ADDD #1 BRA L00062 return (tgvectrex.c:1496) * optim: instrFollowingUncondBranch L00678 EQU * else * Line tgvectrex.c:1497: if LDB 5,U variable idx CMPB #$02 BNE L00681 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1498: return with value CLRA * optim: removeUnusedLoad * PSHS B,A optim: optimizeStackOperations1 LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 ASRA RORB SUBD #1 optim: optimizeStackOperations1 BRA L00062 return (tgvectrex.c:1498) * optim: instrFollowingUncondBranch L00681 EQU * else * Line tgvectrex.c:1500: return with value * Line tgvectrex.c:1500: function call: pickrandom() CLRA LDB #$01 decimal 1 signed PSHS B,A LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 ASRA RORB SUBD ,S++ PSHS B,A argument 2 of pickrandom(): int LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 ASRA RORB COMA COMB ADDD #1 PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S BRA L00062 return (tgvectrex.c:1500) * Useless label removed * Useless label removed L00062 EQU * end of star_x1() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION star_y1(): defined at tgvectrex.c:1504 _star_y1 EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1505: init of variable xtype CLRA * LDB #$03 optim: optimizeStackOperations1 * PSHS B optim: optimizeStackOperations1 LDB 5,U variable idx, declared at tgvectrex.c:1504 LSRB LSRB * optim: stripExtraClrA_B * optim: stripPushLeas1 ANDB #3 optim: optimizeStackOperations1 STB -2,U variable xtype * Line tgvectrex.c:1505: init of variable ytype LDB 5,U variable idx ANDB #$03 STB -1,U variable ytype * Line tgvectrex.c:1507: assignment: = * optim: storeLoad * CLRA optim: optimizeStackOperations1 PSHS B optim: optimizeStackOperations1 LDB -2,U variable xtype, declared at tgvectrex.c:1505 * optim: stripExtraClrA_B EORA #0 optim: optimizeStackOperations1 EORB ,S+ STB 5,U * Line tgvectrex.c:1508: if * optim: storeLoad CMPB #$01 BNE L00684 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1509: return with value CLRA * optim: removeUnusedLoad * PSHS B,A optim: optimizeStackOperations1 LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 ASRA RORB SUBD #1 optim: optimizeStackOperations1 LBRA L00063 return (tgvectrex.c:1509) * optim: instrFollowingUncondBranch L00684 EQU * else * Line tgvectrex.c:1510: if LDB 5,U variable idx CMPB #$03 BNE L00687 * optim: condBranchOverUncondBranch * Useless label removed * Line tgvectrex.c:1511: return with value LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 ASRA RORB COMA COMB ADDD #1 BRA L00063 return (tgvectrex.c:1511) * optim: instrFollowingUncondBranch L00687 EQU * else * Line tgvectrex.c:1513: return with value * Line tgvectrex.c:1513: function call: pickrandom() CLRA LDB #$01 decimal 1 signed PSHS B,A LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 ASRA RORB SUBD ,S++ PSHS B,A argument 2 of pickrandom(): int LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 ASRA RORB COMA COMB ADDD #1 PSHS B,A argument 1 of pickrandom(): int LBSR _pickrandom LEAS 4,S BRA L00063 return (tgvectrex.c:1513) * Useless label removed * Useless label removed L00063 EQU * end of star_y1() LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION starplot(): defined at tgvectrex.c:1451 _starplot EQU * PSHS U LEAU ,S * Line tgvectrex.c:1457: function call: Display_Vectrex_point() LDD 6,U variable y, declared at tgvectrex.c:1451 PSHS B,A LDD G00142+0,PCR variable ScreenHeight, declared at tgvectrex.c:143 ASRA RORB ADDD ,S++ PSHS B,A argument 2 of Display_Vectrex_point(): int LDD 4,U variable x, declared at tgvectrex.c:1451 PSHS B,A LDD G00141+0,PCR variable ScreenWidth, declared at tgvectrex.c:143 ASRA RORB ADDD ,S++ PSHS B,A argument 1 of Display_Vectrex_point(): int LBSR _Display_Vectrex_point LEAS 4,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION stars(): defined at tgvectrex.c:1557 _stars EQU * PSHS U LEAU ,S LEAS -2,S * Line tgvectrex.c:1560: for init * Line tgvectrex.c:1560: assignment: = CLRA CLRB * optim: removeClr STB -1,U BRA L00690 jump to for condition L00689 EQU * * Line tgvectrex.c:1560: for body * Line tgvectrex.c:1561: for init * Line tgvectrex.c:1561: assignment: = CLRA CLRB * optim: removeClr STB -2,U BRA L00694 jump to for condition L00693 EQU * * Line tgvectrex.c:1561: for body * Line tgvectrex.c:1561: function call: move_star() LDB -1,U variable star, declared at tgvectrex.c:1559 CLRA promoting byte argument to word PSHS B,A argument 1 of move_star(): unsigned char LBSR _move_star LEAS 2,S * Useless label removed * Line tgvectrex.c:1561: for increment(s) INC -2,U L00694 EQU * * Line tgvectrex.c:1561: for condition LDB -2,U variable i CMPB 5,U variable speed BLO L00693 * optim: branchToNextLocation * Useless label removed * Line tgvectrex.c:1562: function call: plot_star() LDB -1,U variable star, declared at tgvectrex.c:1559 CLRA promoting byte argument to word PSHS B,A argument 1 of plot_star(): unsigned char LBSR _plot_star LEAS 2,S * Useless label removed * Line tgvectrex.c:1560: for increment(s) INC -1,U L00690 EQU * * Line tgvectrex.c:1560: for condition LDB -1,U variable star CMPB #$10 BLO L00689 * optim: branchToNextLocation * Useless label removed * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION startAsyncSound(): defined at tgvectrex.c:185 _startAsyncSound EQU * PSHS U LEAU ,S * Useless label removed LEAS ,U PULS U,PC * END FUNCTION ******************************************************************************* * FUNCTION urandom16(): defined at tgvectrex.c:216 _urandom16 EQU * * Line tgvectrex.c:218: return with value * Line tgvectrex.c:218: assignment: = LDD #$3619 decimal 13849 signed PSHS B,A LDX G00145+0,PCR left LDD #$0805 right LBSR MUL16 ADDD ,S++ STD G00145+0,PCR * optim: branchToNextLocation * Useless label removed RTS * END FUNCTION functions_end EQU * string_literals_start EQU * string_literals_end EQU * ******************************************************************************* * READ-ONLY GLOBAL VARIABLES G00146 EQU * SCORE_STR96: unsigned char[] FCB $05 decimal 5 FCB $1D decimal 29 FCB $0D decimal 13 FCB $19 decimal 25 FCB $1C decimal 28 FCB $0F decimal 15 G00147 EQU * HIGH_SCORE_STR96: unsigned char[] FCB $0A decimal 10 FCB $12 decimal 18 FCB $13 decimal 19 FCB $11 decimal 17 FCB $12 decimal 18 FCB $00 decimal 0 FCB $1D decimal 29 FCB $0D decimal 13 FCB $19 decimal 25 FCB $1C decimal 28 FCB $0F decimal 15 G00148 EQU * CREDITS_STR128: unsigned char[] FCB $08 decimal 8 FCB $0D decimal 13 FCB $1C decimal 28 FCB $0F decimal 15 FCB $0E decimal 14 FCB $13 decimal 19 FCB $1E decimal 30 FCB $1D decimal 29 FCB $00 decimal 0 G00149 EQU * INSERT_COIN_STR128: unsigned char[] FCB $0B decimal 11 FCB $13 decimal 19 FCB $18 decimal 24 FCB $1D decimal 29 FCB $0F decimal 15 FCB $1C decimal 28 FCB $1E decimal 30 FCB $00 decimal 0 FCB $0D decimal 13 FCB $19 decimal 25 FCB $13 decimal 19 FCB $18 decimal 24 G00150 EQU * PRESS_START_STR128: unsigned char[] FCB $0B decimal 11 FCB $1A decimal 26 FCB $1C decimal 28 FCB $0F decimal 15 FCB $1D decimal 29 FCB $1D decimal 29 FCB $00 decimal 0 FCB $1D decimal 29 FCB $1E decimal 30 FCB $0B decimal 11 FCB $1C decimal 28 FCB $1E decimal 30 G00151 EQU * sine: int[] FDB $00 decimal 0 FDB $0192 decimal 402 FDB $0323 decimal 803 FDB $04B5 decimal 1205 FDB $0645 decimal 1605 FDB $07D5 decimal 2005 FDB $0964 decimal 2404 FDB $0AF1 decimal 2801 FDB $0C7C decimal 3196 FDB $0E05 decimal 3589 FDB $0F8C decimal 3980 FDB $1111 decimal 4369 FDB $1294 decimal 4756 FDB $1413 decimal 5139 FDB $158F decimal 5519 FDB $1708 decimal 5896 FDB $187D decimal 6269 FDB $19EF decimal 6639 FDB $1B5D decimal 7005 FDB $1CC6 decimal 7366 FDB $1E2B decimal 7723 FDB $1F8B decimal 8075 FDB $20E7 decimal 8423 FDB $223D decimal 8765 FDB $238E decimal 9102 FDB $24DA decimal 9434 FDB $261F decimal 9759 FDB $275F decimal 10079 FDB $2899 decimal 10393 FDB $29CD decimal 10701 FDB $2AFA decimal 11002 FDB $2C21 decimal 11297 FDB $2D41 decimal 11585 FDB $2E5A decimal 11866 FDB $2F6B decimal 12139 FDB $3076 decimal 12406 FDB $3179 decimal 12665 FDB $3274 decimal 12916 FDB $3367 decimal 13159 FDB $3453 decimal 13395 FDB $3536 decimal 13622 FDB $3612 decimal 13842 FDB $36E5 decimal 14053 FDB $37AF decimal 14255 FDB $3871 decimal 14449 FDB $392A decimal 14634 FDB $39DA decimal 14810 FDB $3A82 decimal 14978 FDB $3B20 decimal 15136 FDB $3BB6 decimal 15286 FDB $3C42 decimal 15426 FDB $3CC5 decimal 15557 FDB $3D3E decimal 15678 FDB $3DAE decimal 15790 FDB $3E14 decimal 15892 FDB $3E71 decimal 15985 FDB $3EC5 decimal 16069 FDB $3F0E decimal 16142 FDB $3F4E decimal 16206 FDB $3F84 decimal 16260 FDB $3FB1 decimal 16305 FDB $3FD3 decimal 16339 FDB $3FEC decimal 16364 FDB $3FFB decimal 16379 FDB $4000 decimal 16384 G00152 EQU * asintab: int[] FDB $F000 decimal 61440 FDB $F146 decimal 61766 FDB $F1CE decimal 61902 FDB $F236 decimal 62006 FDB $F28E decimal 62094 FDB $F2DB decimal 62171 FDB $F322 decimal 62242 FDB $F362 decimal 62306 FDB $F39F decimal 62367 FDB $F3D8 decimal 62424 FDB $F40E decimal 62478 FDB $F441 decimal 62529 FDB $F472 decimal 62578 FDB $F4A1 decimal 62625 FDB $F4CF decimal 62671 FDB $F4FB decimal 62715 FDB $F526 decimal 62758 FDB $F54F decimal 62799 FDB $F578 decimal 62840 FDB $F59F decimal 62879 FDB $F5C5 decimal 62917 FDB $F5EB decimal 62955 FDB $F610 decimal 62992 FDB $F634 decimal 63028 FDB $F657 decimal 63063 FDB $F67A decimal 63098 FDB $F69C decimal 63132 FDB $F6BD decimal 63165 FDB $F6DE decimal 63198 FDB $F6FE decimal 63230 FDB $F71E decimal 63262 FDB $F73E decimal 63294 FDB $F75D decimal 63325 FDB $F77B decimal 63355 FDB $F799 decimal 63385 FDB $F7B7 decimal 63415 FDB $F7D5 decimal 63445 FDB $F7F2 decimal 63474 FDB $F80F decimal 63503 FDB $F82B decimal 63531 FDB $F847 decimal 63559 FDB $F863 decimal 63587 FDB $F87F decimal 63615 FDB $F89A decimal 63642 FDB $F8B5 decimal 63669 FDB $F8D0 decimal 63696 FDB $F8EB decimal 63723 FDB $F905 decimal 63749 FDB $F920 decimal 63776 FDB $F93A decimal 63802 FDB $F953 decimal 63827 FDB $F96D decimal 63853 FDB $F986 decimal 63878 FDB $F9A0 decimal 63904 FDB $F9B9 decimal 63929 FDB $F9D1 decimal 63953 FDB $F9EA decimal 63978 FDB $FA03 decimal 64003 FDB $FA1B decimal 64027 FDB $FA33 decimal 64051 FDB $FA4C decimal 64076 FDB $FA64 decimal 64100 FDB $FA7B decimal 64123 FDB $FA93 decimal 64147 FDB $FAAB decimal 64171 FDB $FAC2 decimal 64194 FDB $FAD9 decimal 64217 FDB $FAF1 decimal 64241 FDB $FB08 decimal 64264 FDB $FB1F decimal 64287 FDB $FB36 decimal 64310 FDB $FB4D decimal 64333 FDB $FB63 decimal 64355 FDB $FB7A decimal 64378 FDB $FB90 decimal 64400 FDB $FBA7 decimal 64423 FDB $FBBD decimal 64445 FDB $FBD3 decimal 64467 FDB $FBEA decimal 64490 FDB $FC00 decimal 64512 FDB $FC16 decimal 64534 FDB $FC2C decimal 64556 FDB $FC41 decimal 64577 FDB $FC57 decimal 64599 FDB $FC6D decimal 64621 FDB $FC83 decimal 64643 FDB $FC98 decimal 64664 FDB $FCAE decimal 64686 FDB $FCC3 decimal 64707 FDB $FCD9 decimal 64729 FDB $FCEE decimal 64750 FDB $FD03 decimal 64771 FDB $FD19 decimal 64793 FDB $FD2E decimal 64814 FDB $FD43 decimal 64835 FDB $FD58 decimal 64856 FDB $FD6D decimal 64877 FDB $FD82 decimal 64898 FDB $FD97 decimal 64919 FDB $FDAC decimal 64940 FDB $FDC1 decimal 64961 FDB $FDD6 decimal 64982 FDB $FDEB decimal 65003 FDB $FDFF decimal 65023 FDB $FE14 decimal 65044 FDB $FE29 decimal 65065 FDB $FE3E decimal 65086 FDB $FE52 decimal 65106 FDB $FE67 decimal 65127 FDB $FE7B decimal 65147 FDB $FE90 decimal 65168 FDB $FEA5 decimal 65189 FDB $FEB9 decimal 65209 FDB $FECE decimal 65230 FDB $FEE2 decimal 65250 FDB $FEF7 decimal 65271 FDB $FF0B decimal 65291 FDB $FF20 decimal 65312 FDB $FF34 decimal 65332 FDB $FF49 decimal 65353 FDB $FF5D decimal 65373 FDB $FF71 decimal 65393 FDB $FF86 decimal 65414 FDB $FF9A decimal 65434 FDB $FFAE decimal 65454 FDB $FFC3 decimal 65475 FDB $FFD7 decimal 65495 FDB $FFEC decimal 65516 FDB $00 decimal 0 G00153 EQU * tg_intro_placard: unsigned char[] FCB $A3 decimal 163 FCB $3F decimal 63 FCB $5D decimal 93 FCB $3F decimal 63 FCB $5D decimal 93 FCB $3F decimal 63 FCB $5D decimal 93 FCB $C1 decimal 193 FCB $5D decimal 93 FCB $C1 decimal 193 FCB $A3 decimal 163 FCB $C1 decimal 193 FCB $A3 decimal 163 FCB $C1 decimal 193 FCB $A3 decimal 163 FCB $3F decimal 63 FCB $9B decimal 155 FCB $47 decimal 71 FCB $65 decimal 101 FCB $47 decimal 71 FCB $65 decimal 101 FCB $47 decimal 71 FCB $65 decimal 101 FCB $B9 decimal 185 FCB $65 decimal 101 FCB $B9 decimal 185 FCB $9B decimal 155 FCB $B9 decimal 185 FCB $9B decimal 155 FCB $B9 decimal 185 FCB $9B decimal 155 FCB $47 decimal 71 FCB $95 decimal 149 FCB $6D decimal 109 FCB $95 decimal 149 FCB $5D decimal 93 FCB $83 decimal 131 FCB $65 decimal 101 FCB $95 decimal 149 FCB $65 decimal 101 FCB $95 decimal 149 FCB $77 decimal 119 FCB $83 decimal 131 FCB $71 decimal 113 FCB $83 decimal 131 FCB $7D decimal 125 FCB $95 decimal 149 FCB $77 decimal 119 FCB $8C decimal 140 FCB $7A decimal 122 FCB $8C decimal 140 FCB $74 decimal 116 FCB $95 decimal 149 FCB $89 decimal 137 FCB $83 decimal 131 FCB $89 decimal 137 FCB $83 decimal 131 FCB $95 decimal 149 FCB $95 decimal 149 FCB $95 decimal 149 FCB $83 decimal 131 FCB $A1 decimal 161 FCB $83 decimal 131 FCB $95 decimal 149 FCB $6B decimal 107 FCB $A7 decimal 167 FCB $7D decimal 125 FCB $A7 decimal 167 FCB $7D decimal 125 FCB $B3 decimal 179 FCB $7D decimal 125 FCB $A7 decimal 167 FCB $74 decimal 116 FCB $B3 decimal 179 FCB $7D decimal 125 FCB $B3 decimal 179 FCB $6B decimal 107 FCB $B3 decimal 179 FCB $74 decimal 116 FCB $B0 decimal 176 FCB $74 decimal 116 FCB $A7 decimal 167 FCB $74 decimal 116 FCB $B3 decimal 179 FCB $6B decimal 107 FCB $95 decimal 149 FCB $6B decimal 107 FCB $A1 decimal 161 FCB $7D decimal 125 FCB $95 decimal 149 FCB $6B decimal 107 FCB $95 decimal 149 FCB $7D decimal 125 FCB $A1 decimal 161 FCB $7D decimal 125 FCB $95 decimal 149 FCB $74 decimal 116 FCB $95 decimal 149 FCB $74 decimal 116 FCB $9B decimal 155 FCB $6B decimal 107 FCB $8F decimal 143 FCB $7D decimal 125 FCB $8F decimal 143 FCB $7D decimal 125 FCB $83 decimal 131 FCB $6B decimal 107 FCB $8F decimal 143 FCB $6B decimal 107 FCB $83 decimal 131 FCB $7D decimal 125 FCB $83 decimal 131 FCB $6B decimal 107 FCB $7D decimal 125 FCB $7D decimal 125 FCB $7D decimal 125 FCB $7D decimal 125 FCB $71 decimal 113 FCB $6B decimal 107 FCB $7D decimal 125 FCB $6B decimal 107 FCB $71 decimal 113 FCB $7D decimal 125 FCB $71 decimal 113 FCB $6B decimal 107 FCB $6B decimal 107 FCB $7D decimal 125 FCB $6B decimal 107 FCB $6B decimal 107 FCB $5F decimal 95 FCB $6B decimal 107 FCB $6B decimal 107 FCB $7D decimal 125 FCB $5F decimal 95 FCB $6B decimal 107 FCB $5F decimal 95 FCB $72 decimal 114 FCB $56 decimal 86 FCB $72 decimal 114 FCB $5C decimal 92 FCB $6B decimal 107 FCB $59 decimal 89 FCB $72 decimal 114 FCB $59 decimal 89 FCB $6B decimal 107 FCB $4D decimal 77 FCB $6B decimal 107 FCB $59 decimal 89 FCB $7D decimal 125 FCB $4D decimal 77 FCB $6B decimal 107 FCB $4D decimal 77 FCB $7D decimal 125 FCB $59 decimal 89 FCB $7D decimal 125 FCB $4D decimal 77 G00154 EQU * font_points: unsigned char[] FCB $AE decimal 174 FCB $E4 decimal 228 FCB $40 decimal 64 FCB $0A decimal 10 FCB $2C decimal 44 FCB $AE decimal 174 FCB $E9 decimal 233 FCB $95 decimal 149 FCB $50 decimal 80 FCB $04 decimal 4 FCB $04 decimal 4 FCB $79 decimal 121 FCB $4E decimal 78 FCB $EA decimal 234 FCB $A5 decimal 165 FCB $59 decimal 89 FCB $72 decimal 114 FCB $04 decimal 4 FCB $49 decimal 73 FCB $95 decimal 149 FCB $5A decimal 90 FCB $AE decimal 174 FCB $59 decimal 89 FCB $94 decimal 148 FCB $40 decimal 64 FCB $0A decimal 10 FCB $2E decimal 46 FCB $EA decimal 234 FCB $04 decimal 4 FCB $AE decimal 174 FCB $59 decimal 89 FCB $E4 decimal 228 FCB $A0 decimal 160 FCB $EA decimal 234 FCB $A5 decimal 165 FCB $59 decimal 89 FCB $E4 decimal 228 FCB $4E decimal 78 FCB $AE decimal 174 FCB $59 decimal 89 FCB $A0 decimal 160 FCB $69 decimal 105 FCB $04 decimal 4 FCB $4E decimal 78 FCB $EA decimal 234 FCB $B1 decimal 177 FCB $AE decimal 174 FCB $40 decimal 64 FCB $0A decimal 10 FCB $AD decimal 173 FCB $D9 decimal 217 FCB $93 decimal 147 FCB $30 decimal 48 FCB $0A decimal 10 FCB $40 decimal 64 FCB $0A decimal 10 FCB $57 decimal 87 FCB $AE decimal 174 FCB $0A decimal 10 FCB $57 decimal 87 FCB $AE decimal 174 FCB $79 decimal 121 FCB $94 decimal 148 FCB $40 decimal 64 FCB $0A decimal 10 FCB $AE decimal 174 FCB $0A decimal 10 FCB $59 decimal 89 FCB $4E decimal 78 FCB $2C decimal 44 FCB $50 decimal 80 FCB $03 decimal 3 FCB $3D decimal 61 FCB $BE decimal 190 FCB $0A decimal 10 FCB $E5 decimal 229 FCB $54 decimal 84 FCB $0A decimal 10 FCB $04 decimal 4 FCB $0A decimal 10 FCB $A7 decimal 167 FCB $7E decimal 126 FCB $E4 decimal 228 FCB $0A decimal 10 FCB $A4 decimal 164 FCB $4E decimal 78 FCB $AE decimal 174 FCB $E4 decimal 228 FCB $40 decimal 64 FCB $0A decimal 10 FCB $0A decimal 10 FCB $AE decimal 174 FCB $E9 decimal 233 FCB $95 decimal 149 FCB $0A decimal 10 FCB $AE decimal 174 FCB $E4 decimal 228 FCB $40 decimal 64 FCB $48 decimal 72 FCB $48 decimal 72 FCB $59 decimal 89 FCB $9E decimal 158 FCB $EA decimal 234 FCB $A0 decimal 160 FCB $04 decimal 4 FCB $49 decimal 73 FCB $95 decimal 149 FCB $5A decimal 90 FCB $AE decimal 174 FCB $AE decimal 174 FCB $C2 decimal 194 FCB $0A decimal 10 FCB $04 decimal 4 FCB $4E decimal 78 FCB $A2 decimal 162 FCB $2E decimal 46 FCB $A1 decimal 161 FCB $17 decimal 23 FCB $73 decimal 115 FCB $3E decimal 62 FCB $0E decimal 14 FCB $A4 decimal 164 FCB $27 decimal 39 FCB $7A decimal 122 FCB $7E decimal 126 FCB $AE decimal 174 FCB $E0 decimal 224 FCB $04 decimal 4 G00155 EQU * font_length: unsigned char[] FCB $04 decimal 4 FCB $01 decimal 1 FCB $05 decimal 5 FCB $04 decimal 4 FCB $03 decimal 3 FCB $05 decimal 5 FCB $04 decimal 4 FCB $02 decimal 2 FCB $05 decimal 5 FCB $04 decimal 4 FCB $04 decimal 4 FCB $05 decimal 5 FCB $03 decimal 3 FCB $05 decimal 5 FCB $04 decimal 4 FCB $03 decimal 3 FCB $05 decimal 5 FCB $03 decimal 3 FCB $01 decimal 1 FCB $04 decimal 4 FCB $03 decimal 3 FCB $02 decimal 2 FCB $04 decimal 4 FCB $03 decimal 3 FCB $04 decimal 4 FCB $04 decimal 4 FCB $05 decimal 5 FCB $05 decimal 5 FCB $05 decimal 5 FCB $02 decimal 2 FCB $03 decimal 3 FCB $02 decimal 2 FCB $04 decimal 4 FCB $02 decimal 2 FCB $03 decimal 3 FCB $03 decimal 3 G00156 EQU * font_index: unsigned char[] FCB $00 decimal 0 FCB $04 decimal 4 FCB $05 decimal 5 FCB $0A decimal 10 FCB $0E decimal 14 FCB $11 decimal 17 FCB $16 decimal 22 FCB $1A decimal 26 FCB $1C decimal 28 FCB $21 decimal 33 FCB $25 decimal 37 FCB $29 decimal 41 FCB $2E decimal 46 FCB $31 decimal 49 FCB $36 decimal 54 FCB $3A decimal 58 FCB $3D decimal 61 FCB $42 decimal 66 FCB $45 decimal 69 FCB $46 decimal 70 FCB $4A decimal 74 FCB $4D decimal 77 FCB $4F decimal 79 FCB $53 decimal 83 FCB $56 decimal 86 FCB $5A decimal 90 FCB $5E decimal 94 FCB $63 decimal 99 FCB $68 decimal 104 FCB $6D decimal 109 FCB $6F decimal 111 FCB $72 decimal 114 FCB $74 decimal 116 FCB $78 decimal 120 FCB $7A decimal 122 FCB $7D decimal 125 G00157 EQU * crosshair: unsigned char[] FCB $63 decimal 99 FCB $80 decimal 128 FCB $9E decimal 158 FCB $80 decimal 128 FCB $94 decimal 148 FCB $76 decimal 118 FCB $94 decimal 148 FCB $8A decimal 138 FCB $8A decimal 138 FCB $94 decimal 148 FCB $76 decimal 118 FCB $94 decimal 148 FCB $80 decimal 128 FCB $9E decimal 158 FCB $80 decimal 128 FCB $62 decimal 98 FCB $8A decimal 138 FCB $6C decimal 108 FCB $76 decimal 118 FCB $6C decimal 108 FCB $6C decimal 108 FCB $76 decimal 118 FCB $6C decimal 108 FCB $8A decimal 138 FCB $7B decimal 123 FCB $8A decimal 138 FCB $85 decimal 133 FCB $8A decimal 138 FCB $8A decimal 138 FCB $85 decimal 133 FCB $8A decimal 138 FCB $7B decimal 123 FCB $85 decimal 133 FCB $76 decimal 118 FCB $7B decimal 123 FCB $76 decimal 118 FCB $76 decimal 118 FCB $7B decimal 123 FCB $76 decimal 118 FCB $85 decimal 133 G00158 EQU * shieldvec: unsigned char[] FCB $06 decimal 6 FCB $05 decimal 5 FCB $07 decimal 7 FCB $04 decimal 4 FCB $04 decimal 4 FCB $01 decimal 1 FCB $01 decimal 1 FCB $04 decimal 4 FCB $02 decimal 2 FCB $05 decimal 5 FCB $04 decimal 4 FCB $03 decimal 3 FCB $06 decimal 6 FCB $01 decimal 1 FCB $07 decimal 7 FCB $02 decimal 2 FCB $04 decimal 4 FCB $05 decimal 5 FCB $01 decimal 1 FCB $02 decimal 2 FCB $02 decimal 2 FCB $01 decimal 1 FCB $04 decimal 4 FCB $03 decimal 3 FCB $06 decimal 6 FCB $05 decimal 5 G00159 EQU * ShipMeshPointers: unsigned char[] FCB $00 decimal 0 FCB $14 decimal 20 FCB $29 decimal 41 FCB $3A decimal 58 FCB $51 decimal 81 G00160 EQU * ShipMesh: char[] FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $28 decimal 40 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $28 decimal 40 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $1E decimal 30 FCB $00 decimal 0 FCB $78 decimal 120 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $14 decimal 20 FCB $14 decimal 20 FCB $78 decimal 120 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $FFEC decimal 65516 FCB $14 decimal 20 FCB $78 decimal 120 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $FFE2 decimal 65506 FCB $00 decimal 0 FCB $78 decimal 120 FCB $1E decimal 30 FCB $00 decimal 0 FCB $78 decimal 120 FCB $14 decimal 20 FCB $14 decimal 20 FCB $78 decimal 120 FCB $14 decimal 20 FCB $14 decimal 20 FCB $78 decimal 120 FCB $FFEC decimal 65516 FCB $14 decimal 20 FCB $78 decimal 120 FCB $FFEC decimal 65516 FCB $14 decimal 20 FCB $78 decimal 120 FCB $FFE2 decimal 65506 FCB $00 decimal 0 FCB $78 decimal 120 FCB $FFE2 decimal 65506 FCB $00 decimal 0 FCB $78 decimal 120 FCB $1E decimal 30 FCB $00 decimal 0 FCB $78 decimal 120 FCB $1E decimal 30 FCB $00 decimal 0 FCB $78 decimal 120 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $50 decimal 80 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $50 decimal 80 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $FFE2 decimal 65506 FCB $00 decimal 0 FCB $78 decimal 120 FCB $FF9C decimal 65436 FCB $FFD8 decimal 65496 FCB $50 decimal 80 FCB $FF9C decimal 65436 FCB $FFD8 decimal 65496 FCB $50 decimal 80 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFEC decimal 65516 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFA6 decimal 65446 FCB $2D decimal 45 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $2D decimal 45 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $2D decimal 45 FCB $00 decimal 0 FCB $3C decimal 60 FCB $2D decimal 45 FCB $00 decimal 0 FCB $3C decimal 60 FCB $00 decimal 0 FCB $00 decimal 0 FCB $5A decimal 90 FCB $00 decimal 0 FCB $00 decimal 0 FCB $5A decimal 90 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFA6 decimal 65446 FCB $2D decimal 45 FCB $00 decimal 0 FCB $3C decimal 60 FCB $3C decimal 60 FCB $18 decimal 24 FCB $3C decimal 60 FCB $3C decimal 60 FCB $18 decimal 24 FCB $3C decimal 60 FCB $3C decimal 60 FCB $18 decimal 24 FCB $7F decimal 127 FCB $3C decimal 60 FCB $18 decimal 24 FCB $7F decimal 127 FCB $2D decimal 45 FCB $00 decimal 0 FCB $7F decimal 127 FCB $2D decimal 45 FCB $00 decimal 0 FCB $7F decimal 127 FCB $2D decimal 45 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFC4 decimal 65476 FCB $18 decimal 24 FCB $3C decimal 60 FCB $FFC4 decimal 65476 FCB $18 decimal 24 FCB $3C decimal 60 FCB $FFC4 decimal 65476 FCB $18 decimal 24 FCB $7F decimal 127 FCB $FFC4 decimal 65476 FCB $18 decimal 24 FCB $7F decimal 127 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $7F decimal 127 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $7F decimal 127 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $3C decimal 60 FCB $FFC4 decimal 65476 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $FFC4 decimal 65476 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $00 decimal 0 FCB $FFDE decimal 65502 FCB $FF80 decimal 65408 FCB $00 decimal 0 FCB $FFDE decimal 65502 FCB $FF80 decimal 65408 FCB $3C decimal 60 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $3C decimal 60 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $2D decimal 45 FCB $00 decimal 0 FCB $3C decimal 60 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FFA6 decimal 65446 FCB $00 decimal 0 FCB $FFDE decimal 65502 FCB $FF80 decimal 65408 FCB $2D decimal 45 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $3C decimal 60 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $FFC4 decimal 65476 FCB $FFC4 decimal 65476 FCB $FFE5 decimal 65509 FCB $FFA6 decimal 65446 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $3C decimal 60 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $3C decimal 60 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $00 decimal 0 FCB $00 decimal 0 FCB $FF9C decimal 65436 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $3C decimal 60 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $28 decimal 40 FCB $FFD8 decimal 65496 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $FFD8 decimal 65496 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $00 decimal 0 FCB $50 decimal 80 FCB $64 decimal 100 FCB $00 decimal 0 FCB $50 decimal 80 FCB $64 decimal 100 FCB $00 decimal 0 FCB $28 decimal 40 FCB $64 decimal 100 FCB $00 decimal 0 FCB $28 decimal 40 FCB $64 decimal 100 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $64 decimal 100 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $64 decimal 100 FCB $28 decimal 40 FCB $FFEC decimal 65516 FCB $64 decimal 100 FCB $28 decimal 40 FCB $FFEC decimal 65516 FCB $64 decimal 100 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $FF9C decimal 65436 FCB $FFD8 decimal 65496 FCB $64 decimal 100 FCB $FF9C decimal 65436 FCB $FFD8 decimal 65496 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $FFEC decimal 65516 FCB $64 decimal 100 FCB $FFD8 decimal 65496 FCB $FFEC decimal 65516 FCB $64 decimal 100 FCB $00 decimal 0 FCB $00 decimal 0 FCB $14 decimal 20 FCB $00 decimal 0 FCB $02 decimal 2 FCB $FFA4 decimal 65444 FCB $1E decimal 30 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $1E decimal 30 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $FFE2 decimal 65506 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $FFE2 decimal 65506 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $00 decimal 0 FCB $02 decimal 2 FCB $FFA4 decimal 65444 FCB $00 decimal 0 FCB $02 decimal 2 FCB $FFA4 decimal 65444 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $1E decimal 30 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $16 decimal 22 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $FFE2 decimal 65506 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $FFEA decimal 65514 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $1E decimal 30 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $FFE2 decimal 65506 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $16 decimal 22 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $FFEA decimal 65514 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $16 decimal 22 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $FFEA decimal 65514 FCB $0F decimal 15 FCB $FFC4 decimal 65476 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $1E decimal 30 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $FFE2 decimal 65506 FCB $02 decimal 2 FCB $FFBA decimal 65466 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $FFEC decimal 65516 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $14 decimal 20 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $FFEC decimal 65516 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $14 decimal 20 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $FFEC decimal 65516 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $00 decimal 0 FCB $FFE7 decimal 65511 FCB $FFD3 decimal 65491 FCB $14 decimal 20 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $FFA6 decimal 65446 FCB $14 decimal 20 FCB $5A decimal 90 FCB $FFA6 decimal 65446 FCB $14 decimal 20 FCB $5A decimal 90 FCB $FFEC decimal 65516 FCB $FFF6 decimal 65526 FCB $6E decimal 110 FCB $00 decimal 0 FCB $0A decimal 10 FCB $FFEC decimal 65516 FCB $5A decimal 90 FCB $14 decimal 20 FCB $5A decimal 90 FCB $5A decimal 90 FCB $14 decimal 20 FCB $5A decimal 90 FCB $14 decimal 20 FCB $FFF6 decimal 65526 FCB $6E decimal 110 ******************************************************************************* * stdlib.inc - Standard CMOC library. * * By Pierre Sarrazin . * This file is in the public domain. stdlib_start: * * INILIB LEAX 2,S X = initial stack pointer STX INISTK,PCR save this for exit() LEAX -256,X point to top of stack space STX end_of_sbrk_mem,PCR sbrk() will not allocate past this LEAX program_end,PCR end of generated code STX program_break,PCR initial Unix-like "program break" (cf sbrk) LBRA INITGL initialize global variables * void exit(int exitStatus); * * Clean up before returning control to CoCo DECB. * * MUST be called by BSR, LBSR or JSR, not jumped to with BRA, LBRA or JMP, * so that 2,S can be used to get 'exitStatus'. * _exit BRA _exit The eternal Vectrex loop on exit... * 1 BIOS Vec_Snd_Shadow EQU $C800 ;Shadow of sound chip registers (15 bytes) Vec_Btn_State EQU $C80F ;Current state of all joystick buttons Vec_Prev_Btns EQU $C810 ;Previous state of all joystick buttons Vec_Buttons EQU $C811 ;Current toggle state of all buttons Vec_Button_1_1 EQU $C812 ;Current toggle state of stick 1 button 1 Vec_Button_1_2 EQU $C813 ;Current toggle state of stick 1 button 2 Vec_Button_1_3 EQU $C814 ;Current toggle state of stick 1 button 3 Vec_Button_1_4 EQU $C815 ;Current toggle state of stick 1 button 4 Vec_Button_2_1 EQU $C816 ;Current toggle state of stick 2 button 1 Vec_Button_2_2 EQU $C817 ;Current toggle state of stick 2 button 2 Vec_Button_2_3 EQU $C818 ;Current toggle state of stick 2 button 3 Vec_Button_2_4 EQU $C819 ;Current toggle state of stick 2 button 4 Vec_Joy_Resltn EQU $C81A ;Joystick A/D resolution (0x80=min 0x00=max) Vec_Joy_1_X EQU $C81B ;Joystick 1 left/right Vec_Joy_1_Y EQU $C81C ;Joystick 1 up/down Vec_Joy_2_X EQU $C81D ;Joystick 2 left/right Vec_Joy_2_Y EQU $C81E ;Joystick 2 up/down Vec_Joy_Mux EQU $C81F ;Joystick enable/mux flags (4 bytes) Vec_Joy_Mux_1_X EQU $C81F ;Joystick 1 X enable/mux flag (=1) Vec_Joy_Mux_1_Y EQU $C820 ;Joystick 1 Y enable/mux flag (=3) Vec_Joy_Mux_2_X EQU $C821 ;Joystick 2 X enable/mux flag (=5) Vec_Joy_Mux_2_Y EQU $C822 ;Joystick 2 Y enable/mux flag (=7) Vec_Misc_Count EQU $C823 ;Misc counter/flag byte, zero when not in use Vec_0Ref_Enable EQU $C824 ;Check0Ref enable flag Vec_Loop_Count EQU $C825 ;Loop counter word (incremented in Wait_Recal) Vec_Brightness EQU $C827 ;Default brightness Vec_Dot_Dwell EQU $C828 ;Dot dwell time? Vec_Pattern EQU $C829 ;Dot pattern (bits) Vec_Text_HW EQU $C82A ;Default text height and width Vec_Text_Height EQU $C82A ;Default text height Vec_Text_Width EQU $C82B ;Default text width Vec_Str_Ptr EQU $C82C ;Temporary string pointer for Print_Str Vec_Counters EQU $C82E ;Six bytes of counters Vec_Counter_1 EQU $C82E ;First counter byte Vec_Counter_2 EQU $C82F ;Second counter byte Vec_Counter_3 EQU $C830 ;Third counter byte Vec_Counter_4 EQU $C831 ;Fourth counter byte Vec_Counter_5 EQU $C832 ;Fifth counter byte Vec_Counter_6 EQU $C833 ;Sixth counter byte Vec_RiseRun_Tmp EQU $C834 ;Temp storage word for rise/run Vec_Angle EQU $C836 ;Angle for rise/run and rotation calculations Vec_Run_Index EQU $C837 ;Index pair for run ;* $C839 ;Pointer to copyright string during startup Vec_Rise_Index EQU $C839 ;Index pair for rise ;* $C83B ;High score cold-start flag (=0 if valid) Vec_RiseRun_Len EQU $C83B ;length for rise/run ;* $C83C ;temp byte Vec_Rfrsh EQU $C83D ;Refresh time (divided by 1.5MHz) Vec_Rfrsh_lo EQU $C83D ;Refresh time low byte Vec_Rfrsh_hi EQU $C83E ;Refresh time high byte Vec_Music_Work EQU $C83F ;Music work buffer (14 bytes, backwards?) Vec_Music_Wk_A EQU $C842 ; register 10 ;* $C843 ; register 9 ;* $C844 ; register 8 Vec_Music_Wk_7 EQU $C845 ; register 7 Vec_Music_Wk_6 EQU $C846 ; register 6 Vec_Music_Wk_5 EQU $C847 ; register 5 ;* $C848 ; register 4 ;* $C849 ; register 3 ;* $C84A ; register 2 Vec_Music_Wk_1 EQU $C84B ; register 1 ;* $C84C ; register 0 Vec_Freq_Table EQU $C84D ;Pointer to note-to-fr.EQUency table (normally 0xFC8D) Vec_Max_Players EQU $C84F ;Maximum number of players for Select_Game Vec_Max_Games EQU $C850 ;Maximum number of games for Select_Game Vec_ADSR_Table EQU $C84F ;Storage for first music header word (ADSR table) Vec_Twang_Table EQU $C851 ;Storage for second music header word ('twang' table) Vec_Music_Ptr EQU $C853 ;Music data pointer Vec_Expl_ChanA EQU $C853 ;Used by Explosion_Snd - bit for first channel used? Vec_Expl_Chans EQU $C854 ;Used by Explosion_Snd - bits for all channels used? Vec_Music_Chan EQU $C855 ;Current sound channel number for Init_Music Vec_Music_Flag EQU $C856 ;Music active flag (0x00=off 0x01=start 0x80=on) Vec_Duration EQU $C857 ;Duration counter for Init_Music Vec_Music_Twang EQU $C858 ;3 word 'twang' table used by Init_Music Vec_Expl_1 EQU $C858 ;Four bytes copied from Explosion_Snds U-reg parameters Vec_Expl_2 EQU $C859 ; Vec_Expl_3 EQU $C85A ; Vec_Expl_4 EQU $C85B ; Vec_Expl_Chan EQU $C85C ;Used by Explosion_Snd - channel number in use? Vec_Expl_ChanB EQU $C85D ;Used by Explosion_Snd - bit for second channel used? Vec_ADSR_Timers EQU $C85E ;ADSR timers for each sound channel (3 bytes) Vec_Music_Freq EQU $C861 ;Storage for base fr.EQUency of each channel (3 words) ;* $C85E ;Scratch 'score' storage for Display_Option (7 bytes) Vec_Expl_Flag EQU $C867 ;Explosion_Snd initialization flag? ;* $C868...0xC876 ;Unused? Vec_Expl_Timer EQU $C877 ;Used by Explosion_Snd ;* $C878 ;Unused? Vec_Num_Players EQU $C879 ;Number of players selected in Select_Game Vec_Num_Game EQU $C87A ;Game number selected in Select_Game Vec_Seed_Ptr EQU $C87B ;Pointer to 3-byte random number seed (=0xC87D) Vec_Random_Seed EQU $C87D ;Default 3-byte random number seed ; ;* $C880 - 0xCBEA is user RAM ; ; Vec_Default_Stk EQU $CBEA ;Default top-of-stack Vec_High_Score EQU $CBEB ;High score storage (7 bytes) Vec_SWI3_Vector EQU $CBF2 ;SWI2/SWI3 interrupt vector (3 bytes) Vec_SWI2_Vector EQU $CBF2 ;SWI2/SWI3 interrupt vector (3 bytes) Vec_FIRQ_Vector EQU $CBF5 ;FIRQ interrupt vector (3 bytes) Vec_IRQ_Vector EQU $CBF8 ;IRQ interrupt vector (3 bytes) Vec_SWI_Vector EQU $CBFB ;SWI/NMI interrupt vector (3 bytes) Vec_NMI_Vector EQU $CBFB ;SWI/NMI interrupt vector (3 bytes) Vec_Cold_Flag EQU $CBFE ;Cold start flag (warm start if = 0x7321) ; VIA_port_b EQU $D000 ;VIA port B data I/O register ;* 0 sample/hold (0=enable mux 1=disable mux) ;* 1 mux sel 0 ;* 2 mux sel 1 ;* 3 sound BC1 ;* 4 sound BDIR ;* 5 comparator input ;* 6 external device (slot pin 35) initialized to input ;* 7 /RAMP VIA_port_a EQU $D001 ;VIA port A data I/O register (handshaking) VIA_DDR_b EQU $D002 ;VIA port B data direction register (0=input 1=output) VIA_DDR_a EQU $D003 ;VIA port A data direction register (0=input 1=output) VIA_t1_cnt_lo EQU $D004 ;VIA timer 1 count register lo (scale factor) VIA_t1_cnt_hi EQU $D005 ;VIA timer 1 count register hi VIA_t1_lch_lo EQU $D006 ;VIA timer 1 latch register lo VIA_t1_lch_hi EQU $D007 ;VIA timer 1 latch register hi VIA_t2_lo EQU $D008 ;VIA timer 2 count/latch register lo (refresh) VIA_t2_hi EQU $D009 ;VIA timer 2 count/latch register hi VIA_shift_reg EQU $D00A ;VIA shift register VIA_aux_cntl EQU $D00B ;VIA auxiliary control register ;* 0 PA latch enable ;* 1 PB latch enable ;* 2 \ 110=output to CB2 under control of phase 2 clock ;* 3 > shift register control (110 is the only mode used by the Vectrex ROM) ;* 4 / ;* 5 0=t2 one shot 1=t2 free running ;* 6 0=t1 one shot 1=t1 free running ;* 7 0=t1 disable PB7 output 1=t1 enable PB7 output VIA_cntl EQU $D00C ;VIA control register ;* 0 CA1 control CA1 -> SW7 0=IRQ on low 1=IRQ on high ;* 1 ;* 2 > CA2 control CA2 -> /ZERO 110=low 111=high ;* 3 / ;* 4 CB1 control CB1 -> NC 0=IRQ on low 1=IRQ on high ;* 5 ;* 6 > CB2 control CB2 -> /BLANK 110=low 111=high ;* 7 / VIA_int_flags EQU $D00D ;VIA interrupt flags register ;* bit cleared by ;* 0 CA2 interrupt flag reading or writing port A I/O ;* 1 CA1 interrupt flag reading or writing port A I/O ;* 2 shift register interrupt flag reading or writing shift register ;* 3 CB2 interrupt flag reading or writing port B I/O ;* 4 CB1 interrupt flag reading or writing port A I/O ;* 5 timer 2 interrupt flag read t2 low or write t2 high ;* 6 timer 1 interrupt flag read t1 count low or write t1 high ;* 7 IRQ status flag write logic 0 to IER or IFR bit VIA_int_enable EQU $D00E ;VIA interrupt enable register ;* 0 CA2 interrupt enable ;* 1 CA1 interrupt enable ;* 2 shift register interrupt enable ;* 3 CB2 interrupt enable ;* 4 CB1 interrupt enable ;* 5 timer 2 interrupt enable ;* 6 timer 1 interrupt enable ;* 7 IER set/clear control VIA_port_a_nohs EQU $D00F ;VIA port A data I/O register (no handshaking) Cold_Start EQU $F000 ; Warm_Start EQU $F06C ; Init_VIA EQU $F14C ; Init_OS_RAM EQU $F164 ; Init_OS EQU $F18B ; Wait_Recal EQU $F192 ; Set_Refresh EQU $F1A2 ; DP_to_D0 EQU $F1AA ; DP_to_C8 EQU $F1AF ; Read_Btns_Mask EQU $F1B4 ; Read_Btns EQU $F1BA ; Joy_Analog EQU $F1F5 ; Joy_Digital EQU $F1F8 ; Sound_Byte EQU $F256 ; Sound_Byte_x EQU $F259 ; Sound_Byte_raw EQU $F25B ; Clear_Sound EQU $F272 ; Sound_Bytes EQU $F27D ; Sound_Bytes_x EQU $F284 ; Do_Sound EQU $F289 ; Do_Sound_x EQU $F28C ; Intensity_1F EQU $F29D ; Intensity_3F EQU $F2A1 ; Intensity_5F EQU $F2A5 ; Intensity_7F EQU $F2A9 ; Intensity_a EQU $F2AB ; Dot_ix_b EQU $F2BE ; Dot_ix EQU $F2C1 ; Dot_d EQU $F2C3 ; Dot_here EQU $F2C5 ; Dot_List EQU $F2D5 ; Dot_List_Reset EQU $F2DE ; Recalibrate EQU $F2E6 ; Moveto_x_7F EQU $F2F2 ; Moveto_d_7F EQU $F2FC ; Moveto_ix_FF EQU $F308 ; Moveto_ix_7F EQU $F30C ; Moveto_ix_b EQU $F30E ; Used to be named Moveto_ix_a but this is wrong. Moveto_ix EQU $F310 ; Moveto_d EQU $F312 ; Reset0Ref_D0 EQU $F34A ; Check0Ref EQU $F34F ; Reset0Ref EQU $F354 ; Reset_Pen EQU $F35B ; Reset0Int EQU $F36B ; Print_Str_hwyx EQU $F373 ; Print_Str_yx EQU $F378 ; Print_Str_d EQU $F37A ; Print_List_hw EQU $F385 ; Print_List EQU $F38A ; Print_List_chk EQU $F38C ; Print_Ships_x EQU $F391 ; Print_Ships EQU $F393 ; Mov_Draw_VLc_a EQU $F3AD ;count y x y x ... Mov_Draw_VL_b EQU $F3B1 ;y x y x ... Mov_Draw_VLcs EQU $F3B5 ;count scale y x y x ... Mov_Draw_VL_ab EQU $F3B7 ;y x y x ... Mov_Draw_VL_a EQU $F3B9 ;y x y x ... Mov_Draw_VL EQU $F3BC ;y x y x ... Mov_Draw_VL_d EQU $F3BE ;y x y x ... Draw_VLc EQU $F3CE ;count y x y x ... Draw_VL_b EQU $F3D2 ;y x y x ... Draw_VLcs EQU $F3D6 ;count scale y x y x ... Draw_VL_ab EQU $F3D8 ;y x y x ... Draw_VL_a EQU $F3DA ;y x y x ... Draw_VL EQU $F3DD ;y x y x ... Draw_Line_d EQU $F3DF ;y x y x ... Draw_VLp_FF EQU $F404 ;pattern y x pattern y x ... 0x01 Draw_VLp_7F EQU $F408 ;pattern y x pattern y x ... 0x01 Draw_VLp_scale EQU $F40C ;scale pattern y x pattern y x ... 0x01 Draw_VLp_b EQU $F40E ;pattern y x pattern y x ... 0x01 Draw_VLp EQU $F410 ;pattern y x pattern y x ... 0x01 Draw_Pat_VL_a EQU $F434 ;y x y x ... Draw_Pat_VL EQU $F437 ;y x y x ... Draw_Pat_VL_d EQU $F439 ;y x y x ... Draw_VL_mode EQU $F46E ;mode y x mode y x ... 0x01 Print_Str EQU $F495 ; Random_3 EQU $F511 ; Random EQU $F517 ; Init_Music_Buf EQU $F533 ; Clear_x_b EQU $F53F ; Clear_C8_RAM EQU $F542 ;never used by GCE carts? Clear_x_256 EQU $F545 ; Clear_x_d EQU $F548 ; Clear_x_b_80 EQU $F550 ; Clear_x_b_a EQU $F552 ; Dec_3_Counters EQU $F55A ; Dec_6_Counters EQU $F55E ; Dec_Counters EQU $F563 ; Delay_3 EQU $F56D ;30 cycles Delay_2 EQU $F571 ;25 cycles Delay_1 EQU $F575 ;20 cycles Delay_0 EQU $F579 ;12 cycles Delay_b EQU $F57A ;5*B + 10 cycles Delay_RTS EQU $F57D ;5 cycles Bitmask_a EQU $F57E ; Abs_a_b EQU $F584 ; Abs_b EQU $F58B ; Rise_Run_Angle EQU $F593 ; Get_Rise_Idx EQU $F5D9 ; Get_Run_Idx EQU $F5DB ; Get_Rise_Run EQU $F5EF ; Rise_Run_X EQU $F5FF ; Rise_Run_Y EQU $F601 ; Rise_Run_Len EQU $F603 ; Rot_VL_ab EQU $F610 ; Rot_VL EQU $F616 ; Rot_VL_Mode_a EQU $F61F ; Rot_VL_Mode EQU $F62B ; Rot_VL_dft EQU $F637 ; Xform_Run_a EQU $F65B ; Xform_Run EQU $F65D ; Xform_Rise_a EQU $F661 ; Xform_Rise EQU $F663 ; Move_Mem_a_1 EQU $F67F ; Move_Mem_a EQU $F683 ; Init_Music_chk EQU $F687 ; Init_Music EQU $F68D ; Init_Music_x EQU $F692 ; Select_Game EQU $F7A9 ; Clear_Score EQU $F84F ; Add_Score_a EQU $F85E ; Add_Score_d EQU $F87C ; Strip_Zeros EQU $F8B7 ; Compare_Score EQU $F8C7 ; New_High_Score EQU $F8D8 ; Obj_Will_Hit_u EQU $F8E5 ; Obj_Will_Hit EQU $F8F3 ; Obj_Hit EQU $F8FF ; Explosion_Snd EQU $F92E ; Draw_Grid_VL EQU $FF9F ; Char_Table EQU $F9F4 ; Char_Table Char_Table_End EQU $FBD4 ; Char_Table_End vx_music_1 EQU $FD0D ; Poweron music, crazy coaster and narrow escape vx_music_2 EQU $FD1D ; Music for Berzerk vx_music_3 EQU $FD81 vx_music_4 EQU $FDD3 ; Music for Scramble vx_music_5 EQU $FE38 ; Music for Solar Quest vx_music_6 EQU $FE76 vx_music_7 EQU $FEC6 vx_music_8 EQU $FEF8 ; Music for Melody Master vx_music_9 EQU $FF26 vx_music_10 EQU $FF44 vx_music_11 EQU $FF62 vx_music_12 EQU $FF7A vx_music_13 EQU $FF8F nop_handler: RTS * NOTE on _CMOC_NEED_*_ identifiers. * Each C function declared in should be mentioned in the * stdLibTable[] array of FunctionCallExpr::emitCode(). Then, its body * in this file should be delimited by #ifdef _CMOC_NEED__. * * MUL16 however is not a C function. It is a utility function. Whenever * a call to such a function is emitted, it should be emitted using * callUtility(), and its body in this file should be delimited by * #ifdef _CMOC_NEED__. Utility function names * must NOT be mentioned in stdLibTable[]. * * Note the leading and trailing underscore character. * * Multiply D by X, unsigned; return result in D; preserve X. MUL16 PSHS U,X,B,A U pushed to create 2 temp bytes at 4,S LDB 3,S low byte of original X MUL STD 4,S keep for later LDD 1,S low byte of orig D, high byte of orig X MUL ADDB 5,S only low byte is needed STB 5,S LDA 1,S low byte of orig D LDB 3,S low byte of orig X MUL ADDA 5,S LEAS 6,S RTS * Divide X by D, signed; return quotient in X, remainder in D. * Non-zero remainder is negative iff dividend is negative. SDIV16 PSHS X,B,A CLR ,-S counter: number of negative arguments (0..2) CLR ,-S boolean: was dividend negative? TSTA is divisor negative? BGE SDIV16_10 if not INC 1,S COMA negate divisor COMB ADDD #1 STD 2,S SDIV16_10 LDD 4,S is dividend negative? BGE SDIV16_20 if not INC ,S INC 1,S COMA negate dividend COMB ADDD #1 STD 4,S SDIV16_20 LDD 2,S reload divisor LDX 4,S reload dividend BSR DIV16 * Counter is 0, 1 or 2. Quotient negative if counter is 1. LSR 1,S check bit 0 of counter (1 -> negative quotient) BCC SDIV16_30 quotient not negative EXG X,D put quotient in D and remainder in X COMA negate quotient COMB ADDD #1 EXG X,D return quotient and remainder in X and D SDIV16_30 * Negate the remainder if the dividend was negative. TST ,S was dividend negative? BEQ SDIV16_40 if not COMA negate remainder COMB ADDD #1 SDIV16_40 LEAS 6,S RTS * Divide X by D, unsigned; return quotient in X, remainder in D. DIV16 PSHS X,B,A LDB #16 PSHS B CLRA CLRB PSHS B,A * 0,S=16-bit quotient; 2,S=loop counter; * 3,S=16-bit divisor; 5,S=16-bit dividend D16010 LSL 6,S shift MSB of dividend into carry ROL 5,S shift carry and MSB of dividend, into carry ROLB new bit of dividend now in bit 0 of B ROLA CMPD 3,S does the divisor "fit" into D? BLO D16020 if not SUBD 3,S ORCC #1 set carry BRA D16030 D16020 ANDCC #$FE reset carry D16030 ROL 1,S shift carry into quotient ROL ,S DEC 2,S another bit of the dividend to process? BNE D16010 if yes PULS X quotient to return LEAS 5,S RTS _ LBUFMX EQU 250 number of available bytes in LINBUF buffer PUTCHR RTS ; Floating-point is only supported in the Extended Color Basic environment. ; stdlib_end: ******************************************************************************* * Initialize global variables. INITGL EQU * RTS end of global variable initialization ******************************************************************************* program_end EQU * ******************************************************************************* * WRITABLE DATA SECTION ORG $C880 writable_globals_start EQU * ******************************************************************************* * WRITABLE GLOBAL VARIABLES * Globals with static initializers * Uninitialized globals G00132 EQU * RMB 2 TargetFPS G00133 EQU * RMB 2 ObservedFPS G00134 EQU * RMB 2 millis_time G00135 EQU * RMB 1 vectrex_beam_intensity G00136 EQU * RMB 1 Pressed_Key G00137 EQU * RMB 2 mouse_x G00138 EQU * RMB 2 mouse_y G00139 EQU * RMB 1 mouse_fire G00140 EQU * RMB 1 mouse_shields G00141 EQU * RMB 2 ScreenWidth G00142 EQU * RMB 2 ScreenHeight G00143 EQU * RMB 2 intro_x G00144 EQU * RMB 2 intro_y G00145 EQU * RMB 2 rseed G00161 EQU * RMB 1 pen G00162 EQU * RMB 2 last_x G00163 EQU * RMB 2 last_y G00164 EQU * RMB 1 Credits G00165 EQU * RMB 2 intro_z G00166 EQU * RMB 1 intro_rot G00167 EQU * RMB 2 insertcoin_mode_timer G00168 EQU * RMB 2 passing_mode_timer G00169 EQU * RMB 2 flashing_intro_timer G00170 EQU * RMB 1 global_flashing_intensity G00171 EQU * RMB 1 flashingtexttimer G00172 EQU * RMB 2 hide_intro_timer G00173 EQU * RMB 2 Mode G00174 EQU * RMB 2 mouseDownPrev G00175 EQU * RMB 1 laserid G00176 EQU * RMB 2 lasert G00177 EQU * RMB 2 lastfiringtime G00178 EQU * RMB 2 HighScore G00179 EQU * RMB 2 LastScore G00180 EQU * RMB 2 Score G00181 EQU * RMB 2 UsingShields G00182 EQU * RMB 2 Shields G00183 EQU * RMB 2 shieldsegment G00184 EQU * RMB 2 shieldsubticksleft G00185 EQU * RMB 2 ShipsPassedThisWave G00186 EQU * RMB 2 ShipsPassedTotal G00187 EQU * RMB 2 cosX G00188 EQU * RMB 2 cosY G00189 EQU * RMB 2 cosZ G00190 EQU * RMB 2 sinX G00191 EQU * RMB 2 sinY G00192 EQU * RMB 2 sinZ G00193 EQU * RMB 2 stopintroflag G00194 EQU * RMB 2 textx G00195 EQU * RMB 2 texty G00196 EQU * RMB 2 textz G00197 EQU * RMB 2 tgi G00198 EQU * RMB 2 tgx G00199 EQU * RMB 2 tgy G00200 EQU * RMB 2 tgz G00201 EQU * RMB 1 nextwaveshiptype G00202 EQU * RMB 1 this_status G00203 EQU * RMB 2 this_scale_fp G00204 EQU * RMB 2 this_ship_time G00205 EQU * RMB 1 this_model G00206 EQU * RMB 2 this_X G00207 EQU * RMB 2 this_Y G00208 EQU * RMB 2 this_Z G00209 EQU * RMB 2 this_vel G00210 EQU * RMB 2 this_X_destination G00211 EQU * RMB 2 this_Y_destination G00212 EQU * RMB 2 this_Z_destination G00213 EQU * RMB 2 this_X_rotation G00214 EQU * RMB 2 this_Y_rotation G00215 EQU * RMB 2 this_Z_rotation G00216 EQU * RMB 2 transformed_X G00217 EQU * RMB 2 transformed_Y G00218 EQU * RMB 2 transformed_Z G00219 EQU * RMB 2 XY G00220 EQU * RMB 2 XZ G00221 EQU * RMB 2 YX G00222 EQU * RMB 2 dirXZ G00223 EQU * RMB 2 dirY G00224 EQU * RMB 84 ships G00225 EQU * RMB 32 pxa G00226 EQU * RMB 32 pya G00227 EQU * RMB 4 firex G00228 EQU * RMB 4 firey G00229 EQU * RMB 2 screen_x G00230 EQU * RMB 2 screen_y G00231 EQU * RMB 1 firing G00232 EQU * RMB 1 firedone1 G00233 EQU * RMB 1 firedone2 G00234 EQU * RMB 1 reloaded ******************************************************************************* * stdlib-data.inc - Global variables used by stdlib.inc. * * By Pierre Sarrazin . * This file is in the public domain. * * Each variable must be defined only with an RMB directive. * It must be initialized by INILIB in stdlib.inc. INISTK RMB 2 receives initial stack pointer end_of_sbrk_mem RMB 2 program_break RMB 2 writable_globals_end EQU * ******************************************************************************* END