VOGONS


First post, by mbbrutman

User metadata
Rank Member
Rank
Member

I'm probably going to kick myself when somebody gives me an obvious answer ...

Is there a way to insert code (a ROM extension) into the memory map at startup? In particular, I'd like to have a PCjr cartridge resident during the emulation but I don't want to use the BOOT option to get it. My emulated machine should think it is running DOS and just have the code resident in the memory map.

Real PC DOS has a way to scan for cartridges and recognize if they have embedded runnable BASIC programs or executables in them. I'm not too concerned if that doesn't work - I can hack up a cheap jump that works once to get to the code. (I think ...)

In this particular case I know of somebody trying to run PCjr Colorpaint, but they are using the BOOT option and Colorpaint is probably figuring out that DOS is not available. When that happens the FILE menu in the application is disabled. Running it normally through the DOS prompt would cure that glitch.

Thanks in advance,
Mike

Reply 1 of 21, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

How does it work on a real PCJr.? It sounds like you insert your PC-DOS disk and the cartridge, then turn the machine on. The machine boots to Colorpaint, but it is booted through DOS and the DOS functions remain available to the program. Cartridge BASIC works similarly, except you use BASIC and BASICA from the PC-DOS disk to enter it.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 2 of 21, by VileR

User metadata
Rank l33t
Rank
l33t

From context, I infer that this should be in the DOSBox forums instead (feel free to forward that proverbial kick to me if I'm wrong). Colour me interested in how the whole thing works on a real PCjr, too.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 4 of 21, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The file options are disabled because ColorPaint is running from the boot entry point, not the program entry point. Note that it does not run at boot time if bit 2 of port 62h is clear. I'm not sure what the bit refers to, but it seems DOSBox doesn't handle port 62h. Perhaps one had to do something with the keyboard to prevent ColorPaint from running at boot time?

The DOSBox shell does not support executing commands in ROM, but the BOOT internal program has an undocumented -e parameter to execute commands. I think the feature is undocumented because it's not well tested, and only ROM-based applications (not games) are called from DOS. Use "boot cart.jrc -e ?" to get a list of commands. In the case of ColorPaint you will find a "G" command, and "boot colorpnt.jrc -e G" will start it as from DOS. Running as a command does enable the file menu, but the app is unstable while running and after exit due to a few issues.

The attached launcher program fixes the issues with ColorPaint that I'm aware of. Run the program in DOSBox (with machine=pcjr in settings) from where the cart file is located. The cart file must be named COLORPNT.JRC and it must have a JRipCart format header. Note that the cart file is modified by the launcher program to prevent it from starting up in boot mode, so keep an original copy elsewhere. Source code is included in the archive.

Attachments

  • Filename
    COLORPNT.ZIP
    File size
    1.03 KiB
    Downloads
    250 downloads
    File license
    Fair use/fair dealing exception

Reply 5 of 21, by mbbrutman

User metadata
Rank Member
Rank
Member

Ok - I was on the right track about how ColorPaint starts up ...

I'll give it a whirl. That was very quick and very detailed - I thought I knew a thing or two about PCjrs. ;-0

Regards,
Mike

Reply 7 of 21, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
ripsaw8080 wrote:

The file options are disabled because ColorPaint is running from the boot entry point, not the program entry point. Note that it does not run at boot time if bit 2 of port 62h is clear. I'm not sure what the bit refers to, but it seems DOSBox doesn't handle port 62h. Perhaps one had to do something with the keyboard to prevent ColorPaint from running at boot time?

That bit indicates whether the diskette drive adapter is installed. Clear or 0 means the adapter is present.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 8 of 21, by ronald_herrera

User metadata
Rank Newbie
Rank
Newbie

Does someone have used PCjr BASICA Cartridge for DOSBox and running DOS 2.x to access BASIC with thy intention to use the 3 voices function thru the PLAY statement (for using chords)? I have fix the BASIC Cartridge header (512) with the offset ROM start E8 at 0x1CE, BUT I can't access either the BASIC Cart. or the BASICA from the DOS using the Cartridge image. What I have to do?

Reply 9 of 21, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

The BASIC cartridge doesn't work in DOSBox because it relies on the PCjr. boot ROM, which DOSBox doesn't support. Maybe the MESS emulator will work. Lotus 1-2-3 for the PCjr. also doesn't work because DOSBox doesn't support the two cartridge design for that program. Try regular Lotus instead.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 12 of 21, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
Great Hierophant wrote:

Lotus 1-2-3 for the PCjr. also doesn't work because DOSBox doesn't support the two cartridge design for that program.

DOSBox does support two cartridges, and you can run Lotus 1-2-3 with the command: boot 123A.JRC 123B.JRC -e 123

However, as with ColorPaint, it's likely to be unstable because the -e (execute) option is not fully implemented.

Reply 13 of 21, by ronald_herrera

User metadata
Rank Newbie
Rank
Newbie

OK! Tand-Em will not work with BASIC Cartridge because that cart. needs the BASIC BIOS of the PCjr. So, I guess that it won't work either with DOSBox. I'm thinking about GW-BASIC, but I guess that it doesn't have the 3-voice sound function for the support of PLAY Statement (e.g. PLAY "CDEF", "CEA"). QuickBASIC doesn't support it either so I'm run out of ideas. I have some programs with the PLAY statement written for BASICA and I can even make it properly work. I was planning to continue writing music programs as I did on the '80s.

Reply 15 of 21, by ronald_herrera

User metadata
Rank Newbie
Rank
Newbie

DOSBox does support two cartridges, and you can run Lotus 1-2-3 with the command: boot 123A.JRC 123B.JRC -e 123

I try this but it hangs after opening the 123B.JRC...

ColorPaint runs as you said, it becomes unstable.

Reply 17 of 21, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Make sure you've mounted an A: or C: drive and that it is the current drive before trying to start 123, because it will be confused if Z: is the current drive. Other than that, it should work if your cart dumps are not bad. As I mentioned before, it won't run stable when executed from the BOOT command, but it should run stable if you boot real DOS. For example:

boot 123A.JRC 123B.JRC
boot DOS21.IMA
123

Reply 19 of 21, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
ripsaw8080 wrote:
Make sure you've mounted an A: or C: drive and that it is the current drive before trying to start 123, because it will be confu […]
Show full quote

Make sure you've mounted an A: or C: drive and that it is the current drive before trying to start 123, because it will be confused if Z: is the current drive. Other than that, it should work if your cart dumps are not bad. As I mentioned before, it won't run stable when executed from the BOOT command, but it should run stable if you boot real DOS. For example:

boot 123A.JRC 123B.JRC
boot DOS21.IMA
123

That seems to work.

ronald_herrera wrote:

OK! Tand-Em will not work with BASIC Cartridge because that cart. needs the BASIC BIOS of the PCjr. So, I guess that it won't work either with DOSBox. I'm thinking about GW-BASIC, but I guess that it doesn't have the 3-voice sound function for the support of PLAY Statement (e.g. PLAY "CDEF", "CEA"). QuickBASIC doesn't support it either so I'm run out of ideas. I have some programs with the PLAY statement written for BASICA and I can even make it properly work. I was planning to continue writing music programs as I did on the '80s.

You could try the Tandy 1000 version of GW-BASIC, it supports a 3-voice PLAY command and does not require a custom boot/BASIC ROM.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog