Skip to content

Commit b0a9e9e

Browse files
committed
Fix signed data entry: apply user-entered sign in V21-V25 verbs
- Read current sign indicator from register before committing data - Apply negative sign to value when user entered MINUS key - Fixes V21-V25 signed data entry functionality - Ensures negative values are properly stored and displayed - Maintains consistency between sign indicator and actual value
1 parent 0ce4080 commit b0a9e9e

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

Comanche055-C89/pinball.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,14 @@ void pinball_keypress(int keycode)
533533
program_change(val);
534534
pinball_mode = PINBALL_MODE_IDLE;
535535
} else {
536-
/* V21-V25: store loaded value */
536+
/* V21-V25: store loaded value with user-entered sign */
537+
int sign = 0;
538+
switch (pinball_data_reg) {
539+
case 1: sign = dsky_display.r1_sign; break;
540+
case 2: sign = dsky_display.r2_sign; break;
541+
case 3: sign = dsky_display.r3_sign; break;
542+
}
543+
if (sign < 0) val = -val;
537544
pinball_display_val(pinball_data_reg, val, 1);
538545
/* For V24/V25, advance to next register */
539546
if (pinball_verb == 24 && pinball_data_reg == 1) {

0 commit comments

Comments
 (0)