bootstrapping from ECHO
Dave Long <[email protected]>
| Newsgroups | gmane.culture.people.kragen.discuss |
|---|---|
| Message-ID | <[email protected]> |
> Ha! That's awesome. You don't look that old. Thanks. I hope I'm not that old: it's a long story, part of a mis- spent youth, but essentially I had access to this stuff thanks to the relative vulnerability of PDP-11s at the time, not due to actually having been on the payroll for the project. > What did you use at the time to copy executables across? MODEM7? I don't recall anymore, but it was some sort of serial kermit-y kind of thing; it did work over modem lines as well as physical tty interfaces. >> I haven't tried this myself yet, as some combination of Q, Freedos, >> or laptop prevents me from entering ALT-numerics in the dos box. > > If it's the laptop, have you considered getting a US$5 USB keyboard? > They're usually better than laptop keyboards, even if you aren't > attempting feats of keyboard bootstrapping. That would have been a good idea. In the meantime, I've come up with the following bletcherous hack: echo jUX4UPYhUUX5UTP_h@@Z0u1QZJ0u=0uCh//Z!UHhOOZ!UHkUHPG2UHhURX5UP2! hULX2!A> e.com It's rather important to not leave any space between the end of the code and the > redirection, as it expects its input (2 characters in kragen-bootstrap hex format, hence the h//Z!UHhOOZ!UH fragment) to come immediately after the CRLF which echo appends to the code. In fact the whole thing is rather fragile as it has to do a certain amount of self-modification just to do any I/O, and I didn't feel like doing more to set up a loop. For that, we have the following batch file (for which I trust there's a suitable way to escape the redirections were one to actually compose the file via echo?) @echo off :loop if (%1)==() goto done copy e.com ex.com echo %1 >> ex.com ex.com >> a.out shift goto loop :done which then allowed me to generate your octal.com on the first try (8 octets at a time). -Dave Caveats: - int 21 AH=2 seems to mangle tabs; it might be wise to change the output path before anything in the bootstrap needs to generate 0x09 - if you look at this in DEBUG be sure to clear CX before starting. (did I mention the whole thing is rather fragile?) >> [0] I have, once in my life, programmed (an application, not an >> exercise) using front panel switches and the reference manual > > That sounds like a lot of work. What was the application? "rolling" dice, when no dice were available but there was --probably left by someone's father-- a sort of demo board with an 8-bit cpu, a two-digit 7-segment display, and a hex keypad. It wasn't that much work as the app was not very complex at all: it used a button press interrupting a counter instead of a prng to generate a result, but even so, by the time I had the code hand-assembled, toggled in, and debugged, it had taken enough time that actual dice had simply been acquired from someone else's home. -- To unsubscribe: http://lists.canonical.org/mailman/listinfo/kragen-discuss