MiSTer PCXT

User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

MicroCoreLabs wrote: Sat Jun 11, 2022 6:26 am
I suggest looking at the SuperSoft manual for their explanation why Interrupt Level 0 fails. This test appears to cover the 8253, 8259, and the 8288.
Interrupt Level 0 Test.png
Interrupt Level 0 Test.png (34.05 KiB) Viewed 4476 times
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

And this would be the SuperSoft code that fails the test:
Interrupt Level 0 - Code SuperSoft.png
Interrupt Level 0 - Code SuperSoft.png (58.31 KiB) Viewed 4467 times
It seems to be a timing issue.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

In mode 0, if the count register is rewritten during counting, it stops.
Then, a second rewrite starts the count.
Apparently I have not incorporated this specification....

However, I do not know if this is the cause of this issue.
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

kitune-san wrote: Sat Jun 11, 2022 9:29 am In mode 0, if the count register is rewritten during counting, it stops.
Then, a second rewrite starts the count.
Apparently I have not incorporated this specification....

However, I do not know if this is the cause of this issue.
That could explain why before the timer fix, this test worked? This is why I am leaning towards something to do with the timing.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

I think there is no change in the start/stop timing of the counter before and after the timer fix.
It is a wonder that the timer passed before the modification.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

It is unlikely, but would you like to try timing constraints?
The clocks clk_14_318, clk_4_77, and peripheral_clock are not output from the PLL, so create_generated_clock is required.

For example: (As a reminder, this is not perfect.)
https://github.com/kitune-san/PCXT_MiST ... 2402da06ef

Note that the processing time of Fitter is very long.
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

kitune-san wrote: Sat Jun 11, 2022 11:47 am It is unlikely, but would you like to try timing constraints?
The clocks clk_14_318, clk_4_77, and peripheral_clock are not output from the PLL, so create_generated_clock is required.

For example: (As a reminder, this is not perfect.)
https://github.com/kitune-san/PCXT_MiST ... 2402da06ef

Note that the processing time of Fitter is very long.
I have generated the clk_cpu and peripheral_clock using PLLs with the wizard, finally I dispense with the 14_318 and 7_16 signals because I don't really need them, the 14_318 one was only used for the splash screen, and I can use the clk_cpu one for it without any problem:
pll_clocks.png
pll_clocks.png (10.17 KiB) Viewed 4307 times
Indeed, the fitter time has increased from 8 minutes to 20 minutes, but the test failure still occurs.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

Thank you for trying it. hmm...

I remembered that the output of timer 1 is not connected to the input of the DMA request because I didn't think old DRAM was necessary.

in Chipset.sv

Code: Select all

    BUS_ARBITER u_BUS_ARBITER (
          ....
	     .dma_request                        ({dma_request[2:0]}, timer_counter_out[1]},
This wiring is expected to slightly increase processing time.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

Sorry, DMA needed FF between timer output and DRQ.
Please wait a moment.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

kitune-san wrote: Sat Jun 11, 2022 3:55 pm Sorry, DMA needed FF between timer output and DRQ.
Please wait a moment.
in Chipset.sv

Code: Select all

always_ff @(negedge clock) begin
	prev_timer_count_1 <= timer_counter_out[1];
end

always_ff @(negedge clock, posedge reset) begin
	if (reset)
		DRQ0 <= 1'b0;
	else if (~dma_acknowledge_n[0])
		DRQ0 <= 1'b0;
	else if (~prev_timer_count_1 & timer_counter_out[1])
		DRQ0 <= 1'b1;
	else
		DRQ0 <= DRQ0;
end

BUS_ARBITER u_BUS_ARBITER (
	....
	.dma_request                        ({dma_request[3:1]}, DRQ0},
	....
);
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

kitune-san wrote: Sat Jun 11, 2022 4:11 pm
kitune-san wrote: Sat Jun 11, 2022 3:55 pm Sorry, DMA needed FF between timer output and DRQ.
Please wait a moment.
in Chipset.sv

Code: Select all

always_ff @(negedge clock) begin
	prev_timer_count_1 <= timer_counter_out[1];
end

always_ff @(negedge clock, posedge reset) begin
	if (reset)
		DRQ0 <= 1'b0;
	else if (~dma_acknowledge_n[0])
		DRQ0 <= 1'b0;
	else if (~prev_timer_count_1 & timer_counter_out[1])
		DRQ0 <= 1'b1;
	else
		DRQ0 <= DRQ0;
end

BUS_ARBITER u_BUS_ARBITER (
	....
	.dma_request                        ({dma_request[3:1]}, DRQ0},
	....
);
Tested... nothing, the test failure still occurs. Don't worry about it, we are waiting for you to get the MiSTer ;)

Thank you!
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

MiSTer has been delivered to me.
At first, SuperSoftROM was booted and I was connected to the Signal Tap.
I will report back if I find out anything.
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

kitune-san wrote: Sun Jun 12, 2022 3:47 am MiSTer has been delivered to me.
At first, SuperSoftROM was booted and I was connected to the Signal Tap.
I will report back if I find out anything.
Good news! You'll let us know ;). Please do not hesitate to send me a pull request for any further developments.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

Apparently, an interrupt request is received before int0 starts counting...
Start investigating 8259.
2022-06-12 130156.png
2022-06-12 130156.png (25.3 KiB) Viewed 4102 times
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

Passed!
DSC_0131.JPG
DSC_0131.JPG (77.58 KiB) Viewed 4064 times
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: MiSTer PCXT

Unread post by MicroCoreLabs »

Awesome! :)
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

