Commit Graph

546 Commits

Author SHA1 Message Date
Aitor Gómez García
97af0d89f3 Release 20261203 2026-03-12 08:50:35 +01:00
Aitor Gómez García
8ff59fa11b XT timing: drive the chipset with exact clock enables
Replace the derived XT pseudo-clocks with a synchronous clock-enable scheduler on clk_chipset so the XT side runs from a single base clock without changing the mature 8088/BIU clocking model.

- generate exact CPU and peripheral enables from clk_chipset
- update the XT chipset and peripheral path to consume enables instead of reconstructed pseudo-clock edges
- keep the 8088 CLK pin as a local compatibility signal
- refresh SYSTEM.sdc so pll_system video clocks and clk_14_318 resolve cleanly in TimeQuest
2026-03-12 08:50:35 +01:00
Aitor Gómez García
1b5c54c058 Video: retime exact-frequency CGA/HGC output onto HDMI clocks
Move the final CGA and HGC/MDA export off the raw exact-frequency video domains and retime it onto a phase-shifted 57.272727 MHz sibling clock, while keeping the internal 28.636363/57.272727/114.545454 MHz clocks exact.

Derive the 9.54/7.16/4.77 MHz clocks locally from clk_57_272, feed the final CE_PIXEL and overlay path from the retimed output stage, and add explicit timing constraints for the handoff into the phase-shifted video clock domain.
2026-03-12 08:50:35 +01:00
Aitor Gómez García
4b7693995c Modify funding configuration in FUNDING.yml
Updated GitHub Sponsors username and added Ko-fi username.
2026-03-08 08:22:12 +01:00
Aitor Gómez García
92a87532b6 Update FUNDING.yml 2026-03-07 13:11:03 +01:00
Aitor Gómez García
db9f0c06d8 Release 20260703 2026-03-07 12:43:35 +01:00
Aitor Gómez García
1ccd9aa91c CGA video: move CGA to a dedicated UM6845R-safe scandoubler
Split the CGA scan-doubling path into a dedicated video_scandoubler block instead of relying on the previous shared path.

This keeps the output timing stable for the CGA pipeline and avoids CRTC-sensitive behaviour seen with UM6845R-compatible software and demos.
2026-03-07 12:02:18 +01:00
Aitor Gómez García
087ba444ce Release 20261002 2026-02-10 14:56:36 +01:00
Aitor Gómez García
5420cb0ade Add CRTC VSync/HSync width OSD controls
Add OSD menu controls for VSync and HSync pulse widths in CRTC

- Add P2oMO/P2oPR parameters to configure VSync/HSync widths (Auto or 1-7)
- Implement effective_vsync_width logic with OSD override capability
- Add fixed-width HSYNC pulse shaping for TV compatibility across 40/80-col modes
- Route vsync_width_osd and hsync_width_osd to UM6845R module
- Update VSYNC generation to use effective pulse width

