Woops, now I go back and re-read the directions it clearly states that. Don't make assumptions while sick I guess. Oh well, it needed a 386 anyway so that wasn't the problem.
@NanosparkLP: Yeah, normally I'm the one who checks the comments section just to find out that roughly 100 others already wrote what I was about to write. ^^
I'm pretty sure AutoCAD supports dual displays like this, with the command line on the mono chrome monitor and the drawing on the color screen. There's a reference to it in the help files for R11.
We typically did it the other way around while using Hercules monochrome, because resolution of color modes on CGA were lower than Hercules monochrome. (CGA 320x200 with 4 colors or 640x200 with 2 colors, vs HGC 720x350)
I think it was 286/386 for Autocad .. At the time I mentioned playing with dual monitors, a guy came over from Aussie with a Plasma display 386 "portable" (more like transportable - the standup box with detachable keyboard over the screen) running the latest AutoCAD release ..
I'm not sure it will run on a 5150, but Borland's Turbo Debugger had support for dual monitors. It was a feature commonly used to debug Windows 3.x apps, with Turbo Debugger running on the monochrome screen and the Windows GUI on the other.
I think I read that Win 3.X had some other stuff going on and that was well into the time of VGA cards so the chances of that working on my CGA setup aren't good. Thanks for the tip on Turbo Pascal 6.0! I grabbed a copy off Winworld and will give it a shot later.
A typesetting software called SignMaster also supported dual monitors. Had a lot of fun messing with that on my Sharp PC-7000A back in the day (and yeah, you can do that on the PC-7000A. The LCD can switch between MDA or CGA, but if you got the CGA output option, that card operates independently of the onboard display adapter and is locked to CGA). Pretty cool that allowed me to edit the text on one screen and render the page layout to another. Additionally, a pinball game called wizard actually shows the pinball playfield on the CGA display while showing the scoring on the MDA display. And yeah, my PC-7000A was actually set up to run that way permanently because I thought it was awesome.
I used to run Turbo Debugger in dual-monitor mode on my 286 (I think). It was great for setting breakpoints in VGA/EGA games and modifying memory without disrupting the graphics register setup. At one point I wrote a "door driver" for BBSes in Pascal that would let you watch the player playing a game on the color screen w/ANSI graphics, while displaying session information on the second, monochrome screen. Those were the days!
The wobble on the mono crt is probably the two monitors' yoke coils interfering... Space the two farther apart and it'll probably decrease. Edit: ahh I see you did later in the video :)
Meh. recapping isn't anything new. Big thing here (especially in a CRT) is to make sure the caps are discharged first. The tube itself ALSO acts as a capacitor, so make sure to discharge that too (or just wait for it to discharge on it's own).
That's pretty neat, I didn't realise the origins of dual monitor went back as far as that. Another idea for a game that would work well on that setup would be Battleships; where each players grid shows on a separate monitor (facing away from each other) and the keyboard is passed between them.
It would be cool if The 8-Bit Guy added dual monitor support for Planet X3 even if it’s just a monochrome status information screen it would be neat. Great video as usual!
Used it for turbopascal , the textmode was much more better on MDA/hercules. So config the turbo on monocrom and let him put out the result on CGA , or VGA hires
Same here. Turbo Pascal + Hercules + Tseng ET3000 SVGA in the late 80's. Great for step by step debugging game development
5 ปีที่แล้ว +13
Just my tips, hopefully I don't bore you or anyone (khmmm, too much ...): You don't need to change data segment register (DS) to 0xB000 and 0xB800. Since the segmentation model, you can just set 0xB000, and write offset 0 and 0x8000 and it will the same result to write offset 0 at segment 0xB000 and offset 0 at segment 0xB800 (yeah, 0x800 part in segment vs 0x8000 in segment, as segment is a 16 byte unit of address at least in real mode on x86 ... what pre-286 CPUs had only). It would allow you to avoid always changing a segment register which would slow your app down. However. I would use ES not DS, since a real app need its data segment to, pointed by DS, so it's better to use ES for addressing the screen as the segment register. Also some handy opcodes would use ES by default as target segment anyway, like movsb and stosb ... So in some cases it even helps further. Surely, code optimization in assembly "by hand" is a tricky business anyway, I used to count clock cycles needed for a given opcode, to figure out what is faster and what is not, on PC, and before (like on Commodore 64) too.
Great video... Absolutely love your stuff. Lotus 1-2-3 for productivity and Borland Turbo Debugger for development are excellent candidates for a dual screen setup on a 5150. Very easy to setup. Just used it with my 5150 and it's really awesome. Really adds another dimension to using this hardware.
I had a 5150 as a kid and took out the CGA card and put it in a 286 with a build in Hercules card. I had both monitors setup and after a lot of tinkering found the mode command and switched between them for games and stuff. I could choose low resolution and bad colors or sharp resolution but orange. what a choice!
There are (original) 286 and 386 upgrade cards for the PC, if you *really* wanted to get into the rabbit hole :) (ISA card with a ribbon cable going to the 8088 socket) Still pretty legit, even if you couldn't get the programs working!
The assembly proof of concept was enough for me. In fact, that's better than seeing the programs running, as you can actually see what those programs are doing in the background.
Back in 1990ish, we used to use this dual monitor support support in all sorts of PCs, as the mono cards and monitors were virtually being given away. We used Turbo C and Turbo Pascal to write some TSRs that would monitor PC specs and we could hotkey out of most applications to a mono DOS window. We also wrote a quasi-networked bouncing ball program that would allow each monitor (two per PC) to be custom positioned in a virtual grid corresponding to the physical layout of the monitors in a 2x2 or 2x3 orientation. After moving to OS/2, I used to keep a handful of mono cards and monitors for dual heading my development systems, but by the time I started using Linux, it was just easier to set up obsolete computers running terminal. LOL, I used to have upwards of a dozen monitors on my desk so I could monitor our telephony systems live. This has led to the present day where I run two 49" 4K television as a monitor so I can stack up dozens of term and web browser windows. I am a sick, sick man. ;-)
Asteroids on this dual setup (dual 5153s) would be cool... Move to the edges of the screen and depending on what direction you are facing, come back on the opposite monitor.
Not sure if dual CGA is possible. The reason this worked is because CGA and MDA had different address ranges- IBM had actually considered dual monitors an option. If you were to use two CGA cards, you’d probably end up in a world of address conflicts instead. I do recall seeing an option for CGA-CGA in the SignMaster setup tho, but I’m not sure as to how that would work, or if that would simply cause the program to ignore the MDA card.
Mr. Truth you need to look at the capabilities of the MDA card. Namely, it has zero graphical capabilities outside of ASCII art and rudimentary functions like underline and boldface (high intensity). IBM didn’t even factor in graphics when they designed the MDA card, they didn’t think businessmen needed any other type of graphs outside of simple bar graphs.
VGA cards share the same address space, so it would have no way of independently addressing them. I think the best you could hope for would be a duplicated display, but I think that is unlikely to work.
misturchips, correct I used to do this with "turbo pascal 7 for windows with objects" (I've always remembered that product "name"). 286 with MDA & VGA cards. Windows (3.11) on the VGA screen text debugger on the MDA.
We used Autocad at work back in the ‘80s with dual monitors on IBM XTs and ATs. Initially we used proprietary colour cards (BNW) for the graphics window but later simply extended VGA. The only setting in Autocad to trigger this mode was whether the graphics screen would have a command line. If you set it to “no” it simply directed console output to the monochrome address, or at least to the IBM-standard display address not specified for the graphics window. The main usefulness of this was that more lines of command history were available and you get a tiny bit more drawing area.
Later era, but I've been hearing Command & Conquer uses the same method to show debug info. Apparently it still does in the release version because they assumed endusers won't have a setup like that. Might be worth investigating.
The classic use for this back in the day was to debug a program. If you ran the program on CGA the debug commands and display could go to the MDA monitor (since there were no windows back then). Most debuggers supported this including "debug" that came with DOS.
@@johndododoe1411 that was a long time ago! I don't believe there were debug commands, you had to convince debug it was running on a monochrome display (which memory mapped starting at b000:0000 if I remember correctly) and convince the graphics program it was running on CGA (which mapped to b800:0000). Since you were running the CGA program in the debugger you could skip the video mode detection if you had to. Then you could watch video and code at the same time on different screens. There may have been other combinations that worked, but debuggers gradually became capable of working with multiple displays on a single graphics card an monitor.
Not sure if anyone told you yet but the "wobble" you have on the monochrome is because it's not shielded well enough and is picking up the magnetic pulses from the CGA monitor. Place them further apart or a grounded aluminum shield between them to help eliminate it.
As kids, my friend and I wanted to make a flight sim program like Gunship where the pilot would have one monitor and the gunner would have another monitor. The issue is that you get to the point where you need more input (joysticks, keyboard, etc) than is worth your while.... then dual computer gaming started to come out (modem, ipx\spx...etc).
If I remember correctly, many early PC CAD programs had you edit the data on the MDA and show the resultant object's wire-frame representation on the CGA's 640*200 mode.
It is very cool, though I have to say it's more of a happy accident because of the architecture then actually being an intended feature. Probably why there is so little that took advantage of it, though I do like the idea of using the mono card for debugging info while running. That is a clever way of getting the data out without interfering with the game.
If they still peak your interests I have a dual monitor, color and green, dual case, 2 floppies in one and 2 hard drives in the other with this giant patch cable, setup with boxes of games and hardware. Some hardware was even prototype stuff. It would be a vehicle full of stuff.
Fun Fact: my 2013 Business laptop actually can be bought with FreeDOS installed. and it does work by default. I don't know how well it can run since i was just looking through directories, but it seemed snippy running over a USB drive that is WAYYY too big for a DOS machine (It was 8GB). but then again, a 240GB SSD is too much for DOS anyhow. If you want to know more about the laptop: The laptop is a HP EliteBook 840 G1 with an Intel i7-4600u and 8GB of ram, integrated GFX, 240GB Samsung drive pre-equipped from the factory, all the fancy stuff. The main reason i bought it was because i could buy a separate dock that uses an HP proprietary port to almost double the ports on the machine. Turns out my mom has a newer version of the laptop for her work and they gave her a dock and I'm using her dock because she gave it to me. also got my hands on another 2 power supplies after the one that came with mine wasn't outputting the correct power and the laptop was not charging correctly. She had like 3 or 4 so i grabbed another one for the dock so i don't have to worry about plugging in power every time. Sorry this might have been a useless waffle, OOPS
Awesome video! That setup does also work with MGA cards, you know. Hercules even cared about it and added a "half" mode for its graphics mode, to avoid that the video memory would overlap with CGA. :)
To fix the wobble, either put some space between the monitors, or stick a sheet of metal, like an ATX side panel, between the monitors to isolate the magnetic coils of the two monitors from each other. I used to run multi-monitor with CRTs before I replaced them all with LCDs, and had to deal with this all the time.
It is really color/graphics. You could display color or graphics. Displaying both at the same time was limited. Turbo debugger used two monitors at the same time. In color monitor you saw your program running, in monochrome you saw the debugger. The Hercules really had nothing to do with CGA. It was basically MDA with 64 KB memory and graphics mode (2 pages 720x348, though you could use only one page in two monitor systems). There was no support in BIOS for it so everything had to be done with direct manipulation with hardware. I think it is pretty cool that such a feature that has become common only recently was actually available on PC from the beginning.
I remember seeing MDA secondary monitor mentioned ONCE back in the 90s. It was on a shareware "mahjong" game. It would display the graphical playfield on the color monitor, and use an MDA display to show what tiles were still in play. SO EXCITING. That is the only time I ever saw this capability mentioned before today. The color screen in this case was PROBABLY VGA, but it has been years since I saw the shovelware CD that came on. No idea where it disappeared to.
A good example of an application that makes use of dual monitor setup is AutoCAD. You can probably find a copy of an early DOS version somewhere in the Internet.
TIP: You can fake 160x50 "pixel" graphics on the MDA. A full screenfull of text is 2000 bytes (80*25 * 2 bytes per character, 1 character 1 attribute), but the MDA itself has 4 KB of memory. Normally this is used for scrolling -- a register in the MDA holds a start address where the screen begins displaying from, and you can scroll without copying 2000 bytes around by manipulating this register. Another register controls the number of scanlines per character. If you set this to half the usual, you get 50 rows of 80 characters, with only the top half of each character displayed, taking 4000 bytes to show the whole screen. Set each character to either a space, a left-half-block, a right-half-block or a full block, and you can make 2 blocks per character cell, for a total "graphics" resolution of 160x50, with 3 possible "colors" for each "pixel" -- black, dim, and bright. Alternately you can make 80x50 nearly square "pixels" with no MDA hacks, simply by using to-half-block and bottom-half-block characters. I've experimented with the possibility of getting more "pixels" by racing the beam, but the PC simply isn't fast enough. That is, write characters that have roughly the pixels I want in the next scanline, then change them up during hblank. Alas, the 8088, ISA and MDA aren't fast enough. With a REP STOS instruction and all interrupts but DRAM refresh disabled, I managed to write a whopping FOUR characters in an hblank, which simply isn't enough to pull off a believable pixel mode. Some additional hackery with MDA registers may be possible though. (Just be sure never to modify the "output voltage" bit, which is a vestige left over from the CGA design -- this can permanently damage the monochrome monitor.)
I wish I had an IBM Professional Graphics System to send you! Those were super cool. It was an 8086 computer with 256k of RAM, that occupied 2 ISA slots in a 5150 and had a special monitor connector for its own monitor. It could do (for the time) incredible full color graphics, but it cost a fortune. The display modes were eventually folded in to the abilities of XGA onward but are generally not used by any applications or what-have-you. If you get the opportunity to get one, please jump on it! (And, obviously do a video on it :) )
I think that it was Mechwarrior I noticed using the monochrome display for debug information, with the VGA/EGA(?) display doing graphics; but it's been a very long time since I've played that game on a machine with multiple display adaptors and monitors (Hercules + M7 cards)
I think Lotus 2.x has the capability of displaying a spreadsheet in one monitor and its graph in the other one (given the one which is displaying the graph is not mda or sth like that. It should not support graphical capabilities).
ha ha I remember doing similar when I used to write computer games back in the 80s as I had to write for both screen types using Apricot F1 systems ... they actually offered me 2 of the computers back then for £80 each which was a good price ... lol i regret not buying there worth a lot more now there very rare but back then i was living with my parent so it was not a good idea as the last computer I had my step father took a hammer to the old computer i did not talk to them for a long time .. it was a intertec superbrain one of only a few made with a 3D graphics card yes ... i only ever seen one which I had which was a prototype and my step father took a hammer too it ... I cried!
Interesting video, thanks. Beat you to this though, my first pc was an XT clone and I got both CGA/Herc cards. Had no money for monitors, so, with the help of an electronics whiz friend, cannibalized a text terminal for the hercules card, and used an old TV with an adapter to connect via RCA jacks for the CGA. So I could run Flight Simulator on the CGA, and/or do other/text work on the mono one. Yup, not at the same time, and used same mode commands as you found. This was around 1984, I think, so a while back, and yes, I was 33 at the time... :) RichE San Diego, CA
The HGC also uses a 6845 CRTC chip. A major difference between the MDA and HGC was the amount of video RAM on board, which allowed the HGC to do hires graphics modes.
The other major difference was the logic circuits that bypassed the font ROM in 32K graphics mode (720x352). For some reason there was no 64K mode with intensity control.
10:24 Wait, - what? You were trying to install a program that was 177 MB on an IBM PC XT? Going completely from memory, my best guess is that the hard drives of the time came in 5 MB, 10 MB, and possibly 20 MB. That you were trying to install a program that is a factor of ten over the size of those drives should have been a warning from the start.
You could get bigger. The Seagate ST-238 (RLL) was a 32Mb drive that worked quite well with the Adaptec 2070a controller. Compaq MS-DOS 3.31 allowed you to enjoy partitions greater than 32Mb. There was also the ST-251-1 (MFM) at 42Mb. Nice little drive. A final example would be the Mitsubishi MR-535R, another RLL drive at 60Mb. All available for the XT. But, yes, 177Mb should have been a hint. :)
I just bought that Graphics Programming in C book! I have a bunch of other graphics-related programming books for early IBM PCs - there were so many of them.
yea, thats cool. That "mode ..." switching is not bad when your color monitor is a 21" on a EGA/VGA, which could be set to 132 x 60. Actually you should be able to do something similar but replace the MDA card with a Hercules (I think they use the same address), and set that up for hi-res text (100x33 or similar?). Anyway, I have done the same on an AtariST, Color TV & Mono Monitor :) gotta love those hires fonts on mono screens, the Herc had some really beautiful font available .. and I think there were some mods/enhancements you could do to the card to get some higher resolutions, or higher res text mods (cant remember exactly, it was 35+ years ago I was playing around with them) ..
Turbo Pascal did use dual monitors for debugging. I'm not sure what versions supported it. I had to be version 6 or 7 maybe 5 too. I did this for a time, so I know it works.
Didn't Lotus 1-2-3 and/or some cad program have dual monitor support on early PC's? I could be wrong, wish I could remember the actual names of the programs. AutoCAD might have supported graphics on one screen and text on the other. Edit: Yep, found the article mentioning the programs: en.wikipedia.org/wiki/Video_Graphics_Array#Addressing_details
If you can get your hands on the CodeView debugger (part of Microsoft QuckC but also other compilers such as Visual Basic for DOS) you can run the debugger on one screen while the program you're debugging is running on the other screen. It worked really well and was much easier than using a single screen: if you wanted to use CodeView to debug a DOS program on a single screen, it would switch back and forth between the DOS screen and the QuickView screen and while you single-step, that gets pretty annoying.
I run 1-2-3 on my 5150 with spresdsheet on MDA+5151 and graphs on CGA+5153. Still looking for an early version of AutoCAD that would run on my setup, because I'm sure dual monitor use was a standard there. I even bought an 8087 for that purpose!
Borland Pascal supported dual screens. I was on a 386sx at the time, but it did allow both. Code on the MDA, while debugging the app running on the VGA.
I wonder if you could modify Windows 3.11 or similar to run with 2 monitors. It would be cool to see windows with that much real estate. of course you're limited by the color and monochrome displays, but it would be so cool to have a dual monitor windows setup using all original components.
If the caps are in that state, I would be very reluctant in continuing to use the the monitor before completely replacing the electrolytics. Ive seen and repaired many monitors that have failed from continued use with old leaky caps (electrically and physically) that cause other problems taking out other more expensive and sometimes rare components like switching transistors etc.
Well, RHIDE was part of the DJGPP environment, which was all about being able to use 32-bits protected mode in DOS using the GO32 extender (just like Watcom did with DOS/4G). Building a 16 bit version wouldn't even be possible. GWBASIC may also be able to write to both screens in a simple way. SCREEN will allow you to choose one display or another, although it will probably clear the screen each time. However, you could always write directly to the screen with a DEF SEG=&HB800 or B000 followed by POKES just like your assembly code does.
I didn't even know that PCs could support multiple monitors as far as 1981. I remember it being in Win98. I have read about Macs supporting multiple monitors in 1986 with the Macintosh II desktop.
Would have been cool to run, say, Turbo Pascal on one monitor and then have the other monitor available to run a program being developed in Turbo Pascal to execute such that could see its screen output. I guess Turbo Pascal would need to be able to make itself run as a TSR so that the program being developed could be viewed as running as the normal DOS program. Now the 640K memory would have to be shared, but originally Turbo Pascal only supported creating com programs that ran in a 64K memory address space. Bet a Pascal program like, say, Planet X could have been developed like this (yeah, I know it was written in assembly but would be great to write comparable games in Pascal or C)
I have done a VGA CGA MDA tripple IBM XT screen setup, the setup was cable hell, all factory default cable length was evil short for all ergonomics screen furniturings :-( had better succsess doing this tripple xt screen setup with an A2000, A2088xt setup with and fourth screen in PAL mastercontrol OS We actually had a small classroom setuped with original IBM XT dual screens for GW-Basic Classes in 1991
I use the video out on the CGA card on my 5155 to my TV. The inbuild monochrome monitor still shows whatever is on the screen, even if it is a game in CGA mode (albeit in mono). It would be interesting to see if it can output out of the CGA port at the same time as well, for three screens.
Nice, I'm glad you're like one of the few I hit the bell icon for! I wonder if you and Dave from the 8-Bit Guy could work together and add dual monitor support for his in development DOS game.
That would require writing to both graphics card at the same time, I don't think an 8086 (or 8088?) could do that in an efficient way.. (someone correct me please)
How about double dos? I recall using it to run two different applications and switch between them in the mid 80s. Perhaps you can run an application on each monitor and switch between them?
Yeah DJGPP definitely requires a 32bit processor to run. You can't really do a port of GCC to a 16bit segmented architecture like the old x86 processors. Any version of the borland compiler up to 5 should work though, as will turbo C, and possibly watcom. Watcom was mostly well known for its 32bit protected mode compilers, but it does come with 16bit tools as well. Not certain if the debugger is a 16bit program though, can't recall right now. I'd go with borland for this demonstration. BTW I could help you write some demo program which does something interesting with the two monitors if you like. I wouldn't have any way to test it here, as I don't have an MDA or hercules, but if I can assist in making a cool followup video about this, it could be fun.
I don't currently have a Hercules card and I think I should wait to do any follow ups on this until I do. Monochrome graphics will be the most interesting thing to try and that's what I would really need. Someone else had commented that starting with something simpler than my Battlezone clone would make more sense as a less complicated test. I was going to do that as part of the development process anyway, but I liked their specific example of a Battleship clone. So I'll probably do that since it should be very simple to code. I appreciate the offer for help, I haven't had much time to put towards ASM recently as I've had more pressing projects to get done. But when I come back around to it if I run into any problems I'll keep that in mind!
I know I'm 5 years too late, but it's really common for one monitor's magnetic field to interfere with another's sitting nearby. That's probably where the wobble is coming from.
I seem to recall people using two computers telnetting to the host computer whilst using a TSR application(like xtree? or norton commander) for a sort of dual screen effect. this way you could read a document whilst still being able to access the filesystem from the other computer. Not sure if we were on XT/ATs by that stage.
That's interesting how you can write to both. I can see how this would be under supported though. This sounds like a very cost prohibited setup for a lot of end users back in the day
IBM PC & XT Assembly Language(1985): 0-89303-575-0 I wouldn't recommend this book unless you are programming specifically on a PC or XT as it is very rough around the edges and doesn't make it easy to understand. It is also heavily geared towards MASM and I recommend you switch assemblers after chapter 3 to something with less boilerplate like a86. Graphics Programming in C(1989): 1-55851-018-4 I haven't started on this book at all. I want to be fluent in ASM before I start it so I can adapt the C examples to ASM for performance reasons. However I do like that the book doesn't just focus on raw hardware access. It also has higher level examples of graphics such as how to do math for 3D on a 2D plane. But it does have a C library for a lot of video card access. I doubt you could find a download of it online. But the last 1/3(200+ pages) of the book does have it written out in it. So if you are determined, you could have the fun of typing it all in. I bid you good luck on finding them, they are very old and uncommon from what I've looked up about them. I thought it would be nice to have some OCR'd PDFs but I don't think these have found their way to anyone who does that. I only have them because I look for books like this while at thrift stores.
@@TechTangents thanks man! It's hard for me to locally source such specific and old books where I'm at. I've been on a kick of doing things from scratch, I'd prefer some books that go into raw graphics access and ones that don't have libraries that do it for you, so I'm not too sure about that C book. I've been wanting to do some raw x86 DOS based coding for a while and want to find the resources that are period appropriate, such as IDEs, compilers and books. Any hints?
The library in the C book isn't like a library in Python where you just do "import do-all-the-work" and say you wrote a graphics program. It's more about making an API for the video cards so it isn't as burdensome to work with in C. So if your concern is the library preventing you from learning, I wouldn't worry about it. Plus the entire source is in the book, so you can get as deep into is as you want. There is a balance between doing it the original way and not having to make the same mistake everyone made then. Old ASM is over complicated with extra commands for a specific assembler that don't work with other ones. Nobody uses the original assemblers now from what I've seen, they are too painful to work with. An "IDE" wasn't really a thing back then either. You had a text editor (the ASM book mentions WordStar as an option), an assembler, and a debugger. All separate programs. RHIDE is a newer program that back ports GNU applications to work on older computers under an IDE. I don't have a recommendation on a specific books. I would say look around and see what most people seem to like.
@AkBKukU Found one on an obscure russian site, it has the same ISBN, and is OCR'd and everything: drive.google.com/file/d/1RJvzIuOalR4sPXHh3BGLsBrChAAVYE4D/view?usp=sharing
This is really cool, I thought the DEC Rainbow 100 was the only machine capable of dual monitor at that kind of time. Autodesk AutoCAD 2.6 for MS-DOS on the Rainbow allows dual monitor support if I remember correctly, not sure if the IBM PC version ever did. Under CP/M I've seen the GSX Draw command draw colour graphics on the Rainbow's VR241 colour monitor while the VR201 monochrome display still shows the fully functional CP/M command prompt. I don't know of anything else on the Rainbow that supports it but perhaps since the dual monitor option was only ever documented and never officially supported by DEC (it requires a custom made cable since an official one was never produced), AutoCAD on the IBM PC may have had some sort of dual head option in one of it's versions as well at some point.
5:34 Could your problem be that putting the monitors side-by-side like that is causing interference? Could the magnets in one monitor be affecting the display of the other? Edit: 13:42 Good for you. You figured it out.
The SHELL, FILES and FCBS settings belong to CONFIG.SYS, not AUTOEXEC.BAT. ;)
You beat me to it! :)
Woops, now I go back and re-read the directions it clearly states that. Don't make assumptions while sick I guess. Oh well, it needed a 386 anyway so that wasn't the problem.
@NanosparkLP: Yeah, normally I'm the one who checks the comments section just to find out that roughly 100 others already wrote what I was about to write. ^^
Made the comment and just see your right below. Liked!
I'm pretty sure AutoCAD supports dual displays like this, with the command line on the mono chrome monitor and the drawing on the color screen. There's a reference to it in the help files for R11.
Yup, I remember doing this with ACAD, worked perfectly. It's so long ago but I think maybe Lotus 123 could do it - don't take my word for it though.
We typically did it the other way around while using Hercules monochrome, because resolution of color modes on CGA were lower than Hercules monochrome. (CGA 320x200 with 4 colors or 640x200 with 2 colors, vs HGC 720x350)
Later on I think I used a vga card with vga monitor and a hercules mono card on the old green screen together.
My high school’s drafting lab had this setup, and I believe we had R2.6 or something.
I think it was 286/386 for Autocad .. At the time I mentioned playing with dual monitors, a guy came over from Aussie with a Plasma display 386 "portable" (more like transportable - the standup box with detachable keyboard over the screen) running the latest AutoCAD release ..
I'm not sure it will run on a 5150, but Borland's Turbo Debugger had support for dual monitors. It was a feature commonly used to debug Windows 3.x apps, with Turbo Debugger running on the monochrome screen and the Windows GUI on the other.
Also I vaguely recall Turbo C & Turbo Pascal had dual monitor support. Turbo Pascal 6.0 might run on the 5150.
I think I read that Win 3.X had some other stuff going on and that was well into the time of VGA cards so the chances of that working on my CGA setup aren't good.
Thanks for the tip on Turbo Pascal 6.0! I grabbed a copy off Winworld and will give it a shot later.
A typesetting software called SignMaster also supported dual monitors. Had a lot of fun messing with that on my Sharp PC-7000A back in the day (and yeah, you can do that on the PC-7000A. The LCD can switch between MDA or CGA, but if you got the CGA output option, that card operates independently of the onboard display adapter and is locked to CGA). Pretty cool that allowed me to edit the text on one screen and render the page layout to another.
Additionally, a pinball game called wizard actually shows the pinball playfield on the CGA display while showing the scoring on the MDA display.
And yeah, my PC-7000A was actually set up to run that way permanently because I thought it was awesome.
I used to run Turbo Debugger in dual-monitor mode on my 286 (I think). It was great for setting breakpoints in VGA/EGA games and modifying memory without disrupting the graphics register setup. At one point I wrote a "door driver" for BBSes in Pascal that would let you watch the player playing a game on the color screen w/ANSI graphics, while displaying session information on the second, monochrome screen. Those were the days!
Yeah, used this dual monitor support with Turbo C and Turbo Pascal exhaustively back in the day.
The wobble on the mono crt is probably the two monitors' yoke coils interfering... Space the two farther apart and it'll probably decrease. Edit: ahh I see you did later in the video :)
Separate the yolk ? :D
*YOKE*
You could probably use an old (60's/70's) metal bookshelf divider (or just a plain sheet of metal) and have them sitting "that close"
Yes, I have an 5151 and a 5153 and I had them placed next to each other and it looked the exact same as in the video.
5153 Recap video?
It's coming up next!
Meh. recapping isn't anything new. Big thing here (especially in a CRT) is to make sure the caps are discharged first. The tube itself ALSO acts as a capacitor, so make sure to discharge that too (or just wait for it to discharge on it's own).
That's pretty neat, I didn't realise the origins of dual monitor went back as far as that. Another idea for a game that would work well on that setup would be Battleships; where each players grid shows on a separate monitor (facing away from each other) and the keyboard is passed between them.
It would be cool if The 8-Bit Guy added dual monitor support for Planet X3 even if it’s just a monochrome status information screen it would be neat. Great video as usual!
Maybe for the inevitable X4 instead, preferably including a serial LCD option for machines that don't have dual-monitor abilities.
Used it for turbopascal , the textmode was much more better on MDA/hercules. So config the turbo on monocrom and let him put out the result on CGA , or VGA hires
Same here. Turbo Pascal + Hercules + Tseng ET3000 SVGA in the late 80's. Great for step by step debugging game development
Just my tips, hopefully I don't bore you or anyone (khmmm, too much ...): You don't need to change data segment register (DS) to 0xB000 and 0xB800. Since the segmentation model, you can just set 0xB000, and write offset 0 and 0x8000 and it will the same result to write offset 0 at segment 0xB000 and offset 0 at segment 0xB800 (yeah, 0x800 part in segment vs 0x8000 in segment, as segment is a 16 byte unit of address at least in real mode on x86 ... what pre-286 CPUs had only). It would allow you to avoid always changing a segment register which would slow your app down. However. I would use ES not DS, since a real app need its data segment to, pointed by DS, so it's better to use ES for addressing the screen as the segment register. Also some handy opcodes would use ES by default as target segment anyway, like movsb and stosb ... So in some cases it even helps further. Surely, code optimization in assembly "by hand" is a tricky business anyway, I used to count clock cycles needed for a given opcode, to figure out what is faster and what is not, on PC, and before (like on Commodore 64) too.
Great video... Absolutely love your stuff. Lotus 1-2-3 for productivity and Borland Turbo Debugger for development are excellent candidates for a dual screen setup on a 5150. Very easy to setup. Just used it with my 5150 and it's really awesome. Really adds another dimension to using this hardware.
I had a 5150 as a kid and took out the CGA card and put it in a 286 with a build in Hercules card. I had both monitors setup and after a lot of tinkering found the mode command and switched between them for games and stuff. I could choose low resolution and bad colors or sharp resolution but orange. what a choice!
There are (original) 286 and 386 upgrade cards for the PC, if you *really* wanted to get into the rabbit hole :) (ISA card with a ribbon cable going to the 8088 socket)
Still pretty legit, even if you couldn't get the programs working!
That would make a cool video. It might be difficult to find that board though.
Damn they're rare now huh? I probably had a bunch of them. Now only my 286 card isn't in use
The assembly proof of concept was enough for me. In fact, that's better than seeing the programs running, as you can actually see what those programs are doing in the background.
Back in 1990ish, we used to use this dual monitor support support in all sorts of PCs, as the mono cards and monitors were virtually being given away.
We used Turbo C and Turbo Pascal to write some TSRs that would monitor PC specs and we could hotkey out of most applications to a mono DOS window. We also wrote a quasi-networked bouncing ball program that would allow each monitor (two per PC) to be custom positioned in a virtual grid corresponding to the physical layout of the monitors in a 2x2 or 2x3 orientation.
After moving to OS/2, I used to keep a handful of mono cards and monitors for dual heading my development systems, but by the time I started using Linux, it was just easier to set up obsolete computers running terminal. LOL, I used to have upwards of a dozen monitors on my desk so I could monitor our telephony systems live.
This has led to the present day where I run two 49" 4K television as a monitor so I can stack up dozens of term and web browser windows. I am a sick, sick man. ;-)
Asteroids on this dual setup (dual 5153s) would be cool... Move to the edges of the screen and depending on what direction you are facing, come back on the opposite monitor.
Not sure if dual CGA is possible. The reason this worked is because CGA and MDA had different address ranges- IBM had actually considered dual monitors an option. If you were to use two CGA cards, you’d probably end up in a world of address conflicts instead.
I do recall seeing an option for CGA-CGA in the SignMaster setup tho, but I’m not sure as to how that would work, or if that would simply cause the program to ignore the MDA card.
But Asteroids like battlezone is vector based and wouldn't vector graphics be less resource intensive than CGA?
Mr. Truth you need to look at the capabilities of the MDA card. Namely, it has zero graphical capabilities outside of ASCII art and rudimentary functions like underline and boldface (high intensity). IBM didn’t even factor in graphics when they designed the MDA card, they didn’t think businessmen needed any other type of graphs outside of simple bar graphs.
@@RAMChYLD Problems with CGA-CGA: not if you got a 3rd party CGA that had a swtch block or jumper block to change the I/O or Address
This is rad. I wonder what will happen if I put two VGA cards in my 286? .... probably a small fire.
VGA cards share the same address space, so it would have no way of independently addressing them. I think the best you could hope for would be a duplicated display, but I think that is unlikely to work.
You can put a VGA card and a hercules card in a 286 and rock your casbah!
misturchips, correct I used to do this with "turbo pascal 7 for windows with objects" (I've always remembered that product "name"). 286 with MDA & VGA cards. Windows (3.11) on the VGA screen text debugger on the MDA.
@@TechTangents the VGA for a 5150 etc should have a switch block to change the I/O or Address space ..
We used Autocad at work back in the ‘80s with dual monitors on IBM XTs and ATs. Initially we used proprietary colour cards (BNW) for the graphics window but later simply extended VGA. The only setting in Autocad to trigger this mode was whether the graphics screen would have a command line. If you set it to “no” it simply directed console output to the monochrome address, or at least to the IBM-standard display address not specified for the graphics window. The main usefulness of this was that more lines of command history were available and you get a tiny bit more drawing area.
Later era, but I've been hearing Command & Conquer uses the same method to show debug info. Apparently it still does in the release version because they assumed endusers won't have a setup like that. Might be worth investigating.
The classic use for this back in the day was to debug a program. If you ran the program on CGA the debug commands and display could go to the MDA monitor (since there were no windows back then).
Most debuggers supported this including "debug" that came with DOS.
What were the debug commands for that?
@@johndododoe1411 that was a long time ago! I don't believe there were debug commands, you had to convince debug it was running on a monochrome display (which memory mapped starting at b000:0000 if I remember correctly) and convince the graphics program it was running on CGA (which mapped to b800:0000). Since you were running the CGA program in the debugger you could skip the video mode detection if you had to.
Then you could watch video and code at the same time on different screens.
There may have been other combinations that worked, but debuggers gradually became capable of working with multiple displays on a single graphics card an monitor.
Not sure if anyone told you yet but the "wobble" you have on the monochrome is because it's not shielded well enough and is picking up the magnetic pulses from the CGA monitor. Place them further apart or a grounded aluminum shield between them to help eliminate it.
As kids, my friend and I wanted to make a flight sim program like Gunship where the pilot would have one monitor and the gunner would have another monitor. The issue is that you get to the point where you need more input (joysticks, keyboard, etc) than is worth your while.... then dual computer gaming started to come out (modem, ipx\spx...etc).
Takes me back: the favoured way to debug Windows programs was to use a VGA card for Windows 2.x and an MDA adapter for CodeView. That was about 1990.
Pretty sure Borland's debugger supported this too.
If I remember correctly, many early PC CAD programs had you edit the data on the MDA and show the resultant object's wire-frame representation on the CGA's 640*200 mode.
Love that warning label on the power supply. Danger zone!
Some might call it a 'zone' of danger Lana.
It is very cool, though I have to say it's more of a happy accident because of the architecture then actually being an intended feature. Probably why there is so little that took advantage of it, though I do like the idea of using the mono card for debugging info while running. That is a clever way of getting the data out without interfering with the game.
you sir, are completely nuts - in a good way
I think Turbo Pascal or Borland Pascal (can't recall the version) supported running the debugger on a mono monitor.
Me too... even in the 90s.
These machines are so beautiful. Image a modernized internals, and gpt-4 and next versions, with their text interface...
If they still peak your interests I have a dual monitor, color and green, dual case, 2 floppies in one and 2 hard drives in the other with this giant patch cable, setup with boxes of games and hardware. Some hardware was even prototype stuff. It would be a vehicle full of stuff.
I'm big into old IBM and vintage computers in general and I'd be very interested in that!
@@HerculesMays where do you live?
Fun Fact: my 2013 Business laptop actually can be bought with FreeDOS installed. and it does work by default. I don't know how well it can run since i was just looking through directories, but it seemed snippy running over a USB drive that is WAYYY too big for a DOS machine (It was 8GB). but then again, a 240GB SSD is too much for DOS anyhow.
If you want to know more about the laptop:
The laptop is a HP EliteBook 840 G1 with an Intel i7-4600u and 8GB of ram, integrated GFX, 240GB Samsung drive pre-equipped from the factory, all the fancy stuff. The main reason i bought it was because i could buy a separate dock that uses an HP proprietary port to almost double the ports on the machine. Turns out my mom has a newer version of the laptop for her work and they gave her a dock and I'm using her dock because she gave it to me. also got my hands on another 2 power supplies after the one that came with mine wasn't outputting the correct power and the laptop was not charging correctly. She had like 3 or 4 so i grabbed another one for the dock so i don't have to worry about plugging in power every time.
Sorry this might have been a useless waffle, OOPS
That's amazingly cool to see in action. It's fantastic what these are capable of with some clever thinking (and a fair few cards, of course!).
Awesome video! That setup does also work with MGA cards, you know.
Hercules even cared about it and added a "half" mode for its graphics mode,
to avoid that the video memory would overlap with CGA. :)
You could even swap out either MDA or CGA (I forget which) for a PGA, though that admittedly would be hard to find.
Great video AkBkukU! Really like this channel P.S. I can't figure out why people dislike your videos
To fix the wobble, either put some space between the monitors, or stick a sheet of metal, like an ATX side panel, between the monitors to isolate the magnetic coils of the two monitors from each other. I used to run multi-monitor with CRTs before I replaced them all with LCDs, and had to deal with this all the time.
It is really color/graphics. You could display color or graphics. Displaying both at the same time was limited. Turbo debugger used two monitors at the same time. In color monitor you saw your program running, in monochrome you saw the debugger.
The Hercules really had nothing to do with CGA. It was basically MDA with 64 KB memory and graphics mode (2 pages 720x348, though you could use only one page in two monitor systems). There was no support in BIOS for it so everything had to be done with direct manipulation with hardware.
I think it is pretty cool that such a feature that has become common only recently was actually available on PC from the beginning.
bits per pixel. The trade off between colour, ram and resolution.
I remember seeing MDA secondary monitor mentioned ONCE back in the 90s. It was on a shareware "mahjong" game. It would display the graphical playfield on the color monitor, and use an MDA display to show what tiles were still in play. SO EXCITING.
That is the only time I ever saw this capability mentioned before today. The color screen in this case was PROBABLY VGA, but it has been years since I saw the shovelware CD that came on. No idea where it disappeared to.
The files, fcbs and shell lines must be in the config.sys file, not autoexec.bat.
I was going to mention that earlier. Either way it won't help getting RHIDE working, as all the DJGPP stuff requires at least a 386.
A good example of an application that makes use of dual monitor setup is AutoCAD. You can probably find a copy of an early DOS version somewhere in the Internet.
TIP: You can fake 160x50 "pixel" graphics on the MDA. A full screenfull of text is 2000 bytes (80*25 * 2 bytes per character, 1 character 1 attribute), but the MDA itself has 4 KB of memory. Normally this is used for scrolling -- a register in the MDA holds a start address where the screen begins displaying from, and you can scroll without copying 2000 bytes around by manipulating this register. Another register controls the number of scanlines per character. If you set this to half the usual, you get 50 rows of 80 characters, with only the top half of each character displayed, taking 4000 bytes to show the whole screen. Set each character to either a space, a left-half-block, a right-half-block or a full block, and you can make 2 blocks per character cell, for a total "graphics" resolution of 160x50, with 3 possible "colors" for each "pixel" -- black, dim, and bright.
Alternately you can make 80x50 nearly square "pixels" with no MDA hacks, simply by using to-half-block and bottom-half-block characters.
I've experimented with the possibility of getting more "pixels" by racing the beam, but the PC simply isn't fast enough. That is, write characters that have roughly the pixels I want in the next scanline, then change them up during hblank. Alas, the 8088, ISA and MDA aren't fast enough. With a REP STOS instruction and all interrupts but DRAM refresh disabled, I managed to write a whopping FOUR characters in an hblank, which simply isn't enough to pull off a believable pixel mode. Some additional hackery with MDA registers may be possible though.
(Just be sure never to modify the "output voltage" bit, which is a vestige left over from the CGA design -- this can permanently damage the monochrome monitor.)
I’m also sure that this would not work out on certain clone machines or clone MDA cards.
What is that output voltage register you refer to, I don't remember it from the diagrams.
I wish I had an IBM Professional Graphics System to send you! Those were super cool. It was an 8086 computer with 256k of RAM, that occupied 2 ISA slots in a 5150 and had a special monitor connector for its own monitor. It could do (for the time) incredible full color graphics, but it cost a fortune. The display modes were eventually folded in to the abilities of XGA onward but are generally not used by any applications or what-have-you. If you get the opportunity to get one, please jump on it! (And, obviously do a video on it :) )
I think that it was Mechwarrior I noticed using the monochrome display for debug information, with the VGA/EGA(?) display doing graphics; but it's been a very long time since I've played that game on a machine with multiple display adaptors and monitors (Hercules + M7 cards)
I think Lotus 2.x has the capability of displaying a spreadsheet in one monitor and its graph in the other one (given the one which is displaying the graph is not mda or sth like that. It should not support graphical capabilities).
Awesome idea to directly write into the memory addresses of both cards at once :)
ha ha I remember doing similar when I used to write computer games back in the 80s as I had to write for both screen types using Apricot F1 systems ... they actually offered me 2 of the computers back then for £80 each which was a good price ... lol i regret not buying there worth a lot more now there very rare but back then i was living with my parent so it was not a good idea as the last computer I had my step father took a hammer to the old computer i did not talk to them for a long time .. it was a intertec superbrain one of only a few made with a 3D graphics card yes ... i only ever seen one which I had which was a prototype and my step father took a hammer too it ... I cried!
Interesting video, thanks. Beat you to this though, my first pc was an XT clone and I got both CGA/Herc cards. Had no money for monitors, so, with the help of an electronics whiz friend, cannibalized a text terminal for the hercules card, and used an old TV with an adapter to connect via RCA jacks for the CGA. So I could run Flight Simulator on the CGA, and/or do other/text work on the mono one. Yup, not at the same time, and used same mode commands as you found.
This was around 1984, I think, so a while back, and yes, I was 33 at the time... :)
RichE San Diego, CA
The HGC also uses a 6845 CRTC chip. A major difference between the MDA and HGC was the amount of video RAM on board, which allowed the HGC to do hires graphics modes.
The other major difference was the logic circuits that bypassed the font ROM in 32K graphics mode (720x352). For some reason there was no 64K mode with intensity control.
This is such high quality content! Big fan of the channel
Dual screen back in those days was really nice for debugging. You could run you program and have the debugger on your monochrome screen.
10:24 Wait, - what? You were trying to install a program that was 177 MB on an IBM PC XT? Going completely from memory, my best guess is that the hard drives of the time came in 5 MB, 10 MB, and possibly 20 MB. That you were trying to install a program that is a factor of ten over the size of those drives should have been a warning from the start.
You could get bigger. The Seagate ST-238 (RLL) was a 32Mb drive that worked quite well with the Adaptec 2070a controller. Compaq MS-DOS 3.31 allowed you to enjoy partitions greater than 32Mb. There was also the ST-251-1 (MFM) at 42Mb. Nice little drive. A final example would be the Mitsubishi MR-535R, another RLL drive at 60Mb. All available for the XT.
But, yes, 177Mb should have been a hint. :)
Cool video. I have run across talk about the dual monitor setup but never bothered with it for the same reasons with my IBM XT
I just bought that Graphics Programming in C book! I have a bunch of other graphics-related programming books for early IBM PCs - there were so many of them.
I love these old characters displays. Nice videos!
You make me want to learn Assembler and C just to write weird software on early PCs. Just seems more exciting than more modern stuff.
yea, thats cool. That "mode ..." switching is not bad when your color monitor is a 21" on a EGA/VGA, which could be set to 132 x 60. Actually you should be able to do something similar but replace the MDA card with a Hercules (I think they use the same address), and set that up for hi-res text (100x33 or similar?). Anyway, I have done the same on an AtariST, Color TV & Mono Monitor :) gotta love those hires fonts on mono screens, the Herc had some really beautiful font available .. and I think there were some mods/enhancements you could do to the card to get some higher resolutions, or higher res text mods (cant remember exactly, it was 35+ years ago I was playing around with them) ..
Turbo Pascal did use dual monitors for debugging. I'm not sure what versions supported it. I had to be version 6 or 7 maybe 5 too. I did this for a time, so I know it works.
Didn't Lotus 1-2-3 and/or some cad program have dual monitor support on early PC's? I could be wrong, wish I could remember the actual names of the programs. AutoCAD might have supported graphics on one screen and text on the other.
Edit: Yep, found the article mentioning the programs: en.wikipedia.org/wiki/Video_Graphics_Array#Addressing_details
Dual monitors for DOS are epic for software debugging.
Thanks. Showing this brings back memories.
If you can get your hands on the CodeView debugger (part of Microsoft QuckC but also other compilers such as Visual Basic for DOS) you can run the debugger on one screen while the program you're debugging is running on the other screen. It worked really well and was much easier than using a single screen: if you wanted to use CodeView to debug a DOS program on a single screen, it would switch back and forth between the DOS screen and the QuickView screen and while you single-step, that gets pretty annoying.
Im very certain early versions of AutoCAD would run duel screens but I think it required a Hercules card, not MDA
Subscribed, this is just the sort of thing I'm into.
Nice, we used that Mano Digital Logic book in college, it's excellent.
I run 1-2-3 on my 5150 with spresdsheet on MDA+5151 and graphs on CGA+5153. Still looking for an early version of AutoCAD that would run on my setup, because I'm sure dual monitor use was a standard there. I even bought an 8087 for that purpose!
Borland Pascal supported dual screens. I was on a 386sx at the time, but it did allow both. Code on the MDA, while debugging the app running on the VGA.
I like your videos- interesting variety of hardware and actually using stuff
Turbo Debugger was capable of using a Mono monitor for realtime debugging with the application running on the main display.
FUN FACT, IBM HAD A SCALE DIVISION, CALLED DAYTON. ALSO CASH REGISTERS ASWELL
I wonder if you could modify Windows 3.11 or similar to run with 2 monitors. It would be cool to see windows with that much real estate. of course you're limited by the color and monochrome displays, but it would be so cool to have a dual monitor windows setup using all original components.
If the caps are in that state, I would be very reluctant in continuing to use the the monitor before completely replacing the electrolytics. Ive seen and repaired many monitors that have failed from continued use with old leaky caps (electrically and physically) that cause other problems taking out other more expensive and sometimes rare components like switching transistors etc.
Try switch between monitors using int 10h AH=5. Before you can see active pages in mono and color mode by int 10h AH=15
Well, RHIDE was part of the DJGPP environment, which was all about being able to use 32-bits protected mode in DOS using the GO32 extender (just like Watcom did with DOS/4G). Building a 16 bit version wouldn't even be possible.
GWBASIC may also be able to write to both screens in a simple way. SCREEN will allow you to choose one display or another, although it will probably clear the screen each time. However, you could always write directly to the screen with a DEF SEG=&HB800 or B000 followed by POKES just like your assembly code does.
for your 1st app, you could try an "ALT+TAB" console switcher, so the screen doesn't CLS, and you dont have to type anything ..
CodeView and QuickBasic uses this setup for interactive debugging.
I didn't even know that PCs could support multiple monitors as far as 1981. I remember it being in Win98. I have read about Macs supporting multiple monitors in 1986 with the Macintosh II desktop.
Would have been cool to run, say, Turbo Pascal on one monitor and then have the other monitor available to run a program being developed in Turbo Pascal to execute such that could see its screen output. I guess Turbo Pascal would need to be able to make itself run as a TSR so that the program being developed could be viewed as running as the normal DOS program. Now the 640K memory would have to be shared, but originally Turbo Pascal only supported creating com programs that ran in a 64K memory address space. Bet a Pascal program like, say, Planet X could have been developed like this (yeah, I know it was written in assembly but would be great to write comparable games in Pascal or C)
I have done a VGA CGA MDA tripple IBM XT screen setup, the setup was cable hell, all factory default cable length was evil short for all ergonomics screen furniturings :-( had better succsess doing this tripple xt screen setup with an A2000, A2088xt setup with and fourth screen in PAL mastercontrol OS
We actually had a small classroom setuped with original IBM XT dual screens for GW-Basic Classes in 1991
A program that works like linux screen would be useful, allow you to direct inputs wth a keyboard command to two programs running at the same time.
AutoCAD could use 2 screen setups, but as said it required more than an XT could provide (arithmetic coprocessor).
I use the video out on the CGA card on my 5155 to my TV. The inbuild monochrome monitor still shows whatever is on the screen, even if it is a game in CGA mode (albeit in mono).
It would be interesting to see if it can output out of the CGA port at the same time as well, for three screens.
Nice, I'm glad you're like one of the few I hit the bell icon for! I wonder if you and Dave from the 8-Bit Guy could work together and add dual monitor support for his in development DOS game.
That would require writing to both graphics card at the same time, I don't think an 8086 (or 8088?) could do that in an efficient way..
(someone correct me please)
This is really interesting my friend. Pretty cool
How about double dos? I recall using it to run two different applications and switch between them in the mid 80s. Perhaps you can run an application on each monitor and switch between them?
Did you try lotus 1-2-3? Supposedly you can do spreadsheets on the mono and graphs on the CGA.
Yeah DJGPP definitely requires a 32bit processor to run. You can't really do a port of GCC to a 16bit segmented architecture like the old x86 processors. Any version of the borland compiler up to 5 should work though, as will turbo C, and possibly watcom. Watcom was mostly well known for its 32bit protected mode compilers, but it does come with 16bit tools as well. Not certain if the debugger is a 16bit program though, can't recall right now. I'd go with borland for this demonstration.
BTW I could help you write some demo program which does something interesting with the two monitors if you like. I wouldn't have any way to test it here, as I don't have an MDA or hercules, but if I can assist in making a cool followup video about this, it could be fun.
I don't currently have a Hercules card and I think I should wait to do any follow ups on this until I do. Monochrome graphics will be the most interesting thing to try and that's what I would really need.
Someone else had commented that starting with something simpler than my Battlezone clone would make more sense as a less complicated test. I was going to do that as part of the development process anyway, but I liked their specific example of a Battleship clone. So I'll probably do that since it should be very simple to code.
I appreciate the offer for help, I haven't had much time to put towards ASM recently as I've had more pressing projects to get done. But when I come back around to it if I run into any problems I'll keep that in mind!
I can't even setup a dual monitor on a modern pc. Then you do this. Excuse me what the heck.
1. Win+P
2. dun
I was sarcastic... Lmao. Thanks anyway
lol good one
I know I'm 5 years too late, but it's really common for one monitor's magnetic field to interfere with another's sitting nearby. That's probably where the wobble is coming from.
I seem to recall people using two computers telnetting to the host computer whilst using a TSR application(like xtree? or norton commander) for a sort of dual screen effect. this way you could read a document whilst still being able to access the filesystem from the other computer. Not sure if we were on XT/ATs by that stage.
That's interesting how you can write to both. I can see how this would be under supported though. This sounds like a very cost prohibited setup for a lot of end users back in the day
kwhich is why most dual monitor setups were "debug output on MDA"
"oh i didnt see you see there, i was just setting up my ibm 5150"
What are the ISBN numbers for those two books? I'd like to see if I can grab them on eBay
IBM PC & XT Assembly Language(1985): 0-89303-575-0
I wouldn't recommend this book unless you are programming specifically on a PC or XT as it is very rough around the edges and doesn't make it easy to understand. It is also heavily geared towards MASM and I recommend you switch assemblers after chapter 3 to something with less boilerplate like a86.
Graphics Programming in C(1989): 1-55851-018-4
I haven't started on this book at all. I want to be fluent in ASM before I start it so I can adapt the C examples to ASM for performance reasons. However I do like that the book doesn't just focus on raw hardware access. It also has higher level examples of graphics such as how to do math for 3D on a 2D plane. But it does have a C library for a lot of video card access. I doubt you could find a download of it online. But the last 1/3(200+ pages) of the book does have it written out in it. So if you are determined, you could have the fun of typing it all in.
I bid you good luck on finding them, they are very old and uncommon from what I've looked up about them. I thought it would be nice to have some OCR'd PDFs but I don't think these have found their way to anyone who does that. I only have them because I look for books like this while at thrift stores.
@@TechTangents thanks man! It's hard for me to locally source such specific and old books where I'm at. I've been on a kick of doing things from scratch, I'd prefer some books that go into raw graphics access and ones that don't have libraries that do it for you, so I'm not too sure about that C book.
I've been wanting to do some raw x86 DOS based coding for a while and want to find the resources that are period appropriate, such as IDEs, compilers and books. Any hints?
@@TechTangents PS, would love to see videos of your DOS assembly language progression and writing!
The library in the C book isn't like a library in Python where you just do "import do-all-the-work" and say you wrote a graphics program. It's more about making an API for the video cards so it isn't as burdensome to work with in C. So if your concern is the library preventing you from learning, I wouldn't worry about it. Plus the entire source is in the book, so you can get as deep into is as you want.
There is a balance between doing it the original way and not having to make the same mistake everyone made then. Old ASM is over complicated with extra commands for a specific assembler that don't work with other ones. Nobody uses the original assemblers now from what I've seen, they are too painful to work with. An "IDE" wasn't really a thing back then either. You had a text editor (the ASM book mentions WordStar as an option), an assembler, and a debugger. All separate programs. RHIDE is a newer program that back ports GNU applications to work on older computers under an IDE. I don't have a recommendation on a specific books. I would say look around and see what most people seem to like.
@AkBKukU
Found one on an obscure russian site, it has the same ISBN, and is OCR'd and everything:
drive.google.com/file/d/1RJvzIuOalR4sPXHh3BGLsBrChAAVYE4D/view?usp=sharing
shell, files and fcbs are for config.sys
There is always the waybackmachine to look at old web pages that do not excist anymore ;)
This is really cool, I thought the DEC Rainbow 100 was the only machine capable of dual monitor at that kind of time. Autodesk AutoCAD 2.6 for MS-DOS on the Rainbow allows dual monitor support if I remember correctly, not sure if the IBM PC version ever did. Under CP/M I've seen the GSX Draw command draw colour graphics on the Rainbow's VR241 colour monitor while the VR201 monochrome display still shows the fully functional CP/M command prompt. I don't know of anything else on the Rainbow that supports it but perhaps since the dual monitor option was only ever documented and never officially supported by DEC (it requires a custom made cable since an official one was never produced), AutoCAD on the IBM PC may have had some sort of dual head option in one of it's versions as well at some point.
Borland stuff might work. Turbo Pascal was probably capable to handle editor on monochrome and output on the colour one.
the video I've been waiting for
Want to do something just because it's possible? I can respect that. I listen mp3 on my vampirized amiga 600 because now it's possible.
If you work with Turbo Pascal v6.01 IDE you use both monitors
5:45 I wish you could just go to a store and buy a new monochrome CRT monitor. Nothing quite replaces that warm amber glow.
5:34 Could your problem be that putting the monitors side-by-side like that is causing interference? Could the magnets in one monitor be affecting the display of the other?
Edit: 13:42 Good for you. You figured it out.
Turbo C could do dual screen development. I used to do that all the same...
SHELL, FILES and FCBS are config.sys commands, not autoexec.bat