• Please review our updated Terms and Rules here

VisiCalc giving me 0M (no memory)

voidstar78

Veteran Member
Joined
May 25, 2021
Messages
691
Location
Texas
I'm on a physical 5150, I am using XT-IDE with the extended RAM module. I am using DR DOS 3.41 (so 640KB only, no extended RAM stuff).

When I run VC.COM, it does run ok. I can move the cell cursor around.

I can type a label or value. However, when I press ENTER, there is a tone (beep) and the label or value is blanked out.

I noticed at the top right the program is showing "0M" which as I recall means the program thinks there is 0 memory available (hence I assume it is not saving my cell values).


Anyone know what the issue might be? I haven't had memory trouble with anything else (TetraCompositor, Lotus123 2.4, KQ1-4, Oregon Trail, Lemmings, etc.).


re: http://www.bricklin.com/history/vcexecutable.htm
NOTE: vc.com is working for me in 86box with a 486 system w/ MSDOS 6.00 (where I get a "C 27" at top right corner, as I type a few values it goes down to 26, 25, 24, ...).
 
Last edited:
Ah, I figured it out (well the cause, not the reason) -- I thought the same initially, that it was related to drive letters or disk drives (my physical machine doesn't even have a floppy controller installed).

You're kind of on the right track - as I recall, the original VisiCalc disk was its own boot disk.

The issues turns out to be related to the contents of the CONFIG.SYS. On my physical machine, I'm loading the SoundBlaster drives CTSB2.SYS and CTMMSYS.SYS.

CTSB2.SYS wipes out all the available memory to VC.COM by itself.

If I just load CTMMSYS.SYS, then VC.COM prints "11" as the available memory.

If I remove them both, then VC.COM prints "27" as the available memory.

[I'm not sure if VC is stating "blocks" or KB or what - but I don't have to type much for this to start decreasing to 26, 25, 24, etc...]


NOTE: Another thing I learned is that VC saves its files in plain-text.


With a newer version of DOS, I should be able to load these drivers into high memory. DR. DOS 3.41 didn't yet have that feature. Maybe there is another way to load those from the command line instead of via config.sys ?

EDIT: I'm not 100% sure why these drivers impact the available memory to VC. I can't recall exactly where device drivers get installed by default in DOS. I do imagine VC.COM is real-mode and maybe can only address within a single segment (tiny model?) -- which might limit it to 64KB total? I'll see how many cells I can populate and if it saves a file over 64K.


EDIT: Just cool to me that this works - it is like a 1979 version of Excel. I know the Apple][ version was first. I run this same software on the Commodore PET with 32KB RAM. The command interface has a learning curve, but it's so slick once you get it.



Click image for larger version  Name:	IMG_7012A.jpg Views:	0 Size:	154.3 KB ID:	1220697

Saved file content of the above SAMPLE... (note how VC.COM is only 27K)

Click image for larger version  Name:	IMG_7012A.jpg Views:	0 Size:	154.3 KB ID:	1220697
 

Attachments

  • IMG_7014.JPG
    IMG_7014.JPG
    144.2 KB · Views: 1
  • IMG_7012A.jpg
    IMG_7012A.jpg
    154.3 KB · Views: 1
Last edited:
That doesn't make sense. Visicalc only uses a single segment (64K) maximum for everything. Running on a virtual 64K machine, I get a Visicalc free memory of 22K which fits with 27K of VC and 13K of DOS; the other 2K being whatever memory VC uses to initialize. You should be getting something like 30+ for free memory. The Soundblaster drivers should still leave a segment completely unused unless you have loaded more than 570K of code before starting VC. You have discovered a very strange bug in either DR-DOS or VC.
 
I run this same software on the Commodore PET with 32KB RAM.

Yes, it brought back memories. I finally got it to run on a Commodore PET a few years ago, thanks to Dan Bricklin and Lotus123 for putting VisiCalc into the public domain. I had a difficult time getting the file image onto a real PET floppy. I finally used ZoomFloppy to make a C64 1541 floppy which a Commodore 4040 drive can read, and then made a copy in the 4040 format.

Curse Lotus123 for superseding VisiCalc! :)

Actually I think the story goes that VisaCalc was way to slow in developing a version for the IBM PC to use expanded or extended memory (whatever its called).
 
Visicalc Advanced for the PC capable of using more than 64K of RAM was released about a year after Lotus 1-2-3. Lotus was a much better product and not even a desperate price cut to $99 could keep Visicalc on the market.
 
