Previous Thread
Next Thread
Print Thread
Page 3 of 15 1 2 3 4 5 14 15
Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
Originally Posted by Duke
You will need to provide the pattern yourself. Here's an example:

(from mwsub.cpp)

That's what ended doing. Now it displays all hex digits.


By the way, now I am struggling with RIM and SIM instructions and its corresponding SID and SOD data lines. I suspect they are tied in the hardware, but in my partial schematics I did not note their state. However, judging for the code in the diagnostics area they should.

I have added the following:

int system23_state::sid_r()
{
return sid_sod_connection;
}

void system_23_state::sod_w(int state)
{
sid_sod_connection = state;
}


and of course I have set the callbacks.

maincpu.in_sid_func().set(FUNC(system23_state::sid_r));
maincpu.out_sod_func().set(FUNC(system23_state::sod_w));


Now, for some reason, genie.exe fails to find my driver again.

Last edited by jlopezm; 12/30/24 09:21 AM.
Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
By assigning a hard-coded value when reading SID, I managed to get to test four. Test three doesn't seem to exist. I guess it's time to add RAM into the machine, however it will be complicated and will require some help as it is the first time I do it.

There are four amounts of RAM obtained by five different configurations.
  • 32KB - A single 32KB board
  • 64KB - Two 32KB boards
  • 64KB - A single 64KB board
  • 96KB - A 64KB board and a 32KB one
  • 128KB - Two 64KB boards


I know the amount of RAM can be configurable. How could I do it this way?

Thank you very much!

Joined: May 2004
Posts: 1,016
Likes: 131
D
Very Senior Member
Very Senior Member
D Offline
Joined: May 2004
Posts: 1,016
Likes: 131
You can look up drivers using the ram_device, however I would get the basic driver going first and after it's working add optional features like configurable ram expansions.

Joined: Jan 2012
Posts: 1,191
Likes: 17
R
Very Senior Member
Very Senior Member
R Offline
Joined: Jan 2012
Posts: 1,191
Likes: 17
Great progress J.! Congratulations!

Robert


NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
Joined: Mar 2001
Posts: 17,284
Likes: 268
R
Very Senior Member
Very Senior Member
R Online: Content
Joined: Mar 2001
Posts: 17,284
Likes: 268
Seconding what Duke said: I usually start with a fixed amount of RAM and make it configurable later once it's at least minimally working.

Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
The problem is how memory is structured. The system has 16KB of RAM (possibly VRAM) at 0x8000-0xbfff and then a bank of paged ram at 0xc000-0xfff. The computer expects a minimum of 32KB to start operation. The amount is detected by software with the tests.

Joined: May 2009
Posts: 2,231
Likes: 402
J
Very Senior Member
Very Senior Member
J Offline
Joined: May 2009
Posts: 2,231
Likes: 402
Originally Posted by jlopezm
The problem is how memory is structured. The system has 16KB of RAM (possibly VRAM) at 0x8000-0xbfff and then a bank of paged ram at 0xc000-0xfff. The computer expects a minimum of 32KB to start operation. The amount is detected by software with the tests.

That makes it much less of a problem, actually.

Map a fixed 16 kilobytes from 0x8000 to 0xbfff, then add a required_memory_bank member to your driver class, map it to 0xc000-0xffff, and in your driver class's machine_start function-override, configure the appropriate number of entries - for now, one - according to the documentation here: https://docs.mamedev.org/techspecs/memory.html#banks-memory-bank.

1 member likes this: R. Belmont
Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
I will test it later today. However I think I am doing something wrong with the fixed 16kb segment too, as it seems not to be passing its part of the test.

Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
I managed to find why test 04 was failing. In the first place, I had misconfigurated the memory. Last but not least, after all the memory tests are performed, lecture is done of port at 2eh. This input port wasn't controlled and still haven't found what it is on the board (other than port C of a 8255). The value was compared and, as it was ffh it was found to be incorrect. I applied a patch in order to make it advance to test 05 while such port is being studied.

The diagnostics routines force me to a certain order. Next one is video output and will require a 8275+8257 to achieve it, plus all the shift logic for the character representation. I imagine this may be one of the most complex parts, if I saw correctly in the other emulators. Video generation uses to be one of the most custom features each system has.

Joined: Dec 2017
Posts: 89
Likes: 12
J
Member
Member
J Offline
Joined: Dec 2017
Posts: 89
Likes: 12
Hello again,

I am trying to set up the 8257 DMA for video generation, but I am having some issues when configuring it. The code is in my repo, as always; could you take a look into it, please?
When it is configured and with no errors the 8275 will be added into the mix. I will require some help then to configure the screen and the video generation that writes into it.

Thank you in advance!

Page 3 of 15 1 2 3 4 5 14 15

Link Copied to Clipboard
Who's Online Now
1 members (AJR), 131 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,373
Posts122,615
Members5,085
Most Online1,529
Jun 7th, 2025
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Powered by UBB.threads™ PHP Forum Software 8.0.0