These controls allow users to adjust sync pulse widths via the OSD to improve compatibility with different displays and TV standards.
2026-02-10 13:53:06 +01:00
Aitor Gómez García
fd78617eef Release 20262301 2026-01-23 13:44:04 +01:00
Aitor Gómez García
ebbecd6712 Fix HGC border display by calculating HBlank timing on correct clock domain
- Add std_hsyncwidth and vblank_border outputs to HGC module for border detection
- Connect CRTC hsync_width register (R3) to enable dynamic sync width detection
- Update HGC H_SYNCWIDTH to standard value (4'd15) per Hercules specifications
- Extend Peripherals.sv to multiplex HGC timing signals with CGA
- Fix critical bug: HBlank_fixed was calculated only in CGA clock domain
  In HGC mode, it was desynchronized, causing shifted display instead of proper border
- Add HBlank_fixed_hgc calculated on clk_57_272 (HGC clock) for correct timing
- Update LHBL logic to use appropriate HBlank_fixed for each video mode
- Border now properly reduces visible area in HGC mode with correct synchronization
2026-01-23 13:42:58 +01:00
Aitor Gómez García
6decefa0f8 Improve clock accuracy by separating system clocks into dedicated PLL
- Extract system clocks (clk_28_636, clk_57_272, clk_114_544, clk_9_54, clk_7_16, clk_4_77)
  from main PLL to new pll_system module for improved frequency precision
- Simplify main PLL: now outputs only clk_100 (100 MHz) and clk_chipset (50 MHz)
- Replace integer divider chains with dedicated PLL outputs for better timing accuracy
- Remove clk_div3 logic and generate clock dividers directly from PLL
- New pll_system uses lower VCO frequency (300 MHz vs 1600 MHz) for better stability
- Update SYSTEM.sdc timing constraints for new clock distribution
- Reduces jitter and improves timing closure for sensitive subsystems
2026-01-23 13:42:58 +01:00
Aitor
99d0b6a9f6 Ensure UM6845R exposes the horizontal sync width register so CGA/HGC can query the real timing 2026-01-23 13:42:58 +01:00
Aitor Gómez García
92057a1aa0 Release 20260601 2026-01-07 13:15:48 +01:00
Aitor Gómez García
c38ec6531b Update splash/credits text and regenerate assets
- Remove the Tandy 1000 mention from splash/credits text variants and keep the byline centered.

- Simplify the F11 hotkey hint to CGA ↔ HGC only.

- Regenerate msg.bin and splash.hex to match the updated text.
2026-01-06 20:14:42 +01:00
Aitor Gómez García
5d503bc064 PCXT: macro-driven build config and unified constraints
- Add config.tcl as the PCXT build profile and source it from PCXT.qsf with defaults for system/ROM and feature toggles.

- Gate video/audio/EMS/Tandy logic by macros in PCXT.sv, Peripherals.sv, RAM.sv, and cga.v to avoid unused I/O and logic.

- Update OSD options and video swap behavior to match CGA/HGC combos and hide Tandy-only items when disabled.

- Move constraints to SYSTEM.sdc and update files.qip.

- Refresh README.md with the PCXT default config and resource profile.
2026-01-06 20:13:11 +01:00
Aitor Gómez García
30dd494e6a Revert "Allow keyboard reset in Tandy mode"
This reverts commit 6769866f23.
2026-01-04 13:04:02 +01:00
Aitor Gómez García
d75cb654be Release 20253012 2025-12-30 10:40:29 +01:00
Aitor Gómez García
864d32ca95 Reset OPL on Ctrl+Alt+Del in peripherals
Detect Ctrl+Alt+Del at the PS/2 interface and assert a short warm reset pulse for the JTOPL2 core. This clears any stuck notes after a warm reboot without touching BIOS behavior.
2025-12-29 13:24:26 +01:00
Aitor Gómez García
6b5032ba4f Harden HGC/MDA video timing across clock domains
Generate HGC pixel enable in the 113.75 MHz domain, retime HGC RGB/sync/blank into that domain, and resync mixer output/CE_PIXEL back to 56.875 MHz for the overlay and final mux. This removes CDC sensitivity and stabilizes HGC/MDA output across synthesis changes.
2025-12-29 13:24:26 +01:00
Aitor Gómez García
8d39620d6c Fix boot-only splash timing and status[0] VRAM clear
- Delay splash start until the boot splash option is loaded, with a short boot window and reset hold to avoid missed first-boot splash.

- Add a status[0] clear pulse path through Chipset/Peripherals and defer VRAM clear until after the splash completes.

- Update testbench wiring for the new status0_clear signal.
2025-12-27 11:35:15 +01:00
Aitor Gómez García
81749bf81e Release 20252312 2025-12-24 07:27:55 +01:00
Aitor Gómez García
d850c03575 Stabilize HGC/MDA sync timing
- Generate HGC blanking delay and VSYNC shift in the HGC clock domain.

- Avoid CGA timing bleed-through when HGC output is active.
2025-12-23 12:41:52 +01:00
Aitor Gómez García
6769866f23 Allow keyboard reset in Tandy mode
Use PB6 for PS/2 reset in Tandy mode so warm boots can reinit the keyboard.
2025-12-23 12:13:46 +01:00
Aitor Gómez García
6b170d5daa Clear CGA VRAM on status[0] reset path and hold reset during clear
- Use the status[0] reset path to rearm the boot screen flow while suppressing it on physical reset.

- Zero the full 128 KB CGA VRAM after the status[0] reset path to avoid POST garbage; hold reset until the clear finishes.

- Reset Tandy page/NMI mask defaults on reset and add splash_rom.v to video.qip.
2025-12-23 11:23:28 +01:00
Aitor Gómez García
233faa1678 Wire floppy presence into DIP switches
- Track mounted floppy presence via mgmt writes and expose it through PERIPHERALS/CHIPSET.

- Derive DIP 7/8 from drive B presence while preserving existing HGC/CGA bits.

- Propagate new fdd_present signal to the top-level PCXT.sv.
2025-12-22 16:04:42 +01:00
Aitor Gómez García
719ad533a7 Delay VSync for HGC path and adjust VB handling
Introduce an MDA VSync delay shift register and feed the delayed VSync into the video pipeline. Update the scaler VB input to use raw VBlank when swapping video outside Tandy mode.
2025-12-20 15:15:54 +01:00
Aitor Gómez García
15815bf5b4 modify frame
Co-Authored-By: jackyangantelope <245295452+jackyangantelope@users.noreply.github.com>
2025-12-20 15:11:52 +01:00
Aitor Gómez García
e1111a4af4 Fix HGC mono jitter by aligning mono timing and blanking
- align monochrome conversion timing with color output and update only on ce_pix rising edges to prevent double-sampling

- make HBlank_VGA independent of Display mode to avoid the 1‑pixel shift when switching to monochrome
2025-12-19 10:53:25 +01:00
Aitor Gómez García
558278a7b5 Merge pull request #97 from shaeon/main
Fix alarm second assignment to use alarm minute
2025-11-11 17:42:32 +01:00
Aitor Gómez García
e8aa6991f1 Merge branch 'main' of https://github.com/shaeon/PCXT_MiSTer into pr/97 2025-11-11 17:41:51 +01:00
Aitor Gómez García
58495f4cc6 Fix alarm second assignment to use alarm minute
Co-Authored-By: shaeon <10370710+shaeon@users.noreply.github.com>
2025-11-11 17:40:43 +01:00
shaeon
127ab9295d Fix alarm second assignment to use alarm minute 2025-11-11 17:32:47 +01:00
Aitor Gómez García
66cc71e56e Release 20252510
* update MCL86 to 10_4_2025 release, by @jsmolina
2025-10-25 13:11:50 +02:00
Aitor Gómez García
bd9d384ea4 Merge pull request #95 from jsmolina/feat-updateMCL86-10_4_2025
update mcl86 4/Oct/2025
2025-10-25 12:39:05 +02:00
jsmolina
b9035b80d9 feat: update MCL86 to 10_4_2025 release 2025-10-25 12:36:46 +02:00
Aitor Gómez
4ee9e75655 Release 20232203
* Fine adjustment of CRT vertical and horizontal offsets
2025-03-22 08:02:42 +01:00
Aitor Gómez
db90f2cb01 Fine adjustment of CRT vertical and horizontal offsets
In addition, the selected CGA mode (hires_mode) is taken into account internally so that the offset values do not have to be readjusted according to the mode displayed on the screen.
2025-03-22 08:00:52 +01:00
Aitor Gómez
91dcdef946 Release 20230902
* OSD-configurable horizontal and vertical offsets for CRT synchronization
2025-02-08 21:27:02 +01:00
Aitor Gómez
695909b6a0 OSD-configurable horizontal and vertical offsets for CRT synchronization
- Implemented OSD selection for `crt_h_offset` and `crt_v_offset`, allowing dynamic adjustment of horizontal and vertical sync offsets.
- Updated `hsync_on` calculation to subtract `crt_h_offset` from `R2_h_sync_pos`, improving horizontal sync flexibility.
- Modified `vsync` condition to incorporate `crt_v_offset` in `R7_v_sync_pos`, ensuring correct vertical synchronization.
- Enhances CRT monitor compatibility by allowing fine-tuned sync alignment.
2025-02-08 21:26:20 +01:00
Aitor Gómez García
4d37c399f5 Merge pull request #92 from RetroSwimAU/main
MiSTer Framework Update
2025-01-28 18:03:58 +01:00
RetroSwimAU
983ac6e472 New build @ 2025-01-28 2025-01-28 17:04:19 +10:00
RetroSwimAU
d306f5710c Update to new MiSTer Framework (#1) 2025-01-28 11:29:58 +10:00
Aitor Gómez
57b4ab9099 Merge pull request #88 from sonic74/patch-2
README.md: indent
2023-11-27 06:51:58 +01:00
Sven Killig
84f552ae7a README.md: indent 2023-11-27 01:09:16 +01:00
Aitor Gómez
072559ada0 Merge pull request #87 from sonic74/patch-1
README.md: fixed typo
2023-11-26 21:05:38 +01:00
Sven Killig
592e2dcc0a README.md: fixed typo 2023-11-26 18:11:18 +01:00
Aitor Gómez
21e4373639 Merge pull request #101 from MiSTer-devel/main
MiSTer-devel updates
2023-09-02 17:19:04 +02:00
Aitor Gómez
6de58f2d3b Release 20230902
* Adjust RAM data output timing, by @kitune-san
* Measures against 601 errors in turbo mode, by @kitune-san
* Added 8259A INT signal output delay, by @kitune-san
2023-09-02 17:17:39 +02:00
Aitor Gómez
84e545b217 Merge pull request #86 from kitune-san/601-error
601 error
2023-09-02 17:15:01 +02:00