You have discovered a very strange bug in either DR-DOS or VC.

Well, the /E environment thing adjusts some memory. I'm not sure what DR-DOS defaults to on that (256 bytes I'd assume? I forget what the max is). But I agree, it's weird those .SYS files effect anything as far as VC is concerned. DR-DOS's COMMAND.COM might use a slightly different amount of memory also. But nope, not loading any other TSR or anything - config.sys and autoexec.bat both empty and just loading VC.COM.

123 is pretty awesome. its first release looks to be mid-1983, weighing 88KB (well, that 1.0A - maybe the 1.0 was earlier). Original VisiCalc looks like late 1981 - maybe an easy-to-market port of their existing work. I still got the leather bound instruction manual of VisiCalc and install disk (for the PET version, but I think it is command-equivalent to the Apple and PC version). But I don't have the PET "dongle" needed to run the program (till I came across that unlocked image, same: really glad they made that available).

Anyone recall why "123" was called that? And Lotus never had any issue with the car company of the same name? (I guess trademarks are flexible across types of industry. Another fun thing to remember is those old "BOSS KEYS" in games, they mocked up a screen of Lotus123 to look like you were busy.
 
Well, the /E environment thing adjusts some memory. I'm not sure what DR-DOS defaults to on that (256 bytes I'd assume? I forget what the max is). But I agree, it's weird those .SYS files effect anything as far as VC is concerned. DR-DOS's COMMAND.COM might use a slightly different amount of memory also. But nope, not loading any other TSR or anything - config.sys and autoexec.bat both empty and just loading VC.COM.

123 is pretty awesome. its first release looks to be mid-1983, weighing 88KB (well, that 1.0A - maybe the 1.0 was earlier). Original VisiCalc looks like late 1981 - maybe an easy-to-market port of their existing work. I still got the leather bound instruction manual of VisiCalc and install disk (for the PET version, but I think it is command-equivalent to the Apple and PC version). But I don't have the PET "dongle" needed to run the program (till I came across that unlocked image, same: really glad they made that available).

Anyone recall why "123" was called that? And Lotus never had any issue with the car company of the same name? (I guess trademarks are flexible across types of industry. Another fun thing to remember is those old "BOSS KEYS" in games, they mocked up a screen of Lotus123 to look like you were busy.

. . . as easy as 1-2-3

Late edit: Lotus's solution was marketed as a three-in-one integrated solution: it handled spreadsheet calculations, database functionality, and graphical charts, hence the name "1-2-3", though how much database capability the product actually had was debatable, given the sparse memory left over after launching 1-2-3.
 
Last edited:
Another fun thing to remember is those old "BOSS KEYS" in games, they mocked up a screen of Lotus123 to look like you were busy.
Back then, in my daytime job of testing games, I often wished that Lotus 1-2-3 had 'boss keys' that mocked up a screen that looked like a game. :)
 
I tried taking Lotus 1-2-3 1.0A for a spin (on the physical 5150). Applied the patch. It runs ok, but.... After startup, it sits flashing a red "WAIT" in the corner for a very long time [I assume polling hard drive space, and 100MB is way more then they imagined? it does this for like 30 seconds]. But it eventually lets me enter data. So I did. Then I tried to save, and I get the long "WAIT" again. And THEN, it says some disk error and won't do the save. Oh no! I can't save data. I'll try a newer version tomorrow, 2.4... but so far, NOT "easy as 123" :) (somehow I thought the 1-2-3 was related to a suite of application, but the "easy as" connection makes a lot more sense)
EDIT: from WinWorld notes on Lotus 123 2.X: "Release 2.00 increases the maximum number of rows and adds support for add-ins, EMS memory, 8087 and 80287 math co-processors, enhanced macro commands, and running from a hard drive." I was running 1.X from a hard drive, so maybe it just didn't like that.


Pretty radical software, and cool story on how it came about as an idea during a lecture (I mean for the earlier VisiCalc). I use Excel nearly every day, but there's lots of more modern data analytics software packages these days. Quickly visualizing trends in multiple dimensions is a big deal. But I've always thought a "cubed" version of Excel would be cool - an extra dimension along the "depth" of the current worksheet (depicted in VR maybe, since I just don't think we'll have 3D projection monitors any time soon).
 
