A couple of years back, I said I was building a single board computer and then things went quiet. Yes, I screwed up. A mix of dry joints and possibly burning through traces caused by following old instructions, impatience and a very unforgiving solder type made the original board almost unusable. I finally got a replacement board (thanks, Andrew!) and put in a humongous Digikey order for all the projects that I want to finish, and got going.
I took quite a bit more care building this, but it was still only a couple of evenings to put it together. While I still used lead-free solder, I hardly needed extra flux at all. The nice ($$$) turned-pin sockets hold the chips much more securely than the cheaper plain sockets I used before.
After a minor hiccup (homebrew null modem cable needs both RX and TX to be useful), it lives!
SBC6120 ROM Monitor V320 Checksum 3752 6072 3515 09-APR-10 21:15:39 Copyright (C) 1983-2010 by Spare Time Gizmos. All rights reserved. NVR: Not detected IDE: 489MB - LEXAR ATA FLASH IOB: Not detected B -IDA0 .BASIC NEW OR OLD--OLD FILE NAME--ASCART READY LIST ASCART BA 5B 100 FOR Y=-12 TO 12 110 FOR X=-39 TO 39 120 C1=X*.0458 130 C2=Y*.08333 140 A=C1 150 B=C2 160 FOR I=0 TO 15 170 T=A*A-B*B+C1 180 B=2*A*B+C2 190 A=T 200 IF (A*A+B*B)>4 GOTO 240 210 NEXT I 220 PRINT " "; 230 GOTO 270 240 IF I<=9 GOTO 260 250 I=I-57 260 PRINT CHR$(48+I); 270 NEXT X 280 PRINT 290 NEXT Y 300 END READY RUN ASCART BA 5B 000000011111111111111111122222233347E7AB322222111100000000000000000000000000000 000001111111111111111122222222333557BF75433222211111000000000000000000000000000 000111111111111111112222222233445C 643332222111110000000000000000000000000 011111111111111111222222233444556C 654433332211111100000000000000000000000 11111111111111112222233346 D978 BCF DF9 6556F4221111110000000000000000000000 111111111111122223333334469 D 6322111111000000000000000000000 1111111111222333333334457DB 85332111111100000000000000000000 11111122234B744444455556A 96532211111110000000000000000000 122222233347BAA7AB776679 A32211111110000000000000000000 2222233334567 9A A532221111111000000000000000000 222333346679 9432221111111000000000000000000 234445568 F B5432221111111000000000000000000 864332221111111000000000000000000 234445568 F B5432221111111000000000000000000 222333346679 9432221111111000000000000000000 2222233334567 9A A532221111111000000000000000000 122222233347BAA7AB776679 A32211111110000000000000000000 11111122234B744444455556A 96532211111110000000000000000000 1111111111222333333334457DB 85332111111100000000000000000000 111111111111122223333334469 D 6322111111000000000000000000000 11111111111111112222233346 D978 BCF DF9 6556F4221111110000000000000000000000 011111111111111111222222233444556C 654433332211111100000000000000000000000 000111111111111111112222222233445C 643332222111110000000000000000000000000 000001111111111111111122222222333557BF75433222211111000000000000000000000000000 000000011111111111111111122222233347E7AB322222111100000000000000000000000000000 READY
It compiles and runs a slightly modified ASCIIART.BAS Mandelbrot set benchmark in 144 seconds. This is comparable to many 8-bit computers. The modifications were:
- PDP-8 BASIC doesn’t quite use ASCII. Its six-bit character set has digits 0-9 at decimal 48-57 like ASCII, but characters A-F are at decimal 1-6 (instead of 65-70). The manual claims that CHR$() works modulo 64, so maybe I didn’t need to make this change.
- Variable names can be called Letter+Number at most, so the original’s CA and CB had to become C1 and C2.
- PDP-8 BASIC doesn’t support a familiar IF … THEN … structure, but only effectively an IF … GOTO …. I mean, sure, you can use THEN if you want, but only a line number or a GOTO … following it will avoid the dreaded terse NM error. ELSE? Who needs it?!
WordPress may have mangled this entirely.
No, WP, an asterisk in preformatted text DOES NOT MEAN you switch to italics and eat the character.