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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.