kitune-san wrote: Sun Jun 12, 2022 5:15 am Passed!
How fast! :o I think we're going to make great progress... now for the keyboard ;)
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

kitune-san wrote: Sun Jun 12, 2022 5:15 am Passed!

DSC_0131.JPG
Pull request sent to you.
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

CGA and MDA at the same time for the MiSTer PCXT core. Thanks to Graphics Gremlin from TubeTimeUS... I still need to investigate how to display it in HDMI and VGA at the same time, as an additional option:

User avatar
wark91
Core Developer
Posts: 334
Joined: Sun May 24, 2020 8:34 pm
Has thanked: 447 times
Been thanked: 95 times

Re: MiSTer PCXT

Unread post by wark91 »

Do you plan to add more video output on this core ?
It is great to follow the development of this core on this thread !! Thanks
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

wark91 wrote: Sun Jun 12, 2022 9:22 am Do you plan to add more video output on this core ?
It is great to follow the development of this core on this thread !! Thanks
That would be fine but from EGA onwards it gets quite complicated, in addition to the FPGA implementation you have to add a BIOS that adds the corresponding functions. I hope that once we have an advanced version of a PCXT, this can be part of the official repository of MiSTer and from then on other developers will be encouraged to add functions, precisely because of space there won't be any problem.

However, as far as the graphics features are concerned, I still want to squeeze more out of the current Graphics Gremlin development, i.e. composite video output and colour burst, and improve the Tandy features, which was only halfway there.
User avatar
remax
Posts: 32
Joined: Sun Nov 21, 2021 8:24 pm
Has thanked: 12 times
Been thanked: 13 times

Re: MiSTer PCXT

Unread post by remax »

Do you plan to add HDD support back soon ?

Cause i don't have the serial cable (and a bit afraid by the voltage level things) and i die to try all of this...
breiztiger
Top Contributor
Posts: 468
Joined: Sun May 24, 2020 7:17 pm
Has thanked: 35 times
Been thanked: 99 times

Re: MiSTer PCXT

Unread post by breiztiger »

Floppy is perhaps more simple to implement

There is a lot of booter floppy disk to try
CPC-Power Staff
Bas
Top Contributor
Posts: 623
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 80 times
Been thanked: 324 times

Re: MiSTer PCXT

Unread post by Bas »

Love to see this thing grow as openly as you are building it. Absolutely +1 on the Tandy. For nostalgia I'd drool over a working Hercules output as well but you do what you deem best. Thank you for the massive effort!
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

Beta 0.8

https://github.com/spark2k06/PCXT_MiSTe ... d211158808
  • MDA and CGA/Tandy now work at the same time. It is possible to switch from one to the other from the OSD menu, as well as their monochrome simulation independently.
  • Fixed problem with INT0 test failing
  • Fixed a bug that caused the timer counter to be cleared on latch.
  • PCXT DIP switches and access to MDA memory
  • Add port_b[6] to lock PS/2 CLK.
  • PS/2 CLK to drop LOW after receiving the key code.
