![]() |
|
![]() |
|
My favorite Hex Editor hack was when I cracked a Windows software simply by changing the instruction "Equal to" to "Not Equal to" where it matches for Software Key with user entered key.
|
![]() |
|
> At the same time, it feels a bit sad that today’s kids can’t get the same feeling that the computer is really theirs to modify. Kids with a hacker mentality (let's face it, even in the 80s those of us who hacked around with DOS etc. were the teeny tiny minority) have more options than ever before, including but not limited to FreeDOS, Linux, or a bunch of others https://en.wikipedia.org/wiki/Comparison_of_open-source_oper... Finding it is also super easy if you have the curiosity (and of course a PC and an internet connection). |
![]() |
|
You said the magic keyword: "curiosity", when it comes to computers and tech at least. Something that I find severely lacking among - for lack of a better term - Gen Z.
|
![]() |
|
I used to do this on Windows XP to make my desktop look cleaner, all the files were ALT+255 repeated N times, or, more accurately, repeated a random number of times.
|
![]() |
|
Probably because the environment you use to compile it, like the terminal or Xcode, is added to "developer tools" under security settings. Xcode in particular does that for itself automatically.
|
![]() |
|
Some OSs want their binaries to be signed and probably have checksums etc. It would be hard to keep those valid when mucking around with a hex editor.
|
![]() |
|
Super cool to see MZ initials, which are for Mark Zbikowski. They are still to this day at the beginning of every Windows executable/PE file.
|
![]() |
|
Let's bring back those DOS 4.0 period sayings. Does this mean if you happen to be talking to BillG you could talk about brain damaged programs and he'd nod appreciatively? |
![]() |
|
As Scott mentioned in the blog post, we were able to get this running on one of my original IBM XTs with an original IBM monochrome display adapter and display. It was very cool to be able to switch between a running version of a small game, Turbo Pascal, and a DOS prompt with a single key press. It is always great to have period software on period hardware! (added: Short video of it running - https://www.youtube.com/watch?v=YPPNbaQaumk) |
![]() |
|
Indeed - Space is a key for being able to collect and restore this kind of stuff. I have most of my working machine lined up along a wall in one of my garage/lab areas (https://youtu.be/XHvdqB6LSg0). My wife has pretty much no idea what those computers are for, and my daughter just wants to play Oregon Trail on them. They are fun to collect and restore. It is also helpful to be good at replacing capacitors. ;). Those surface mount ones on the Mac mainboards are almost always bad! |
![]() |
|
SCSI drives almost never go bad. Compared to IDE/SATA, they were significantly better built and had lower failure rates. I still have a few 15k RPM Cheetahs that still work, last I checked :).
|
![]() |
|
That's valid feedback. There is no clock, but there maybe should be. In this case, yes, Jeff and I had to PUSH. And that's a hassle. I'll ask around.
|
![]() |
|
> I am close to writing a browser extension that does a find and replace to reverse change these imposed, humourless, coddled changes. I will be your first paying customer |
![]() |
|
Those niche people are the developers they want to use their software. When that niche is the target audience for whole product line of yours pleasing them is a good idea.
|
![]() |
|
The binaries for the multi-tasking bits did come from an external source; however, the source code is from our corp source code archives team. Even that was a bit less formal back then...
|
![]() |
|
sunset() triggers me due to all the times I've seen companies "sunset" APIs only to still have them in production 5 years later. Let's change it to cancelled() |
![]() |
|
Have you ever heard someone get called slow? That's an insult too. So now you have quick tests. That's disrespectful towards me because I got called slow once. This can go on forever. |
![]() |
|
Can we get rid of the "failing" terminology? I think we should call it something more meaningful, such as "it shows there's scope for improvement", or "it highlights areas for more focus".
|
![]() |
|
We have literally no idea what the 'sanity test' involved actually did, and the common use in computing has little connection to any such use in psychology. https://en.wikipedia.org/wiki/Sanity_check informs me: "A sanity check or sanity test is a basic test to quickly evaluate whether a claim or the result of a calculation can possibly be true." ... "In computer science, a sanity test is a very brief run-through of the functionality of a computer program, system, calculation, or other analysis, to assure that part of the system or methodology works roughly as expected. This is often prior to a more exhaustive round of testing. " ... "In software development, a sanity test (a form of software testing which offers "quick, broad, and shallow testing"[1]) evaluates the result of a subset of application functionality to determine whether it is possible and reasonable to proceed with further testing of the entire application." and further comments that "sanity test" for some people is interchangeable with "smoke test". It also adds: "The Association for Computing Machinery,[8] and software projects such as Android,[9] MediaWiki[10] and Twitter,[11] discourage use of the phrase sanity check in favour of other terms such as confidence test, coherence check, or simply test, as part of a wider attempt to avoid ableist language and increase inclusivity. " I could not find a definition for "sanity test" in psychology. I know about the cognitive test that Trump made famous with ‘Person, woman, man, camera, TV‘. |
![]() |
|
We do not know if what was described as a "sanity test" actually meets your definition of a sanity test, or was used for some other purpose like a smoke test. A quick look using Google Scholar finds people using "sanity test" for smoke testing, like "Typical behavior is to allocate any special resource requirements it needs, map the device into virtual address space, initialize the device and perform a brief “sanity test” to ensure that the device appears to be working correctly" at https://onlinelibrary.wiley.com/doi/pdf/10.1002/%28SICI%2910... or "The minimum essential test cases that need to be executed to evaluate the essential functionality are known as Sanity Test Cases" https://uksim.info/icaiet2014/CD/data/7910a048.pdf or "Sanity test is a brief run-through of the functionality of the software system to assure that the system works as expected." https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6006830 But it's also used for full testing, including human intervention, like "There will always be a role for manual testing. For one, it is the only real way to sanity-test your automation itself." - https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d... and "Sanity test cases which checks basic functionality and are run for pre-system acceptance and when product goes thru major change. These test cases deliver a very high project value to both engineering dept and to customers." https://ijaer.com/admin/upload/06%20Apr_2012_Sheo%20Kumar.pd... as well this example which distinguishes between shallow-and-wide smoke tests with deep-and-narrow sanity tests. "a smoke test generally consists of a collection of tests that can be applied to a newly created or repaired computer program. This is a “shallow and wide” approach to the application." while "Sanity testing will be performed whenever cursory testing is sufficient to prove that the system is functioning according to specifications. A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep. It will normally include a set of core tests of basic GUI functionality to demonstrate connectivity to the database, application servers, printers, etc." - http://archives.christuniversity.in/disk0/00/00/48/68/01/the... Going with PC Replacement question, since we don't know the actual goal of what was called "sanity test", we can't ourselves come up with a better name. Which is why we should go with the OP's assessment that "quick" is an appropriate term for what they are doing. Since you don't know what that is, it doesn't matter if you buy a new term or not. |
![]() |
|
I think it was 3.3x where things started working. I don't recall 4.x being around much. I do remember 5 and 6. For some reason 4 never made a splash in my circle of friends.
|
![]() |
|
> But in 15 years it will be so far away from future Windows, that it won't be that crazy. It's not like the NT kernel will be going away from current Microsoft products anytime soon. |
![]() |
|
I'm more interested in them open-sourcing something from the 3.x/9x line. NT seems to have been far more studied, and of course there were the infamous leaks of those along the way. |
![]() |
|
>I wouldn't expect this to understand extended partitions, much less large partitions (that dos 4 uses) Most of the source code (everything outside of -ozzie) is for regular DOS 4.0 and supports 32-bit sector numbers. They planned to add it in the multitasking version as well [1], but from reading IBMDSK.ASM it isn't there yet. Also that driver talks directly to the hard disk controller instead of going through the ROM BIOS, and will only support XT drives, not IDE/ATA. Apparently the goal was to be able to do background I/O on an XT, where there is no BIOS support for that. [1] see driver docs at https://raw.githubusercontent.com/microsoft/MS-DOS/main/v4.0... |
![]() |
|
DOS was pretty reliable about using BIOS interfaces for drives; if you imitate the BIOS interface it’ll just work. The problems came from limitations of the BIOS interface (especially size) |
![]() |
|
IF running software is what matters, there's dosemu2 and dosbox-x. For the actual hardware or PCem, FreeDOS exists and is alive. DR-DOS has also been open sourced. |
![]() |
|
I heard there was some resolution re: copyright mess in the last few years, but I currently cannot find anything about it. To the point I might have dreamed it. Odd. |
![]() |
|
Ah, good ol' days of configuring AUTOEXEC.BAT and CONFIG.SYS to squeeze few more kb of RAM:)
And setting IRQs for some weird sound card that just doesn't work!
|
I didn’t speak English and MS-DOS wasn’t yet localized to Finnish in 1989, so I decided to try translating it myself with a dictionary by manually finding and replacing strings in the SYS/COM files. The result worked and my dad was suitably impressed, if probably a bit peeved that nothing worked anymore in the shell as expected (since I had replaced all the basic command names too — “dir” became “hak” and so on).
It’s pretty cool to see those strings again in src/MESSAGES.
At the same time, it feels a bit sad that today’s kids can’t get the same feeling that the computer is really theirs to modify. Modern operating systems don’t run binaries tampered with a hex editor. Most kids are on operating systems like iOS where they can’t even run a C compiler.
They can play with code in various sandboxes locally and on the web, but the computer fundamentally belongs to someone else today.