Last edited:
Early software has all kinds of crazy bugs. Some programs will complain about insufficient memory if they see more than 512k, some only like certain versions of DOS, some make assumptions about BASIC being in ROM, some assume certain software interrupt vectors are never in use, some bypass DOS and expect a FAT12 or small FAT16 partition, some use FCBS in such a way that larger FAT/FAT32 file systems won't work, many require large FILES= to be set in config.system.

I just tried the same version of VC under windows 95 and I get seemingly random numbers for "free" memory depending on how I launch it. Perhaps a value "wrapping around" somewhere if it thinks a machine can't have more than 64k?
 
That doesn't make sense. Visicalc only uses a single segment (64K) maximum for everything. Running on a virtual 64K machine, I get a Visicalc free memory of 22K which fits with 27K of VC and 13K of DOS; the other 2K being whatever memory VC uses to initialize. You should be getting something like 30+ for free memory. The Soundblaster drivers should still leave a segment completely unused unless you have loaded more than 570K of code before starting VC. You have discovered a very strange bug in either DR-DOS or VC.

I think I've figured it out, maybe. When I run the version of VisiCalc that's on Dan Bricklin's website (the link in the OP) says it has 88k free on my Tandy 1000 SUX under PC-DOS 7.0. This machine is all tweaked out with upper memory block support so I normally have a whopping nearly-631K free at the DOS prompt. 128K minus 9K minus 27K = 92K is suspiciously close to 88K. So...