remax wrote: Sun Jun 12, 2022 8:03 pm Do you plan to add HDD support back soon ?

Cause i don't have the serial cable (and a bit afraid by the voltage level things) and i die to try all of this...
I would like to, but it is not an easy task, and at the moment it is out of my reach. I've mentioned it to @JasonA to see if he can take a look at it, it would certainly make the core more usable for all users.
breiztiger wrote: Sun Jun 12, 2022 8:09 pm Floppy is perhaps more simple to implement

There is a lot of booter floppy disk to try
It is simpler in principle than IDE, and I actually made a first attempt, but I got stuck with the 16-bit handling in the HPS part of MiSTer:

https://github.com/spark2k06/PCXT_MiSTer/tree/fdd-test
Bas wrote: Sun Jun 12, 2022 8:26 pm Love to see this thing grow as openly as you are building it. Absolutely +1 on the Tandy. For nostalgia I'd drool over a working Hercules output as well but you do what you deem best. Thank you for the massive effort!
Yes, Hercules is another interesting option to evaluate in the future :)
User avatar
wark91
Core Developer
Posts: 334
Joined: Sun May 24, 2020 8:34 pm
Has thanked: 447 times
Been thanked: 95 times

Re: MiSTer PCXT

Unread post by wark91 »

Thank you for the new beta !
I found an issue with this beta.
If you set value different "NearNeighbour" of video filter in video processin, the screen becomes black.
johhenrik
Posts: 34
Joined: Mon Aug 10, 2020 8:49 pm
Has thanked: 43 times
Been thanked: 15 times

Re: MiSTer PCXT

Unread post by johhenrik »

I just want to say that following this thread is absolutly awesome. I love reading your back and forth messages of testing, trying, speculating and fixing things. Thank you!
jordi
Posts: 282
Joined: Thu Jun 11, 2020 10:11 am
Has thanked: 112 times
Been thanked: 87 times

Re: MiSTer PCXT

Unread post by jordi »

spark2k06 wrote: Mon Jun 13, 2022 4:57 am Beta 0.8

https://github.com/spark2k06/PCXT_MiSTe ... d211158808
  • MDA and CGA/Tandy now work at the same time. It is possible to switch from one to the other from the OSD menu, as well as their monochrome simulation independently.
  • Fixed problem with INT0 test failing
  • Fixed a bug that caused the timer counter to be cleared on latch.
  • PCXT DIP switches and access to MDA memory
  • Add port_b[6] to lock PS/2 CLK.
  • PS/2 CLK to drop LOW after receiving the key code.
remax wrote: Sun Jun 12, 2022 8:03 pm Do you plan to add HDD support back soon ?

Cause i don't have the serial cable (and a bit afraid by the voltage level things) and i die to try all of this...
I would like to, but it is not an easy task, and at the moment it is out of my reach. I've mentioned it to @JasonA to see if he can take a look at it, it would certainly make the core more usable for all users.
breiztiger wrote: Sun Jun 12, 2022 8:09 pm Floppy is perhaps more simple to implement

There is a lot of booter floppy disk to try
It is simpler in principle than IDE, and I actually made a first attempt, but I got stuck with the 16-bit handling in the HPS part of MiSTer:

https://github.com/spark2k06/PCXT_MiSTer/tree/fdd-test
Bas wrote: Sun Jun 12, 2022 8:26 pm Love to see this thing grow as openly as you are building it. Absolutely +1 on the Tandy. For nostalgia I'd drool over a working Hercules output as well but you do what you deem best. Thank you for the massive effort!
Yes, Hercules is another interesting option to evaluate in the future :)
I'm not sure if @sorgelic could take a look on this floppy integration. I guess it would be simple for the author ;)
User avatar
spark2k06
Core Developer
Posts: 877
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: MiSTer PCXT

Unread post by spark2k06 »

jordi wrote: Mon Jun 13, 2022 10:21 am I'm not sure if @sorgelic could take a look on this floppy integration. I guess it would be simple for the author ;)
Rather, @Sorgelig ;)
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: MiSTer PCXT

Unread post by kitune-san »

spark2k06 wrote: Sun Jun 12, 2022 5:28 am now for the keyboard ;)
I added keybord reset logic.
With this change, the keyboard controller test would pass.

I have sent you a pull request.
Please try it.
Post Reply