|
Himem.sys
Pick your C++ application memory model - small, medium, large, mixed.
Spending hours with the order of loading drivers in config.sys to get them all in there.
640K!!!!
|
|
|
|
|
We had a DOS application, DBase II based, so large that the cover had to be taken off machine for it to fit in...
You start the program. It crashes. After trying "everything", you give up and send the PC to the IT guys for hardware debugging. They take off the cover, get the probes in place, and everything works fine. They return the PC to the user: It fails. Back in the workshop, it works fine. After several round trips it was discovered that it works when the cover is off, fails when the cover is on. It took a few more rounds before the true explanation was found.
In those days, many tower cabinet covers were shaped like an (upside down) U, running in tracks that forced you to pull it backwards all the way to get it off. This was a deliberate design to force you to unplug the power cord before opening the machine. You unplugged not just the power cord, but all sorts of cables - screen, printer, keyboard and whathaveyou. That's the clue:
Windows 2.x had arrived, but most programs were still keyboard based. So was this DBaseII application. The IT guys, when testing the machine, opened it, plugged in power, screen and keyboard, but not the mouse - it wasn't needed for testing. The PC booted, the mouse driver initialized, found no mouse to talk to, so it unloaded itself, releasing a couple hundred bytes of RAM.
Back at the office, everything including the mouse was plugged back in. The mouse driver did not release its space. When loading the DBase-application, there was no check, no error report that RAM size is too small, the program won't fit! Maybe an error return was genereated deep inside, but it never reached the user before the system crash was a fact.
When the real problem - insufficient RAM - was identified, memory could be tweaked in other ways, to allow the mouse to remain plugged while this application was running. But for a couple of weeks, it was a great mystery to us how it could be that you had to remove the cover to make space for the program.
|
|
|
|
|
Cool story, bro.
IRL:
|
|
|
|
|
haha that's good, thanks for posting
|
|
|
|
|
Anyone remember using a hole punch to turn a single sided floppy into a double sided one?
It's a hard life, but somebody's got to live it if only to act as an inspiration to others.
Dan Best
|
|
|
|
|
You bet. Take a pair of scissors and cut a notch off a floppy too.
|
|
|
|
|
When I built my first computer in the 70's (z80 based), I didn't have DOS. All I had was a 2K monitor called Zapple. I didn't have an assembler so I learned to program by the numbers. No external storage till I wire wrapped a card to write data to a cassette drive (I actually used a reel-to-reel). The system eventually grew into a CPM system with dual 8 inch floppy drives. Those were fun days.
|
|
|
|
|
One of my early jobs was with a company building minicomputers. Every manufacturer had their own OS in those days. I happened to discover a reproducible situation sending the OS into an infinite loop. I went to one of the OS guys, describing it, and he dug out a hardcopy printout of the source code. We did all application programming in high level languages then, but the OS was written in a language at somewhat lower than C - you could maipulate registers directly, and use inline assembler when needed.
After about fifteen minutes of grunting, flipping back and forth bewteen the pages of the OS listing, he nodded a "yes!", grabbed his pen and wrote two numbers into the source code - two 16 bit values in octal format. I asked him what that was. "Oh, that's the patch for it".
He had jotted down not the source code change. Not the assembler instructions that would be generated by the language compiler, but the octal codes for those assembler instructions. Why? Because he would try out the patch by poking directly into the running OS code of his test machine, and then it is very convenient to have the value ready in advance.
Yeah, I suppose he was right. But he didn't need to look up the instruction code anywhere before jotting it down in the listing, so I guess he could have managed with the assembler instruction as well. But why bother with instruction names, when you know the instruction code.
|
|
|
|
|
That's the most ridiculous thing I ever hoyied
|
|
|
|
|
Who is General Protection and what's he doing faulting on my system?
|
|
|
|
|
How bad this is? Just to view a task & it's related sub-tasks in hierarchical view, you need to buy a separate plugin! This "marketplace" idea is getting to micro now.
Try the new Visual Studio Online (Azure Devops). All the basic features come for free. Good UX.
VSO is a great offering. Not sure why people talking not much about it & sticking to JIRA.
Full Reset
modified 10-Jan-19 10:06am.
|
|
|
|
|
We have to JIRA, it starting to get to the stage we have to raise a ticket for a toilet break!
|
|
|
|
|
Raise a ticket on raising kittens, and another ticket complaining about that and asking for guidance on raising tickets
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Ummm no, got in to trouble for raising JIRA was sent on a course, now know less than I did before...
|
|
|
|
|
Jira has become a victim of its own success. It started out as a bug management tool and it has bolted "feature" after "feature" on top. Each one has become more and more clunky because the underlying model was never meant to behave in the ways that people want to use it now.
This space for rent
|
|
|
|
|
I can see it for sure.
Full Reset
|
|
|
|
|
Don't you know that JIRA stands for Junior IRA ?
Oops, soooooapbox remark
|
|
|
|
|
So I have a post build event in my .csproj with the idea that I want to run dotnet publish after I built the code in Visual Studio. But, because dotnet publish picks up the post build event as well, guess what. Inf***ingite loop.
Why why why?
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Off the top of my head, something like this might work.
<Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<Exec Command="="dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https:
</Target>
This space for rent
|
|
|
|
|
The arrangement of
Pete O'Hanlon wrote: Off the top of my head,
and
Pete O'Hanlon wrote: This space for rent
Made me chuckle.
|
|
|
|
|
Pete O'Hanlon wrote: Off the top of my head
Please tell me you didn't have qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 floating around in your head somewhere!
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Lol. No, I copied the dotnet publish from the MSDN docs.
This space for rent
|
|
|
|
|
Can't you use a CI system of some sort ? CAKE seems to be quite simple ...
|
|
|
|
|
RickZeeland wrote: Can't you use a CI system of some sort ? CAKE seems to be quite simple ...
I was hoping not to -- all I want is to publish to an arm processor and then use PuTTY's command line pscp to copy the files.
Technically, yes, I should use a CI to trigger the the publish and copy only the files that have changed, but I thought I'd try a "simple" post-event build step first.
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|