I have the program "EATMEM.COM" on my system, so I decided to try and see what happens when I move the base of DOS memory up. (EATMEM.COM occupies a chunk of lower memory like a device driver or TSR, it doesn't do the alternate thing of moving the BIOS top of memory *down*.) I first tried "EATMEM 256", which swallows up RAM up to the 384K mark leaving 256K of RAM free. With this set you can run VC.COM but it says it has zero bytes free, despite 256K being more than enough to run this program. Changing to "EATMEM 512" doesn't fix the problem: it still reports zero free memory. However, if I do "EATMEM 576" starting VC will result in 34K free memory being reported. 64K minus 27K =37K. It looks like VC uses 3-4K for its own purposes...

To cut to the chase it looks like VC.COM is using some broken version of small model programming where it's able to use up to two 64K segments worth of memory, but only memory between 00000H and 1FFFFH. DOS is able to load the binary higher than 1FFFFH but apparently VC.COM gets really confused by this and continues to think that it can only store data below the 128K mark. I can totally believe that DR-DOS 3.4 with all those Soundblaster drivers loaded might occupy more than 128k of RAM, so, yeah. Boom.
 
Nice! Ah, this certainly reminds me of those early days, of fiddling with config.sys -- and get 1 program to work, but then break two others.

Later DOS's had more elaborate config.sys handling, to let you optionally load things in depending on what you wanted to do that session. (or maybe that was a 4DOS extension?)

I'm finding lots of old DOS programs that don't gracefully exit back to DOS -- Booter Programs, they're called maybe? So I have to ctrl-alt-del out of them. Wild to consider the single-application perspective of a programmer: from that pure perspective, why would anyone ever exit your program? What would they exit into? I think the sample MSPACMAN.COM is an example.



I'm glad to be able to use VC with just "27" memory, just to play around with that. I'd like to see if it can sort on columns, I'll look up those commands.



Next, now I'm having trouble running Commander Keen 4 - it is giving me an out of memory error also (with DR DOS 3.41 and with the SB drivers removed/disabled). I think I have around 580K conventional free (or maybe it was 530, certainly over 500). Kind of surprised, Keen4 is still a late '91 game.

It's all like a riddle - what combination of obscure settings is needed to run this program. Good brain exercises. Hopefully Keen4 doesn't require a newer DOS that can load stuff in upper memory, but maybe so.
 
Next, now I'm having trouble running Commander Keen 4 - it is giving me an out of memory error also (with DR DOS 3.41 and with the SB drivers removed/disabled). I think I have around 580K conventional free (or maybe it was 530, certainly over 500). Kind of surprised, Keen4 is still a late '91 game.

I'm kind of skeptical you have that much after this. If you don't have anything better to tell you the MS-DOS versions of CHKDSK will say how much conventional RAM you have free, maybe the DR-DOS version does too? (I just checked here and yes, it does.)

Are you trying to run the CGA version or the EGA one? Looking at the photos of your screen it looks like you have a VGA card installed, but I seem to also recall you teasing that your machine had some kind of peculiar CGA card in it, so... ?
 
... FWIW, I copied the EGA version of Keen to the 1000SUX (it has a VGA card) and did some experimentation with DOS high-loading disabled and my EMS driver shut off, so only conventional memory is available. In this configuration just having PC-DOS 7 and a couple trivial BIOS patches loaded leaves 571K . (To be clear this is actual "K", chkdsk will call this "584,976 bytes free".) KEEN4E will successfully load with this. Playing with EATMEM again it looks like the bare minimum is 552K. ("565,248 bytes free")

As an aside I'm actually surprised, EGA Keen is basically playable on a 7.16mhz V20 with "SCORE BOX: OFF" and "FIX JERKY MOTION: ON". PC sound only, of course. It's a shame two-button joysticks are completely worthless with commander keen.
 
I'm kind of skeptical you have that much after this...

Are you trying to run the CGA version or the EGA one? Looking at the photos of your screen it looks like you have a VGA card installed, but I seem to also recall you teasing that your machine had some kind of peculiar CGA card in it, so... ?

I got it (keen4) going! Turns out it doesn't even need those SB drivers. Without the SB drivers loaded, DRDOS341 "CHKDSK /A" reports that I have 576,112 bytes available. However, if I just run CHKDSK with no command line arguments, it says "CHKDSK: Not enough memory." (go figure!)

With the SB drivers added back (uncommented from config.sys), reboot, then "CHKDSK /A" reports 541,520 bytes available. (that's consistent with my MR.COM memory report program - something I wrote back in 1991 but no longer have the source code for; it reports "(FREE) 541520" also).


Anyhow, removed the drivers to get the required RAM - and then KEEN4 load up status says it still has Adlib/SB support! Nice, they rolled their own support for it.


re: video cards...
I have a full length CGA+MDA card, then also an old ISA EGA/VGA - I don't run them both at the same time. I'm normally running the Oak Technology VGA card just for the convenience of being able to directly connect up a monitor with a regular VGA cable (and to save wear and tear on that old CGA card itself -- which also has a composite output and a parallel port {however that composite output seems to B/W only, and I could never get the CGA+MDA to output at the same time - it was still either-or}).


So, KEEN4E is running on my 4.77mhz physical 5150 stock 8088. The overhead map portion runs/scrolls fine - but the maps are slightly sluggish. But even with sound/music/joystick, it is playable - this ugly QuickShot joystick is handling it ok (button 2 to toggle the pogo stock, button 1 to jump).

Did you know there is a Mini Pong game in the OPTIONS menu of Command Keen? (Paddle War) So cool.

Ol'e Commander Keen, reminding us to wear a helmet!




VISICALC: I was reading thru the VisiCalc manual that I have - it says that memory status is in Kilobytes. (which is kind of obvious, but just confirming). The manual doesn't mention any explicit sort feature though, that's a bummer. But it does describe this DIF (Data Interchange Format) stuff - so cool they thought of split windows and copy/paste and had it working in '79.


LOTUS123 2.2 and 2.4: There is a brief red "WAIT" during the start, but both these versions run fine and save files fine. In fact I saved a file in v2.4 and loaded it back up in v2.2 (well no real big surprise, but was fun to verify). But the saved LOTUS file is certainly no text file that could be easily manipulated by third party tools.


BTW, I tried that Cavern of the Evil Wizard ("Tom Hanks Big") 2020 "remake" - it does run (CGA), but it is SUPER slow between screen transitions (like 1 minute wait). Too agonizing to play (@ 4.77). File I/O functions there need a second look.

EDIT: And Thexder... I know it was 1987, but so disappointed no Adlib support. It sounded so good on my old Tandy :( But it does play super slick on the stock 8088 (animation-wise, but it can't play sound effects and the background audio at the same time - that's annoying).
 
Last edited:
Not yet, but hey SuperCalc has some color and is from '82? That might be interesting (if it user-defined programmatic colors). I did find that Borland/Turbo Pascal 3 comes with a CALCMAIN.PAS (sample) that is a baseline reference "spreadsheet" program (TinyCalc), It compiles to 26K and has save/load feature, runs on the HDD just fine. (that'd be from '86 though)
 
Last edited:
Like Visicalc, Supercalc actually dates from the 8-bit days; 1980 in fact. I could argue that you're not running original Visicalc unless you're running it on an Apple II. SC was one of the packages that was bundled with the Osborne I.
On MSDOS, SC ran from 1982 until well into the 1990s. I knew most of the Sorcim principals and even wrote code for them (the math in SC, both 8 and 16 bit versiosn is my work).

There was also Microplan from Dash Chang's outfit.
 
Back
Top