Re: bootstrapping from COPY CON

Dave Long <[email protected]>
Newsgroups gmane.culture.people.kragen.discuss
Message-ID <[email protected]>
>> Imagine being given a 1982 era IBM PC with a floppy drive and a
>> single disk that contains a bootable MS-DOS system with IO.SYS,
>> MSDOS.SYS and COMMAND.COM (the minimum required to boot to a usable
>> (for various values of “usable”) system at the time) and a stack of
>> reference materials. Your goal (assuming you are a programmer) is to
>> write a program that does something simple, like, play a game
>> (however badly) of tic-tac-toe. No editor. No assembler. No
>> compiler. No linker. Just COMMAND.COM and a stack of reference
>> materials.
>
> Using modern tools as cognitive aids (so I didn’t have to
> hand-assemble) and to diagnose problems allowed me to do this in a few
> hours.  It might have taken a few days in Sean’s scenario.

Being the dinosaur that I am[0], I can partially explain why your  
approach was not too far off.  Early PC's might have appeared to lack 
[1] development tools, but circa 1982 I had access to a microcomputer  
project (eventually killed by the PC's dominance), and although self- 
hosted tools did appear by the end of development, all of the initial  
work was done in a timeshared unix environment: sources were edited  
and cross-compiled on the mini(s) and the resulting executables  
transferred to the micros.  No IDE's or mice, but they had full  
screen editors, makefiles, and a gcc-like toolchain.  Set your xterm  
to 24x80 green-on-black[2] and the cross-compiling you were doing  
wouldn't be far off at all from industry practice 30 years ago.

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.   
However, I'd think two other tricks might come in handy for a pure  
bootstrap:
- having command.com means you have batch files.  granted, .bats have  
impoverished control structure, but it might save on some machine  
code in the bootstrap
- copy also concatenates files; one could thus minimize transcription  
errors by using COPY CON for relatively short sequences, then splicing 
[3] them together to form the final executable.

-Dave

[0] I have, once in my life, programmed (an application, not an  
exercise) using front panel switches and the reference manual
[1] this is not strictly true; it appears that DEBUG.COM was already  
present in MS-DOS 1.0, and already incorporated the symbolic  
assembler by 2.0
http://www.armory.com/~rstevew/Public/Tutor/Debug/debug-manual.html
cf http://en.literateprograms.org/Hello_World_(IBM_PC_bootstrap)
[2] http://upload.wikimedia.org/wikipedia/commons/2/23/Vt100- 
adventure.jpg
[3] choose naturally concatenative machine code sequences, and it  
might even be about as easy as programming via DEBUG; after all, they  
both lack decent symbol table/dictionary support

-- 
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.