Page 9 of 47

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 8:06 am
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 3246 times

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 8:27 am
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 3237 times
It seems to be a timing issue.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 9:29 am
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.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 9:33 am
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.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 11:33 am
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.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 11:47 am
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.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 3:08 pm
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 3077 times
Indeed, the fitter time has increased from 8 minutes to 20 minutes, but the test failure still occurs.

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 3:42 pm
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.

Re: MiSTer PCXT

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

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 4:11 pm
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},
	....
);

Re: MiSTer PCXT

Posted: Sat Jun 11, 2022 4:46 pm
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!

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 3:47 am
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.

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 3:55 am
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.

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 4:04 am
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 2872 times

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 5:15 am
by kitune-san
Passed!
DSC_0131.JPG
DSC_0131.JPG (77.58 KiB) Viewed 2834 times

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 5:17 am
by MicroCoreLabs
Awesome! :)

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 5:28 am
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 ;)

Re: MiSTer PCXT

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

DSC_0131.JPG
Pull request sent to you.

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 8:28 am
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:


Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 9:22 am
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

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 9:37 am
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.

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 8:03 pm
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...

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 8:09 pm
by breiztiger
Floppy is perhaps more simple to implement

There is a lot of booter floppy disk to try

Re: MiSTer PCXT

Posted: Sun Jun 12, 2022 8:26 pm
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!

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 4:57 am
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 :)

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 8:55 am
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.

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 10:09 am
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!

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 10:21 am
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 ;)

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 10:30 am
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 ;)

Re: MiSTer PCXT

Posted: Mon Jun 13, 2022 1:43 pm
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.