Repository navigation
Refactor typed interrupt services and device operations - #2485
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the interrupt-service and device-operation changes, though runtime tests were not run in this snapshot.
No open issues 🎉
What changed in this PR
This PR separates interrupt service metadata from CPU effects and introduces typed return values for service helpers. It also exposes shared device operations that generated code can use instead of individual port calls.
Changes:
- Adds explicit stub/direct execution paths and updates service metadata, IR traversal, result handling and printing.
- Exposes VGA and OPL operations and updates generated-code goldens for combined device calls.
- Adds register-preservation, service-baseline and device-scenario regression coverage.
New types: InterruptServiceEntry holds service metadata separately from effect-only ServiceContract; InterruptServiceDeclarations pairs entries with implementation methods. ServiceExecutionPath distinguishes execution modes. DeviceOperationCallNode and DeviceOperationValueNode distinguish device I/O from generic calls for IR effect analysis. The port map extends the existing registered-port data with handler types.
Regression coverage: ServicesMatchRecordedBaseline checks recorded registers, flags and memory. The new preserved_output ASM section checks AX preservation and cleared carry for AH=67h. Added DOS contract cases exercise valid and invalid commit handles, and the catalogue registers the device-operations scenario.
Runtime tests were not run in this review snapshot.
| File | Description |
|---|---|
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/xms_umb_disabled.pit.ivt.xms.noumb.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/xms_installation_check.pit.ivt.xms.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/xms_entry_point.pit.ivt.xms.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/umb_ems_size.a20.ivt.xms.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/umb_disabled.a20.ivt.xms.noumb.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_zero_paragraphs.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_valid_paragraphs.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_return_code.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_parent_psp_size.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_large_paragraphs.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_interrupt_vector.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_batch_continues.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/tsr_basic.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/strings.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/stipending.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/standard_file_handles_inherited.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/set_handle_count_updates_psp.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/set_file_attributes_roundtrip.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/scroll_up_clears_full_row.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sb_reset_delay.pit.a20.ivt.sbpro2.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/register_locals_across.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad16.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad15.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad13.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad12.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad1.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/realloc_test_pad0.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/psp_parent_command_com.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/program_arguments_print_argv0.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/program_arguments_access_argv.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/opl_write_delay.pit.a20.ivt.opl3.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/opl_read_delay.pit.a20.ivt.opl3.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/keyboard_reassignment_reset.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt_handler_partial_inputs.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt_handler_changes_register.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interior_entry.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/int16_ah11_extended_key_scan_code.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/graphics_scroll_moves_rows.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/flush_input_clears_stuffahead.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/flashback_video.ivt.spec.handlersD000.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/flashback_mode13.ivt.spec.handlersD000.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/find_first_wildcard.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/file_attributes_readonly.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/externalint.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/environment_block_not_corrupted.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/environment_block_contains_program_path.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_save_page_map.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_restore_page_map.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_memory_access_mapped_pages.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_map_invalid_handle.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_version.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_unallocated_page_count.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_status.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_page_frame_segment.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_handle_pages.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_get_handle_count.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_detection_interrupt_vector.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_detection_device_name.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_allocate_zero_pages.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/ems_allocate_pages.pit.ivt.ems.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/device_status_report.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/dbcs_table_private_area.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/dbcs_lead_byte_table_invalid_al.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/dbcs_lead_byte_table_al0.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/dataflow_interrupt_boundaries.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/data_segment_values.pit.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/create_new_psp_valid_copy.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/create_directory_empty_path.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/create_child_psp_valid.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/crack_close_handle8_hook.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/control_break_roundtrip.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl0e_z_drive.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl0e_floppy_drive.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl09_z_drive.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl09_fixed_drive.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl07_stdout_ready.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_redirect_file_eof_after_read.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_redirect_file_empty.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_redirect_file_data.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_poll_and_read.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_keyboard_empty.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl06_keyboard_available.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl00_stdin_character_device.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl_unsupported_11.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl_unsupported_10.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl_unsupported_0f.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ioctl_unsupported_0a.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah0b_input_available.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah09_print_string.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah06_output_redirect.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah06_input_no_key.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah06_input_key.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah03_ctrl_c_break.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/console_ah02_ctrl_c_break.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/child_return_code_subsequent_zero.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/child_return_code_initial.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/check_stdin_status_ctrl_c.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/check_stdin_status_ctrl_break.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/cds_initialized_known_location.a20.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_pipe_input_first_segment.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_output_redirection.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_multi_input_tight.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_multi_input_spaced.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_maupiti_tatou_nested_directory.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_input_redirection.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_double_input_operator.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_choice_timeout_keypress.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_choice_timeout_default.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/batch_append_redirection.pit.ivt.spec.cs.txt | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/res/DumpedCfgPartitions/device_operations.json | Updated as part of this pull request. |
| tests/Spice86.Tests/Resources/cpuTests/asmsrc/int_service_calls.asm | Updated as part of this pull request. |
| tests/Spice86.Tests/MouseDriverTests.cs | Updated as part of this pull request. |
| tests/Spice86.Tests/InterruptHandlers/ServiceContractStubTest.cs | Updated as part of this pull request. |
| tests/Spice86.Tests/InterruptHandlers/EmsServiceContractTest.cs | Updated as part of this pull request. |
| tests/Spice86.Tests/InterruptHandlers/DosInt21ServiceContractTest.cs | Updated as part of this pull request. |
| tests/Spice86.Tests/AsmFixtures/LatchIoPortHandler.cs | Updated as part of this pull request. |
| tests/Spice86.Tests/AsmFixtures/AsmScenarioCatalog.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/UserTimerServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/RtcServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/PrinterServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/MemorySizeServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/EquipmentServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/DosNetworkServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/DosIdleServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/InterruptServices/CriticalErrorServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/FunctionPartitioning/Model/InterruptServiceVector.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/FunctionPartitioning/Model/HardwareInterruptSetup.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/FunctionPartitioning/Model/GeneratorInputsCollector.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/FunctionPartitioning/Model/GeneratorInputs.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/Contracts/ServiceCallSignature.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/TypedSignatures.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/RegisterLocalPromotion.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/Memory/IrSegmentValues.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/IrMethodEmitter.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/IrFlagReadCensusClassifier.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/IrEffectsVisitor.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/IrAstChildren.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/DosCallRecord.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ir/DosCallComments.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/CSharpStatementPrinter.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ast/DeviceOperationValueNode.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Ast/DeviceOperationCallNode.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/OperatingSystem/Dos.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Timer/DummyInt1CHandler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/InterruptHandler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/IInterruptHandler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Dos/DosInt2aHandler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Dos/DosInt28Handler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Dos/DosInt24Handler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Contracts/ServiceExecutionPath.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Contracts/ServiceContract.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Contracts/InterruptServiceEntry.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Contracts/InterruptServiceDeclarations.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Contracts/HandlerServices.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Common/Callback/CallbackDescriptions.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Bios/SystemBiosInt12Handler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Bios/RtcInt70Handler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/InterruptHandlers/Bios/BiosEquipmentDeterminationInt11Handler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/Devices/Video/VgaIoPortHandler.cs | Updated as part of this pull request. |
| src/Spice86.Core/Emulator/Devices/Sound/Opl3Fm.cs | Updated as part of this pull request. |
Review effort: Balanced
90b9c3a to
3e81b3b
Compare
135a628 to
bda9028
Compare
bda9028 to
3714e64
Compare
Adds typed results and shared DOS/BIOS operations, with thin interrupt wrappers and preserved stub behavior.
Adds CMOS, PIT, VGA and OPL operations and combines safe port sequences in generated code.
Consolidates service metadata and adds regression coverage for preserved registers, interrupt guards and device state.