fascinating stuff. i never knew you could go beyond 640k. excellent video Jim !
@TheOldskoolPC4 жыл бұрын
Coming from you, that means a lot to me. Thanks!
@ownpj4 жыл бұрын
Qemm was a godsend.
@richshealer37554 жыл бұрын
In the fall of 1986, I installed my first Novell NetWare 86 non-dedicated server hosted on an HP Vectra. This was an early version of Novell Netware that was targeted at the PC XT level machines. It did not support extended memory of the 80286 nor the recently released expanded memory specification (EMS). The non-dedicated nature of NetWare 86 allowed the server code to run in background so the computer could also be used as a workstation. We had sold this as a 4 node ArcNet network to run Microsoft Word, which at this time was a DOS only program.The problem was the server didn’t have quite enough memory to run Word after NetWare 86 was running. I was able to get an 8-bit memory board that had selectable addressing placing and additional 64K at 0xA000. I know that the 8-bit memory would slow down the 16-bit machine, but we were desperate in those pre-Internet days. Since MS DOS 3.2 wouldn’t use the extra RAM automatically, I wrote a short program that was run in the AUTOEXEC.BAT that did the following: - If the ROM BIOS reported > 640K do nothing and exit. The amount of installed RAM was stored by the BIOS in memory location 0040:0013. - Test to see if and how much RAM existed in the 64K block at 0xA000. - If no extra memory was installed then do nothing and exit. - Otherwise update the total memory value in BIOS location 0040:0013 and do a warm reset. A warm reset was done by storing 0x1234 in location 0040:72 and calling the reset vector. The 0x1234 would tell the BIOS not to test the memory during the reboot leaving the altered total in place. -MS DOS would use the new memory value showing 704K of total RAM. This was not the most robust code, but it worked extremely well in this installation and ran for several years until they upgraded the network to NetWare 286 a few years later and relegated the old sever to a regular workstation. Fortunately we didn’t notice any speed issues using the 8-bit RAM.
@TheOldskoolPC4 жыл бұрын
Thanks for the memories! This is actually the first attempt I made (I only touch on it briefly in the video when I talk about "warm reboot") but for some reason it hung on reboot (I tried 3 versions of DOS). I was thinking about how to debug that when I realized I could just patch the boot sector and not worry about either warm or cold boots.
@thegreatcodeholio1234 жыл бұрын
As a matter of fact, DOSBox-X has options to allow more than 640KB in this way, if you use machine=cgaonly, machine=mda, machine=hercules, though without emulating EMS in this way.
@TheOldskoolPC4 жыл бұрын
Good to know, although knowing you and DOSBOX-X, I'm not surprised :-)
@BrassicGamer4 жыл бұрын
The production values in this video are insane. In a good way. I appreciate the attention to detail as much as I appreciate the perfectly symmetrical alignment of all your gear in the background. And not many other people can casually include incidental footage of their own rare memory expansion cards. Very interesting video.
@TheOldskoolPC4 жыл бұрын
I try to hide goodies for the connoisseur in my videos from time to time :-)
@hiimcody14 жыл бұрын
I don't even remember subbing to this chan, but I'm glad I did. Good vid!
@TheOldskoolPC4 жыл бұрын
I'll take it!
@Eremon14 жыл бұрын
Sure could have used this video 30 years ago! All jokes aside this is an interesting fact I did not know was a possibility without some extreme measures. Thanks for the video. Cheers.
@mibnsharpals3 жыл бұрын
yes i have used it bevore 29 years :-)
@MBrieger Жыл бұрын
I am extremely late to the Party, but I do recall reading all what was needed right out of the BIOS. What graphic Card etc. Write directly into the Video Memory. I used to be a rather good C Programmer, but kinda gave up on that many years ago. Recently returned to Linux.
@johnpauldooley3 ай бұрын
As a kid I would lose it when my 640k was all gobbled up with drivers. Sometimes I couldn’t play a game because of 4kb 😢. Ahhh well at least I know the answer some 30 odd years later
@lucius19763 жыл бұрын
Yes, fiddeling with Autoexec.bat and Config.sys. Those were the days. Was so happy getting WIng Commander running on my 80286
@TheOldskoolPC3 жыл бұрын
That must have been a very slow experience! I always wondered why they didn't state the minimum speed was 16MHz or something.
@lucius19763 жыл бұрын
@@TheOldskoolPC Well, it was a 80286 with 16MHz. Run, slowly but did. If you play it nowadays in the emulator i think you have to throttle it down to a 80386 processer otherwise it runs way to fast to be playable
@osgrov4 жыл бұрын
Wow. I wish I knew about this back in the 90s! Really interesting stuff. First video of yours I've found, thanks to DOScember! Instant sub. :)
@dh20324 жыл бұрын
same here :-)
@ITVOIP4 жыл бұрын
you should be proud of everything you do. it's great stuff!
@jackdaniels8105 Жыл бұрын
Bill Gates said that in interview when introduced new 8086
@RetroPCUser4 жыл бұрын
Very informative. I've used QEMM 8 on my Packard Bell and having more free conventional RAM was the best feeling.
@TheRetroChannel4 жыл бұрын
Very informative video and well made. Although most of this is goes beyond the available memory in my head, I'm sure it will be very helpful for many others
@antonnym2142 жыл бұрын
Great Video! I started with the TRS-80 in 1977 and went from BASIC to APL, Z-80 and 8080 Assembly, and a few other languages. Also, in my 20s, I worked at a Radio Shack Computer Center in Atlanta, where we started with models 2, 3, 4, 12, and 16, and went on to the PC Compatibles, Tandy 1000, 1200, and 2000. This is very informative and interesting, and your presentation is excellent. I subscribed immediately.
@geoffpool74764 жыл бұрын
Excellent Video Jim! I've been playing around with moving my Leading Edge Model D back to MDA, so this is timely.
@vwestlife4 жыл бұрын
Zenith's 8088 PC systems (Z148, Z158, etc.) advertised supporting up to 768K of RAM in what they called "non-compatible mode". Do you know anything about that? I suspect it has something to do with their older non-PC-compatible Z100 systems, but the brochures and listed specs don't mention anything about Z100 compatibility. I'll have to try making a Z100 MS-DOS boot disk and seeing if my Z148 will attempt to load it.
@TheOldskoolPC4 жыл бұрын
Unfortunately, I don't! I have a Z-160 series system and it looks like a regular clone to me (other than the *amazing* built-in ROM debugger). If you ever find out more, I'd be curious to learn about it.
@forbiddenera4 жыл бұрын
I have a marrow pivot 8088 which zenith eventually cloned..but its a lunchbox portable
@BrassicGamer4 жыл бұрын
I've got a Z-159 and am looking forward to trying this out.
@AZZapper113 жыл бұрын
Memory above 640K up to 1 Mb was called "Extended" memory and would run with a driver. Memory above 1 Mb was called "Expanded" Memory and would need yet another driver installed at boot up time by the Autoexec.bat file or the SYS file.
@stupossibleify3 жыл бұрын
Such a polished and we'll explained video. Thank you
@48kRAM4 жыл бұрын
@TheOldskoolPC4 жыл бұрын
Was worth the time to learn AE :-)
@Lee_Adamson_OCF3 жыл бұрын
How have I not found your channel before now? :O Good stuff, bro.
@moz21864 жыл бұрын
Love the screensaver in the background. Great info. Tandy 1000 TL /2 here, did the +128k dram. Keep hearing there are some compatibility issues with their setup
@TheOldskoolPC4 жыл бұрын
There will be less compatibility issues now that you added the 128K dram :-)
@zarrahkat8954 Жыл бұрын
I think did this with a High Mem Floppy I purchased at a software convention - but I remember getting 720k out of these at college. Thanks for the upload.
@infamousJohn_thedoc4 жыл бұрын
amazing content! still remember the days when we struggled to load a mouse driver and run the software!
@TheOldskoolPC4 жыл бұрын
Thanks to the vintage computer hobby, I still have those days :-)
@Inject0r4 жыл бұрын
I find it odd that I didn’t find your channel earlier. Consider me subscribed!
@schifoso Жыл бұрын
Instead of patching the boot sector, you could write your own. Or better yet write a new MBR to do what you want and then chain too a saved copy of the old MBR (which can be stored in the partition gap). With a couple of interrupt hooks you'll be able to manipulate a lot of the boot sequence including what MSDOS does.
@TheOldskoolPC Жыл бұрын
Very true -- but a bit out of scope for this specific topic.
@maxmuster7003Ай бұрын
Its an importend part of the system.😂
@Hiphopasaurus Жыл бұрын
There's a FOSS XT ROM BIOS called GLaBIOS that can be configured to look for conventional memory up to any segment. It also has an optional feature where the size of the tested RAM is based on the video type DIP switch selection - if MDA, it will look up to 704k, CGA to 736k. With this you can get that extra memory in DOS with no additional software. Most DOSes (I personally haven't found one that doesn't work this way) will happily use as much *contiguous* memory as conventional memory that is available as reported by the BIOS in the BDA. As long as your BIOS is willing to check for and report the RAM size you can (in theory) have 1016K of conventional memory if you were to run the PC without a video adapter and boot to DOS with `CTTY COM1` or something such to run it headless. Of course, that would break any software that didn't use DOS INT 21H for video I/O... but it'd be fun!
@TheOldskoolPC Жыл бұрын
Good to know about GLaBIOS having those options. It also has configurable snow removal (you can trade speed for snow if you want) and other cool features.
@baghdadiabdellatif1581 Жыл бұрын
Great dos work and demonstration
@alerey43634 жыл бұрын
Your video qualifies for the DOScember series!
@TheOldskoolPC4 жыл бұрын
That's good, since I'm in the official playlist ;-)
@theodorvonvoigtlander74972 жыл бұрын
Years ago, I used to do this on EPSON computers - thanks for the memories!
@x86VileR4 жыл бұрын
TFW you can figure out the boot sector patching details, but not the elite CRT-filming skillz. :) Well done!
@TheOldskoolPC4 жыл бұрын
The true solution is a better camera, which is planned. I was unable to avoid moire because my sensor is 16mp and tuned for photos; a GH5s has a 10mp sensor and less moire. It's worst in the QRAM OPTIMIZE section. That's why most of the screens are against a black background :-) Also, the shutter was 1/60 for all sections. 24p, 30p, 60p, doesn't matter as long as the shutter speed is 1/60 (or 1/59.9227 if possible, of course)
@x86VileR4 жыл бұрын
@@TheOldskoolPC Moire is the spawn of satan. Someone should come up with an anti-moire filter using one of those newfangled deep-learning neural network techniques... I've only seen various FFT-denoise algorithms that mitigate it (like FFmpeg's) but they introduce their own artifacts.
@superilu4 жыл бұрын
Wow, you managed to unfuck my brain about DOS memory. Thanks for that!
@Michael_Brock Жыл бұрын
A very long time ago, I did similar to this. 486 DX2 66. I was not smart, but just used qemm. In one or 2 configurations. I do remember that I had 710k of free base memory for Doom with a mouse driver, cd access, DOS high, and HMA opened. After I went pentium (AMD) and did not look back.
@mrkitty777 Жыл бұрын
Qwmm rocked. Though AMD k6 you probably had is compatible with Intel Pentium it shows how effective tv commercials are makings you think Pentium.
@maxmuster7003Ай бұрын
My graphic cards start with ISA, then PCI, VLB, AGP, PCIe... using MS DOS.😊
@CenterpointConnect3 жыл бұрын
Ahhh, takes me back to the days when I worked on customer support, making Boot Disks for Wing Commander and Ultima 7..... The good old days of computers..
@CreamPolo Жыл бұрын
I love those good old days :))) Good Video.
@AlsGeekLab3 жыл бұрын
Wonderful video! Not sure how I managed to miss this, Jim! I (unfortunately) have an Intel AboveBoard, so I'll see if I can get it to work, I used Monotechs card in my XT which was great but my new xt/286 with the lim card has no UMB so that's what I'd like to fix st least as it is more useful in some cases thatn having the 1.5MB of EMS!
@TheOldskoolPC3 жыл бұрын
For the majority of 808x and 286 software, freeing up as much of the lower DOS memory is always the better choice. That said, don't disable all 1.5 MB EMS just to get an extra 64K!
@AlsGeekLab3 жыл бұрын
@@TheOldskoolPC since you have an AboveBoard yourself, do you know how to convert any of the lim memory to be conventional >640k? I couldn't find anything in the docs that could do that. I am using a 5162 w/640k ram already. I have a microram from monotech that I could pull if I really wanted to use it just for a few k in the UMB. Also, is there a reliable way to tell what areas of upper memory are allocated? I used to use check it but I haven't found it reliable
@TheGuruMeditation4 жыл бұрын
Wow that was very informative. Thanks for the video. Greta job and epic t-shirt! -- AmigaBill on Discord
@TheOldskoolPC4 жыл бұрын
Thanks! But how was my camera work?
@TheGuruMeditation4 жыл бұрын
@@TheOldskoolPC Good!
@cbmsysmobile4 жыл бұрын
I remember using QRAM/QEMM in the old days to get more base memory. QEMM optimisation worked quite well on 386's
@Operation8Bit4 жыл бұрын
Great video, very informative!
@N1755L3 жыл бұрын
Hello Jim, Great work, I miss DOS to some extent, especially batch files and Semware's QEdit. QEdit used to be sooo handy for manipulating text files, and its ability to block text irregardless of line, and then delete or move those chunks of text was so bloody useful, though I do not remember specifically what I was using it for, I remember that I was making use of it a whole F of a lot, and that no other editor at the time (that I knew of anyway) could do this. I remembered later having run into Aurora, and this is how I found your channel. I thought that there might be an updated, current version of Aurora, but alas! I may be barking up the wrong tree here, you might not be programming macros enough to know the answer to this, but perhaps you might have suggestions as to which tree(s) I could go on to bark at. I save a lot of files by naming them as tags, e.g., I have a file called "GovernmentTakeoverOfBusinesses.jpg", this is how I've been naming my files, by capitalizing words and the words are a description of the contents, or tags. I have started to use a program called Obsidian to map my saved files (well the ones in certain directories anyway), and a big part of connecting files in Obsidian is by use of linked keywords, and so I was hoping to create such keywords out of my filenames, and by breaking down the filenames into the individualized capitalized words. So I thought I could make a listing of all the .jpgs I have in that folder, throw that list into Aurora, create a macro that would recognize a capitalized letter, take that letter and every letter up until the next capital, and at the end of the line put that string of letters in between square brackets, then the next, until it reached the period. At the end of every line of text I'd have keywords automatically created. For the example above, the line "Y:\GovernmentTakeoverOfBusinesses.jpg" would change to "Y:\GovernmentTakeoverOfBusinesses.jpg [[Government]] [[Takeover]] [[Business]]". I could subsequently run a macro that would look for "Y" at the beginning of the line, highlight that Y and every character up to three characters past ".", and then delete the highlight, which would leave only the bracketed words on that line. Two-letter words are ignored when creating the bracketed words, and as for 3-letter words, I could have a list of ignored words such as "and", "for", etc. The problem is that I could find no function within the Aurora functions and macros that would/could recognize a capitalized letter, or a case change. I might be able to convert every single character on the line to its equivalent ASCII decimal value, and then have a if/then check see if the value of the character falls within a certain range to detect when a character is going into the capitalized letters range, but before I go too crazy, I thought I'd check to see if you might know of another text editor that might have extended functionalities/capabilities such as I'm trying to get, or if you might know of someone who might know. Thanking you in advance for your time.
@TheOldskoolPC3 жыл бұрын
I'm afraid I can't help with that; for such a task, I would likely try to do it with a combination of sed and regular expressions.
@viscountalpha4 жыл бұрын
This totally earned you a subscribe! thanks! Will have to look into this if i want to do some more hacking on these vintage pc's!
@RKelleyCook Жыл бұрын
I know its two years later... but from my memory of the early 90s, I am fairly certain that you also have the option to disable the 64K EMS page frame on the AST EEMS cards which it usually placed at E000 which gets you another 64K available for UMBs to load network drivers or other big TSRs. The downside is that EMS supporting software (like Lotus 123) will no longer be able to access any of the other megabytes of memory on the card.
@TheOldskoolPC Жыл бұрын
You're correct, although disabling EMS completely is, IMO, not worth the trade-off. I would rather have 640K + EMS than 704K without EMS... UNLESS you are 100% sure you will never ever need to run EMS programs on that system.
@OpenGL4ever3 жыл бұрын
I never needed such sophisticated workarounds to get more free RAM in the conventional memory area. I just needed DOS 6.2 , EMS, XMS and my 486 to get enough RAM in conventional memory. I created the boot menu by myself without that automatic tool that was shipped with MS-DOS 6.x. As far as i can remember F-15 Strike Eagle 3 was the most demanding game i owned when we're talking bout conventional memory and this was released in 1992. The games that were released later, did use DOS Extenders and they solved the problem altogether. For my DOS boot menu i neded 5 options. These were: 1. DOS with EMS 2. DOS without EMS 3. DOS with EMS + CD-ROM drivers 4. DOS without EMS + CD-ROM drivers 5. Windows 3.1 These 5 dos boot options were enough to get every game and software working. I no more needed to create a boot disk just to run a game.
@TheOldskoolPC3 жыл бұрын
This was made possible thanks to your 486 :) For those with 286s and earlier, more hoops (illustrated in the video) were necessary to jump through.
@OpenGL4ever3 жыл бұрын
@@TheOldskoolPC With a 286 you could load around 64K of software in the high memory area above the UMA.
@keopsequinox16244 жыл бұрын
Nice video Jim, I just discovered your channel :D
@SomePotato4 жыл бұрын
Great explanation! My Olivetti M24 greets what looks like its AT&T PC 6300 brother.
@TheOldskoolPC4 жыл бұрын
They are, in fact, the same system :-) Just sold in the USA as the AT&T 6300. I've had 6300s for decades, I got a Xerox 6060 just last year, and an M24 finally this year. One of my favorite systems.
@SomePotato4 жыл бұрын
@@TheOldskoolPC Wow, that's the full M24 collection. Nice! I had mine since my dad brought it home in the early 90s. It didn't quite hold up to my friend's 386. ;) But I finally had a computer! It broke down at some point, but I restored and upgraded it two years ago. I still need to fix some keyboard membranes with some conductive paint and find a HDD that works with Xenix. :)
@mmadmic7 ай бұрын
When I was a kid, at school there was Apricot computers, and these computers were very interesting for me, because at home I'd an IBM PC with 640KB of RAM and a 8088 but these machines had some unusual specs for the time, 768KB RAM, 8086, and 3.5 disk drive (vs 5.25 on IBM) + 2 OSes (DOS and CP/M) and were quite faster than my dad's actual (not clone) IBM PC 8088. I don't know other machines with those specs but I still remember them 40 years later. It was also, aesthetically, very similar to Edgar in Electric Dreams movie.
@TheOldskoolPC5 ай бұрын
A rare experience! Apricot produced technically superior computers, but they were not strictly IBM PC compatible, which is why they eventually had to switch to being more compatible starting in 1986.
@Breakfast_of_Champions4 жыл бұрын
This is some hardcore memory management! Thats one of the messiest parts of DOS.
@fokkermollari4 жыл бұрын
This is great! Do you think it can work in a ps/2 Model 25? It can hold 768kb with 4 NEC chips and 2 SIMM sockets, but can only normally address 640kb. It has an MCGA video adapter, so the EGA/VGA part should be free.
@TheOldskoolPC4 жыл бұрын
Unfortunately, MCGA occupies A000, so you can't. Sorry!
@fokkermollari4 жыл бұрын
@@TheOldskoolPC Ohhh well, it was worth asking :)
@FavoritoHJS2 жыл бұрын
What is that software I see in 1:44? While I do know of a memory map viewer (view_umb, originally for a german Upper Memory Board that has dissapeared from the internet but useable without it), but your memory map viewer looks completely different.
@TheOldskoolPC2 жыл бұрын
That is one of the views of Quarterdeck Manifest, which came with both QRAM and QEMM.
@JohnDlugosz4 жыл бұрын
I had an Intel Above Board with 3MB, which I used as a disk cache.
@Gilerajohannes3 жыл бұрын
Thanks for the infomation it's good to know what those ram expansion boards can be used for, but I have not seen them for sale on ebay, allso some 80386 motherboards can take special ram expansion boards but I have not seen those for sale so they must be rare and not wery common
@TheOldskoolPC3 жыл бұрын
All vintage hardware is getting hard to come by, but stock EMS boards can still be found on ebay and other places. The specific card in the video, the AT&T EMS board, is extremely rare, though.
@gasparinizuzzurro63062 жыл бұрын
Ah, what a good times... i'm a coder, nowadays we use C++/Java/C# or worse pseudo interpreted garbage languages, but this brings to me the era when i did those stuffs with MS-DOS machines... Seeing this video (UMB, Dos High Area, XMS, EMS A20 cpu line.... an assembly listing, wow ;-) ) remembered me all those times with a great deal of nostalgia.
@lawrencedoliveiro91044 жыл бұрын
I remember when a local Microsoft representative came to talk to us about this wonderful new thing called OS/2. He was adamant that the 640K limit was somehow inherent to MS-DOS, when it was purely an issue with IBM PC (and compatible) hardware. The proof was, we had a DEC Rainbow in a room upstairs at the Comp Sci department, which had had its RAM upgraded to 896K. It sported dual Z-80 and 8088 processors, so it could run 3 operating systems: CP/M-80, CP/M-86, or MS-DOS.
@TheOldskoolPC4 жыл бұрын
The DEC Rainbow was a special machine; it was not IBM PC compatible, so its internal layout was different. I would love to own a DEC Rainbow someday; it had some really great high-res color graphics for the time, long before VGA.
@saifal-badri Жыл бұрын
This is an awesome video for the 286, but I wonder if I have an XT with a 286 acceleration board such as breakthru 286 -12 MHz would the Lo tech 2M board be a good option for me?
@TheOldskoolPC Жыл бұрын
The Lo-tech 2M board is an EMS board, so it's compatible with the XT no matter what. The Breakthru 286 does not appear to have any extended memory on it -- if it did, I would have recommended populating that first, but since it doesn't have any, there shouldn't be any conflicts. That said, EMS is not used by many programs, so you'd have to have a need to run a program that uses EMS before justifying the expansion.
@dosnostalgic4 жыл бұрын
Nice shirt, sir. 🎄
@djrmarketing59810 ай бұрын
We had a computer shop in the early 90's and this was my specialty as a teenager, maxing out DOS memory for gamers. But I remember something like 612k or maybe 620k on SVGA was about the max I ever remember getting without using QEMM, just using Memmaker and built in stuff. Remember DoubleSpace and the other disk compression programs? LOL
@TheOldskoolPC9 ай бұрын
Hope to do a video on the disk compression software and hardware someday :-)
@maxmuster7003Ай бұрын
When the first pagefile was used the hdd was fast enough so that any DOS program can use the hdd to store and reload data and code from and into the memory multiple times with megabytes of "virtual" memory. With file handle we can read/write 64 kb at once. So 128 kb RAM is enough.
@RETROMachines2 жыл бұрын
Super video.
@mibnsharpals3 жыл бұрын
I hav had manupulated the MCB-Table from MSdos and pointed into the EGA/VGA area and it worked fine ( 701k free ) , it wrote it in turbopascal. First find the last MCB entry, second remove the endadress of that MCB and replace it with the endadress of the EGA/VGA memory.
@TheOldskoolPC3 жыл бұрын
I did try to do that for this video, actually, but for some reason I kept corrupting the MCB chain and couldn't figure out what I was doing. When I realized it wouldn't have helped anyway for boot processes, that's when I decided to explore the boot sector method.
@davej37814 жыл бұрын
fairly common knowledge in the 80's and 90's.... but most computers had EGA by the late 80's and VGA by the 90's, so this particular memory-extending method was largely useless. far more common was to map out the MDA and CGA memory areas and use them as "high" or "upper" memory. lots of TSR's and network driver stacks could be loaded high. there were other regions of upper memory that could be used as well. I actually had to dust off my dos memory management braincells about 5-6 years ago and install QEMM386 to make an old dos-based CNC mill work with a ISA-16 network card and MS network stack, and still have enough lower RAM to run the control software. fun stuff. (Having watched the full video now, I see you did cover some of these other methods)
@TheOldskoolPC4 жыл бұрын
I tend to concentrate on the first decade of PCs, and most 8088/8086 systems that I cover don't run EGA or VGA for hopefully obvious reasons (if not, I can elucidate). Once you hit 286s and higher with EGA or better, other methods are more appropriate.
@davej37814 жыл бұрын
@@TheOldskoolPC yes, after watching the entire video I regretted my initial comment a bit (it wasn't really meant to be as critical as it sounded, though there probably aren't any ways to dress up "largely useless" after the fact). I did do a good bit of work with 8088 systems with hercules mono graphics (a few green-screens, but more amber by then) way back then, but much more with 286's and 386's. During most of the 80's I primarily used Atari computers personally, though like anyone else I encountered Apple II's and PC's at school. My first computer was a VT102 terminal with a 300 baud manually dialed modem with which I connected to a DEC-10 mainframe. Good old days. This was actually the first of your videos I watched, I will watch more and try to reserve my comments until I've taken in the whole thing.
@freddyvretrozone28494 жыл бұрын
I wrote a small software doing it, i mean use the A000 segment with the lo tech card: simply increase the last MCB size. We can also extend more, we can place a dos reserved MCB at the B000 segment and continue the MCB chain after. I am surprized that extending the memory with a boot sector patch is possible. It means DOS don t do any check....
@TheOldskoolPC4 жыл бұрын
It's not mentioned in the video, but I did the same thing, rewrote the last MCB and placed a new final MCB at AFFF:0, but found it destroyed the upper memory block chain. I found virus code (of all things) that claimed to do everything properly, but when I was looking at it, I realized if I just patched the boot sector I could get DOS to just do everything properly. Plain vanilla MS-DOS doesn't do any check because EGA/VGA could be at A000, so it would have to be smart enough to realize if that's video memory or regular memory. Another commenter said there are DOS versions that check, I'd love to know which ones...
@freddyvretrozone28494 жыл бұрын
@@TheOldskoolPC Strange. It worked for me. Increasing the last mcb not adding another. I checked in the DOS code. The memory functions are really basic.
@freddyvretrozone28494 жыл бұрын
We probably can t have 2 free mcb block one after the other. The memory free function re assemble the blocks and may be disturbed by this.
@TheOldskoolPC4 жыл бұрын
It worked for me when I didn't have UMBs. When I did, it still worked but the UMB chain got corrupted. I probably could have fixed it, but patching the boot sector was much simpler.
@schifoso Жыл бұрын
I did the MCB modification thing and there were issues with other applications. The most notorious way Netware driver as it modified the chain too but could do so incorrectly if an RPL had to be dealt with.
@christophergorge4 жыл бұрын
What about machines that have 512kb? I had a Hyundai 286 that split the 1mb into 512k conventional mem (i think) and was frustrated that I couldn't get to run some games. Would the solutions worked for my case, although now I can't try it coz the machine was long gone.
@TheOldskoolPC4 жыл бұрын
The lo-tech card mentioned in the video and the description can map RAM to 8000 and 9000 too, so it could solve both issues for you.
@NJRoadfan4 жыл бұрын
I could never understand those early 286 machines that only offered the 512+512kb conventional-XMS split. Maybe they were being hopeful that new software would use XMS memory? IBM eventually settled on doing 640k+384k XMS on the PS/2 with BIOS shadowing taking part of the UMBs.
@8_Bit4 жыл бұрын
Nice work! This is probably a dumb question, but why does the memory map appear to have 16-bit addresses? Shouldn't they be 20-bit addresses? Also on the memory map, it looks like the 640K area goes from 1000h to 9FFFh, but it must be from 0000h to 9FFFh to be 640K, right?
@TheOldskoolPC4 жыл бұрын
When making the video, I had to choose between using linear addressing, and segment:offset addressing. I found that most software messages use seg:ofs addressing (see the output of qram and dosmax in the video), and it also made it easier to explain, both visually and audibly, where things were. The memory map is introduced with the text "visualize this memory space divided into 64K segment boundaries" which does indeed describe the chart. Put another way, most x86 real-mode DOS programmers know that VGA memory starts at A000:0000. If I had tried to represent it using the 20-bit linear address A0000h, that would have confused people. Using seg:ofs notation is helpful in other ways; for example, it reminds you that DMA can't cross a 64K segment boundary, and what's displayed in the chart are those boundaries. As for the 640K going from 1000: to 9FFF:, the 640K label in that box is showing the total, not the available. Sorry if that wasn't clear. Hope that helps!
@8_Bit4 жыл бұрын
@@TheOldskoolPC Thanks for the answers! My inexperience with x86 is showing :)
@TheOldskoolPC4 жыл бұрын
You've forgotten more about x86 than I will ever learn about 6502! :-) It's all good
@marcelhh21014 жыл бұрын
Still its confusing, specially because you actually didn’t explain it only talking about segments. And if you display a memory map, you expect real address space.
@angieandretti4 жыл бұрын
Do you think the LoTech 1MB board + your MBR patch method would work on an IBM AT 5170? I ask because I tried playing with a 1MB LoTech board in my AT once before but I vaguely recall that it may have locked up on POST if I enabled the switch for memory at A000. I remember there was one scenario where the machine wouldn't POST w/ the LoTech but I'm not 100% certain if this was it. MSD shows SOMETHING possibly already located at A000, just two dots right at A000 indicating "possibly available," then everything's free up to B000. It's a lot of work to get the machine torn down the way I have it set up now so I'm curious what you think before I consider trying this.
@TheOldskoolPC4 жыл бұрын
That depends on whether your AT already has RAM there. If your 5170 only counts up to 512K RAM, then your system probably doesn't have a memory board already in it, and you should be able to add the lotech board if you don't have EGA or VGA. But, I wouldn't necessarily recommend that because your AT can take 16-bit extended memory boards which will provide true XMS as well as a 64K high memory area (not covered in the video), and those can be more useful in the long run with an AT-class system.
@angieandretti4 жыл бұрын
@@TheOldskoolPC My AT has 512KB on the mobo plus a 16-bit BocaRAM board with another 6MB, configured as 128KB conventional (640KB total conventional) with remainder as extended memory. Yes I know this isn't practical but I have a reason for wanting to try the more-than-640k-conventional experiment. I do have a VGA card but MSD shows the memory space from 640K-704K as entirely unused with the tiny exception of those two (and sometimes only one) dots "possibly available" right at the 640K mark; still not sure what that's about.
@nneeerrrd4 жыл бұрын
@@angieandretti probably, that's EBIOS Data area.
@Michael_Brock4 жыл бұрын
Qemm brings back old memories. :) My 1st PC i486dx2 66. Used Qemm to maximise space for dos games. Several different configs do I need cd or lan? Etc. Many happy hours on doom1/2 or simcity 2000. Never got to 740 base, needed VGA, but got to 640+ free, at dos prompt somewhat more if either no cd or network needed. Before my jump to pentium switched to a i486dx4dx 100 and managed to overclocked system clock to mostly stable 50Mhz so 150 clock. Was I think Intels penultimate 486 stepping.
@marciomaiajr4 жыл бұрын
Never knew that you could get more than 640k. I remember the frustration trying to free 627KB of conventional memory just so I could play 1942 the pacific air war on my 386.
@TheOldskoolPC4 жыл бұрын
Or 612K free for Falcon 3.0. On 386s with VGA, you have some options taken away, but you have others opened up (like, the 64K HMA on 286s and higher). It's a balancing act.
@msromike1233 жыл бұрын
@@TheOldskoolPC himem.sys is your friend
@AZZapper113 жыл бұрын
Bill gate did say that. I saw a video that I could not find again while in University in the late 80's where he actually say that "640 K ought to be enough for everybody".
@TheOldskoolPC3 жыл бұрын
There is a mountain of evidence that says otherwise, but if you can provide a link to the video you think you saw, you'll be a bonefide hero (seriously).
@RetroPCUser3 жыл бұрын
I wonder if there's a way to up the RAM in an 8088 machine? I have a Compaq Portable 1 that has 640KB RAM (256KB on-board, 384KB on an AST SixPakPlus RAM RTC Serial card) and Lemmings runs slow and freezes up. It has an XT-CF card installed, CT1350B + CMS, Compaq VDU, Compaq Floppy and Parallel Card, and the AST SixPakPlus RAM RTC Serial card with an NEC D8088D CPU.
@TheOldskoolPC3 жыл бұрын
If you watch the video, you can see I used a Lo-Tech 1MB board to add 64K of RAM at segment A000, and then used a boot sector trick to have DOS recognize the extra RAM. But that's not why Lemmings is slow on your system -- Lemmings is slow on your system because a 4.77 MHz 8088 is just a bit too slow to run Lemmings. I know they list "PC/XT/Amstrad" etc. on the box, but that's wishful thinking. If you want to try a quick 20% speedup, replace the 8088 CPU with an NEC V20 CPU, which is about 20% faster on average. That might be enough of a boost for Lemmings to work better.
@RetroPCUser3 жыл бұрын
@@TheOldskoolPC I heard the V20 is far more superior than the Intel 8088 and that the CPU is a lot better. I'll order one and swap the D8088D and the V20 around.
@Dargaard2 жыл бұрын
Wow, wish I knew all this in the 80s and early 90s.
@lorenzodomenicolaurito9114 жыл бұрын
736K finally ought to be enough for everybody. :)
@TheOldskoolPC4 жыл бұрын
One would hope!
@ZombieRyushu4 жыл бұрын
I Have a Tandy 1000 TL with a LoTech EMS Board, and 768K Ram as the RAM Has been added to move the 128K of Video Ram out of DOS's space. I also have a VGA Card. How can I optimize this?
@TheOldskoolPC4 жыл бұрын
You can't! That's as optimal as I can think to make it. You have 640K free DOS RAM, 128K of dedicated VRAM, and you also have EMS for programs that support it. The only way you could improve it is to get an EMS board that can map pages to other free spots above c000 to give you some UMBs, and then you could load drivers and TSRs up there. But you're already most of the way there already, there's not much more to improve.
@ZombieRyushu4 жыл бұрын
@@TheOldskoolPC Certain Applications like BioMenace won't run, and Pine 3.96 locks up when LTEMM is loaded to give access to the EMS RAM.
@ZombieRyushu Жыл бұрын
@@TheOldskoolPC Can I ask you a Question that is related to this, but more adeptly addresses my actual concern?
@Thrakus3 жыл бұрын
Can use 4md of video ram on a XT? I found a old video vga card that did come with only 160k but it had been upgraded to 4md.
@TheOldskoolPC3 жыл бұрын
Any ISA VGA card that works on an XT should work regardless of how much video ram it has installed.
@jrherita3 жыл бұрын
I'm curious if Memory Commander is compatible with Desqview..
@TheOldskoolPC3 жыл бұрын
Some options definitely were, as you can see that in the advertising. Not all modes, though. The best way to use desqview on an 8086 is to use a hardware EEMS 3.2 or EMS 4.0 board and set it to backfill main memory from 128-640k. That way, Desqview can swap 512k chunks out instantly using the EMS board registers. It's slick.
@eli1282 жыл бұрын
Wouldn't mapping the video card to a different area break programs? I assume most will assume the video buffer is at A0000.
@TheOldskoolPC2 жыл бұрын
If you're on an 8086/8088 system, it's likely that you're using CGA, which starts at B800, which is what makes the trick work. If VGA, can't do this (although QRAM can extend RAM into VGA space if you are willing to limit yourself to VGA text mode).
@orangutan23 жыл бұрын
I needed something like 610kb of free low memory to get a pirated version of Strike Commander working. I spent days learning about loadhi to finally achieve it. I'd like to say it was good times but it was not. One of the reasons why my retro PCs start at W2K.
@fnjesusfreak4 жыл бұрын
LOL, a WUTV bumper? That station is local to me.
@TheOldskoolPC4 жыл бұрын
It's not local to me, it was just the only thing I could find on somewhat short notice (I have my own VHS tapes I could have pulled from, but didn't have 10 hours to scan through them finding a decent back-from-break station ID) :-)
@TheTurnipKing4 жыл бұрын
The trick of course, is that the 8088 and 8086 actually have a whole 1mb of address space. DOS just corrals some of it to operate in. Change the behavior of DOS and you can reclaim some of it.
@allalphazerobeta86434 жыл бұрын
I'm wondering if you could have just removed/skiped the checks in vidram for a real VGA card with a bit of assembly hacking? Maybe, call the hacked version novidram or boardram
@TheOldskoolPC4 жыл бұрын
I spent 2 minutes forcing VGA detection on, but then it hung on additional VGA register writes and I decided to try something slightly less hacky :-) I agree that it could be hacked up completely to avoid all video hardware manipulation as well as trapping int 13h calls, but it would be much more of an undertaking than the boot sector patch turned out to be.
@TheSulross4 жыл бұрын
Intel should have preserved the 8086 real-mode segment register addressing mode for the entire 16MB address space of the 80286; that way real mode DOS programs could have trivially accessed all the installed memory beyond the first 1 MB address space and there wouldn't have been all the perverse industry energy focused on squeezing out every drop of memory from the reserved io/system address area. If I were implementing an Intel 80286 in FPGA today, I'd add such a real mode addressing capability just to highlight how brain dead the 80286 implementation was for not doing that. Imagine if could write a Turbo Pascal or Turbo C program that runs as a real mode MS-DOS EXE program but is able to just keep using the same far addressing to access memory (both code and data) above 1 MB address range.
@TheOldskoolPC4 жыл бұрын
I've always wished that the 8086 seg:ofs register combo would simply be a 32-bit linear address. That would have simplified SO many things...
@TheSulross4 жыл бұрын
@@TheOldskoolPC Well, the 80386 delivered that - the segment registers get set and then ignored, all the addressing being via 32-bit registers. The 8088/8086 was designed in late 70s when 8-bit bus was the thing - and hence why the 8088 was the primary CPU at first to accommodate an 8-bit bus industry state of the art and economics. As a CPU it was internally an iteration beyond the 8080 and 8085. In a world where Z80 and 6502 chaps were all doing bank switching MMUs to access memory above 64K, the 8088/8086 was a breath of fresh air greater ease of programming when accessing more memory. Looking at the 65816, a next gen, mid 80s attempt of bringing the 6502 forward (used in the Apple IIgs), it was kind of similar in its approach - but not even as well executed as the 8086 design of 1977.
@NJRoadfan4 жыл бұрын
@@TheSulross Apple already had bank switching on the 8-bit Apple II platform, the IIgs just extended it to support more banks. Things get complicated with the "slow" RAM shadowing though.
@soviet99222 жыл бұрын
the download link provided in the description is bad, the ftp oldschool site fails to connect
@TheOldskoolPC2 жыл бұрын
This was made before browsers dropped support for FTP. I've changed the link to one that will work, thanks for letting me know.
@Lion_McLionhead4 жыл бұрын
A solid state hard drive was the usual way to get useful ramlike storage. The software would need hacks to make files look like RAM, but accessing real memory over 640k in DOS required hacks anyway.
@TheOldskoolPC4 жыл бұрын
Solid-state drives for 80s ISA hardware were quite prohibitively expensive, though. I've been collecting 8086-class systems for decades and I've never run across one. (on 286s and higher with 16-bit memory access, one can just make a RAM disk)
@panagiotiss46552 жыл бұрын
I remember I was using highmem.sys and I was set device high or dos = high commands in my autoexec.bat and I had 768kb memory. Also I used a program with name emm386.exe 🙂
@milasudril Жыл бұрын
But if you have a 386, run applications in a dos extender, or install a protected mode OS.
@maxmuster7003Ай бұрын
On 30386+ i like to use the 16 bit "BIG" Real Mode with A20 gate on and 4 gb segment size for DS,ES,FS,GS segment and 64 kb size for CS and SS segment. The documentation from INTEL and from AMD is wrong. The segment size not reset back to 64 kb when we are switching from protected mode back to Real Mode. All of my INTEL and AMD CPUs never reset the segment size. In 16 bit mode we can use instructions with the operand size prefix(66h) and the address size prefix(67h) for 32 bit operands and 32 bit addresses within the 16 bit mode. These prefixes reverse the default size of one instruction and allow to access any 32 bit memory location. But our program code can only work in the first mb. The BIG Real Mode is compatible to MS DOS 16 bit function and 16 bit BIOS function and DOS himem.sys XMS driver, but we have to dissable EMS driver that stop our instructions to switch into the protected mode.
@milasudrilАй бұрын
@@maxmuster7003 Is this the undocumented "unreal mode"
@perfectionbox Жыл бұрын
8-bit computers: Let's tack on bank-switching schemes! 16-bit computers: Let's develop 32-bit CPUs that are backwards compatible with the current ones.
@turbinegraphics164 жыл бұрын
This should help with running games on my amstrad, some games just barely use too much.
@punboleh70812 жыл бұрын
It should be possible to get more free memory than that. In OS/2, DOS programs could use 730KB of conventional memory. I guess OS/2 used some tricks a stand alone DOS could not? Not sure which ones, though. I thought it all came down to loading drivers into high memory.
@TheOldskoolPC2 жыл бұрын
If the program didn't use graphics, that's the same trick as in the video (736K if a text-mode only monochrome program, no CGA or VGA graphics). And I loved OS/2 for that. I ran OS/2 as my primary environment for most of 1994.
@punboleh70812 жыл бұрын
@@TheOldskoolPC Thanks for the clarification. :) I always wondered about that.
@DanielMonteiroNit3 жыл бұрын
Always found it very strange that my XT clone would count to 704K when booting (well, my memory might be faulty. It's been 25 years)
@TheOldskoolPC3 жыл бұрын
Who knows, maybe you had an extra 64K on the motherboard and the BIOS was programmed to keep counting. I've seen a lot of interesting and strange clones.
@intel386DX4 жыл бұрын
nice :) I hate those old games that only rely on base memory :(
@R.B. Жыл бұрын
Where was your video 30+ years ago?
@TheOldskoolPC Жыл бұрын
In my head!
@CattleRustlerOCN11 ай бұрын
I remember using Quarterdeck Expanded Memory Manager (QEMM) on my first 486 DX2 66 to free up enough memory to run The 7th Guest 😊 this was 1993 lol
@TheOldskoolPC9 ай бұрын
QEMM is hands down my favorite memory product.
@thecircutandgameguy10183 жыл бұрын
i might be blind and this is a bit off topic bt does anyone know where i cold get reeplacement 64k RAM chips for the original ibm 5150
@TheOldskoolPC3 жыл бұрын
Lots of places, although I favor an online shop called "unicorn electronics"
@thecircutandgameguy10183 жыл бұрын
@@TheOldskoolPC thanks
@forbiddenera4 жыл бұрын
So I have a Marrow Pivot 8088 laptop.. I want to do a retro video or a few on it but I have no software or anything else with a 5.25 drive.. Tried some YTers before but no one wanted to help :( wanna help?
@TheOldskoolPC4 жыл бұрын
Sure, if you're in the USA shoot me an email and I can mail a few disks to get you started. You should also see if you can use the methods described at www.minuszerodegrees.net/transfer/transfer.htm to make your own disks.
@forbiddenera4 жыл бұрын
@@TheOldskoolPC where can I find your email? Mostly having an issue with finding disks and a drive than anything else.. was thinking I could steal the 2nd drive from the laptop lol
@forbiddenera4 жыл бұрын
@@TheOldskoolPC ..?
@lawrencedoliveiro91044 жыл бұрын
0:09 He may not have said that, but here’s one thing Microsoft definitely seems to believe, even today: “26 drive letters ought to be enough for anybody”.
@TheOldskoolPC4 жыл бұрын
That's when you start resorting to NTFS mount points. :)
@lawrencedoliveiro91044 жыл бұрын
Yes, they theoretically exist, but nobody it seems can figure them out. Also they are specific to NTFS, rather than being implemented at the filesystem-independent VFS layer as in Linux.
@msromike1233 жыл бұрын
@@lawrencedoliveiro9104 can't AAA game or run office (I mean Excel not some free clone with 30% of the functionality) , I want to love Linux but other than stability improvements and changes so you don't have to open a shell to get it configured, what has changed over the past 5 years? Great dev platform, for grandma and grandpa or a millennial nope.
@lawrencedoliveiro91043 жыл бұрын
@@msromike123 I don’t know why you are bringing that up here. But how about something with, say, 1000% the functionality of Excel? kzbin.info/www/bejne/n2WTlWtjfdpnrK8
@Teltharion Жыл бұрын
there was also an EMM286 for 80286
@TheOldskoolPC Жыл бұрын
Yep, EMM286 was a 1993 freeware program developed by Jjex Software, but all it did was emulate EMS out of existing extended memory. It didn't provide upper memory blocks, for example.
@stupossibleify4 жыл бұрын
Why would anyone give this a thumbs-down? Let me guess, they own an Atari ST.
@timrichter19804 жыл бұрын
Atari 1040STFM, right? STFM stands for STupid F*cking Memory, right?
@dolphhandcreme4 жыл бұрын
Most 286/386-Machines of that time have the full 1MB populated on the motherboard so you don't need a EMS- or RAM-card.
@TheOldskoolPC4 жыл бұрын
Correct! In fact, QRAM supports some of the 286 chipsets on those boards, which means it handles everything and you don't need my boot sector patch hack.
@cd-lf8xm3 жыл бұрын
A good benefit for this is windows 3.0 real mode too :-)
@Cuznmark3 жыл бұрын
Why loved Logitechs mouse drivers.. you could load them in highmem.
@thomasfuchs784 жыл бұрын
I could really have used this video 30 years ago
@TheOldskoolPC4 жыл бұрын
I was thinking the same thing as I made it :-)
@maxmuster7003Ай бұрын
The first retro computer was made with rocks, fire and water playing human vs wild.
@b213videoz2 жыл бұрын
Yeah, I cannot imagine Bill Gates saying "six-forty" instead of "640" 🤪 9:09 as you were using Pascal why didn't you use inline assembler?
@TheOldskoolPC2 жыл бұрын
I wrote the assembler and boot sector first, then just used the assembled opcodes as the payload. I didn't want to handle the string ops in assembler.
@ThePrinzKassad Жыл бұрын
Just asking for a friend; Why didn't they just "download" more RAM? :P
@TheOldskoolPC Жыл бұрын
You wouldn't download a car, would you? j/k
@gstcomputing654 жыл бұрын
Awesome video. A minor point - Quarterdeck's QRAM is pronounced "cram". I thought it was pronounce Q-RAM like you did, but I ran across this just a few weeks ago. kzbin.info/www/bejne/l6LQc3ylg6qXbck
@TheOldskoolPC4 жыл бұрын
That's amazing!! I'd never heard a quarterdeck marketing person pronounce it until you forwarded that Computer Chronicles link! Thank you so much! Now I have 30 years of pronunciation to un-learn...
@idahofur Жыл бұрын
Yes and No. Even i you followed all the rules. Some programs would just crash. I remember memory mapping via a dos bible or encyclopedia book (you know before the internet.) doing those tricks. Plus extra memory board with software. Then finally dos 6 and dos=high,umb. I also remember the terrible memmaker program. I can't tell you how many people ran that and it started freezing comptuers. Thank goodness it was like f5? to not load any config.sys or autoexec.bat on boot. Keeping this in mind. With CD-Rom drivers and such. I got between 618-620 free all the time. Unless you have a program that needed like Buffers=60 instead of the buffers=40. I tried to re-create the same configs from years ago in a virtual box machine. But couldn't get it that high. It took me a while to remember most if it.