Summer of '85: DOSBOS is rejected by ANALOG Computing
Goto 10: Retro Computing & Gaming
SubscribeSign in
Summer of '85: DOSBOS is rejected by ANALOG Computing
Paul Lefebvre<br>Jun 03, 2026
10
Share
Although my first Atari computer was the Atari 400, we were able to upgrade it to an Atari 800XL by 1985. The 800XL was a tremendous improvement with its much improved keyboard and 64K of RAM. Eventually we also got a 1050 disk drive for it, which made programming much easier.<br>Writing programs and saving them on cassette was an exercise in patience that I didn’t have as a young teenager.
One of the first programs of a decent size that I actually completed was something I called DOSBOS. It was a “utility” that let you view disk contents (and a few other things) from BASIC. It was not very elegant as it was a BASIC program itself, but I worked on it for many weeks each day after school.<br>Still, I remember that my Dad was very impressed with it and encouraged me to submit it to a magazine. Magazine submissions required an accompanying printout, but we didn’t yet have a printer. As I recall, he was able to print my docs and the program listing at his work (on green bar paper) so that I could submit it.<br>My favorite Atari magazine back then was ANALOG, so that was the one I decided to submit it to. Alas, it was rejected, which shouldn’t have been too surprising. ANALOG published some high-quality programs and this first program of mine was just not good enough.<br>I still have a rejection letter for it, though! I really like this rejection letter, because it is personal with hand-written comments:
Looking at the dates on the printout and the letter, it took me about 2 months to hear back from ANALOG. I guess compared to that, waiting a couple days for something to get approved for the Apple App Store is nothing!<br>Subscribe for free to get Atari and retro computing articles each week.
Subscribe
The docs for DOSBOS spanned 6 pages and were longer than the program itself which was only 2 pages!
Like I said, I’m not surprised DOSBOS was rejected. Being a BASIC program greatly limited its usefulness. To use it you had to LIST it to disk so it could be ENTERed. It used high line numbers so it would have less of a chance of overwriting a BASIC program you were working on, but if any lines were the same you could lose your code.<br>With Atari BASIC you could SAVE or LIST programs to disk. Saving was faster, but LOADing a SAVEd program erased what was in memory. LISTing was slower because it was writing the plain text to disk (instead of the tokenized version), which made the files bigger. But you could ENTER it which would act as if it were typed in and thus not erase what was in memory, unless the line numbers overlapped.
This meant the process to use DOSBOS when working on a BASIC program was:<br>ENTER “D:DOSBOS.LST”<br>GOTO 32000
This started running it and then you could use it how you wanted.
Since you didn’t want it to stick around when saving your actual program, you would manually remove it by doing this:<br>GOTO DELETE
That command makes use of Atari BASIC’s ability to use variables at GOTO locations as I described in Programming the Atari with BASIC.<br>Frankly, it was probably just easier to save your program and type DOS to get to the actual DOS menu. Nevertheless, it was fun to create and it always feels good to finish something. And I have to say, I still really like the name DOSBOS!<br>Here is the original program listing, printed on that green bar paper that was so common at the time.
I actually still have this on a 5.25” floppy disk:
Here is the BASIC source code, although the inverse characters I used for text and comments do not display properly:<br>32000 REM DOSBOS VERSION 3.8 5-2-85 by Paul Lefebvre<br>32005 REM THIS PROGRAM USES LESS THAN 5K OF RAM !!!!<br>32010 REM ƒ…Õ†÷¡“…¡¬Ã≈”¨†œ–≈Œ†…œ√¬ß”<br>32015 CLR :DIM FL$(28),FL2$(28),FL3$(15):CLOSE #1:CLOSE #3<br>32020 OPEN #1,4,0,"E:":OPEN #3,4,0,"K:"<br>32025 POKE 54286,64:? "}":POKE 65,0:POKE 702,64:POKE 694,0:GOSUB 32300<br>32030 CLOSE #2:POSITION 0,(X+2)/2:? "††™™™™†ƒœ”¬œ”†≥Æ∏†‚˘†–·ıφÃÂÊ‚ˆÚ†™™™™†":POSITION 2,(X+4)/2<br>32035 ? "A. Enter File G. Unlock File":? "B. Exit DOSBOS H. Write Dos":? "C. Copy File ";<br>32040 ? "I. Format Disk":? "D. Delete File J. Load File":? "E. Rename File K. Save File":? "F. Lock";<br>32045 ? " File L. List File"<br>32050 POSITION 2,(X+16)/2:? "CHOICE?";:GET #3,CH:? CHR$(CH):IF CH=155 THEN GOTO 32025<br>32055 REM «œ‘œ†ƒ≈”…“≈ƒ†∆’Œ√‘…œŒ<br>32060 ON CH-64 GOTO 32155,32075,32120,32140,32235,32165,32175,32220,32205,32185,32085,32100<br>32065 ? "˝":POSITION 9,(X+16)/2:? " ":GOTO 32050<br>32070 REM ≈ÿ…‘†–“œ«“¡Õ<br>32075 CLOSE #1:CLOSE #3:? "}":CLR :POKE 65,3:LET DOSBOS=32000:DELETE=32480:TRAP 40000:? "∆“≈≈†“¡ÕΩ";FRE(0):END<br>32080 REM ”¡÷≈†∆…Ã≈<br>32085 ? "Save under what name?";:GOSUB 32450<br>32090 ? "Saving ";FL2$;" ...";:TRAP 32280:SAVE FL2$:GOTO 32025<br>32095 REM Ã…”‘†∆…Ã≈<br>32100 ? "List under what name?";:GOSUB 32450<br>32105 ? "Listing ";FL2$;" to disk ...";<br>32110 TRAP 32280:LIST...