Home
dr. dobbs journal of
Contents
1. Page 60 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Nov Dec 1976 4K AND 8K BASIC FROM SWTPC FOR UNDER 5 10 Southwest Technical Products Corporation has just released its 4K and 8K BASIC software Both feature fixed and floating point math with a full 1 0E 99 to 9 9999999999E 99 number range In addition to the line number mode a direct no line number mode of execution is pro vided on most statements to create a calculator like mode of entry for short programs Provisions have been made in both packages for saving and loading BASIC programs to and from either cassette or paper tape A USER function is even provided for jumping to machine language sub routines Both packages have been written for the SWTPC 6800 Computer System 4K BASIC requires a minimum of 6K of memory with 8K recommended while the 8K BASIC requires minimun of 8K of memory with 12K recommended The 4K BASIC tape and manual sell for 4 95 on Kansas City cassette tape and 10 00 paper tape The tape and manual sell for 9 95 on Kansas City cassette tape and 20 00 for paper tape All prices are postpaid in the U S SWTPC 219 W Rhapsody San Antonio TX 78216 512 344 9778 SWTPC Has copyrighted 4K and 8K BASIC Version 1 0 program material and manual may be copied for perso
2. HF HF HF j CARRIAGE RETURN LINE FEED j NLINE LDPI LDI XPPC LDI PUTC 1 OA 4 POINT PUTC ROUTINE CARRIAGE RETURN i LINE FEED FEE IE HEHEHE FF FF FE 3F HE EEE EEE 4F FE 3F FE FE FE 3E IE 3F 4 3 4E 3 4F 3F 3 3 P ERROR ROUTINE j HEE FE FE FE FH 3F 4F E HEHE EEE EEE gt LOCAL ERR LDI ERR1 ST 2 LD ST LDPI LDI XPPC LDI 51 DLD 42 LOOP LD SMSG LD LD LD XRI AZ Z LD LD 5 2 NUM P2 TEMP PZ P3 PUTC 1 P1 MESGS NUM P2 MSG 1 P1 LOGP MSG TEMF P2 14 3 Pi MESGS e1 P1 1 P1 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 SYNTAX ERROR i SAVE ERROR POINT P3 PUTC i PRINT P1 gt ERROR MESSAGES i IS THIS THE RIGHT MESSAGE YES GO PRINT IT NO SCAN THROUGH i NEXT MESSAGE iGET MESSAGE CHAR PRINT IS MESSAGE DONE iNO GET NEXT CHAR i WAS THIS A BREAK MESSAGE i YES SKIP PRINTING ERROR iNO PRINT GET CHARACTER PRINT IT DONE Nov Dec 1976 0261
3. 401915 944 1715 AS THLE TWO ANON do NOTSSIMJX 09052 1509 ANSON OTe AI 656 9505 454 504 7 OL ALIYA OL 09 NOISS Ore 01 09 00902 81809 191 NOU ISSU ALNA 1x Wile OPT RDAS Qc AALS Y UNT Me LOANT 40 14919 1509 QN 40 47509 AM TE UAL ATION ET tdd 74081 5 WOM AW TMS 21595 ANT Ae 3007 QO 2915 LINI 0001 04 3007 Ts 0091 SIV 5 8 SAVY LINI 0 21594 9Z woe ANET LUV 4048 REE d 25 SNISSIMH te ZAA OZ ew Gd REITER ART CARED t HAR AKZ ARAB RAE KE ORY FF AGEL o X At LO Ete os Mod Xa FA X jd Me FY EEE So 2 EEE Do k Ek 21594 6 Cat dtt AE EE G NOISSIMAXU OISUH
4. BEFORE NUMBER IN SLAS ZTHIS THIS IS EYTE SEHICOL THE MERHIHG ASSI ALWAYS CHR Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 CASUAL WILL IMMEDIATELY PRIHT AS YOU CAN SEE CASUAL RECOGHIZED THE 2 AS BEING STATEMENT EVALUATED THE FORMULA FOLLOWING TYFED OUT ITS VALUE CIN THIS CASE 62 OF COURSE CASUAL CAN DO MORE THAN SUBTRACT 18 4 MEANS MULTIPLY MEANS DIVIDED CASUAL WILL TYPE gt THAT A SEMICOLON lt gt IS USED E THE FORMULAS NOTE TOO THAT THE EXAMPLES A SPACE IS PRINTED AND AFTER EACH HUMBER IF IT HAD BEEN A NEGATIVE THE LEADING SPACE WOULD BE A MINUS SIGN C LITERAL STRINGS MAY BE PRINTED BY ENCLOSING THEM HES TRY THIS IS A CASUAL LITERAL STRING CASUAL WILL TYPE A CASUAL LITERAL STRING A COMMA gt IH A PRINT STATEMENT CAUSES A SINGLE CHARACTER TO BE SENT 811 OCTAL A COMMA ON THE END A STATEMENT WILL SUPPRESS THE CRLF END OF STATEMENT SEE APPENDIX FOR MORE INFORMATION THE ASSIGNMENT STATEMENT NOTE THIS SECTION IS DIVIDED INTO TWO FARTS THE OF CHARACTERS WHEN THEY ON THE LEFT OF GNMENT AND THE MEANING THE RIGHT THEY DON T MEAN THE SAME THING LEFT SIDE THE NUMBER OF THE LINE TO BE EXECUTED 2358 CAUSES CASUAL TO EXECUTE LINE 358 AND CONTINUE FROM THERE z8 CAUSES CA
5. OOFO OOF1 5 OOFS OOF 01 C400 CASO AREA 01 C434 60 9 4 C450 CAFD 47 CAFF C46A CAFC C501 E420 CSFF C2FA 37 D40F CAEC C2FB 33 CAED C701 BAE7 40 047 501 9CO7 40 94F1 9090 9088 2 7 01 C580 C2ED 33 2 37 9080 LDI ST ILD LDI XRE 2 LDI ST LDI ST LDI ST LDI ST LDI ST CLEARI EREG P2 TEMP P2 CLEAR1 L AESTK LSTK P2 L DOSTAK DOPTR P2 L SBRSTK SBRPTR P2 L PCSTAK PCSTK P2 L FORSTK FORPTR P2 SET ALL VARIABLES TO ZERO INITIALIZE SOME STACKS ARITHMETIC STACK DO UNTIL STACK i GOSUB STACK i 1 1 CALL STACK FOR NEXT STACK FH FF FF FF EIE IEEE EE FF OF RUE FF FF FF HF HFF F Fp PF HF FF HF BF BF HF HF FF FF FF AE i INTERMEDIATE LANGUAGE EXECUTOR 2 E D FF 4F FF FF HE FE PE 4F TE 2F GE E AE FF 4F HE he aE 4F aE NE EXECIL LD XPAL LD XPAH LD XAE LD XPAL ST LDE XPAH ST LDE ANI XRI JZ XRI JZ XRI JNZ JMP CHEAT CHEAT1 NOJUMP PCLOW P2 P3 PCHIGH P2 1 1 PCLOW P2 P3 PCHIGH P2 TSTBIT TST ILCALL JMPBIT CALBIT NOJUMP P3 OF P3 CHEAT P3 EXECIL SET P3 TO CURRENT IL PC GET NEH IL INSTRUCTION INTO P3 T
6. OST 981 09 1 Of T COT i LT OTT GOT 04 08 6 4 B 2 d OZ 09 q 1976 Dobb s Journal Computer Calisthenics amp Orthodontia Park 94025 52 AO INA 5 L OdNI LNIMd Ol 4 5 T8NXM PMOTAMSIINC 9945 H NOUIS 404 OL 4 5 0915 4 4 0915 204 OL 4 5 MAO 1340 d 3b 4340 Qv 082 OL OSNTSOSNN MOMHMHA MOLANA ONS WAM 1 38 59 4 NYNLAYN 0255 NAHL TBN 338 0505 0822831 8 84 NMNLAMN 0205 TBN M ANIMAS OFS 082281 1 84 841 TBN N MILL AH 0005 81805 BTD AZ TBG 32 1 83 H ATI OL 09 GXCTHSAD CTSA WAM OL 09 SH Ae TBD get TERA A MLANS 04 lt OL 09 83 TBT d M3dO COS 81905 050 1 AT Ocat NAHL 61 AIN 0016 AI 9 41 AIN 090 4 61 dI 0119 320 319 3 30 OL 4 5 T8NN mMOTAdMIAQ 915 L 8 1 L6 TON AI WM ANIM 020
7. TST IFNOT FACA DCX HL FETCH JTC DEINT CTZ TST IFNOT TRY CaL JMP COMD TST IFNOT lt LDHL CURL DE lt gt HL RET TST IFNOT DE lt gt HL LDHL DE lt gt HL RET TST IFNOT TRY DE lt gt HL LDHL RMDR DE lt gt HL RET TST TRY amp DE lt LDHL MADR DE lt gt HL JMP ARET TST TRY LAI 333 STA RAMIO CAL RAMIO LE A LDI 8 RET TST IFNOT TRY lt PSHX HL CAL LDHL DEFF EXPR POPX HL RET TST USR DE lt gt HL LDHL LRES DE lt gt HL RET TST IFNOT TRYN 5 HL CAL LDHL USRL SF lt gt HL USR ROT FOLLOWING THE 4 USR TRY TRYG TRYV TRYU TRY WILL HANDLE THE INPUT OPERATOR IF WILL STOP AND A LE LDI INX HL RET TST IFNOT TRYC CRL TTYI JMP ARET TST lt IFNOT TRY PSHX HL CRL EOM POPX HL EXPR TST 2 IFNOT SNER RET CAL LOKU LE LDI 6G JFZ TRYU INX HL LD M POPX HL RET n 4UNRRY PLUS IGNORE 715 THIS A CONSTANT FLAGS TC IS 0 9 TZ IS TERMN ZYUP GET VAL gt DE AND EXIT MISSING EXPRESSION ERROR MINUS 2 FACTOR TO NEGATE COMPLIMENT RETUFH FROM COMD CURRENT LINE SAVE TXA DE GET CURRENT LINE gt DE RESTORE TRA ADDRESS 2
8. inel dl alisthenics 5 O thodontia Running Light Without Overbyte ovember December 1976 Volume 1 Number 10 94025 REFERENCE JOURNAL FOR USERS OF HOME COMPUTERS Consumer Action Product amp Software Testing to Become Regular Feature in Dr Dobb s Journal Unresponsiveness from Advanced Micro Electronics Stuart Fallgatler amp DDJ SCCS Interface Status Report Southern Calif Computer Soc Board of Directors Thinking of Opening a Computer Store Budget Estimates amp a Map Jim McCord Reports on the LSI 11 Jim McCord Tarbell Response Compliments amp Complaints NEC amp IMSAI Incompatible with 8080A Letters from Glen Tenney IMSAI amp NEC Product Review Poly 88 EXCELLENT SYSTEM Jef Raskin Realizable Fantasies Software Machine Readable Programs amp Data Published in Magazine Format Editor DDJ Use an Acoustic Coupler to Read Write Tape Cassette Jim Warren It s a BASIC It s APL Its CASUAL Bob Van Valzah A Homebrewed Language amp Interpreter from Chicago Complete Documentation amp Code NIBL Tiny Basic for National s SC MP Kit Mark Alexander Complete Documentation amp Fully Annotated Code Listings Upgraded CP M Floppy Disc Operating System Now Available Arithmetic Expression Evaluator Mod Jim Abshire Dialogue on Design of TINY HI Martin Buchanan Greg Townsend 6800 Monitor Re
9. E LSTK CPZ LSTK PZ HILINE FZ 1 2 2 3 L PCLOW P2 H ERRNUM PCHIGH P2 XS REPEAT LOOP DON T PRINT LINE i IF IMMEDIATE MODE SPACE POINT STACK GET HIGH BYTE OF LINE PUT ON STACK GET LOW BYTE OF LINE PUT STACK G TO j HEHEHE HE FF FF FE HF FE HF FF IEEE IE IE HE DE EE JE 3E 3E 3E E E FF IE IE 3 3 HE 3F 3F 3F Pic amp STRT j TE FF 3 3F E FF HF 3F 3F 3E 4F 3F 3F IE BREAK E3A NXT NXT1 FIN STRT X6 BREAK FIN LDI 14 IMP ERR1 LD RUNMOD PZ 42 LD 1 080 JNZ FIN 020 JZ BREAK LD 1 1 ANZ NXT1 LD i P1 ST HILINE PZ LD 2 F1 ST LOLINE P2 LDI H STHT ST PCHIGH P2 LOI L STMT ST PCLOW P2 XPPC LDI RUNMOD P2 LDI L AESTK ST LSTK PZ LDI L START ST PCLOW F2 LDI H STAR ST PCHIGH PZ LDI LOPCSTAK ST PCSTK P2 JMP 5 ILD RUNMOD P2 LD TEMP2 P2 XPAH 1 2 XPAL 1 LDI L SBRSTK ST SBRPTR P2 LDI L FORSTK ST FORPTR P2 LDI L DOSTAK ST DOPTR P2 5 NEXT STATEMENT IF IMMED
10. 81 Q 5 54 85 er 88 89 28 2 21 92 lt J 324 95 HOTE SOME TERMINALS FRINT CODE 95 SOME AN UNDERLINE 5 A BACK ARROW T Page 23 CONTROL FUHCTIONS LINE FEED 18 11 FORM FEED 12 RETURH 13 BELL 7 THESE CODES USED THE gt THE STATEMENT FOLLOWED BY EXPRESSION RETURHS A CHARACTER STRING WHICH CONTAINS THE ASCII EQUIVALENT OF THE EXPRESSION 2 THAHES THE FDLLDMIHG FOR DEBUGGING EARLY VERSIONS BILL AL BAKER MR ZIEGLER AND SEVERAL OTHER CACHE MEMBERS THE FOLLUNWING PEOFLE FOR BILL MARK DAVISON AND FAMILY GARRY SHANNON FOR PROPOSING THE SYNTAS MAGAZINE FOR THE DECIMAL PRINT ROUTINE LOU OF THE CHICAGO COMPUTER STORE FOR THE USE OF EQUIFMEHT PROGRAM NAME CASUAL PATCH SHEET An optional patch to replace the RUN command with a CLEAR command This command allows the user to allocate more or less memory for CASUAL after initializa tion argument is an expression which is the first location that CASUAL is not to use This location must be RAM and must be gt 170344 Returns to command mode when done To run programs you ll have to type lt gt where gt is the first line number t
11. Prize DDJ SEEKS SUPER LOGO Like all massive organizations intent upon changing the fabric of society Dr Dobb s Journal has concluded that it should have a logo a symbol by which all people may instantly recognize us It might be our current title mast head but that s so longwinded Ideally it should be symbol or figure that in some sense illustrates our activities now now be nice Knowing that computer people are delightfully inventive we are coming to you for suggestions We are looking for a logo that we can use in fairly large size in our masthead letterhead stationery advertisements etc We would also like for it to be recognizable even when shrunken down to say 1 x12 Thus it can t have too much detail in it or the large version can have details and the smaller versions must be in some way simplified Please forward your suggestions You can describe them or you can provide a rough sketch or you can submit an oversized camara ready master If we pick your suggestion as the basis for our logo then we will thank you by giving you a five year subscription to DDJ extending your current subscription if necessary Of course all suggestions be come the property of People s Computer Company the publisher of Dr Dobb s Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 NOW WE CAN BLAME IT ON THE COMPUTER At long last we have switched fro
12. STHL SHLD LDHL LHLD LAI G MVI AG CAL CALL XR A SU E SUB E SB D SUC D DSD DW DSS DB 177 177Q 0100 100 LBUL 072 LBUL EQU 72 NDI 300 ANI 300Q 200 2000 INA INR A NUMBERS All numbers without leading zeros are taken as octal all with leading are taken as decimal preceding number causes it to be taken as hex REGISTER SYMBOLS Eight bit registers are referenced with the letters A B C D H and L Register pairs are designated by PSW BC DE HL and SP OPERATORS minus Addition unary plus Swaps first second bytes 16 bit quantity Evaluates to the ASCII equivalent of the character fol lowing it with the eighth bit low Evaluates to the address of the first byte of the instruc tion about to be assembled Page 19 GOON AND BAT 16 LINE HIIMEERS 1 65534 LIHE HUMEEKEI ERSIC LIKE TERT EDITOR COHTROL C C ABORTS EXECUTION AHD LISTING 3 BYTE OVERHEAD IMMEDIATE EXECUTION MODE MULTIPLE STATEMEHTS WITH COLOH lt gt FRIHTS LITERAL STRIHGS EXPRESSIGHS OR CHRE FUNCTION CRLF AVAILABLE LEVEL OF SUBROUTINE HESTING BUILT IH EASILY EXPANDED lt FUHCTIOHS FOR READING OR MODIFYING MEMORY INF GUT FUNCTIONS FOR 120 FORT COHTROL SINGLE AHD DOUBLE BYTE ARRAYS SINGL
13. 0051 05 2 1 0078 0143 1 07C6 0910 2 1 0378 0682 0 20 OESD OEES OSE1 SET OUTPUT TO LOGIC O FOR START BIT INITIALIZE COUNT i DELAY 1 TIME DECREMENT BIT COUNT i PREPARE NEXT SHIFT DATA RIGHT 1 BIT SET UP OUTPUT BIT PUT BIT TO TTY SET STOP BIT RETURN AT 2 DFAULT DONE2 EO E11 E14 E17 ERR EVAL 4 Fi F4 FS CALLML CHRNUM CLEAR1 0 96 0963 FFE7 0056 074 0088 0144 0150 081 0950 028A 0302 074 0223 07 6 0 74 7 FFEC Dobb s Journal Computer Calisthenics amp Orthodontia 94025 INVERS Page 49 FIN 0282 FNDLBL OBDE FAILLO FFED FALSE 05 8 FNDPGE OB94 FOR 0026 0046 FOR2 0048 FORPTR FFFE FORSTK 108A GECO GEQ 0560 GEQ1 GETL 0753 501 2 GOSUB GOTO OCD GTR 055 OSB3 GTROP OESB HEX 0654 HI FFEE HILINE FFF7 IF OCB2 IGNORE 0985 ILC1 OOAA ILCALL IN1 ODDE 1 2 ODFZ 0 01 IND 0534 INPUT ODCD INSRT 0820 ISTRNG 0B22 0040 LABLHI 2 LABLLO FFF3 LBUF 10D6 LEQ 0558 LEQ1 OSAA LET 0 87 LIST 1 1571 1572 0545 1573 0047 LISTNG FFFS 030 LO FFEF LOLINE FFFS LSS 0554 1581 0582 LST 02 1 15172 2 LST3
14. 8 5 626 8855 SoS SS SEALE 2 2 e 5 gt 9 9099923 52529255529 O H es SD gt C9 00 lt o CO O S m QU CO SP N COCOA lt O N O FT gt 68 O 20 N 2 3 23 Q M QU 50 900 99 O O O O O O O O O O GO UNT oe co SSS NT o enu ui 257 2 e 852 Sk 8 3 88 8 88 8 8 58 88 88 8 888 8 58 S 5 5955558 2 3088 85228 ong ai la FE 2 Q Q0 0 dq O0 gt G gt G O 2 Q G gt Q amp GQ J QJ QA 1 GJ J A Q Gs Q 3 J O O NAO O O A O O O gt 2 53 2 A O 0 e QA OQ bi QJ QJ 5 Q 0 fs Q 1 O 0 O OO z O O O Q O Q s s gt m 0 3 0 2 02 QJ Q 63 63 02 C2 CO CO O O O O O gt gt gt
15. 9 DLD NUM P2 DECREMENT COUNTER 04C1 ST 3 P3 9 9 JNZ SLOOP LOOP IF ZERO 04C3 BAFD SEND DLD LSTK P2 THE STACK POINTER OSED 9002 JMP 4 04 5 BAFD DLD LSTK P2 9085 X9 JMP 04 7 JMP X9B AND EXIT OSF1 CZEA 4 LD TEMP P2 CHECK SIGN WORD 2408 JP EXIT 1 NEGATE PRODUCT 5 SCL 3 j HEF HE HE E HF E E E HF E E E HE E E HE E HF HE HF HF E HE HF HE NE C400 LDI 0 Pd STORE VARIABLE j HEE FE E E E FE E Hr O3FA ST C400 LDI 0409 C410 STORE LDI i SET TO STACK 1 1 P3 OACB 37 XPAH P3 0400 1 he ST 1 4 C2FD LD LSTK P2 0402 C300 EXIT LD PUT PRODUCT OACE 33 XPAL P3 0404 CBFC 5 4 OF STACK O4CF C7FD LD e 3 P3 VARIABLE INDEX 0406 C301 LD 1 P3 0401 01 IN E REG 0408 CBFD sT 3 P3 0402 C301 LD 1 P3 040A DLD LSTK P2 i SUBTRACT 2 FROM 0404 EREG P2 STORE LOWER 8 BITS 040 DLD LSTK P2 LSTK 0406 02 CCL i INTO VARIABLE O40E x9 0407 40 LDE INCREMENT INDEX 0408 F401 ADI 1 O4DA 01 K 1 72222 2 222727271222424224222222222222174 OADB C302 LD 2 P3 Pc DIVIDE OADD ST EREG P2 STORE
16. FFFD FFFC FFFB FFFA FFF9 FFF amp FFFS FFF4 FFF3 FFF2 FFF1 FFFO FFEF FFEE FFED FFEC FFEB FFEA FFE9 FFES FFE7 FFES FFES FFE4 0000 101C 1050 106A 107A 108A 1086 1006 1120 0000 0001 0007 0000 OOOF 0011 0013 0015 0017 0019 0018 0010 001 OO1F 0021 0022 0024 0026 0028 002A 002C 0020 002F 0031 0033 0035 0037 0038 0039 003B 003D 0041 0043 0045 0047 0049 0048 0040 004 0051 0053 TITLE NIBL NOV 277 LIST 1 E HIE FE IE pe PE e IE AE I TE G P WE ARE TIED DOWN TO LANGUAGE WHICH MAKES UP IN OBSCURITY WHAT IT LACKS IN STYLE TOM STOPPARD o og om IE EIE IEEE TEE RE HERE TSTBIT 020 JMPBIT 040 CALBIT 080 P1 1 P2 2 P3 3 EREG 128 DISPLACEMENTS DOPTR 1 FORPTR 2 LSTK SBRPTR 4 PCLOW 5 6 PCSTK 7 LOLINE 8 HILINE 9 PAGE 10 LISTNG 11 RUNMOD 12 LABLLO LABLHI 14 P1LOM 15 16 LO 17 18 FAILLO 19 20 21 22 2 23 lt 24 25 26 RNDX 27 28 4 4 C900 C901 C9FF C402 amp 31 420 35 8902 01 C180 400 9802 BAFS C42
17. 290 LE LA n LD A LA CMA LE A INX DE RET 7 DEFINITIONS 4 DSD EOTX 25 2 CURL 25 377 377 LBUL 972 05 374 LINB DSS 0 LBUL 2 SPRS DSD 710 LRES DSD 8 DSD 8 DEFF DSD COLN 1 USRL BSD USR SSTM DSD RAMIO OUT 10 RET MADR DSD RMDR VRRT DSS 8 051 ZDEVO STRRTS RESTRRT DEVO PSHX PSU 1 z NDI JTZ PSU OUT 18 DSB z CLEAR RESULT SIGN 715 DE POSITIVE YUP RETURN FLIP SIGN OF ZAND FALL THRU TO COMPLIMENT DE ADR OF FIRST CHR IN BUFFER ADR OF LAST CHR IN BUFFER CURRENT LINE NUMBER INPUT LINE BUFFER LENGTH ADDRESS OF OPERATING SYSTEM LEAVE SPACE FOR INPUT LINE BUF ADDRESS OF STACK POINTER RESET HOLDS RESULT OF LAST EXPR EVAL HOLDS RETURN LINE NUMBER FOR 5 INITIALIZE OF USER DEFINED FUN ADR OF USERS MACHINE LANG CALL 2 START OF LAST STMT RAM AREA FOR INP AND QUT SAVE AREA FOR PEEK POKE ADDRESSES SAVE AREA FOR DIVISION REMAINDER LERVE ROOM FOR PROGRAM VARIABLES READY PATCH ROOM TTYI GETS A CHR FROM THE INPUT DEVICE CAN MUNCH A AND FLAGS STACK USAGE TTY1 CAL TRDY TIR JTZ TTYI NDI 177 DSD 6 4 BYTES 715 INPUT RERDY NOPE KE
18. 2283 0400 O W CE CN5M5 9 2 9355 20 SOAN 344 51526 NAHL 128 dI W NAL AM LNIMd GBC CWO 20 SALSE 8 4546 29 035 CCOTHENA TENS 4 OAS OAs CW 18 2 9935041 CT CT5T54 9 2 918 BD S04zW NYNLAY 0202 T gt SN dI 9 MLSNI 15 1 MISNT MLSNI MLSNI MLSNI OL 5 2916 3 AMIYA Lfd OL 4 5 4143341915 LNAWNOTSSY 4 8 0825 OLEE 09 OSEE OZEE 6 0955 ORTE QETE 0055 OSTE ORTE OLTE OFTE Ot I OZT OTTE 040 0805 0207 0907 9505 OVO oc or OTOL 0005 0192 065 0852 0452 0552 or 06525 0555 GIST 0152 ROGE oong 4 0902 0502 Oroz 0205 ATOE OTOE 00025 53 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park 94025 Nov Dec 1976 COMPONENTS FOR SPECIFYING PROGRAM MING LANGUAGES AND MODS TO THE 77NY HI LANGUAGE DESIGN Dear DDJ Nov 17 1976 Enclosed are about a dozen changes in TINY HI an updated language summary and a brief description of HI None of the changes significantly effect the scope of TINY but I believe they make it an even nicer language I am shelving TINY LISP TINY SNOBOL and
19. 843 346 HDI 2 TO THE WANT EOL END OF LINE 088 845 383 106 095 COHTINHUED AT DEVP FC FALSE CARRY 4 ZFUH FUNCTION RESTART 5 IS THE MESSAGE PRINTER IT SENDS CHRS FZ FALSE ZERO FROM MEMORY IMMEDIATLY FOLLOWING THE CALL TO IT UNTIL ONE INIT INITIALIZE WITH BIT 7 HI COMES ALONG THE RETURN ADDRESS IS INFO INFORMATION MODIFIED STACK USAGE 6 BYTES INGR INCREMENT ZINST INSTRUCTION 850 50 INP INPUT 006 343 SP lt gt HL PRINT ADR gt HL LANG LANGUAGE 886 851 176 MSGI LAM FETCH CHR LF LINE FEED 086 852 547 DEVO IT LINE LINE NUMBER 852 843 INX HL ZBUMP TXA AND RETURN ADDRESS Lb LINE LENGTH 854 267 OR BIT 7 HI YET 7 NEOTX HEU END OF 055 ZBZ 132 898 MSG2 COHTINUED AT 14562 OLD END OF TEXT OPERATOR RESTART 6 IS 16 UNSIGNED COMPARE gt FLAGS ARE 05 OPERATING SYSTEM SET LIKE HL DE STACK USAGE 2 5 PS PARTIAL SUM 2 PROGRAM 889 60 QUOTIENT A90 174 LR H RETADR RETURN ADDRESS 000 461 Zee su n RELOP RELATIONAL OPPERATOR lt lt gt gt gae 962 REGISTER 63 175 LA L ROUTINE 000 64 223 SU E STK STACK AES 31 ZSTMT STATEMENT 066 zv 0M4 DSD SPRS ZADR OF ADR OF ADR OF STACK RESET SONL START OF NEXT
20. 94025 Enclosed 15 14 for a one year subscription to the Computer Music Journal Name Address A Your interests Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Page 63 JOURNAL TER CALISTHENICS 8 ORTHODO NTIA PCC Box E Menlo Park CA 94025 one ER EGORICAL 694 3 CRUS ete tele ORDEN 2 40 NN MS n SECOND CLA SS M MAGAZINE VALUE PLEASE DO NOT DELAY eyo ya Dee Lo AIN WITH vee ine abs AG gt di Bau 474 Ls 76 2 FA 2 EX IUS 72 TAN ROGET 415 323 3111
21. 10 2 CALL RELEXP OBEF C100 LD 1 STORE OBF1 FAEE 2 IS TEXT LINE gt LINE 8 0 96 TST IF 767 9407 JP 52 YES STOP LOOKING CALL FACTOR OBFS 102 LL 2 F1 NO TRY NEXT LINE IN TEXT OC9R TST SYNTAX z OBF7 01 CALL RELEXP OBFS C580 LD EREG P1 SKIP LENGTH OF LINE OBFA YOES 1 31 2 1 SAVE ADDRESS OF FOUND LINE OCA6 IF TST UNT I F OBFD CAF3 ST LABLLO P2 IN LABLHI AND LABLLO CALL RELEXP OBFF 31 XPAL P1 OCAC TST 1 THE N OCOO 35 XPAH Fi 2 IF1 DO CMPR 01 CAF2 ST LABLHI P2 JUMP STMT 35 1 TST DO UNTI L 0 04 2 LD LO P2 WAS THERE AN EXACT MATCH OCBF DO CKMODE 0306 E101 XOR 1 P1 OCC1 CALL RELEXP 9CO7 JNZ 3 DONE UNTIL DETPGE OCOA C2EE LD 2 OCOC E100 XOR O P1 OCCD DO TST GOTO D 0 OCOE 9CO1 LINZ 3 FLAG THE ADDRESS 1 CKMODE DONE SAVEDO OC10 3F XPPC P3 YES RETURN NORMALL Y OC11 C2FZ 3 LD LABLHI P2 SET SIGN BIT OF HIGH PART OCD GOTO TST RETURN 267 707 13 ADDRESS TST GOSUB 77 707 OC1S CAFZ ST LABLHI P2 i INEXACT MATCH OF LINE 75 OCE1 CALL RELEXP 0C17 3F
22. 2009 C501 400 C410 09C1 37 0962 0904 0966 9 8 O9CE 00 0902 0904 0905 0907 0909 O9DB O9DC O9DD O9DE O9EO O9E1 O9E7 OVE O9EA O9EB O9ED O9FO 0981 O9F3 O9F4 O9FS 8 O9FA O9FB O9FD O9FF OAOO 0802 0805 0807 0409 OAOB OAOD OAOF 0813 0815 0817 0019 1 OA1D 1 0421 0423 0825 0427 0829 OAZA OAZC OAZE C303 CBFE C302 CBFF 20 2 PORE C408 2 5 01 2 4 CAE CZES 02 70 01 2 4 02 F2bE9 CAE4 BAEB 9 CFO 40 02 F407 01 2 4 02 407 1 4 6 2803 40 CAES C2FD 33 C410 37 C401 CBOO C400 1 0411 4 C3FD CBOS 2 4 2 5 EAFF D47F CBFF C706 33 CAFD 20 gt FOC IMF X21 j HE HE HEF HE HF HE HE HF E E E E EEE EH 3F 4 3F 3F E H4 3F HE HF HE HF FE HE FE HE 4 3 3E HE HF HF E HE HE HE 3F HF HE IE 3F LOCAL TOF LD XPAH XPAL 0 LD JP 1 LD LD JMF 2 LD ILD ILD XPAL LDI XPAH ST LDE ST JMP 2 2 SET F3 TO POINT P3 START OF NIBL TEXT 2 HAVE WE HIT END OF TEXT 1 N SKIP NEXT LINE 52 YES PUT CURSOR ON STACK 2 GET LENGTH LINE EREG P3 SKIP TQ N
23. 76Nov8 3 FREQUENCY OF ISSUE A NO OF ISSUES PUBLISHED B ANNUAL SUBSCRIPTION ANNUALLY PRIC monthly except for July 4 December 10 10 4 LOCATION OF KNOWN OFFICE OF PUBLICATION Street City County State and ZIP Code Not printers 1010 Doyle 9 Menlo Park CA 94025 5 LOCATION OF THE HEADQUARTERS OR GENERAL BUSINESS OFFICES OF THE PUBLISHERS Not printera same as No 4 NAMES AND COMPLETE ADDRESSES OF PUBLISHER EDITOR AND MANAGING EDITOR PUBLISHER Name and Addresa People s Computer Co 1010 Doyle 9 Menlo Park CA 94025 EDITOR and Address Jim Warren MANAGING EDITOR Name and Address Jim Warren 7 OWNER If owned by a corporation ita name and address muat be stated and also immediately thereunder the names and addresses of stock holders owning or holding 1 percent or more of total amount of stock If not owned by a corporation the names and addresses of the individual owners must be given If owned by a partnership or other unincorporated firm name and address as well that of each individual must be given NAME ADORESS 8 KNOWN BONDHOLDERS MORTGAGEES AND OTHER SECURITY HOLDERS OWNING OR HOLDING 1 PERCENT OR MORE OF TOTAL AMOUNT OF BONDS MORTGAGES OR OTHER SECURITIES If there are none so state People s Computer Compan ADDRESS 9 FOR COMPLETION BY NONPROFIT ORGANIZATIONS AUTHORIZED TO MAIL AT SPECIAL RATES Section 132 122 PSM T
24. ERROR MESSAGES WHEN AN ERROR OCCURS CASUAL RETURNS TO COMMAND LEVEL AND TYPES THE FROMPT FERIOD VARIABLE VALUES AND THE CASUAL FROGRAM REMAIN INTACT AFTER THE ERROR HAS BEEN CORRECTED EXECUTION MAY BE CONTINUED WITH NO LOSS OF WHEN AN ERROR OCCURS A DIRECT STATEMENT HUMBER IS PRINTED NO LINE FORMAT OF ERROR MESSAGES DIRECT STATEMENT ERROR 11711 INDIRECT STATEMENT ERROR YYYYY LL LL IN BOTH CASES IS THE ERROR NUMBER LL LL IS THE STATEMENT WHICH THE ERROR OCCURRED A QUESTION MARK IS INSERTED AT THE POINT OF THE ERROR SOMETIMES THE YYYYY WILL BE THE LINE NUMBER WHERE THE ERROR OCCURRED FOR THE INDIRECT STATEMENT THE FOLLOWING ARE THE KNOWN ERROR NUMBERS AND THEIR MEANINGS 3 SYNTAX ERROR MISSING PARENTHESIS CHARACTER IN A STATEMENT STATEMENT ILLEGAL OR UNRECOGNIZABLE 2 u M ILLEGAL CHARACTER TERMINATING A STATEMENT EXAMPLE 32 GIVES ERROR 231 FOR m MISSING CLOSING SLASH IN A LITERAL STRING UNDEFINED STATEMENT AN ATTEMPT WAS MADE TO BRANCH TO A LINE NUMBER WHICH DOES NOT EXIST THIS ERROR MAY OCCUR IN THE RUN COMMAND WHERE XAKAN DOES NOT EXIST 515 OUT MEMORY L RGE TOO COMPLICATED EXPRESSION BOTH SEE APPENDIA D 4 pa DIVISION BY MISSING EXPRESSION A STATEMEHT T
25. STOP EXECUTION IF WE HIT END OF FILE FINISH UP THINGS IF SOMEONE IS TYPING ON THE CONSOLE GET LAST CHARACTER SCANNED WAS CARRIAGE RETURN YES SKIP FOLLOWING UPDATES GET HIGH BYTE OF NEXT LINE SAVE IT GET LOW BYTE OF LINE LINE LENGTH BYTE TO STMT IN IL TABLE SKIP j FINISH EXECUTION CLEAR RUN CLEAR ARITHMETIC STACK SET IL PC TO GETTING LINES j START EXECUTION RUN MODE 1 POINT CURSOR TO START OF NIBL PROGRAM SOME STACKS GOSUB STACK FOR STACK amp DO UNTIL STACK RETURN j Yd HH FF 4E 4C 3 JE HF FE JE IE IE FF FF E E ERE DERE RE LIST NIBL PROGRAM j HEHE 3E FE E 4 JE IE 3E JE IE IE HF JE IE 3E JE 3E 3046 3E E FF 3E 3E HE JEDE IE HF HERE 3 3F LST LSTZ LST3 574 LD XRI LDI ILD XPAL LD ST LD ST LD LDI ST JMP LDI ST JS JMP JMP CSA ANI 47 LD XRI JZ ARI XPPC JMP LDI XPPC LDI 1 080 LST2 5 LSTK P2 LSTK P2 P3 e1 P1 1 1 Pi 2 1 1 1 LISTNG P2 6 0 LISTNG PZ P3 6 4 PUTC 1 020 LST2 1 1 OD LSTS LST4 CHECK END FILE GET LINE NUMBER STACK i SKIP OVER LINE LENGTH SET LISTING FLAG 60 PRINT L
26. 003 145 311 883 146 317 136 003 158 164 883 803 152 345 883 153 315 364 001 903 156 852 005 095 883 161 337 883 162 341 883 163 311 003 164 317 137 883 166 176 083 083 170 353 803 171 052 081 085 003 174 353 175 311 883 176 217 180 803 288 226 003 202 345 003 203 315 364 001 003 286 052 007 085 903 211 343 003 212 311 083 213 136 883 214 026 000 983 216 043 803 217 311 0803 220 317 134 883 222 232 883 893 224 315 11 005 983 227 383 142 003 883 232 317 858 003 234 266 003 883 236 545 003 237 315 364 881 983 242 341 883 243 337 903 244 317 051 983 246 137 000 083 258 311 803 251 315 282 085 903 254 136 803 255 026 886 883 257 382 264 003 003 262 043 803 263 126 883 264 341 603 265 311 003 266 317 977 883 278 251 8083 203 272 357 885 273 077 903 274 240 983 275 345 983 276 315 364 881 883 301 315 816 982 883 384 32 883 385 312 284 808 883 510 337 883 311 341 003 312 311 28 P4 FACTOR 4 7 CTS COMD HL JMP TERA EVALUATOR COMPLIMENT RESULT MAYBE RESTORE THA LOOK FOR ADDITONAL OPERATORS lt CONSTRNT gt lt ARIABLE gt I lt lt gt I C EXPR 2 I Z E I IX ALUE OF FACTOR LEFT DE DN EXIT 4 FACT TRY TRYS TRY TRY TRY amp lt USR 7
27. 080 1 NUM P2 LEQ TEMP PZ CMP 1 NUM P2 GTR1 TEMP PZ CMP 1 NUM PZ GEQ1 TEMP PZ 080 CMP 1 TEMP PZ 080 FALSE 1 2 2 1 3 X12 THE PDP 11 THESE PSEUDO FLAGS ARE USED TO DETERMINE WHETHER THE PARTICULAR RELATION IS SATISFIED OR NO w 5 SET gt ARITH STACK SUBTRACT THE TWO OPERANDS STORING RESULT IN LO amp HI OVERFLOW OCCURS IF SIGNS OF RESULT AND 15 OPERAND DIFFER AND SIGNS OF THE TWO OPERANDS DIFFER 7 EQUIVALENT TO V FLAG BIT 7 EGUIVALENT TO N XOR V STORE TEMP DETERMINE IF RESULT WAS ZERO i IF RESULT 0 SET Z FLAG ELSE CLEAR Z FLAG 7 OF EX 2 FLAG TEST FOR n EQUAL Z TEST FOR lt gt i NOT EQUAL IF Z O i TEST FOR lt LESS THAN IF V 1 TEST FOR lt LESS THAN EQUAL IF Z OR XOR V 1 TEST FOR gt GREATER THAN i IF Z OR XOR 0 i GREATER THAN OR EQUAL IF V 0 IS RELATION SATISFIED YES PUSH 1 ON STACK NO PUSH ON STACK DO I L RETURN j MARAE EE IEEE EEE E 3F FF FE EEE EEE PH IF STATEMENT TEST FOR ZERO j HEHE HF FF FF EEE EEE EER HEHEHE FAIL X124 LD OR JZ JMP LD XRI JNZ JS LO P2 2 12 1 Fi FAIL P3 NXT X12 GET LOW amp HI BYTES OF EXPR TEST I
28. 2200 E gt 9 888 A V W 0911 LL 1200 5 pP 04 00 44 V 3100 B LINI 1190 OvIt 00 12 GO 8100 45 98585 IAM 0511 30 96 6100 s 95 9 E E sof aual 21025 4 H XNI 0211 8100 4 amp 8 5 23h oT 144 IAN 10 95 9100 Sx Quz d IXT 0011 00 100 Q 5 597 16 242 0101 00 VO 29 0100 08 459 ea 149 0901 08 34 3000 5 9809 gt H 00 05601 91 000 E m UM u2240 yung XNI 0 01 2000 Am aW 15 0801 02 92 9000 auro ros H0088 H IXT 99 0201 88 00 18 1000 Day OT QR 100 0101 6000 lt Ss Mu c n 10 O 049 IAN 0001 00 35 2000 a 951 5 8 9 dS 9 IXT 0060 00 64 16 0000 Nov Dec 1976 Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park 94025 Page 58 WHIPPLE amp ARNOLD DEVELOP his choice of either the Kansas City or Suding Digital Group SUPER DUPER BASIC INTERPRETER 25 recording technique Features BASIC listed below Binary Systems Corp has intrduced a new interpreter for Immediate delivery 8080 based microcomputers Called BASIC ETC the new Readily so
29. 554 Cn CJ cn Cn xn 3 kd f Whe DD 17M Cp OO C CH QU Qd 6d Gi Od Od CJ GO ana gas aeneo ana 6168 813 816 921 825 653 835 45 aa 952 0543 Bu 5245 EK ass aa 871 73 ers 181 192 183 184 185 18 187 112 114 116 121 122 123 124 125 130 133 134 135 135 137 m J C Ww e J T iJ Cd f P P LA Di P o C2 J 2 gt J CO CJ fu Gl Cs D D 4 Ul Ow a qoe CJ Gee aa CJ e QJ J GJ GJ G G GQ GJ G Q fe DO G C O 74 P3 an 0 TO Q T9 a ca qe 7 D bob o4 75 om 0 c4 m GJ GJ I9 DORNAN 315 317 124 315 2 137 311 317 13 215 338 318 13 211 217 ha IC ni Cn m 023 154 264 991 117 on 657 915 143 925 813 8480 1277 c Y 604 111 874 215 074 163 875 od ENTIRE LINE BEIHG TYPED AND STARTS OVER LETS LOKU THE INDES OF THE VAR LH E STORE THE YAL IH MEMORY JFZ LETT BOH T WRITE HI BYTE IF SINGLE
30. 8041 041 041 841 941 041 0841 041 601 302 3802 302 302 382 382 BAF 0807 693 861 821 061 Gel 861 061 0861 Gel 694 B25 023 823 823 B25 Ges 823 823 BAS AGA 888 AAG GAG 333 353 S33 353 333 323 333 333 BAP GAS G66 866 600 828 818 346 246 546 346 346 346 346 346 Gil 0991 01 6861 848 040 881 109 318 318 318 308 318 318 318 813 323 323 333 343 533 3353 333 333 814 4 AGI 881 887 6881 Gel 21 615 273 27 2732 275 2753 273 275 275 915 318 316 35318 318 318 3518 318 G55 852 855 853 855 855 855 020 127 167 167 1e 167 167 16 167 921 SHB 288 SUB 2088 300 388 822 351 351 35 331 35 351 351 351 823 BAS 005 003 GAS BHF UES 924 825 ar 257 LOADERS A F START MHZ 323 Ger AT LOADERS G amp H 323 Ge 8 38 START RT 825 8 31 323 O32 921 821 9 53 323 8756 834 626 884 835 323 836 28 1 0 FORMAT COHTROL LOGIC LOW SPEED READER CONTROL LOGIC HIGH SPEED READER MITS SICA BUT HOT MITS REV 8 WITH UPDATE USE C WITHOUT UPDATE MITS AUDIO CASSETTES MITS SS PIO VER 3 2 AND LATER MITS 2510 VER 3 2 AND LATER MITS m HDTE THE BINARY LOADER POKE
31. DO DONE PAGE I L MACROS 5 JUMP 601 7 GOSUB TST SYNTAX 7507 B j H4 HEF 4 E E E FE 3E 34 FE HE E DERE TE IE HERE IE DERE AE RE AE 3 E HF OCEC CALL RELEXP P I L MACROS DONE SAV HEHE F4E HF HEE IE HE HERE E IE TEE TE 4F SEE HE EXE IEEE OCF2 601 DO FNDPGE FNDLBL XFER NXT LOCAL RETURN TST NEXT N 0004 DONE RSTR DETPGE 2000 TSTBIT TSTBIT 256 8000 CALBIT CALBIT Z56 TST FOR 7 4000 JMPBIT 256 0012 CKMODE 0014 TSTV SYNTAX MACRO TST B 0018 DBYTE TSTBIT FAIL CALL GTROP IF 48 2 1 NEXTV1 DETPGE ELSE OD26 FOR TST STAT 7 07 R ASCII 0028 DO CKMODE BYTE 287 1080 0020 TSTV SYNTAX ENDIF 0031 TST SYNTAX z ENDM OD34 CALL RELEXP OD36 TST SYNTAX T 707 MACRO TSTCR FAIL OD3A CALL RELEXP DBYTE S TSTBIT FAIL TST FORI STE BYTE OD O8O 0042 CALL RELEXP ENDM 0044 FOR2 0046 FOR1 DO TSTV FAIL 0048 FOR2 DO DONE STORE NXT ADDR TSTVAR DBYTE 0050 STAT TST PGE 75787 T ENDM 0056 TST SYNTAX 0059 CALL RELEXP MACRO FAIL ODSB DO POPAE MOVESR ADDR TSTNUM ODSF DO DONE NXT DBYTE FAIL ENDM PGE T
32. SAVE TXA GET RETURN ADDRESS gt HL RESTORE TXA DIVISION REMAINDER 2 SAVE TRA REMAINDER gt HL RESTORE TXA PEEK SAVE TXA GET LAST MEMORY ADDRESS gt HL PEEK gt A RESTORE TAA RETURN VRLUE IN A REG PORT INPUT 7SETUP INP INST IN RAM EXECUTE SETUP TUO BYTE VALUE gt DE USER DEFINED FUNCTION REFERENCE SAVE TXA 4 VERIFY ROOM FOR RECURSION 7TSXA OF DEFINITION 7EVALUATE THE FUNCTION 7RESTORE TXA RESULT OF LAST EXPRESSION gt SAVE TXA GET LAST EXPR RESULT gt HL MACHINE LANGUAGE CALL SAVE TXA ENUF STACK SPACE HIS ROT ADR ON STK TXA gt HL 7 0 TO HIS ROT RETURN THE ASCII VALUE OF THE CHR SETUP TUO BYTE VALUE gt DE MOVE TXA OVER CHR 7 CHR INPUT 2 GET THE INPUT gt A EXPRESSION IN PARENTHESIS MAKE SURE THERE IS ROOM BEFORE RECURSING RECURSIVE GOT TO HAVE A RIGHT TO MATCH NOPE ERROR GET THE VARIABLES INDES gt HL AR gt DE CLEAR HIGH BITS IF SINGLE ARRAY SINGLE BYTE ARRAY DON T LOAD HI RESTORE TRA PUSHED BY LOKU EXECUTION WILL BE PRINTED ON THE OUTPUT DEVICE THE USER RESPONDS WITH ANY VALID AND HITS IT IS NOT A GOOD IDEA TO TYPE QUESTION MARKS RETURN IN RESPONSE TO AN INPUT STMT 111 TRY Dr Dobb s Journal of Computer Calisthenics amp Orthodo
33. subroutine to print a number and skip to the next print in NIBL it takes about two lines of code with 2 in memory starting at the specified with carriage return being appended iress gt THIS IS A STRING would v Dec 1976 Another statement allows strings around memory once they have been created The form of this statement is destination lt source where both lt destination gt source are Factors and are the addresses of strings in memory This statement causes all the characters in the string pointed to by lt source gt to be copied one by one to the memory pointed to lt destination gt until carriage return also copied is encountered Overlapping the Source and destination addresses can produce disastrous results such as wiping out the entire contents of the current page Consequently a string move can be aborted by hitting the BREAK key on the teletype but it must be done quickly Note that all strings referred to in these statements and in the IN PUT and PRINT statements are assumed to lie within a 4K page and wraparound is a possibility which must be anticipated by the program mer Long time SC MP programmers will be familiar with this minor problem Using these statements it should be very easy to develop a set of NIBL subroutines for performing concatenation comparison and sub string operat
34. 14 0751 15 0784 16 O7E4 X17 081 19 086B X19A OSES X20 0909 X21 094 X22 XZ3 24 OAZC X25 X26 OAES X27 4 1 0221 5 0286 6 0200 XGA DZOA 7 034A 0376 x XFA 04 39 X9B 0484 XCHGP1 0639 0171 XFER1 0179 770001 101 220002 1120 270003 120004 OFBD 720005 OFBD 720006 220007 OF37 220008 OF37 770009 OFBD 21000 1006 11000 OFBD 27000 101 220000 22000 0002 Z2000F 0002 770010 0006 210011 0002 220012 0003 770013 0002 270014 0002 120015 0002 220016 0002 770017 0005 220018 0004 220019 0002 ZZOO1A 0007 Z2001B 0004 220010 0004 ZZ001D 0003 ZZ2001E 0002 ZZ001F 0006 270020 0005 220021 0002 220022 0003 110023 0006 770024 0005 120025 0002 220026 0003 270027 0005 770028 0002 770029 0002 120028 0005 210028 0003 2210026 0003 120020 0007 22002 0003 2110027 0004 110030 0003 770031 0002 220032 0005 110033 0002 770034 0003 720035 0002 220036 0003 110037 0003 770038 0002 220039 0006 0003 ZZ003B 0003 0007 270030 0003 2700 0002 ZZ2003F 0002 220040 0002 110041 0002 110042 0002 110043 0002 220044 0002 220045 0002 220046 0002 110047 0002 770048 0002 120049 0002 270048 0002 ZZ004B 0002 27004 0002 2210040 0002 22004E 0003 22004 0002 120050 0003 120051 0002 220052 0003 220053 0003 770054 0003 220055 0004 220056 0004 720057 0008 270058 0003 770059 0002 22005 0003 2110058 0005 0 002A 0 0420 0 076 0 0996 0
35. 8980 1 246 853 682 211 855 paz 246 246 221 142 090 e N 0802 IFNOT TRYN CAL RSUN RFZ LE RET TST it IFHOT RETI CRL RSUM RTZ LE RET RETI HOT EQUAL 0 EQUAL TO gt NO RELOPS RETURN RIGHT SUM RSUM GETS THE RIGHT SUM AFTER A RELOP HAS BEEN FOUND ENTER WITH LEFT SUM IN DE AFTER FETCHING THE RIGHT SUM RIGHT AND LEFT ARE COMPARED WITH 16 SIGNED COMPARE 862 288 082 082 sunt 002 992 984 882 883 885 082 802 0803 804 990 982 OH EXIT 0 A 1 5 DE SUM SP lt gt HL LA H D JFS SANS DE lt FHL SAMS CHPR POPX HL LXI DE 8 LAI 1 RET 7 SUM EVALUATOR Z lt SUM gt f THE VALUE THE SUM SUMA CAL TERM TST IFNOT SUN PSHX DE CAL TERM SP lt gt HL DADX DE DE lt gt HL HL JMP SUMA TST IFHOT RETI PSHE DE CAL TERM CAL COMD JMP SUM1 SUN EVALUATOR gt TERA CAL FACT TST x TERN 5 DE CAL FACT SP lt gt HL PSHX HL LXI HL RAMIO LMI 11 LAI BEC 0 LA D LA RAR LE A DCM JTZ MULS SP lt gt HL SKIP PSHA HL DADs BC LB H LC L HL OR A La L RAL LL A LA H RAL
36. JMP INIT WILL BE POKED TO JMP ENTR 880 127 157 LL Gas 085 DSD USRL ADR OF ADR OF ADR OF USERS ML ROT 158 343 SP lt gt HL 080 085 272 885 NSD SUBS ADR OF ROT USED TO GET USR FUN ARG 998 141 311 4 ZRESTART SUBROUTINES IS SYSTEM RE ENTRY 7 IS 088 132 362 851 MSG2 JFS MSGI 7 WAS LOW PRINT MORE 71 6 ARE USED ano 135 343 SP lt gt HL WAS HIGH TIME TO RETURN 156 311 THE EQUIVALENCES BELOW SUBVERT MY ASSEMBLER INTO ASSEMBLING 7 SINGLE BYTE CALL INSTRUCTIONS RESTARTS WHENEVER THEY APPEAR ON A LINE he ERRO IS THE ERROR MESSAGE PRINTER IT MUST ALLWAYS BE 317 TST 82172 CALLED THE RETURN ADDRESS IS USED AS THE ERROR NUMBER 327 FETCH RST 200 ji IFNOT e2 137 315 142 880 SNER CAL ERRO SYNTAX ERROR TO BE JUMPED 367 CMPR RST C608 808 142 357 ERRO PRINT ERROR 33 EXPRERST i 808 143 815 DSS 15 12 0 R 206 DEVG RST 4 285122010 357 MSGP RST 8500 909 145 105 888 146 122 RESTART 1 IS THE TST FUNCTION SOURCE CODE MUST ona ier Tec FOLLOWED BY RN IFNOT PSEUDO APPEARS LIKE THIS 889 158 11 E 888 151 322 TST e 880 152 343 lt PRINT ERROR ADDRESS 4 IFHOT TRY AT HL IS NOT JUMP TRY 908 153 315 064 604 HLPT f 000 161 052 011 885 LDHL SSTM START OF LAST STATEMENT gt HL
37. LST4 0314 LSTS 0324 LSTK FFFD MESGS 037 ML MODULO 0804 MOVESR 0949 MOVSTR OBS2 MUL 037A NEG 0363 0550 NEQ1 0599 oce 0 76 NEWPGM 0485 NEXTV1 OAEA NLINE 0215 NOJUMP 0090 OSF8 0889 028 NXT1 0249 OSF 4 1 0001 FFFO PiLOW 2 0002 0003 FFF6 PCHIGH FFFA PCLOW FFFB PCSTAK 1086 PCSTK FFF PGE 1120 0912 1 2 ODB PR4 ODC2 PRS ODC7 PRG PRINT 0024 1 21 0197 1 OF2B PRNUM1 OF2F PROMPT PRS 017 51 0193 PSTRNG 0806 FUTC 2 PUTPGE 0877 PUTSTR 0832 RANDOM O9CE REL 1 RELZ 0 44 REL3 4 REL4 OE4F RELS 0 59 RELEXP 1 0 22 0 87 RETURN FFE6 RNDX FFES RNDY FFE4 RSTR 0148 RSTR1 0152 RSTRZ 0167 RTN RUN RUNMOD FFF4 010F 5 1 0128 2 0131 SAVEDO 0974 SAVFOR 0442 SBRPTR FFFC SBRSTK 1068 SETZ 0580 START 0 18 STAT 0050 STATUS 0952 STMT 0 82 STORE 0469 STRT o2C8 SUB 034C SYNTAX OE2B T1 OESB T2 OE94 T3 OE9D TEMP FFEA TEMP2 FFE TEMP3 FFES TERM UES TOP 0990 TST 00 5 TSTBIT 0020 TSTNUM O6B4 TSTVAR 04 9 UNT OCBS UNTIL 0924 VARS 101 0165 10 O4EZ X11 054A X12 0597 12 OSEE X1ZB 0637 X12C 067A X13 06
38. the near future Equip Rental 30 00 40 00 Austin L Hook The Computer Shop 3515 18th St SW Insurance 75 00 75 00 Calgary Alta T2T 4T9 Canada 403 243 0301 Interest 7 50 10 00 Office Supplies 10 00 20 00 66 Postage 17 50 25 00 PERSONAL COMPUTERS ARE SHOWING UP Printing 20 00 51 SCHOOLS 75 00 75 00 Rent 450 00 600 00 The San Jose Unified School District is busying 14 Western es 82500 2000 Teleph Data Handlers assembled It already has ten IMSAT s and do 2506 Polymorphic It has originally been considering expanding Utilities 50 00 75 00 PDP 8 into TSS 8 system but decided to purchase these 25 Subtotal 1373 00 1907 50 computers instead for the price of that TSS 8 expansion Net Profit 11 7 Furthermore Bob Albrecht noted SMRT won t hurt gt Jose is the Single Message Rate Tariff that Pacific Telephone is about to inflict on users of business tele phones who make lengthy PE See August 1 1976 DDJ Yearly 28 224 00 41 550 00 STORES AS OF MID NOVEMBER already badly outdated stake of the Woods Fort Peck 2 Rives 7 Reserves 7 E Garrison NORTH DAKOTA Reservor e f g mE NOTA 4 on Pu age Syrecut
39. 2 4 6 2 04 40 90 2 486 1 C410 C2FD 33 410 C3F CDO1 C3FC CDO1 C3FD 1 CDO1 C3FF CDO1 C2F1 001 C2FO 001 35 C2F1 31 CAFE C7FC 33 CAFD 2087 lt lt lt RAE HEU I IE ERR PUSH 1 ON ARITHMETIC STACK ILD XPAL LDI LDI ST LDI ST JMP LSTK PZ LSTK P2 P3 H AESTK P3 0 1 P3 1 2 P3 X24 j HE HF FF ME HERE IE FF FF E HF E HE E HF EHE EHE THE E 4E EAE AE EIE IE 4E j FOR LOOP INITIALIZATION j HEHE HEHE HE HE FE HF e HE E HF FE DF LOCAL SAVFOR LD XRI JNZ LDI XPAL ST LDI XPAH ST LD XPAL LDI XPAH LD ST LD ST LD ST LD ST LD ST LD ST LD ST LD XPAL ST LD XPAL ST 17 51 25 FORPTR P2 L PCSTAK 1 10 16 L PCSTAK 1 PiLOW P2 H FORSTK 1 P1HIGH P2 LSTK P2 H AESTK P3 7 P3 i Pi 4 1 1 3 1 Pi 2 3 1 P1 1 3 e1 P1 P1LOW P2 e1 P1 PIHIGH P2 1 P1 P1 PILOW P2 1 FORPTR P2 4 P3 P3 LSTK P2 X24 CHECK FOR FOR STACK OVERFLOW POINT Pi FOR STACK SAVING OLD P1 POINT AT STACK i GET VARIABLE INDEX SAVE ON FOR STACK i GET L LIBMIT SAVE gt GET H LIMIT SAVE i L STEP H STEP SAVE
40. Happy computing Adolph P Stumpf 5639 A Ute Glendale AZ 85307 My impression is that one may copyright text not informa tion Jim Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Page 9 COMPUTER STORE Average Earnings For An Average Month Gross Sales 20 000 00 30 000 00 Cost of Goods Sold 13 600 00 20 400 00 Before you do consider the following financial figures Gross Profit 7 6 400 00 9 600 00 These were generated in September 1976 by an independent Deductions team of professional cost analysis consultants They are pro Refunds Bad Check 15 00 25 00 jected or reasonable expectation figures for two classes of computer stores a 20K month store and a 30K month Sales Expenses store gross They are based on a number of in person and Personnel Advertising 10 00 15 00 in depth telephone interviews with a large number of existing Salaried Employees 2 1500 00 1500 00 stores BONES 150 00 250 00 Royalties 1000 00 1500 00 Subtotal 82675 00 83240 00 COMPUTER STORE Operating The Computer Shop of Calgary is a brand new store x Advertising 2 400 00 600 00 serving Canadian Rockies and western plains area They Automotive 35 00 50 00 carry number product lines and hope to offer some 2 their own Canadian made products
41. IFHOT DEF LA E STA RAMIO 1 POPX HL RET TST BSES INN HL STHL DEFF POPX HL RET CONTROL C C ABORT IT PUSHES THE ADDRESS 50 WHEN THE STMT HANDLER RETURNS IT TXA SHOULD POINT TO COLON lt ENTER WITH THE TRA i IH HL GOING TILL DR GOTO OF SHOWS OR TEST FOR CDOHTROL C MORE ON THIS LINE KELA YUP EXECUTE IT END OF LINE NOPE ILLEGAL TERMINATION CHR MOVE Z HL LINE gt DE RE ENTER IF ECB MAKE IT CURRENT LINE SAVE PUSH THE START OF THIS DESIRED RETURN ADR STATEMENT A PRINT STMT MIGHT BE POKED TO HPRU RETURN WITH HO CR IF TERMIHATOR IGHGRE COMMA 7 HO CR IF EOS SEND A TAB NO CR IF EOS LEADING SLASH FOR LITERAL NOPE TRY CHRE YUP MOVE OVER SLASH FETCH A CHR END OF LINE YUP CLOSING SLASH ERROR FINAL YUP HOPE kz DO MORE A CHR FUNCTION TRY STRIHG PRINT SLASH SEND IT MIGHT TRUNCATED EXPR gt SEND IT 7MUST AN EXPRESSION SAVE HL DURING PRIHT NUMBER PRINT 2 HL PRINT THE SIGHED HUMBER RESTORE TRA SET Z FLAG IF EOS SAVE SOL THA OH STE SECOND CHR MIST BE YUP EVALUATE RIGHT SIDE SOL gt HL EOL STK A GOTO STMT gt COMMAHD OR ARRAY EOS gt
42. WAS LAST SET WITH SEE p FOR LEFT SIDE RETURHS A VALUE 8 255 RETURNS THE VALUE OF THE Z TH ELEMEHT OF THE SINGLE BYTE ARRAY X MAY BE EXPRESSION THE BRACKETS ARE IF AND ONLY IF THEY ARE NEEDED SEFARATE THE SUESCRIFT FROM THE REST OF THE Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 EXPRESSION BRACKETS ARE MANDATORY ON THE LEFT SIDE AS LX1 EXCEPT THIS IS THE DOUBLE BYTE ARRAY TAKES ON THE VALUE OF THE LAST EXPRESSION EVALUATED THIS INCLUDES EXPRESSIONS SUBSCRIPTS AND PAREN THESIS 4 IS EQUAL TO 25 THE USER FUNCTION TAKES ON THE VALUE PASSED IT BY THE MACHINE LANGUAGE SUBROUTINE DE REGISTER INITIALLY IT IS SET TO RETURN THE NUMERIC VALUE OF THE CHARACTER FOLLOWING THE SEE APPENDIX F SINGLE CHARACTER INPUT FROM THE KEYBOARD WILL STOP UNTIL A CHARACTER IS INPUT PRINTED RETURNS A VALUE 8 TO 127 EXECUTION NO PROMPT IS PARITY MASKED TAKES ON THE VALUE OF THE A THRU Z 2 9 DIGITS NUMBERS INTERPRETED DECIMAL 510 5 EXPRESSIONS ARE MATHEMATICAL FORMUALS WHICH EVALUATE 15 SIGNED INTEGERS THEY ARE USUALY FOUND ON THE RIGHT SIDE AN ASSIGHMENT STATEMENT AND SEVERAL OTHER PLACES EXPRESSIONS CONSIST OF OPERAHDS WHICH OPERATED UPON AND OF OPERATORS WHICH SPECIFY THE
43. 11 GOOD RESPONSE COMPLAINTS ABOUT TARBELL TAPE UNITS Dear Jim Sept 19 1976 Thank you for giving me the opportunity to reply to the notes about my cassette interface in your Volume 1 Number 8 issue I believe that no product is ever perfect so I continually revise both the documentation and the interface itself Since I started delivering these units over a year ago I have gone through four revisions of the boards and at least six revisions of the manual These changes were largely the result of com plaints suggestions and returned survey forms which are at the end of each manual The first ten kits especially were followed very closely and the owners were asked to immedi ately inform of any problems they had with either the manual or the board In this sense the kits were tested on persons unfamiliar with the device Although I realize that the term is a relative 1 don t feel that the implementation of this device has been at all sloppy Of course I ve had my share of problems like any of the other manufacturers but I ve made every attempt to follow up what I consider good design practices and to make the system as clean as possible Unfortunately I did have a run of boards that had bad plated through holes and got through my inspection undetected I have since discontinued my relationship with the manufacturer that produced these boards and selected another My first rev
44. 4 850 287 271 811 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box 994 086 0806 995 886 00 oar eo 287 881 2 095 993 807 285 oag 898 007 888 CAL DEINT DE lt gt HL LXI DE MMEM JTC DCX HL LM LM a IHX HL INIT STHL SPRS LXI HL CRL WANT c wit n 25 gt v E CAL YSNO LXI HL SNER STHL LNI HL CAL WANT DSS 5 CAL YSNO LSI HL STHL LNI HL HPRU STHL SIPK LXI HL 2 CAL WANT DSS CAL YSNO LXI HL SNER STHL LKP1 1 STHL LKP2 1 JMP ICON PGE JMP BINL ICON LXI HL LETS STHL LNI HL EOP1 XR LM A INN HL STHL BOTX LM INN HL LM HL LM STHL LNI HL ENTR STHL 1 MSGP DSS 15 12 INIV JMP ICN2 ROUTINE TO GET Y OR TZ MEANS Y MEANS Y SNO CAL TTYI DEVO CPI Y JTZ RET WANT MSGP 055 15 12 JMF MSG 191 ZTHIS THE CONFIGURATION USED BY THE BOOTSTRAP LOADER THIS IS EXECUTED ONLY ONCE BOOTSTRAP AFTER THE FIRST TIME EXECUTED GET NUMERIC ARGUMENT REQUESTED ADDRESS gt HL MIHIMUM POSSIBLE ADR gt
45. ADD BEGIN CHEAT CK1 CLR UMPR DIV DOLR2 DOPTR 12 15 18 4 ES END ERR1 EX1 EXS F10 FS F9 01 C4FF 8F17 06 07 409 casa 8208 9810 40 0401 CAE 01 1 01 06 DCO1 E2E9 07 90 06 D4FE 07 9004 0000 0335 0 54 007C 0649 ocsc 0509 0410 0096 0100 097 920 064B 0 05 0225 0 66 0 70 0F12 OEDO OEFD gt w s gt gt 15 7 TELETYPE ROUTINES j HEH FF FF FF FF OF OF HF SF FF FF FF FF FF HF IEEE DEAE IEEE FF UE 3 3 GECO 1 2 3 94 MESSAGE SNT X MESSAGE 74817 707 MESSAGE END 7 7 MESSAGE NOG 707 MESSAGE N MESSAGE NES T MESSAGE NEX T MESSAGE 787 MESSAGE 70197 707 MESSAGE MESSAGE L PAGE LOCAL LDI 8 ST NUM P2 CSA ORI 2 CAS CSA ANI 020 JNZ 1 LDI 87 DLY 4 CSA ANI 020 JNZ 1 2 ORI 1 CAS LDI 133 DLY 8 CSA ANI 020 JZ 3 LDI 1 4 LDI JNZ 4 ST 2 RRL XAE SRL XAE CSA ORI 1 2 DLD NUM P2 JNZ 2 DLY 8 LDE 07 LDE JMP GECO SENSEB GET CHARACTER AND ECHO IT j EF OF FF FFF E E IE PE PE DE DEPE PE FF FE PE FF DE E PE AE E TE PE H
46. D4FO 8 9803 JZ SUPZ 2 OSBF C400 LDI SUBROUTINE 1 01 08 2 CAFF SUPZ2 ILDI 1 ST EREG P1 TEXT UP UNTIL WE REACH TRIS ROUTINE IMPLEMENTS THE LINK STATEMENT 1 F1 THE FLAGS SET ABOVE JP SUP 9953 LB 2 5 HIGH BYTE OF ADDRESS 101 LD 101 0965 37 E450 XRI 0266 CZEF LD 0 2 LOW BYTE OSCE 9804 JZ SUP 0968 33 XPAL P3 P3 gt USER S ROUTINE C100 LD 1 0969 C7FF LD 8 1 CORRECT 0802 9OFO SUPS 098 XPPC P3 CALL ROUTINE PRAY IT WORKS 0804 2 2 i RESTORE THE FLAGGED LOCATION OJSC LEFI P2 VARS RESTORE RAM POINTER C900 ST 1 TO THEIR ORIGINAL VALUES 0972 JMP 21 RETURN 0808 C901 ST 1 P1 40 LDE IF DISPLACEMENT 0 UE RE FF FF E PF E E FF E FE FF E OSDD 4 SADD OUT OF SO REPORT ERROR DO LOOP ADDRESS C402 LD i 2 1 9085 E124 JMP 12 C2E7 SADD LD INSERT LINE THIS ROUTINE IMPLEMENTS THE STATEMENT OSES 9884 X19A JZ xi UNLESS ZERO 7 C2Fi LD PALOW PZ Pi AT LINE BUFFER LOCAL OBES 31 1 0
47. LH A SP lt gt HL JMP LOOP POPX DE LD B LE HL JMP TERA TST IFHOT RETI PSHX DE CAL FACT CAL CHSG SP lt gt HL DE lt 7HL CAL CHS PSHX LE H LC L DEX7HL La B C CTZ ERRO LXI DE 0 SU LL LA SB LH INX DE JFC 0191 DCX DE BC STHL RMDR La OR A LOOP SKIP MULS Mt 7 0702 DIV1 DpOTCDPOrfF FLAGS SET LIKE LEFT RIGHT TXA POINTS TO END OF EXPRESSION LEFT ON STK GET RIGHT SUM gt DE LEFT gt HL TXA ON STK COMPARE SIGN OF LEFT AND RIGHT SAME SIGN DON T SWAP DO THE COMPARE RESTORE SETUP RESULT OF RELOF 770 LE A IF TRUE lt TERM gt I SUM TERM I SUM TERM SUM IS LEFT IN DE EXIT LEFT TERM ZFOLLOUED BY SAVE LEFT HALF GET RIGHT HALF LEFT gt HL ON STACK RIGHT LEFT gt HL RESULT gt DE RESTORE FOR MORE SUMS FOLLOWED BY HOPE DONE WITH ALL SUMS SAVE LEFT TERM GET RIGHT HALF DE RESULT LEFT RIGHT EP 11 lt FACT gt I TERM lt FACT gt I TERM lt GET LEFT FACT FOLLOWED BY AN 7 HOPE TRY DIVISION SAVE LEFT FACT GET RIGHT FACT LEFT gt HL TXA ON STACK NUMBER OF BITS CLEAR PARTIAL PRODUCT 716 BIT DE ROTATE RIGHT BIT DONE ALL BITS DONE
48. Prefix arithmetic Concatenation blank Length operator number Relational ops lt lt gt gt lt gt Logical ops AND OR Assignment Input Global Nesting Subscripting Substring ellipsis Data types INTEGER STRING Data structure the vector WHAT HI ADDS TO TINY HI 1 Data types REAL and LOGICAL and the corresponding literals Multidimensional arrays Data declarations For program correctness the attributes INITIAL RANGE and TYPE and the ability to test an expression s type For output the attribute FORMAT functions SKIP X T globals COL LINES SPACE 6 The iterative DO TO BY UMN POSTSCRIPT Nov 23 1976 1 Negation of 215 will produce an overflow 2 Concatenation has a lower priority than or negation but still greater than the infix arithmetic operators The example given for number should be 5 73 1 3 Functions may have no argument as in 4 After END WHILE in GCF there should be the line Y I want to thank those who wrote about TINY especi ally Gregg Townsend E E E E E 8 88 E ERI E E E RCA 1802 PLEA To Jim Warren Nov 2 1976 I ve not seen anything yet on the 1802 Is it too new for the hobbyist or what Could you publish a short request for responses from any 1802 users Yup Sincerely Harley Shanko 15025 Vanow
49. REQUEST lt MINIMUM YUP GIVE THE CHUMP FIRST LOC FOR STACK GET CONTENTS ANOTHER CHANCE WRITE IT BACK COMPLIMENTED DID IT GO RESTORE CONTENTS NOPE HO RAM WHERE HE SAYS LOWEST LOC FOR STACK RESET YUP MAKE IT THE STACK IF SAYS YES WANT SAVE TAPE T A E 24200 RESET ADR GET HIS ANSWER HE POKE SAVE TAPE IF SAYS YES gt ASK WANT STRING 1 0 I 0 7 200 OUT TEST HL HIS HSUER HE SAID OUT STRING PRINT POKE OUT STRING INPUT TEST IF HE SAYS YES gt HL ASK WANT ARRAYS Y S 2 200 GET HIS ANSWER HE SAID FOKE OUT ARRAY LOOKUP MAKE IT A SYNTAX ERROR CONTNUED AT ICON PUT IN JUMP TO BINL FOR BOOT MAKE ARRAY ASSIGNMENT ILLEGAL THIS IS BOTX gt HL DO A NEW COMMAND BOTS WILL BE IN HL NOW SAVE D0 A NEW POKE OUT JMP TQ INIT MAKE IT JUMP TQ ENTR PRINT SIGN ON MESSAGE S U L 200 CONTINUED AT ICN2 ANSWER FROM TERMINAL HIS ECHO IT YES CHR SR TQ PRINT N 209 WANT START ADR OF BINARY LOADER BINARY LOADER TO THE SAME 10 ZERO UPON ENTRY FROM THE THE JUMP ZAT WORD 8 OF THE BINARY LOADER PAGE IS FOKED TO JUMP AROUND THE 170 POKE BINL LDA 7
50. RNDY P2 TEMP2 P2 RNDX P2 i MULTIPLY THE SEEDS BY 9 RNDY PZ TEMPZ P2 RNDY P2 NUM P2 SLOOP ADD 7 TO SEEDS 7 RNDY P2 7 RNDY P2 RNDF P2 i HAVE WE GONE THROUGH 1 256 GENERATIONS i IF SO SKIP GENERATING RNDX P2 THE NEM RNDX LSTK P2 i START MESSING WITH THE STACK P3 1 i FIRST PUT 1 ON STACK P3 1 2 P3 2 P3 1 P3 3 P3 4 P3 4 P3 3 P3 5 P3 RNDY P2 2 P3 RNDX P2 07 1 P3 6 P3 P3 LSTK P2 X23 E16 i PUT EXPR2 ON STACK PUT EXPR1 ON STACK PUT ON STACK ADD 6 TO STACK POINTER 0430 0432 0434 0435 0437 0438 0440 0442 0444 0446 0048 4 OA4C OA4E OA4F OAS1 0453 0454 0456 0458 OAS 0458 OASC OASE OA60 0862 0464 0866 6 OA6C OAGE 0470 0472 0474 0476 0478 0479 7 OA7C 7 0 81 8 0 85 0487 ons OASB OASF 0491 0492 0894 0 96 0897 ong 9 OAAI OAAS OAAS 7 OAAB OAAE OAAF OAB1 OABS 7 OABB OABD OABF OAC1 5 7 OAC OACB OACD OACF 0 01 OAD3 OADS 0 07 OAD OADB OADD OADF OAEO 2 4 5 7 OAES Dr Dobb s Journal of Computer Calisthenics amp Orthodontia AAFD 33 C410 37 C400 CBFF C401 CBFE
51. SECOND PART OF NEXT VAR RE FE FF HERE E E HF FF FF FF 1 LD LO P2 IS FOR LOOP OVER WITH JZ REDO iNO REPEAT LOOP LD FORPTR P2 i YES POP FOR STACK CCL ADI 7 ST FORPTR P2 XPPC P3 RETURN TO I L INTERPRETER REDO LD FORPTR P2 POINT P3 FOR STACK XPAL LDI H FORSTK LD 1 P3 GET OLD Pi OFF STACK 1 2 P3 XPAL JMP X26 E19 JMP E18 j HE E HF 4F DE DE 2F PE PE 2F HF E E IE E E IE PE PE E FE PE IE IE 4F GE E E IE PE 2F PE RE Dh G PRINT MEMORY AS STRING THIS ROUTINE IMPLEMENTS THE STATEMENT i PRINT 7 FACTOR LOCAL PSTRNG LD HI P2 POINT Pi AT STRING TO PRINT XPAH P1 LD LO P2 XPAL 1 LDPI P3 PUTC 1 POINT P3 PUTC ROUTINE 1 LD e1 P1 GET A CHARACTER XRI IS A CARRIAGE RETURN 92 X26 YES DONE XRI OD NO PRINT THE CHARACTER XPPC P3 CSA j SURE NO ONE IS ANI 020 TYPING ON THE TTY JNZ 1 BEFORE REPEATING LOOP X26 HE FF FF FF HF RE EE IE IE AE EHE TENE IEEE EAE E FF AE E IEEE IE TE IE IE E i INPUT A STRING j HF FE HE FF E PE E PE DE E PEPE PE PE PE SE E E HF FF 0F THIS ROUTINE IMPLEMENTS THE STATEMENT INPUT 75 FACTOR ISTRNG LD HI P2 i GET ADDRESS TO STORE THE STRING IT INTO P3 LD LO P2 XPAL P3 2 LD 1 P1 A BYT
52. TST F T CALL FACTOR F6 TST F7 STA T DO STATUS RTN F7 TST F8 TO 50 FNDPGE TST F9 0 D CALL DOUBLE DO DIV MODULO RTN F9 TST F10 RN D CALL DOUBLE DO RANDOM SUB ADD DIV MODULO ADD RTN F10 TST SYNTAX PAG E DOUBLE 5 SYNTAX 7 CALL RELEXP TST SYNTAX 7 7 CALL RELEXP TST SYNTAX 727 DO PRNUM DO XCHGP 1 PRN PRNUM1i DO DIV PRN1 XCHGP1 RTN PAGE ERROR MESSAGES j FFE HF HF FF ETE EH TEE PE E E E FE E IE E PE PE IE PE HE ESE EEE Ea aE Pu ERROR MESSAGES IEEE EEE 3F aE aE MACRO MESSAGE ASCII 747 BYTE B os0 ENDM MESGS MESSAGE ERRO MESSAGE MESSAGE STM T MESSAGE R BON 49 OFAD 0 51 55 59 OFSD 0 61 0 65 oF68 OF6C OF 6F 73 75 77 OF78 OF7A OF 7B OF 7C 7 82 4 OF85 OF 87 OF 89 91 OF 94 OF 26 OF 98 OF 9A OFC OF SE OF AO OF AZ 4 OFA6 OFA OFAB OFAC OFAE OFBO OFB1 4 7 OFB OFBA OF BF OFC1 OFC4 6 OFC7 OFC OFCB OFCD OFCF OFD1 OFD3 OFD4 OFD6 OFD8 OFD OFDA OFDB OFDC OFDE OFEO 4 OFE6 7 OFES
53. Z2 Variable 1 097 Output 1 10 OK Variable 097 Output 0010 OOPS Nov Dec 1976 4 Robert Smith FRIDEN DOCUMENTATION FOR 10 Dear Editor Oct 31 1976 Some months ago I purchased a Burroughs Friden Printer Keyboard and the associated interface electronics the surplus market The model number is 9530 2 The cost was in the vicinity of 300 and looked like a pretty good deal for a hard copy unit The major shortcoming is the lack of any documentation For effective use of the unit with home computers some changes are necessary but are virtually impossible to accomplish without adequate docu mentation I spent nearly all of my spare time for the last half year on the incredible task of deciphering the circuits on the interface boards There are over 300 integrated cir cuits obsolete types on the boards It was the hardest puzzle that I ever worked Tt is likely that there are other computer freaks who have bought similar units and are in need of documentation For 10 I will send a copy my documentation to anyone for his or her personal use The documentation includes com ments on almost all of the inter board wires and logic diagrams of the boards and typewriter switches It does not include explicit instructions for modification of the boards for home use but perhaps I can generate that later Sincerely 2300 St Francis St Palo Alto CA 94303 Does anyo
54. 092 0992 O02 092 002 092 oaz 902 092 092 992 gaz 082 982 882 092 002 gaa onz O82 892 982 002 6902 992 092 093 683 ea 883 Un C O Gi 0 Qn ch Sy CM Cn on 3 3 3 4 4 4 4 C GJ C J m RY e oan ow PD D oe 213 fs m cn r C r C CD p GQ hr IY P3 P9 P3 PO py PO DJ py P jJ 2 79 GI P D D P P AE OS OY m m 0 OL oD n e C 74 CT pp QJ C Ch HN CI GJ CJ 6 CJ Oe 5 5 74 P 358 7X EN mn m mn m m HU C m C0 be p J PY 0 Och p Ww Ow C4 CJ CJ CJ A C J 04 ot Q ad 04 mo Ne 883 ang an aig 913 914 615 e GI jg ibe GJ QJ J td Ch C Eod 4 c PJ n Un Z7 P9 G c 6J P TO p Cn C CJ CJ C4 GJ P e Wa CJ 315 317 238 325 315 343 831 353 341 383 317 158 A 325 315 315 315 317 340 325 315 343 345 841 681 172 f XA 1 WM CO 4 J 4 Ww
55. 5 gt BC LC E POPX DE ZRESTORE DE TST 1 ZIGNORE 1 IFNOT SUB1 RET TST SET SINGLE BYTE ARRAY BASE IFNOT BSED DE lt BASE gt HL STHL SBSE SAVE NEW BASE POPX HL RESTORE EOS TXA RET TST SET DOUBLE BYTE ARRAY BASE IFNOT LETS MUST BE A LET DE lt gt HL NEW BASE gt HL STHL DBSE SAVE BASE POPX HL RESTORE EOS RET DSD 378 10 7808 OF SINGLE BYTE ARRAY BASE ADR BSD 3790 10 OF DOUBLE BYTE ARRAY BASE ADR ZTHIS WILL BOTX 1 IF STRINGS AND TAPE SAVE ARE DELETED TST gt PRINT STRING ARRAY 2 IFNOT PEXP CAL SSUB STRING gt HL ON STK DE lt gt STRING TXA gt DE POPX HL BACK gt HL LDAX DE GET A STRING CHR OR A 7 05 2 JTZ ZYUP DU HORE OF STHT DEVO NOPE PRINT INX DE BUMP STRING TXA PRINT SOME MORE TST 2 STRING INPUT 2 IFNOT NPRU CAL 5508 STRING DESTINATION TXA gt HL MSGP PRINT PROMPT DSS 208 CAL GETL 3 705 TO INPUT STRING POPX HL GET TXA CPUSHED BY SSUB RET THIS WILL BOTX 1 IF SAVE ZX TAPE 715 DELETED Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Page 29 896 806 806 0906 006 006 986 086 906 006 806 096 006 906 905 0906 996 985 906 006 986 995 986 906 805 806 996 906 996
56. 7 5 233 244 2 0 245 amp 32 xX X 1 1 x gt he 3 4 5 245 1 5 0 250 50 400 SzS 1I LzM V zS7 10 z2U 1 amp 2Z448 8 U amp zVe48 5 F 3000 3900 1 gt 3100 P K 12R 328 X amp 7 1 SecKeyd 3200 1 1 3900 Xe1 amp 232 X amp 27 X42X 1 2 6 KHZ 4000 X X 1 B 0 Nov Dec 1976 ABBREVIATIONS USED IN COMMENTS 000 825 583 189 Bea JMP NXTD YCONTINUED AT NXTD z i INTO RESTART IS THE EXPRESSION EVALUATOR THE VALUE IS gt ABSOLUTE VALUE OF 2 RETURNED IN THE DE REG SEE CONTINUATION FOR MORE INFO ADR ADDRESS 2 ARG ARGUMENT 838 38 BUF BUFFER 000 030 315 107 002 CAL GET THE YALUE DF EXPR gt DE 688 833 353 DES gt HL RESULT gt HL TXA gt DE CARRIAGE RETURN 000 834 ZAZ 873 JMP EXP1 CONTINUED AT CRLF CARRIAGE RETURN LINE FEED E ZCHR CHARACTER RESTART 4 IS THE DEVO DEVICE OUTPUT KOUTINE THE CHR COMPARE IN THE A REG IS SENT TO THE OUTPUT DEVICE DOESN T DECREMENT ZMUNCH ANY REGS OR FLAGS STACK USAGE 4 BYTES END OF PROGRAM EXPR EXPRESSION 848 40 05 END STATEMENT OR OF STRIMG 355 PSU SAYE A AND FLAGS EQTX OF TEXT 088 841 353 681 INP 1 READY STATUS gt A 7 END BUFFER
57. 886 906 098 995 009 995 895 085 000 885 095 985 999 985 000 085 909 885 695 005 985 805 005 905 985 895 005 285 985 805 005 885 089 980 005 005 996 4 ALS MITS ACR FOR SAVE TAPE COMMANDS fAL4 MITS SIOA C REV 0 FOR TERMINAL 7813 5 88 PIO FOR TERMINAL RESERVED FOR MITS 4PIO CNOT FUNCTIONAL 49811 RESERVED FOR MITS 2510 NOT FUNCTIONAL 7810 RESERVED MITS 2510 NOT FUNCTIONAL NOW 89 CONTROL LOGIC STANDARD 1 0 As USE CUSTOM 1 0 FROM LOCATION 58 NONE MITS SIOA NOT REV FOR TERMINAL THIS LOADS LOCATION 100 AND WHEN IT IS DONE POKING IT GOES BACK TO THE BINARY LOADER WHICH WILL THEN READ CASUAL ON TOP THIS 100 LXI HL PGE PSHX HL INP 377 NDI 2 RFZ 377 OR JFS IOPB LAI 6 STA CHIN 1 STA PN0V 1 INA STA STA LAI ADR OF BINARY LOADER TEST A9 WANTS CONTROL LOGIC ALL DONE TEST 15 DOESN T HAYE AN ACR CIDP41 CODP 1 STA STA LAI 1 STA CIRM 1 LAI 200 STA CORM 1 INP 377 NDI 100 JTZ IOPC A STA INA STA LAI STA TIRM 1 STA TODP 1 LAI 2 STA TORM 1 LAI 312 STA TIA STA DEVP LAI 310 STA TIB RET INP NDI JTZ XR A STA STA INA STA STA sta INA Lal STA LAI STA RET INP NDI JFZ XR
58. 888 0900 21212 898 9008 988 600 880 aga 0988 600 001 981 001 001 881 001 091 981 281 001 001 891 001 881 991 B01 801 991 001 081 881 001 281 881 291 991 198 183 104 196 110 111 113 114 117 121 124 127 130 133 136 148 143 146 156 153 155 166 162 164 167 178 173 175 177 292 29 212 214 217 221 224 22 231 234 235 237 241 244 245 258 253 254 257 262 265 266 271 050 853 198 941 345 333 346 300 333 25 362 876 662 062 074 862 076 333 346 312 25 062 952 974 062 976 862 062 976 862 076 062 062 876 862 311 333 346 312 257 062 062 874 062 862 062 874 952 976 962 662 862 311 333 346 302 257 062 062 5 874 062 062 862 876 952 076 062 875 852 062 311 333 346 310 941 176 862 843 176 862 843 176 062 000 ono 377 377 168 096 143 138 152 148 382 146 133 881 145 288 132 377 188 235 135 042 126 040 137 113 882 044 312 122 106 310 163 377 040 397 135 042 126 044 113 13 312 122 106 310 163 3v 177 362 135 842 137 126 113 298 044 163 382 122 186 377 901 050 135 975 975 062 643 175 962 843 176 862 843 176 062 043 176 862 843 176 062 943 176 062 943 126 042 044 105 113 143 097 000 096 006 006 086 006 996
59. 9 gt IF A STATEMENT TERMINATOR 990 212 357 MEGF PRINT PROMPT PERIOD OR END DF LINE NULLO STACK USAGE 2 BYTES 000 213 256 pes 200 2 888 214 041 377 377 LXI HL 377 377 IMMEDIATE MODE FLAG 20 808 217 042 262 O84 STHL CURL A20 04 NATC INX HL BUMP TKA TO NEXT CHR 088 222 315 816 C L FETCH AN INPUT LINE 021 176 LA M 000 225 327 FETCH BLANK LINE 000 822 376 072 CPI 941 218 IT 3 2g 226 312 287 JTZ NOCR IGNORE G24 328 RFC 753 888 231 322 855 eat JFC STMU 4 NOT NUMERIC EXECUTE IT CARRY FALSE Page 25 Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 234 237 248 241 242 245 246 250 251 254 257 311 320 321 322 323 324 327 338 331 332 333 334 335 336 237 000 342 343 000 146 358 551 552 253 555 356 557 568 261 562 365 378 373 374 375 376 577 eno 081 aod 206 210 623 3 354 3 315 345 325 365 681 176 26 843 203 392 361 395 355 215 285 322 353 952 032 982 003 823 367 322 148 285 004 008 245 000 084 880 053 042 321 361 312 052 343 381 811 345 315 345 343 381 266 004 207 260 290 984 881 984 355 880 207 852 256 004 184 115
60. BE DONE ALL THE LEGAL OFERANDS HAVE JUST BEEN GIVEN IN THE SECTION COVERING THE RIGHT SIDE OF H ASSIGNMENT STATEMENT EXPRESSIONS ARE E YALUATED USING THE STANDARD MATHEMATICAL HIERARCHY THE ORDER OF EVALUATION MAY BE ALTERED BY USING PARENTHESIS THIS IS A LISTING OF LEGAL OPERATORS AND THE HIERARCHY EVALUATED FIRST 2 lt gt Z EVALUATED LAST THE FOUR RELATIONAL OPERATORS EVALUATE TO EITHER A ONE 12 IF THE CONDITION IS TRUE A ZERO IF THE CONDITION IS FALSE NOTE IS NOT EQUAL THE AND OPERATORS EVLUATE TO THE PRODUCT AND QUOTIENT OF THEIR OPERANDS RESFECTI LY THE AND OPERATORS EVALUATE TO THE SUM AND DIFFERENCE OF THEIR OPERANDS RESPECTIVLY THE AND OPERATORS ARE ALSO USED TO INDICATE UNARY PLUS AND MINUS RESPECTIVLY IS DETERMINED BY CONTEXT WHEN EXPRESSIONS APPEAR IN PRINT STATEMENTS MUST BE TAKEN TO ENSURE THE MEANING OF THE 2 AND OPERATORS ARE NOT MISINTERPRETED BOTH OF THESE CHARACTERS DO A DOUBLE DUTY AND ARE EAISLY MISUNDERSTOOD BY CASUAL FOR INSTANCE A MILES PER GRLLON WILL PRODUCE ALL SORTS OF GARBAGE BECAUSE THE SLASH gt IS TAKEN TO MEAN DIVISION AND NOT THE START OF A LITERAL STRING LIKE THE USER WANTED IS THE FIX MILES PER GALLON HERE IS CLEAR THAT THE VALUE OF A IS TO BE PRINTED FOLLOWED BY A LITERAL STRING ARRAY REFERENCES ARE NOT LEGAL ELEMENTS OF AN THE FUNCTION EXPR
61. Box 906 151 Center St Cape Ca naveral 32920 this machine has a 4 digit hex readout and integral hex keyboard Standard on board memory comprises 256 bytes of RAM externally expandable to 64K Additional features include DMA as well as serial and parallel I O Assem bled and tested the price is 395 with case and power supply 249 95 for a complete kit or 179 for just the MPU board Nov Dec 1976 MILITIA MAY HOBBYISTS COMPATIBILITY PROBLEMS Dear Jim Sept 7 1976 You are probably aware of the WESCON Session paper described in the attached extract from Electronic Design below Looks like the military may be giving us a hand with standard ization enjoyed meeting you at Personal Computing 76 Best wishes Joe Gilbreth 1229 Vista Lane Birmingham AL 35216 Recommendations for use of a common bus system will be made in Session 11 but in another context for the standardization of military microprocessor systems That will be proposed in a Session 11 paper bility Among Families of uPs by Hank Malloy military program manager Intel Corp Malloy is also chairman of a newly organized task force on military microcomputer LSI which is sponsored by the Electronic Industries Associates and the National Electronic Manufacturers Asso ciation To achieve any kind of standardization it is essential that bus structure characteristics be specified Molloy will argue Also high orde
62. EXECUTED IT FINDS LINE 9 2 1 CMINUS DHE BEFORE LEAVING UP AT END OF LINE NULL STMT STMU SIPK PCOM QUOT Quas PAPE GOT 151515 ano pas LEF MEMA OUT DEF CAL ABRT LA M CFI JTZ STMT f ERRO INX HL CAL FELN DES STHL CURL DE lt gt HL FETCH STHL SSTM LXI DE PSHN DE RTZ TST 7 JT2 CRLF RTZ TST IFHOT JMP CR TST IFHOT QUOT LAI 11 DEVO JMP CR M CFI JFZ INX HL L M OR A CTZ ERRO HL CF I n JTZ DEVO JMP 0005 TST gt PRI LA E JMF EXPR FSHX HL DE lt gt HL CAL SHLF POPS HL DCX HL FETCH JMF FSH HL HL TST z IFHOT CMD 5 lt gt HL TST FOF HL LA L RTZ LA n IHA ENTR CAL LFHD LH B LL C HL CAL ERRO TST IFHOT CAL FSHL LA M INX HL LH M LL A STHL DLAD TST IFHOT POK DE lt gt STHL MADR HL RET TST IFHOT OUT LDHL MADR LM HL RET TST PAD LAI 323 STA RAMIO LA E JMP RAMIO TST
63. I eum am s Socket it to Freddy TAQA Pa HAMATIC NOTE IN According to a letter in the excellent November issue of Byte hams who are also interested in computer phreaquery should tune to 3 865 MHz LSB on Thursdays at 2300 GMT a good time Nov Dec 1976 Dear Jim Roy Rankin Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Sept 22 1976 Subsequent to the publication of Floating Point Rou tines for the 6502 Vol 1 No 7 an error which I made in the LOG routine came to light which causes improper results if the argument is less than 1 The following changes will correct the error 11 After CONT JSR SWAP 1007 Add A2 00 LDX 0 LOAD X FOR HIGH BYTE OF EXPONENT 2 After STA 1 1 1012 Delete LDA 0 STA 1 Add 10 01 3 IS EXPONENT NEGATIVE CA DEX YES SET X TO FF 86 09 STX M1 SET UPPER OF EXPONENT 3 Changes 1 and 2 shift the code by 3 bytes so add 3 to the addresses of the constants LN10 through MHLF wherever they are referenced For example the address of LN10 changes from 1DCD to 1DDO Note also that the entry point for 06010 becomes 1DBF The routine stays within the page and hence the following routines EXP etc are not affected Yours truly Dept of Mech Eng Stanford University COMPLETE 8080A
64. In our last Gotcha a few manufacturers were taken to task and fewer still were praised for the quality of their products and documentation This time we take a brief look at the familiar Altair and IMSAI chassis and a long look at the very interesting Poly 88 I refuse to revive the old Altair vs IMSAI debate As everybody now knows the old Altair power supply was feeble My Altair worked fine after I had replaced its supply with a custom 40 amp at 8 volt wonder In an external box that should never land on your foot I actually liked the Altair case better than IMSAT s and am glad to see MITS has carried the design over to its new machine Just two screws and the top slides off If the screws are omitted the case is just as strong to top loading On the IMSAI there are four load bearing screws which I could never get at because something was always sitting alongside the computer If the screws are omitted the top sits rather low Not good Since I get letters asking Yes the heavy duty supply on the IMSAI is excellent I haven t tested the new MITS supply but it looks good I don t think they ll make the same mistake twice After all if they re smart enough to make a computer I find a serious flaw in the IMSAI front panel Those big paddle switches that make the IMSAI look sort of like a PDP 11 have a small space between their tips IMS should take note as it prevents errors and still makes it easy to hit two at once
65. Nov 15 1976 NEW COMPUTER MART The Computer Mart of New Hampshire is currently located Daniel Webster Hwy Merrimack NH 03054 603 1424 2981 On January 1st it will move to 170 Main St Nashua 03060 information from Ron Cordova 76 12 4 Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Page 55 6800 RELATIONS Dear Editor Nov 10 1976 Motorola makes several monitor roms Mikbug Minibug Minibug 1 Exbug for their M6800 systems Most systems in hobbyist hands are currently using Mikbug Minibug 11 now seems to be avail able from Mini Micro Mart and it has several additional and enhanced features over Mikbug These features are serial 1 0 to for the control interface binary load binary dump S9 on last record of punch user control of SWI vector upward and downward move ment during address changes and memory test commands Documenta tion on the commands is supplied but no listing or hardward imple mentation guides We are using Minibug 117 in a SWTP 6800 and are pleased with its operation The following notes are supplied for those who might wish to try this rom Dennis Sutherland David Kyllingstad 2835 2bth Ave 840 Hillview Dr Marion Marion Trademark of Motorola MINIBUG SOFTWARE EQUIVALENCE Ron Tonneson Fairfax Minibug Il is not to be confused with Minibug
66. O26 0267 0268 Ozean 3 O26B C OZGE 0270 3 0271 0273 0275 3 0276 0278 27 0272 027 0230 0282 0284 0286 0258 0286 028 0290 0292 0294 0296 0297 0299 0298 0290 29 1 0255 0207 0249 2 2 O2B1 0282 0284 0286 02 8 2 02CZ 02 4 2 2 2 2 0200 0202 0204 0206 0208 OZDC 0200 O2DF 02 1 2 02 5 02 7 02 9 OZEA O2bC 2 2 0261 2 2 5 2 7 2 9 O2FB O2FD O2FF 0301 0303 030A 0314 0215 0317 0319 031B 0310 0321 0322 0324 0326 0327 7079 C40E 9099 C2F4 9822 C100 2480 06 0420 FEED 400 CSO 502 CAFS c40c CAFA C482 CAFE 2400 C450 CAFD CA18 4 C4A4 CAF JOBE AAF4 CZEY 35 CZES 31 46 C47A CAFF 3F 9047 7069 C100 E480 2418 C410 37 AAFD AAFD 33 C501 CEFF 501 501 401 CAFS C400 CAFS 402 2001 2001 06 0420 8E6 UC S01 E40D 9805 400 FOFO C40D C404 Nov Dec 1976 XSA 17 LUI LDI LDI LDI ILD ILD XPAL Ln ST LD ST LDI ST LDI ST JMF 52 F2
67. P2 1 5 51 4 P3 0 4 P3 4 0 3 3 4 P3 X1 ERR1 LSTK P2 LSTK P2 P1 H AESTK P1 CHRNUM P2 1 P1 207 EREG P1 3 P1 4 1 PRNT H PRNUM1 2 L PRNUM1 PCLOW P2 4 1 LISTNG P2 CHRNUM P2 eEREG P1 P1 P3 e 1 P1 51 LSTK P2 LISTNG P2 4 4 POINT STACK PUT 10 ON STACK BE DIVIDING BY IT LATER SET CHRNUM TO POINT TO PLACE i IN STACK WHERE WE STORE i THE CHARACTERS TO PRINT FIRST CHAR IS FLAG 1 IF NUMBER IS NEGATIVE PUT ON STACK i THE NUMBER AND NEGATE 60 DO DIVISION 10 IF POSITIVE PUT 7 7 ON STACK BEFORE DIVISION THEN CONTROL IS TRANSFERRED POINT P1 AT amp E STACK INCREMENT CHARACTER STACK i POINTER PUT EX REG GET REMAINDER FROM DIVIDE PUT IT ON THE STACK IS THE QUOTIENT ZERO YET YES GO PRINT THE NUMBER iNO CHANGE THE I L PC SO THAT DIVIDE IS PERFORMED AGAIN iGO DO DIVISION BY 10 AGAIN POINT P3 AT PUTC ROUTINE IF LISTING SKIP PRINTING LEADING SPACE PRINT EITHER OR LEADING SPACE GET EX REG VALUE BACK POINT P3 AT FIRST CHAR TO BE PRINTED PRINT THE CHARACTER i GET NEXT CHARACTER REPEAT UNTIL 1 iCLEAR THE STACK PRINT A TRAILING SPACE IF NOT LISTING PROGRAM
68. PAGE 1 Thus several NIBL programs residing in different 4K pages may be linked together as one large program if need be This would allow one to write a 28K STAR TREK program in NIBL a Herculean and indeed foolish task Control may also be transferred from one page to another by three other statements RETURN NEXT and UNTIL Thus the first part of a subroutine or loop may be in one page and the second part may be in another with control being transferred between the two parts by an assignment to PAGE In these three special cases NIBL automatically updates the value of PAGE as the statements are executed Relational Operators NIBL provides the standard BASIC relational operators for com paring the values of integer expressions The operators are as follows equal lt less equal 2 7 greater than or equal lt gt not equal to lt less than gt greater of these operators produce 1 as a result if the relation is true the relation is false Note that the relational operators may appear anywhere that an expression is called for in the NIBL grammar not only in IF statements Arithmetic Operators NIBL provides the four standard arithmetic functions addition 4 subtraction or unary minus multiplication and division Since only integers are allowed in NIBL all quotients are truncated the MOD function can be used to obtain remainders from d
69. STA STA INA STA STA STA LAI STA LAI STA LAI STA STA RET INP NDI 1 RTZ LXI LAM STA TRDY 1 INX HL LA M STA TIRM 1 INX HL LAM STA DCA DCA STA INX LA M STA TIDP 1 INX HL M STA DEVQ 1 INX HL LAM STA 1 INX HL LAM STA DEVP INX HL LA M STA TODP 1 INX HL LA M STA CHIN 1 INX HL ZTEST 14 ZDOESN T SIO TRDY 1 DEVQ 1 TIDP 1 40 577 40 TEST A13 4 DOESN T HAVE 88 TRDY 1 DEVQ 1 TIDP 1 TORM 1 TODP 1 TIRM 1 312 TIA DEVP 310 TIB 377 177 RLL LOU 7 CALS DON T ZDOESN T HAVE SIOA B OR REVO TRDY 1 DEVQ 1 TIRM 1 TIDP 1 TODP 1 290 ZTEST R8 DOESN T WANT CUSTOM HL CUST START OF CUSTOM SAVE AREA TIA TIB HL Page 31 001 854 176 nm 801 855 062 145 886 STA CIRM 1 891 060 043 HL 001 861 176 LA M LOW by Mark Space 001 962 062 146 006 STA CIR EXE DERE ERIS pm 001 865 843 IHX HL 001 866 175 LA 001 067 062 152 086 STA CIDP 1 H 272 043 INX HL Some signals on a microcomputer s bus are normally low and blog e STA go high when they are meaningful These are called active high 201 077 042 INK HL Some lines are just the opposite and they are called active low 091 101 062 152 006 The commonly accepted notation f
70. STA RDIN 1 LDHL 11 L H LH A 94025 STATUS FORT INPUT ROUTINE STATUS MASK gt L RFZ OR RTZ gt HL CHANGE RTZ RFZ INTO JFZ JTZ gt Nov Dec 197 116 121 124 127 132 135 240 00 007 007 oa 007 243 246 24 252 253 987 254 261 264 00r 267 987 270 272 00 274 277 ere 381 097 oo 007 087 807 007 0807 997 393 304 395 386 318 311 312 313 316 317 322 323 324 325 526 553 334 335 336 537 340 341 342 343 344 345 346 997 007 oar oor 007 ga an 087 ao 007 087 097 00 207 007 987 897 98 895 007 612 913 916 021 022 025 926 931 832 811 0135 842 872 862 641 942 961 915 315 376 312 375 315 315 26 312 137 315 167 276 392 281 117 643 033 392 315 271 312 081 076 323 323 323 862 393 315 157 315 147 311 333 346 312 333 311 357 040 126 040 956 951 066 815 212 652 253 252 173 225 15 172 234 14 315 182 131 124 195 123 048 122 105 305 307 061 975 315 ons 392 841 176 315 955 382 176 315 273 014 135 001 008 270 27 254 377 148 243 270 211 278 172 140 193 11
71. TO MAKE CASUAL S USER DEFINABLE FUNCTION EQUIVALENT TO THE CORRESPONDING INTRINSIC FUNCTION OF BASIC BASIC CASUAL ABS HEREC CKSB CHK OID SGN PECKOOI CRKL BD USR CAO PEEK CH INP amp MOD xX7Y 8 XZ MAK Y CR 14 YKY MIN Cx T CACYOWATCY iC OTHER USEFUL FUNCTIOHS w s mum dum GAP m e m AP OCTAL TO DECIMAL THIS FUNCTION ACCEPTS A THREE DIGIT OCTAL NUMBER IN DECIMAL PRINT FORMAT IN THE VARIABLE SUBROUTINES AND RECEIVE DATA FROM THEM Dobb s Journal Computer Calisthenics amp Orthodontia Box E Menlo Park 94025 10 zC 100 644 CC C 180 100 5 10 84C C 190 518 20 C 377 74 PRINTS 255 DECIMAL TO OCTAL THIS FUNCTION ACCEPTS DECIMAL NUMBER 2552 IN THE VARIABLE D AND RETURHS AN OCTAL REFRES ENTATION OF AS A DECIMAL NUMBER 8 377 38 21764 100 1 1 64 642 8 1 1 D 8 8 48 D 255 GIVES 277 APPENDIX CASUAL MACHINE LANGUAGE INTERFACE CASUAL HAS THE ABILITY TO LINK TO MACHIHE LAHGUAGE FIRST YOU MUST SET ASIDE ENOUGH MEMORY TO HOLD THE MACHINE LANGUAGE ROUTINE WHEN CASUAL ASKS 5127 DON T RETURH BECAUSE CASUAL WOULD USE ALL THE MEMORY COULD FIND WILL BE LEFT FOR YOUR MACHINE LANGUAGE ROUTINE YOU SHOULD NOT ATTEMPT TO USE ANY MEMORY BETWEEN LOCATION ZERO AND
72. That s all you get that s all you need It surely doesn t look impressive Sort of like a toaster in size and shape The Poly is by far the easiest of the S 100 bus computers to build The backplane and power supply are all on one well designed motherboard The only wires leading to it are from the transformer and the front panel button via two Molex connectors It is all very neat with almost no point to point wiring Someone was thinking when they designed this one To take the backplane motherboard out just pull the two connectors and undo six easy screws which go into captive nuts on the board nothing to get lost inside Have you ever tried to take out an IMSAI backplane More Page 16 AN EXCELLENT SYSTEM PLUS NOTES ON SOME S 100 GOTCHAS CATCH 16 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 by Jef Raskin Box 511 Brisbane CA 94005 415 467 4674 screws than an X rated movie and then there are wires screwed onto the board Dumb For some reason Poly s tiny little case requires eight screws A bother The kind of thinking that went into the electronic design was absent when the case was created It is on such small shoals that great ships are wrecked There are more bolts than slots There are 5 slots Is that enough Let s see one for the CPU one for the video board it s a dandy one for a ROM board to hold something comfy like BASIC and say a 16K RAM
73. Where one draws the line beyond SIL seems to be strictly a case of chacun a son gout Zahn 4 for example seems to feel that even adding the FOR statement and recursive subprograms is not enough Vaughan 5 argues for includ ing both the labelled and indexed CASE statement A casual examina tion of the literature will reveal various proposals for control struc tures to supplement SIL the absence of any precise generally cepted definition of SP am inclined to believe that a minimum prac tical set of control structures will include substantially more than SIL Fourth Mr Bonham states that seem to consider PL I to simple SP language and that he does not consider PL I to be an SP language do not wish to refute Mr Bonham s claim that PL I is not an SP language since am in sympathy with his view on this issue However there are any number of textbooks with titles like Struc tured Programming in PL I which suggests that PL I is being treated as SP language whether in fact it is or This together with the fact tnat is a commonly used complex language is the reason why cited it in my letter Yours Fred J Dickey 3420 Granville Rd Westerville OH 43081 1 Boehm C and Jacopini G Flow diagrams Turing Machines and Languages with only two formation rules CACM Vol 9 No 5 1966 pp 366 71 2 Knuth D Structured Programming with GOTO Statements Computing Surveys Vol 6
74. ducts being marketed to them We have pursued this pri marily through the publication of complimentary and com plaining letters regarding products With such letters we generally have no knowledge of the expertise fairness honesty or bias of the writers thus they have been pub lished as letters rather than as articles Recognition of this fact prompted us to adopt a policy see Editorial in October 1976 DDJ regarding the treatment of letters of complaint Though we will continue to publish such letters within the constraints of that policy see several examples in this issue we feel that a formal orderly product testing and evaluation program would be more fair and more useful to our readers It will also be per fectly in keeping with the Charter of our publisher Peo ple s Computer Company is California licensed non profit educational corporation WHO WILL DO THE TESTING We have organized an evaluation team consisting of three people plus the Editor These are individuals whose qualifications we do know Jef Raskin is the Director of the group Many of you al ready know of him through his critique of a number of hobby systems DD September 1976 Bit of Wheat Amongst the Chaff This issue carries a second product evaluation by him is currently an independent consultant involved in several real world applications small computers Prior to this his work included serving as Director
75. encyclopedias want ads library indices case law citations you name it all types of reference materials that it would be desirable to be able to search and access via machine Page 6 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 COMPUTER CONTROL OF TAPES HAS MUCH WIDER USE THAN MERELY FOR MUSIC SYSTEMS Dear Jim Sept 20 1976 I read your excellent article Computer Control of Music Tapes for Your Home Stereo in DDJ Number 8 I think it is really a realizable fantastic fantasy However I have some objec tion to the title and the emphasis of the article Had you titled it Computer Control of Bach s Music for Your Home Stereo on the Second Floor I would have ob jected even more The hardware you described is a computer controlled tape deck that can handle both digital and analog re cordings The software you proposed is also a very general file As you have mentioned in your bells and whistles this system would be ideal for many types of computer aided instruction I would also use it to play computer games and many many more Wouldn t it be great to hear Dr Spock talking when you play Startrek I would also use the same system to save all the programs and all my secret files In this case the analog part may be of no great value but my stereo on the second floor just might announce We are now loading a version of TINY PASCAL dat
76. im proved part and we do not believe that our or IMSAT s cus tomers should be limited to the functionability of the 8080A when an improve part is available We are concerned that some people do not understand the advantages of the u PD 8080A Therefore we encourage you to print this letter for your readers If there is anything else we to help you this matter please contact me Very truly yours David F Millet NEC Microcomputers Inc Technical Staff 5 Militia Dr Microprocessors Lexington MA 02173 TSK OUR HEADLINE WAS ONLY OFF BY A FACTOR OF 1000 Dear Jim Oct 12 1976 thanks for your article about our super duper low priced magnetic tape storage products on Page 6 of your September issue Only one thing wrong with it You re guilty of overbyte in the headline Our maximum capacity is 60 Kilobytes not Mega SER The text had it right Must have been a computer error Two problems come to think of it Your second paragraph says that we manufacture only the drive and cartridges Not true In addition to the drive and cartridges we also make what we call a digital OEM system Unfortunately the OEM system sells for 390 in single quantity which is a byte much for the non manufacturer to chew Yours very truly Irma R Johnson Micro Communications Corp Vice President 80 51 Waltham 02154 15 Product Review 88
77. m m Nath Deon nm DD 0 4 145 146 152 153 154 155 156 166 GJ J NJ 74 M m Dd UD BH 7 A UO QJ P Ue he P 04 QQ 0 J T 04 74 C4 C4 C J GQ C e P aa CY m PY J J 4 QI 0J IS GJ 74 gt UOI D DD amp 794 Ul Ca J O SJ FO q NY G P3 Nae GM ANN 0L C o4 881 884 885 885 884 084 884 894 884 884 884 884 4 COMMAND PROCESSOR CMD LISC LISA HEU EST CE IFNOT LR M INS HL CFI 1 JFZ HL SP lt gt HL JMP LETS HL TST L IFNOT HEU CAL DEINT CAL LFHD LH B LL C 55 76 INS HL CAL ABRT CAL CRLF CAL FELN PSHX HL DE lt gt HL HOSP HL OR A JTZ LISC DEG LISB TST H RUN LDHL BOTs LM A IHX HL LM A INX HL LM STHL LDHL SPRS SP lt HL BC LDHL DCS HL RET TST R IFNOT OS JTZ RSSP ESPR JMP GOTA ARRAY LET STMT 7 IT S A COMMAND MOVE TO RIGHT EXPR OVER ZE PR VALUE gt DE EOS TRA ST
78. n IS DE RFZ NOPE RETURN EST YUP BACK TO COMMAND MODE E rad EXPRESSION EVALUATOR USES ALL REGISTERS RESULT IS LEFT THE DE REGISTER WILL PROBABLY RECURSE AT LEAST ONCE HIERARCHY EVALUATED FIRST C 2 Pad Z EVALUATED LAST 5 2 PA QPERATORS ON THE SAME LEVEL ARE EVALUATED LEFT TO RIGHT lt gt lt SUM gt I lt SUM gt lt lt SUM gt I lt SUM gt gt lt SUM gt 7 SUM 4SUM I lt SUM gt lt SUH gt STACK USAGE 7 19 BYTES CALLS EOM BEFORE RECURSIMHG SUM LEFT SUM 5 TST lt ZFOLLOUED lt 2 IFHOT TRY RSUM RIGHT SUM AHD COMPARE RFC FALSE DE LE TRUE MAKE DE 1 RET TRY TST gt GREATER THAH 7 IFHOT TRYE CAL RSUM RIGHT SUM ETC FALSE RTZ EQGURL IS FALSE LE TRUE EQUAL TO Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 gea O82 oaa gaz gaz gaz O2 one 082 992 082 002 onz oaz 002 ona 092 992 opz 002 682 002 oe ode ga2 082 onz 802 002 082 882
79. 02 7 MICHIGAN X Lan Rapids y M Et 2 Ww Miei o M and gt SOUTH DAKOTA Sioux Fells gt gt 7 Sioux e Rapids o poper Ld am XD Lincoln N i b Kansas p Lime At Ri wal MISS0U io Springfield 4 Fo 5 E f Prepared by David Baran Age 11 Page 10 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park 94025 Nov Dec 1976 McCORD REPORTS THE LSI 11 Dear Bob and Jim Oct 7 1976 To follow up my conversation with Bob of a couple weeks ago this is to tell you about the LSI 11 stuff At last count there were about 15 people in the S Calif area who were using the LSI 11 I understand that there are about an equal number in the Bay Area Other than those two groups I know of no other large bodies of hobbyists using the machine although there are undoubtably isolated people around the country who bought them from various distributors Perhaps an announcement in PCC or Dr Dobb s will help pull us together The S Calif group bought their machines from a company called Applied Information Development a subsidiary of SDC AID is apparently building something that incorporates the LSI 11 and is selling the components partly as a w
80. 1 51 0043 51 01 6 51 0230 51 0397 1 0443 1 OSFA 51 06 7 1 0772 1 0838 1 0930 1 097 51 0992 51 O9FD 1 51 51 9812 51 0846 1 51 4 51 510 52 O1FF 2 025A 2 0348 2 0454 2 0707 2 0782 52 0842 52 52 OADD 52 0828 52 52 3 0261 3 0304 3 O4AC 3 084A 3 OADF 3 0611 3 OF 9C 4 1 54 0857 54 55 085 ABOR O6C6 ADD 1001 8000 CR 07D8 DOUN 0885 SEND 04C3 SEND DGAC END 1 0446 0688 SENTE 0786 0402 FAIL O4FB JMPB 4000 SLETR 067 LOOP 002 LOOP LOOP 0203 LOOP 0241 LOOP 0386 LOOP 0460 LOOP 066 LOOP 06 7 LOOP 0909 LOOP OAD1 LOOP 0838 LOOP 0868 LOOP 0500 MOVE O86F 5 0247 NOT 0628 051A 0688 0616 5 4 PRNT 1 REDO 053 REDO OAFS 0606 RUB 7 5 7 SHIF 0692 SHIF 0714 SKIP 0664 TSTB 2000 UP 0895 1 UPZ 2 08 4 4 0804 XH 07C8 XU 07046 ERROR LINES SOURCE CHECKSUM 33FE INPUT FILE 1 NIBL2 SRC IN GROUP HUMOR FOR DINOSAUR USERS We recently heard of some new instructions proposed for some of the maxi computers of industry and business BRANCH amp BOMB BRANCH amp HANG PUNCH OPERATOR BACKSPACE amp EJECT DISC BACKSPACE amp PUNCH DISC Oh well we said it was in group humor Page 5
81. 6 issue The response has been tremendous After experiencing some initial problems with typo errors and delayed shipments we are now meeting with your 3 week delivery schedule On November 1 we found it necessary to increase the price of our boards to 6 50 for the 64 character board and 13 50 for the 2K memory boards Printing costs have also required us to charge 2 00 for the instructions if re quested without ordering the boards a corrected copy of the necessary instructions is now available We have received many requests for a scrolling modification for the and we are happy to announce that we will have one ready to ship out before the end of the year The board is set up such that only five jumpers are required to install it This was accomplished by hav ing the board plug into sockets which replace IC s 34 and 41 the mainframe These IC s are relocated on the mod board The board gives bottom line scrolling with the new line coming up clean Nor mal or scrolling modes are switch selectable with the scrolling not be ginning until the page is full Line feed is disabled when in the scroll ing mode It appears that the board will retail at 20 00 with sockets and instructions although this is not yet firm Thank you David O Valliere Digital Designs Box 4241 Victoria TX 77901 VTT GROUP BUY Dear Jim Oct 27 1976 In response to our conversation on the phone today here are all the details on the 4000
82. 88 94F4 JP THIS ROUTINE IMPLEMENTS THE STATEMENT 0891 ST EREG Pri i Pi DizP STAT 0893 904E 0895 SUP LD POSITIVE DISPLACEMENT COEF MOVESR LD LOCP2 LOM BYTE GOES TO STATUS 0897 CAEA ST 2 FLAG BEGINNING OF MOYE WITH 0948 ANI OF7 BUT WITH IEN BIT CLEARED 0899 LDI i FOLLOWED SO CAS OS9B C9rE ST 2 4 1 E 5 MEYER APPEAR in 9039 X 5 2 0890 C450 LDI So NIBL TEXT 0950 SORE HP CS9FF ST 10P71 8 1 C501 LD i Pi ADVENCE TO EMD OF TEXT JP SUPA C100 LD 7 94 SUP 1 oga 35 Pi SAVE Pi IN LO HI OSAA CAEE ST 0952 STATUS LDI HICBSZSTK 35 0954 37 i POINT STACK 31 XPAL Pi 0955 2220 TLD LSTK CP2 OBAE CAEF ST 10072 0957 AFD in STKUP2 31 APAL Pi 0959 33 APAL 0881 C2EF LO P2 ADD DISPLACEMENT 095A OS CSA OSB3 02 CCL 3 VALUE CF Pi TO CHECK 0958 CEFE ST 2 STATUS RED IS LOW BYTE 0884 70 ADE WHETHER WE RE OUT OF 6250 C400 LDI 0885 C400 LDI RAH FOR USER S PROGRAM 093 CEFF ST 31 i IS HIGH BYTE 0887 FZEE ADD HI P2 0251 90EB X21 O8B9 XOR
83. BIT NOT ONE SKIP ADD CLEAR CARRY 716 BIT HL ROTATE LEFT 4 CLERH JUNK OFF STACK RESULT gt DE RESTORE TXA LOOK FOR ADDITIONAL OPERATORS FOLLOWED BY Z NOPE DONE WITH ALL FACTORS SAVE LEFT FACT RIGHT FACT CHANGE SIGH IF NEEDED TAA STK LEFT gt HL LEFT gt DE ABSCRIGHT gt HL RESCLEFT2 gt DE SAVE SIGH OF RESULT gt BC 4 RBSCLEFT gt HL DIVISIONH BY ZERO ZYUP ZCLEAR QUOTIENT ZLEFT LEFT 00 000 1 STILL POSITIVE SUB AGAIN TOO FAR QUO QUO 1 REMAINDER gt HL SAVE IT E GET THE SIGH OF RESULT Page 27 003 016 374 246 894 803 341 883 822 383 251 882 003 B25 317 853 803 827 O31 893 403 031 853 003 832 327 083 033 332 285 904 003 036 314 142 883 041 317 055 003 043 053 803 803 845 315 825 883 803 058 303 246 984 883 853 317 056 883 855 065 083 803 857 353 083 068 052 262 004 083 063 353 803 064 311 003 065 317 844 083 067 077 803 003 B71 353 083 072 052 883 885 883 B75 353 083 076 311 003 077 317 845 883 101 111 083 003 103 353 083 104 052 005 883 107 353 803 118 311 003 111 317 841 883 113 126 003 115 353 003 116 052 016 005 883 121 176 883 122 353 883 123 383 142 883 883 126 317 846 803 130 146 003 803 132 876 333 883 134 062 013 805 803 137 315 013 805 003 142 137 883 143 026
84. CCL THEN MULTIPLY BY TWO LD 2 P3 ADD 2 P3 ST 2 P3 LD 1 P3 ADD 1 P3 ST 1 P3 CCL THEN ADD DIGIT LDE ADD 2 P3 ST 2 P3 LDI ADD 1 P3 ST 1 P3 JP LOOP REPEAT NO OVERFLOW LDI 6 ES JMP ESA ELSE REPORT ERROR X14 JMP X13 e IE IE TE IE IEEE EE IHE LINE TELETYPE LOCAL GETL LDPI P1 LBUF SET Pi TO LBUF LDI 0 CLEAR OF CHAR ST CHRNUM P2 LDPI P3 PUTC 1 POINT P3 AT PUTC ROUTINE LD RUNMOD P2 PRINT RUNNING Jz 0 I E DURING INPUT LDI 727 XPPC LDI albi XPPC JMP 1 0 LDI 237 OTHERWISE PRINT 727 XPPC 1 45 GET CHARACTER LDI L PUTC 1 POINT AT PUTC AGAIN LDE GET TYPED CHAR JZ 1 IGNORE NULLS XRI IGNORE LINE FEED JZ 1 LDE XRI CHECK CR JZ CR LDE XRI 207 010 CHECK FOR JZ SRUB LDE CHECK FOR CTRL H XRI 8 JZ XH LDE XRI 015 CHECK FOR CTRL U JZ XU LDE XRI 3 CHECK FOR CTRL C JNZ LDI pose ECHO CONTROL C C XPPC LDI er XPPC Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 0752 0744 0786 07A8 0749 7 07AC O7AE O7AF 0781 0782 7 0786 0787 7 9 07BB 07BD 07BF 07C1 0762 07C3 07C4 07C6 07C8 O7CA O
85. FLOATING POINT PKG FOR 7 50 AND NEW CASSETTE DATA FORMAT STANDARD TO BE PROPOSED Dear Editor Sept 21 1976 In response to Holbrook s letter in September issue regarding the need for a cassette data format stan dard I would like to inform you that a standard with software has been developed the Mohler standard will be published an upcoming issue of Interface The standard allows for various types of data formats and is expandable so new ones can be added It is also universal enough for the format to be independent of cassette interface hardware and processor type We hope to make the Mohler cassette format a standard in the computer hobbyist industry I would also like to inform readers I have devel oped a single precision floating point software package for puter store a couple of months ago He saved a few bucks by not the 8080 6 7 digits of precision The package includes add subtract multiply divide and utility programs to convert from ASCII BCD to binary and binary to packed BCD It takes up about 1200 bytes and is relatively Also nearing completion is a scientific function package which includes square root sine cosine exponential natural logarithm log base ten arc tangent hyperbolic sine and hyperbolic cosine This package is to be used with the floating point package and takes up less than IK bytes It also has six digits of accuracy The floatin
86. Implementation of these programs would be a big step toward having home computers help their owners do use ful things and home microcomputers are admirably suited 10 the word processing tasks the book presents It s sort of cheap too 8 95 in paper Bill Pearson Division of Biology 156 29 Calif Instit of Technology Pasadena CA 91125 Nov Dec 1976 Posted 76 10 25 SCCS INTERFACE STATUS REPORT Good news Your regular SCCS Interface will be coming again to you soon This is to bring you further up to date on the Southern California Computer Society publication Originally the Society went to an outside service to print SCCS Interface on behalf of the Society Certain differences have arisen with the publishing service and efforts at settle ment have apparently failed During our negotiations the outside service printed its own magazine called Interface Age the first copy of which appeared in August You may have received copies of Interface Age in the mail The Society did not mail it to its members The logotype on Interface Age and the format of the magazine are very similar to SCCS Interface and you may not have even noticed the change Interface Age is not an authorized publication of the Society We have discussed our legal options with our attorneys Now that we are free to move ahead the Society has obtained its own publishing service We will resume distribution of SCCS Interface next month Only SCCS Interface will b
87. KEY ASCII data appear usually in groups of four Also RIBUS used in some systems in response to certain types of TERMINAL graphic images jm Interchanged some systems with ZSECOND LETTER KDNG Data is valid now yu A EIE TNITE This signal is issued when the system has a headache E This line goes low the second the code LAST is missing or some systems this may signify that ZEM READY MASK available memory has been used jin OR LOU BZI Issued to DMA devices to let them know they can f have the bus x ZIF YOU ARE USING AN 1 0 BOARD NOT SUPFORTED BY CASUAL RYN This signal is only present during NOP s ZIT IS BEST TO USE THE CUSTOM 1 0 PROCEDURE AFTER LOADING 28 2B There is much over whether this line THE BOOTSTRAP LOAD THE CUSTOM 120 TABLE SEE SWITCH AS THE REST DOWN AND EXECUTE THE BOOT ACUAAITS should be 2B or 2B but that D the question SS MERE ALWD Issued in response to an illegal op code or in some it is ALOUD ng n h f systems it is meaning turn the off i o E EE video display only 7051 IRN NTRSTD Issued by Selectrics usually in conjunction with the 7852 signal 1053 TIDF The switch is off 212 Processor s response to the programmer who jumps the sec
88. LINE 4 750421 START GREATER THAN LINE RESTART 7 IS OPEN FOR INTERRUPT USE START LESS THAN LINE R RETURN IS PUT THERE 50 INTERRUPTS WILL BE IGNORED TILL SOL START OF LINE IS FATCHED OUT THREE BYTES ARE LEFT FOR A JUMP SUB SUBTRACT IMTERRUPT SERVICE ROUTINE 2505 START STATEMENT SR SUBROUTINE 78 SIG DIG SIGNIFICANT DIGIT 000 078 311 TXA TEXT ADDRESS POINTER 7 73 ZTST TEST TRUE ZERO 2 vaL VALUE 888 873 842 001 BAS STHL LRES SAVE RESULT NAR VARIABLE 088 ATE 353 DUE gt HL RESTORE TXA VARNAM VARIABLE NAME 888 877 311 z 7 990 196 376 840 HXTI CPI IGNORE BLANKS 1 192 312 628 JTZ NXTC Z 000 185 376 lt 82 CASUAL 877 CMC gt 880 118 074 INA FLAG UTIHOUT AFFECTING CARRY Z CHICAGO AREA SMALL USERS ALGORITHMIC LANGUAGE 990 111 075 DCA 5 888 112 311 WRITTEN BY ROBERT YAN VALZAH 808 113 382 124 5 1 JFZ NGOT NO MATCH P 1148 HICKORY TRAIL 8800 116 843 HL IGONRE IFNOT ADR DOUNERS GROVE IL 000 117 843 HL P 69515 128 343 SP lt gt HL RESTORE TXA 888 121 383 020 009 JMP NXTC ZFOUND INCR TXA AND SET FLAGS H 212 852 0472 888 124 176 LAM LOW ORDER IFNOT ADR gt U 3122 971 2810 227 890 125 043 IHX HL P 888 126 146 LH M 4IFMOT ADR ON STK RESTORE THA 800 088 383 154
89. LOW 3 BITS JNZ 0 PAGE O BECOMES PAGE 1 LDI 1 0 ST PAGE P2 XPPC P3 i RETURN k FF S S S k E OF S FF dF BF BF OF SS EIE IE FF IEEE FF j FIND START OF PAGE j FE HF FF HF PE BE PE BE B DE 2F PE YF FF FF FF FF FF UH UE THIS ROUTINE COMPUTES THE START OF THE CURRENT TEXT PAGE STORING THE ADDRESS IN TEMP2 P2 HIGH BYTEJ AND TEMP3 P2 THE LOW BYTE FNDPGE LD 2 1 SPECIAL CASE IS PAGE 1 BUT JNZ 1 OTHERS ARE CONVENTIONAL LDI H PGM i PAGE 1 STARTS ST 2 2 LD L POM ST 2 RETURN 1 1 i RESTORE PAGE i SAVE LDI 4 amp LOOP COUNTER 4 ST NUM PZ LOOP LDE i MULTIPLY PAGES BY 16 CCL ADE DLD NUM P2 JNZ SLOOP LDE ST TEMP2 P2 2 HAS HIGH BYTE LDI 2 ADDRESS sT TEMP3 P2 BYTE IS ALWAYS 2 XPPC P3 j HEE E FF PE PE 2F PE DE PE FE PE PE E FF FF FF FF E x P MOVE CURSOR TO PAGE aS a TS ku S S Suk kuk Sk CHPAGE LD TEMP2 P2 PUT START OF PAGE 1 INTO P1 THIS ROUTINE LD 2 MUST CALLED RIGHT XPAL 1 i AFTER FNDPGE XPPC RETURN j HE EH E FE E E HF FF FF E FF E FF ERE REE SEES EERE DETERMINE CURRENT PAGE IEE FF PE E E FE PE PE E E DE AE PE ME E AE ME FF FF FF FF EERE Pi i CURRENT PAGE IS HIGH XAE
90. MATCH CALCULATED VALUE 2 JTZ RERD 4 YUP LOOK FOR ANOTHER BLOCK LAI C GIVE CHECKSUM ERROR DSS 1 SETUP A BOGUS LXI BC INSTRUCTION LAI M QUT 1 OUT 10 OUT 21 23 STR PGE 377 JMP ERR LOOP FOREVER 7 ZTHIS SUBROUTINE GETS TUO BYTES FROM INTO HL ADIN CAL RDIN FIRST BYTE LL MOVE IT INTO gt L RDIN SECOND BYTE LH MOVE IT INTO gt H RET COMES WHEN EOT CHR IS FOUND IF A 100 BYTE FOLLOWS THE THE NEXT TWO BYTES ARE TAKEN A START ADDRESS CONTROL IS TRANSFERRED TO THIS ADDRESS IF NO 109 BYTE IS FOUND WE ENTER AN INFINITE LOOP 7 GOTO CAL RDIN GET A CHR FROM TAPE CFI 108 716 188 JFZ FORE JUMP HERE FOREVER CRL RDIN START ADDRESS HL PO lt HL INDIRECT JUMP TO START ADDRESS 4 THIS SUBROUTINE FETCHES CHR FROM THE INPUT DEVICE THE CHR IS RETURNED IN THE REG MUNCHES amp PSU 4 5 INPUT READY STATUS gt 1 1 MASK OFF UNNECESSARY BITS JTZ RDIH JUMP IF NOT READY KEEP TRYING POK2 INP 4 IT S READY GET THE DATA gt A RET LLOC ADDRESS OF LAST BYTE USED ICN2 MSGP CONTINUE SIGN ON MESSAGE DSS V j 6 15 212 LDHL SPRS DE lt gt HL LAST LOC DE LDHL ZFIRST HL L E DIFFERENCE gt HL SU L LL LA D SB H LH CAL
91. No 4 1974 pp 261 301 3 Presser L Structured Languages Sigplan Notices Vol 10 No 7 1975 pp 22 24 4 Jr Structured Control in the Programming Languages Szgplan Notices Vol 10 7 1975 13 15 5 Vaughan W C M Another Look at the CASE Statement Sigplan Notices Vol 9 No 11 1974 pp 32 36 COMPUTER BASED INSTRUCTIONAL SYSTEMS MEETING The 1977 Winter Meeting of the Association for the Development of Computer Based Instructional Systems ADCIS will be held in Newark DE February 22 24 1977 For further information con tact the conference host Fred Hofstetter Dept of Music Univ of Delaware Newark DE 19711 302 738 2497 Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 SOME SOFTWARE NEEDS amp HOW FILL EM 1 It seems to me that what the microcomputer market needs most right now are good software development tools High priority includes a a good monitor operating system one such as described in DDJ April 1976 is on the right track Sphere s new DOS also seems very promising DOS not only allows user cataloged 32 character file names but also has a number of very useful monitor requests built in which take care of all the I O interfaces for the user b a macro assembler that can run resident on a micro system The need for this should be self explanatory c a simple procedure or
92. P3 1 XPAL 1 sT 2 3 XPAL P1 LDI ST 1 P3 JMP SAVZ LDI 10 JMP EO j HF HE FF FE HF HE HE E HF E E HE HF E HF E FF FE e FF HF FF FF HF 3 FF RE HE TE IE EE SKIP SPACES IS CARRIAGE RETURN YES RETURN IS CHAR A 7 7 ERROR YES RETURN P CHECK STATEMENT FINISHED TE HE MERE HEME AE ME FE HE 3F 3E 3F RE LD e1 P1 XRI INE JZ DONE XRI OD JZ DONE 1 037 JNZ DONE2 DONE1 P3 DONE2 LOI 4 JMP EO j HH HE FF ME HE 3E E HE HF FF HF HF FF HF 4F E HF HE FF E 3 it RETURN FROM GOSUB j HEE HF E HE HF E HE PEIE IE GE E E 3F ME HF 3F E 3F ME FF 4 ttt HEE RSTR XRI JNZ LDI RSTR1 DLD DLD XPAL LDI XFAH LD JP AS X1 JMF RSTRZ LD XPAL LDI ST SBRPTR P2 L SBRSTK RSTR1 gt 1 2 2 H SBRSTK 1 P3 RSTRZ FIN 1 1 1 RUNMOD P2 X1 W O 6560898 GOTO ERROR POP GOSUB STACK PUT PTR INTO P3 IF ADDRESS NEGATIVE SUBROUTINE WAS CALLED i IN IMMEDIATE MODE SO FINISH UP EXECUTING RESTORE CURSOR HIGH i RESTORE CURSOR LOW SET RUN MODE FH FE 3E HF 3E HE FE 3F FF 3F HF FE HF FE HF HE FF HF HE FF FE 3F 3F HE 3F 3F FF 3E HE 3 3F 4 TRANS
93. Package No 1 2 a pass to edit the symbol table and change default labels Lxxxx into meaningful ones if you have some knowledge of the source code this pass is entirely optional 3 do the actual disassembly with most labels put in and all LXI s JMP s etc referencing labels The output is a source listing and optionally using a sense switch writes the source in a format com patible with Processor Technology Package No 1 would appreciate you publishing a note asking if anyone knows a source for APL character generators which could be retro fitted to a VDM Sincerely Ward Christensen 688 E 154th St Dolton IL 60419 Yes Yes Yes Send us your super disassembler including of course user documentation at least nominal internal documentation and annotated source code What sort disc system you using how you like it And may we publish your reply What sort of printer and printer software are you using The original of this letter had an unusual type face and was left amp right 1976 TARBELL About the Tarbell interface two them since two machines and they both work great recommend them However neither of them worked right off One was an early type and needed fixes the other had a bad board and needed fixing But Tarbell gets thern right back a couple of weeks and they re great In fact
94. Polymorphic advertisements understate the advantages of their machine Too bad for them It should be clear that the conventional front panel is a holdover from an earlier era It s too bad that those lights and mysterious switches appeal to so many of our computer cult Like those famous tailfins on cars it im presses the neighbors but doesn t make the machine run better Of course this goes for all the ROM replacements for front panels Having both a front panel and a ROM monitor is fine you just have to pay for it For just under 600 you get with the Poly system the bos power supply video board the monitor in ROM 512 words of RAM room for 3K more of ROM and all the sockets you need for the ICs Of the S 100 bus machines it is the only one where the minimal system has to do real programming course you have to add a keyboard and a TV monitor but nobody includes them for the price Enough free advertising for Poly I am not so much interested in selling computers for them as I am in seeing my computer cousins not wasting their time flipping switches and misread ing lights Any system as I said with HEX display is better for a human being than the same system with a BINARY display and of the S 100 systems available this week the Poly will get more done per your hour than any of the others that s building hour programming hour and even earning hour Other manufacturers if you ve got a better system tell
95. T 0 39 TSTN LIST1 ODD4 DO CKMODE FNDLBL TSTV IN2 0 41 JUMP LIST2 ODDA DO XCHGP1 0 4 1571 ODDE IN1 CALL RELEXP 0 45 LST ODEO DO STORE 0C47 LISTS CALL PRNUM ODE4 TST INS 7 7 049 LST3 TSTV SYNTAX 4 JUMP START ODEB XCHGP1 ODED TST SYNTAX 7 7 4 RUN TST CLR ODFO JUMP IN1 0652 DONE ODF2 IN2 TST SYNTAX 757 0 54 BEGIN DQ 00 5 CALL FACTOR ODF7 XCHGP1 ISTRNG XCHGP1 ocse CLR TST NEW CLEA R 1 IN3 DO DONE NXT DONE CLEAR OEOS END TST ML 6 TST STMT W DONE BREAK TSTN DFAULT Page 48 Dr Dobb s Journal of Computer Calisthenics 8 Orthodontia Box E Park CA 94025 Nov Dec 1976 0 14 OE16 0 22 0 27 2 OE2D 2 0 1 0 OESA OESD 0 40 0 42 0 44 0 47 0 49 4 OE4D 4 0 52 0 55 0 57 OES OESB OESD 0 60 0 62 0 64 0 66 0 59 OESB 7 72 74 77 0 79 OE7B OE7D OE81 oE83 0 85 0E87 9 0 92 0 94 DE 7 OE99 OE9D 2 4 OEA6 OEAB OEAC OEBO OEBA 6 OEB OEBD OECO OEC2 5 OEC7 OECA OECC
96. THE LAST ADDRESS ALLOCATED FOR CASUAL AS IT IS CONSTANTLY BEING MODIFIED BY CASUAL SINCE CASUAL MUST USE CONTIGUOUS BLOCKS OF MEMORY STARTING AT ZERO IT IS BEST TO RESERVE HIGH LOCATIONS MEMORY FOR YOUR SUBROUTINES FOR EXAMPLE IF YOU HAVE A SYSTEM THERE ARE 3872 BYTES IN YOUR MACHINE 1824 3 THEY ARE NUMBERED 6 3871 IF YOU WANTED USE 58 BYTE SUBROUTINE YOU UDULD TYPE 3022 RESPOHSE TO 5127 THIS WILL ALLOCATE LOCATIONS 3821 FOR CASUAL AHD 3922 2871 FOR YOUR SUBROUTINE THE STARTING ADDRESS OF YOUR ROUTIHE MUST BE STORED IN A LOCATION KNOWN AS USRL THE ADDRESS OF USRL IS FOUND AT ADDRESS 000 083 SPLIT OCTAL WHEN LOADED USRL CONTAINS THE ADDRESS OF A ROUTINE TO RETURN THE NUMERIC VALUE OF THE ASCII CHARACTER FOLLOWING THE USRL CONTAINS THE TWO BYTE ABSOLUTE ADDRESS CASUAL CALLS WHEN IT ENCOUNTERS AN AT SIGN C G 5 IN EXPRESSION WHEN YOUR ROUTINE IS CALLED THE STACK 18 SET UP AND YOU ARE ALLOWED TO USE UP TO 11 LEVELS OF STACK SPACE 22 BYTES TO USE MORE YOU LL HAYE TO SAVE CASUAL S STACK POINTER AND SET YOUR OWN YOU MAY USE ALL OF THE CFU REGISTERS EXCEPT HL HL CONTAINS THE ADDRESS OF THE CHARACTER FOLLOWING THE THE RESULT OF THE FUNCTION IS PASSED BACK TO CASUAL IN THE DE REGISTER AS A 15 BIT SIGHED NUMBER SIGNIFICANT BITS ARE IH THE D REGISTER YOU MAY RECIEVE ARGUMEHTS PASSED TO YOUR ROUTINE BY CALLING A ROUTINE CALLED SUBS THE ADDRE
97. UNTIL statements FOR and NEXT may not be executed in edit mode Perhaps the only differences between the NIBL FOR statement and that of more elaborate BASICs such as DEC s BASIC PLUS for the 11 are m hat a FO 2 always executed at least once and that when NEXT statement is executed the STEP value is added to the variable before e the is to determine if the loop should be repeated rather than after the test C oct oct There are two types of INPUT statements in NIBL numeric input and string input The form of the first type is INPUT followed by a list of one or more variables When this statement is executed NIBL the te ety with a question mark 427 The user responds ele expressions commias terminated return For exampl e a legal response to the statement INPUT 26 4 27 These three expressions would then ibis 2 An illegal response E 5 roum vents in Vile r spanse are ignored pe of INP statement allows strings to be input the statement is INPUT lt address gt where isa a ically usually a variable constant or xpression in pare entheses When this statement is executed NIBL Dt ompts the before which point the user enters line termin dui the usua carriag
98. ZDECR EOT HULL COUNT JFZ ZNOT THIRD ONE KEEP RERDING DCX HL ZSTORE NEU STHL RST BACK TO COMMAND MODE 4 4PNOU IS THE PUNCH DRIVER USED BY SAVE ENTER UITH CHR TO SEND IN REG STACK USAGE 2 BYTES 7 PNOU PSHX PSU SAVE CHR TO SEND PNOV INP 5 GET PUNCH STATUS CORM NDI 2 RERDY YET COR JTZ PNOV PSU IT S READY SEND THE CHR CODP OUT 16 RET 4CHIN IS THE READER INPUT ROUTINE CALLED BY THE SAVE COMMAND IT MUNCHES amp FLAGS STACK USAGE 2 BYTES 4 CHIN INP 5 RERDER STATUS CIRM NDI 1 READY YET CIR JTZ CHIN NOPE WAIT FOR CIDP INP 4 GOT A READY GET THE INPUT RET 7 PGE 7 PAGE FOR BINARY LOADER THIS IS BOTX 1 SAVE ARE KEPT 7 7 INIT IS THE INITIALIZATION ROUTINE IT IS LOCATED THE MIDDLE OF THE CASUAL PROGRAM STORAGE AREA IT IS ENTERED WHEN CASUAL IS EXECUTED AFTER LOADING IT POKES OUT THE JUMP TO RESPOND TO SIZ 2 WITH THE DECIMAL NUMBER OF THE HIGHEST ADDRESS TO BE USED BY CASUAL OR HIT CARRIAGE RETURN TO USE ALL RAM AVAILABLE 7 LXI SP PGE SETUP TEMPORARY STACK POINTER MSGP SEND SIZ MESSAGE DSS 15 12 S Z 206 CaL HIS FETCH FIRST CHR A RETURN JFZ NUM NOPE NUMBER LXI HL START OF RAM SEARCH 1415 La n CHR FROM ME
99. address stable for two full memory cycles 2 us min before attempting a read or write thus permitting an actual access time of over 2 5 us program permitting an actual access time of over 2 5 Us program execution on the other hand is not so forgiving and the memory must respond in 575ns The unbuffered system can t hack the speed That this is indeed the problem may be verified by stretching 02 to 2 3 US I have no record of Mr Mikel s having attempted to com municate his problem to me and I do know of over 100 properly buffered MEK systems on which Tiny runs fine Tom Pittman PO Box 23189 Itty Bitty Computers Jose CA 95123 cc Roger Mikel Computer Hobbyist Group NT A SPECIAL PURPOSE EDITOR FOR MANUSCRIPT PREPARATION Dear Jim Nov 6 1976 About reinventing the wheel am going to have to write my own program for word processing in the sense of manuscript preparation Text editors are fine for programmers but they aren t of much help for authors What is available for an 8080 or Z 80 in the public domain F J Greeb s Classy 8080 Text Editor DDJ 6 looks like a good step in the right direction Everything is done on the video screen ex cept the final hardcopy output But a manuscript processor needs to be sentence and paragraph oriented not line oriented and needs to have the capability of juggling stuff among tape units or floppy disk files 1 always seem to be
100. an idea that should cause the hobbyist to gleefully reposition their prayer rugs in the direction of 70 Main Street in Peterborough New Hampshire a super neat method for publishing machine readable information Walter and Carl are proposing that the bar code scanning techniques already in widespread use in automated grocery checkout systems are equally appli cable to publication of machine readable programs and data The basic idea is that programs and data that are of wide spread interest can be encoded in a standard bar code format printed in a book or magazine presumably with the human readable form on nearby pages and loaded into an indivi dual s home computer by simply waving an optical scanning wand over the machine readable pages Programs and data could then be truly published printing them instead of using the far more expensive and less convenient punched or recorded formats The reading mechanism the scanning wand has the advantage of no mechanical parts depend ing on the human hand for its motive power It s simple it s nonmechanical it should be cheap Data transfer rates are obviously limited only by the speed of the hand and the speed of the processor that is interpreting the input from the scanner This is future fantasy technology 15 already well developed both for printing of machine readable infor mation and for inexpensive optical scanners Optical scan ning of printed i
101. connected to a time sharing computer however these are considerably more expensive probably have unneeded bells and whistles and are less available on the used market If trouble appears in the analog end of this system it will be considerably more difficult for the novice to debug and fix than is the case with strictly digital circuitry or with the Byte or Tarbell cassette standards If you use an acoustic coupler you must homebrew a connection between it and the record and playback I O of your cassette This may require some amplification circuitry Now it s up to you It is an interesting and valuable project that is obviously well within the limits of current technology and a hobbyist s budget a realizable fantasy When you get it up and running why not share your implementation with everyone via an article in DDJ Incidentally the quicker a computer coupler interface becomes widely available for home computers the quicker we will see the creation of the machine accessable program and data repositories that I mentioned earlier yet another realizable fantasy Steve Moore is a consultant with Moore Research P O Box 1562 Sacramento CA 95814 916 441 1890 M U S POSTAL SERVICE STATEMENT OF OWNERSHIP MANAGEMENT AND CIRCULATION Required by 39 U S C 3685 1 TITLE OF PUBLICATION 2 DATE OF FILING Dr Dobb s Journal of Computer Calisthenics amp
102. e locations 0433 to 043F 12 bytes saved Sincerely Marcel Meier 8850 S Spring Valley Dr Chagrin Falls OH 44022 i i URTGINAL FY i REVISIONS M 10758774 HRS 400 AKFFF FMI 474 UIT Fill FE FMI BFF HT 0400 zn 04 STA AY ar QADI AH BEY ATIRE SS 0404 SJA ID 1406 AH ELA 0407 St 0407 PUT Y CIN STACK 0408 45 FHA o40B 01 01 4 FE NFXT m CHARACTFR n4oF 07 EXIT DNF TF CHARACTER 0411 ms INY 0412 70 FF FF CHARACTER MI lR C C IOOF WITH 1416 70 Br NEXT A DATZ o vu FXIT TYA GET STRING FNGTH 0417 OLIA 65 Anc Ann RETURN OAT STA OF RSET OF NOCAR CARRY F TIN HT 0422 6n NOCAR FLA RESTORE Y FROM STACK Mavs as TAY 04 74 A ZA 04 RESTORE IMP RETURN INSTRUCTION AFTER TSC LIVES THEY DO HAVE PHONE NUMBER Technical Systems Consultants Box 2574 West Lafayette IN 47906 peddles some interesting low cost micro software Se
103. everyone seemed to complain about when they returned equipment for serving or clearing up the inevitable bugs After spending the summer carefully examining the systems avail able went to the PerCom convention in Atlantic City at the end of August There saw an Apple computer working Well it was love at first sight bought one from Itty Bitty in Evanston and took it home with me to New York Well it took them three weeks to send me two cables and two transformers and a keyboard that were needed to run it When they finally arrived after a prompting phone call my Apple developed a glitch almost immediately the only Apple that the Computer Mart of NY has ever seen with a problem Fearfully anticipating two month delay sent it to Steve Jobs at Apple Computer Co He got it back into my hands in two weeks working perfectly He even explained an elementary error in a simple program had tried Since it took me over a month to even get literature from Sphere and wrote them personal latter or the Digital Group this must be a record for a personal computer company My Apple is terrific Last night loaded your 6502 floating point routine and can now multiply etc Unfortunately all the answers are complemented l ve got system with a cassette storage unit keyboard used TV monitor and a 4K BASIC that s not quite finished yet but does run for less than 1K Moreover Apple promises and I
104. is not the imcompatibil ity itself but not being informed I don t believe that NEC should claim their chip to be compatible but I abhor the fact that their letter describing these differences was labeled CONFIDENTIAL and not released to the end user of their chips nope that this letter may save some people untold hours debugging a program that doesn t work because of the NEC chip Hopefully IMSAI will refrain from using such incom patible chips on MPU boards and will exchange customers Page 14 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia E Menlo Park 94025 NEC chips for truly compatible chips or at least distribute the NEC confidential documentation Sincerely Glenn S Tenney Compro Sr Designer 2111 Ensenada Way 415 574 3420 San Mateo CA 94403 IMSAI RESPONDS Dear Mr Warren Oct 18 1976 Following is the letter promised per our telephone conversation of October 15 1976 We will be sending this information to all past and who the i of the features described in the following synopsis NEC improve the 8080A chip d LL Thank you for your cooperation Very truly yours IMS ASSOCIATES INC Marvin Walker General Manager 14860 Wicks Blvd San Leandro CA 94577 415 483 2093 SUMMARY OF DIFFERENCES BETWEEN 180804 AND uPD8080A 1 Duringan interrupt an RST or CALL instruction is accepted by both both processors W
105. jumper pin 24 on the 8080 to pin 2 of IC 8 and pin 3 of IC 8 to bus line 27 I don t know if I ve missed something else that should have been on the bus I called Polymorphic Sys tems they tell me that are putting out a list of differences and plan to connect the WAIT asI suggest It s the least they can do Another problem with the Poly is that when a number of chassis are plugged into one another the cooling adequate with a single system becomes inadequate Not only does the system look like a toaster friend Kent Strother made cardboard enclosure with a super quiet ROTRON fan as per the IMSAI Now even the regulators run cool The secret put the fan on top sucking up thus forced air aids natural Page 17 convection There are slots around periphery at the bottom of the case and all other openings are sealed forcing the air to pass the boards and transformer Not enouth attention has been given to air flow in the IMSAI or the ALTAIR 8800 which both have a lot of stagnant air spots even with the fan going Kent also designed a cardboard case for the keyboard that used to lie around naked us the Cardboard Computer Com pany It s cheap in keeping with our homebrew budget and if done carefully looks surprisingly good Second a word for the Poly video board but first a word for the Processor Technology video board The PT VDM is a top notch piece of equipment Their check out procedure as you pu
106. me about it Don t bother unless you use the S 100 bus so we can go to others than just you for add ons But do me if you ve got something really different like 8 for 50 disadvantage of not having the conventional front panel after all this I do know one disadvantage is that the CROMEMCO Bytemover program won t work It needs switches You can get a parallel port and eight switches and wire it up for port address FF but that s a bother So I called up CROMEMCO if their documentation had been better this would not have been necessary to find out how to write a 2707 EPROM without their program The method they told me consists of writing each PROM in its entirety from beginning to end a number of times Say a hundred to three hundred times How many times does the Bytemover write each PROM asked Thirty two I was told So I wrote a little program that wrote the stuff into all the PROMS 255 times you can guess why It worked I sold my PROM containing the Bytemover program Another disadvantage of no switch register is that it means the user has no sense Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 switches often useful in man machine interacting programs Editor There are a few devilish gotchas in the Poly system The first problem showed up in trying to run MITS BASIC duly purchased from MITS Since the monitor likes
107. most of this stuff doesn t work immediately None of my stuff has worked right off That s why you should buy from someone who will back his merchandise I ve bought some used equipment have regretted it When you buy buy quality and mentally add 25 for repairs unless you know at lot about this stuff that don t know Say what s your experience with molex pins for chips I ve not used them but hear they work okay Sure sounds better than buying sockets at 50 cents each Jim Leek 2801 F Bakersfield CA 93301 I TARBELL TRICKY Dear Jim Oct 8 1976 A few weeks back you asked for user comments on the Tarbell Cassette Interface Here are mine based on a not yet up and running board When l first put the thing together had trouble getting the sync light to come on at all So sent the board back to Don Tarbell asking for help He corrected a few errors made some modifications to the circuit and sent it back to me no charge still had some trouble getting the unit to read in data even after setting it up with the aid of the sync light and set it aside until could get hold of a scope The scope showed that adjustment was even more critical than the instruc tions would indicate was getting a good sync light reading over a wide range of settings but the waveform was stable for only a very small range That problem corrected could read in data but still had substantial numbers of errors I ve pretty well
108. side of an assignment statement STAT represents the SC MP status register The current value of the status register can be referred to by using STAT in an expression an assignment may be made to the status register by executing a statement such as STAT 40r STAT STAT OR 20 When NIBL makes an assignment to the status register in this manner it clears the interrupt enable bit of the value before it is actually assigned Note also that only the lower byte of the value is assigned the high byte is ignored The carry and overflow bits in STAT are meaningless since the NIBL system is continually modifying them The utility of STAT lies in the fact that 5 of its bits are connected to 1 0 sense lines on the SC MP chip The pseudo variable PAGE contains the number of the memory page currently being executed or edited As indicated in Figure 1 there are seven pages in which NIBL programs may be stored therefore PAGE may lie only in the range 1 through 7 If an assignment of a value outside this range is made to PAGE only the 3 least significant bits of the value are used and zero is automatically changed to one If PAGE is modified while NIBL is in edit mode all subsequent editing will take place in the new page If PAGE is modified by a NIBL program during execution con trol will be passed to the first line of the NIBL program in the new page This transfer would be effected by a statement such as PAGE PAGE
109. t RID DE NO wn ORORO ORORO O C C C C C CS C C G o0 d D OD G9 GO BOBS O 9 tO CO CO D O CO CD CO O CO O SD tO tO tO tO tO tO CQ OK OV OY m m co fx u 5 ON 40 OS OQ 0 x0 t ALDAN o UJ t mc Q OQ O d ct c O c O GJ 0 GQ O t lI 40 O O O lt 00 00 q lt Q Q i O O O 4 m t O 00 00 b s QN O C 00 m O Q t6 t5 O Q c lt in O t 000 lt m tl N 06 2883222229222222888822839999282993820222289289928989983 88888888888888888888888888888888888888888888888383 1976 Dr Dobb s Journal of Computer Calisthenics 8 Orthodontia Box E Menlo Park 94025 Page 59 LIFE S LIKE LIFE ON AN 8080 WITH VDM The game of life seems to be a natural for the VDM So much has been written about it Here is a short version that requires toggling only 116 bytes earlier version Vol 4 No 2 required 218 bytes This program does however RAM equal to the VDM memory to store the next generation If you are really strapped for memory use half of the VDM for each genera tion 1 Before loading the program first initialize the screen On Processor Technology s VDM this is done by sending a zero out to the VDM ou
110. the fact that now they can add scrolling to their TVT 2 A fully assembled scrolling modification board model SM 2 is available from Lenwood Computer Systems Box 67 Hiawatha IA 52233 A complete set of instructions is supplied The cost of the SM 2 is 20 00 plus 1 50 for postage and handling Thank you for your time Jay G Francis P O Box 67 Lemwood Computer Hiawatha 52233 Systems 64 X 32 VIDEO DISPLAY KIT Gentlemen I thought that some of the DDJ readers interested in video displays might want to look into a kit sold locally here in Dal las It isa 2K x 8 bit parallel I O 32 lines of 64 chars it may be optioned for RS232 also The main reason for going to this unit was because of the several control codes that allow blink by code and blank The blank unblank allowed me to not only not use up my own rather limited core RAM actually but to use the screen for extra RAM as the unit will operate at machine speed I m using the INTEL 8080 prototyping kit Readers interested can write to the company at this ad dress IOR P O Box 28823 Dallas TX 75228 Sincerely D Moore Dallas Texas Page 8 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 64 CHAR MOD FOR TVT IT S NOW amp SCROLLING SOON Gentlemen We would like to thank you and your readers for the interest in the TVT 11 64 character modification article that you published in your No
111. the 8080 based microcomputer owner shopping for an easy to use high level language d Ly The BASIC ETC kit which includes the program on u x either audio cassette tape or paper tape and a 32 page 22 a detailed user s manual sells for 25 00 The manual sells 2 2 56 00 separately Kits from Micro Store 634 Central 7 Expressway Richardson TX 75080 The Micro Store is the d retail affiliate of Richardson based Binary Systems Inc Orders should include a check or money order for the price of the item For cassette tape the purchaser must indicate Down For random initialization of cursors x Random number generator from 5 2 0 LLO lt lt lt lt 060 m a EN TFT N SS a DEM 24144 m mw 5 TE 4 OQ gt gt mms ODE mm gt Moot K gt gt gt gt lt gt A gt 4828 4 2 lt 828 05 86533 222555848282828288542525 4 z n lt Z lt O Z O gt Z A o m Q Q Z x m Z m m Q 9 0 LO A e uu 5 0 OO O 0 E
112. to be deleted Control U echoes U causes the entire line to be deleted NIBL reprompts for a new line Entering a line to NIBL without a leading line number causes the line to be executed directly by NIBL Most NIBL statements as well as the four program control commands may be executed in this manner A line with a leading number in the range through 32767 is entered into the NIBL program in the current page Make sure that the value of the pseudo variable PAGE is valid so that the line isn t lost into non existent memory The NIBL editor sorts the program lines as they are entered into ascending order by line number Typing a line number followed by a carriage return deletes that line from the program Typing a line with the same number as an existing line s causes the new line to replace the old one in the program Each of the seven memory pages may contain a different program separate from the rest Editing the program in one page will not affect the other pages To switch editing from one page to another simply type PAGE n where n is the number of the new page Variables There are twenty six variable names in NIBL the letters through Z They are all 16 bit binary variables so they can be used to hold addresses as well as signed numeric data The variables are already pre declared for the user and space is allocated for them in RAM when NIBL powers up Constants NIBL allows either decimal or hexadecima
113. to hook it up to my hi fi tape deck through an old Lafayette stereo amplifier that was going unused then used an oscilloscope to remove much of the distortion as possible by adjusting the bass and treble controls This is obviously a pretty unwieldy solution So when finish some more important things plan to buy a cheap audio amplifier with tone controls something less than 10 bucks and use it for a more perman ent installation Sincerely Jim Wilson San Diego TEE e 9 e 50 M ao designer of the monster CRA Y I is said to refer to his machine as back end Nov Dec 1976 Seymour designer of giant machines for CDC and Dr Dobb s Journal of Computer Calisthenics amp Orthodontia E Menlo Park 94025 A CLUB SURVEY TOO SMALL FOR STATIS TICAL SIGNIFICANCE BUT WE LIKED IT Dear Mr Warren October 3 1976 Thought you might be interested in the enclosed results of our first membership survey Sincerely Robert R Wier Survey Chairman Texas A amp M University Micro computer Club Box 9 Station 77844 These are the results of the first periodical Texas amp Micro computer Club Survey Opinion Poll taken in Sept 1976 HOW TO READ IT Companies are listed in each division in de scending order of rating Entries are of the form NAME rating no of respondees The ratings are determi
114. to reside in low memory and so does BASIC there was a conflict The solution Poly provides a jumper to cut and one to add to allow you under program control to switch back and forth between processor board memory 3K ROM RAM and other memory having the same address In my case the program that copied BASIC from PROM resided at location 2400 so I used the following program to get BASIC up 3E 20 D3 04 C3 00 E4 The seven bytes say put 20 hex into the accumulator then send it to port 4 Sending the 20 to port 4 turns the onboard stuff off The next three bytes of the program jump to E400 to get the program started Now of course that little program is on the PROM The next problem was with the old MITS serial board I ve always wondered why some serial boards have a crystal stabilized clock of their own since they could just count down from the CPU s clock signal which is on the bus That s what the old serial board did it counted down PROBLEM The clock rate on the Poly system is a few percent slower than the MITS and IMSAI clock So the old MITS serial I O counts down to the wrong baud rate You have to as I did rewire all the counter presets You will have to calculate the proper values Since my computer wasn t up til this was fixed I was glad to have my Model T vintage HP 35 to do the necessary calculations The newer MITS 88 2510 fine board in my book does it right and has its own crystal and works lik
115. umop sawojwms asuas 99 0714 OO LO 20 9600 1199 5802 00 99 GO 8500 T ysnd 3028 3404524 1201521 ov ZN 0514 OO 48 29 600 7799 2806 00 39 GO 5500 40 pun 0099 1 8 02 fr 142 021 00 34 1600 HS VIS 1802 00 34 ect 2500 440 99 011 44 4800 V 0806 1500 VN IAN LTH 0014 70 9 4800 DH OX 0106 83 0500 pax Jau 0519 69 2800 V W 0906 LL 3700 04 0606 00 VE 9700 521211015 asuas LTH 20 090 00 99 6700 1484 291 szakvjd ysug N H 0506 38 8700 Sd 1 0 0206 00 34 VE 6700 AW 1190 0106 00 99 GO 2900 4 0006 0500 217 0902 00 6 22 gt x o 04 145 5502 LO 34 500 eb EG 5 a y OSOZ 8L lt 95 Ovoz 80 6500 pamen gt 3 SA 5 H4440 G IXT SN 502 40 44 10 9600 or a LIVM di 0202 OO 6 25 500 5 3 4441784 IXT 1202 AL 44 TO 0500 S SB g nu SN ZP 6202 00 96 VO 4200 s Q B o9 INY 202 93 azo0 254 51 54 5 o5 YN 0202 8L 9200 gt 25 SU 2 vi 0021 LL 6200 amp 9 ses V 1 04 0611 00 34 VE 9200 89 5 Pes 9 3 11 2 0811 00 19 GO 5200 2 22 425 UO SLOSANI 2274 SHOX 0211
116. worth of boards and a length of nichrome wire and it was still putting out 8 2 volts The point is as you expand the chassis you expand the power supply as well Each expansion chassis costs 155 Takes two or three hours to build Polymorphic Systems forgot so typical of manuals to tell you that should be omitted on slave chassis So I tell you Before I find some drawbacks I am not in the employ of Poly there was an advantage to the multiple chassis that I hadn t suspected when I ordered the miniature monsters When working on a board sometimes it s handy to have a program sitting around but it disappears when you turn off the power to make a change on the board But with the separate chassis idea you put the CPU and memory in one box the board under test in another Just turn off the one chassis to remove the board make the changes replace and turn on the chassis Program still there testing continues Not all is peaches and cream The diodes supplied with three of the four I ve built you know the little ones for the plus and minus 16 volt supplies were small signal diodes instead of power rectifiers The smoke test lived up to its name quick trip to Radio Shack it was Sunday got me a handful of diodes of the right rating 20 for 1 98 or something like that The first one I tested was bad But there were 21 in the bag The other 20 were good so no complaint there But dear reader always test The assembly i
117. 0 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 6502 STRING OUTPUT REVISITED Dear Mr Warren Oct 6 1976 In DDJ Vol 1 8 p 33 Mr Espinosa proposed the exchange of handy subroutines to save bytes space limited systems He also presented an example an ASCII string output subroutine for the 6502 microprocessor I would like to submit a revised version of Mr Espinosa s sub routine I have done extensive work 6502 s with OSI s Model 400 microcomputer During this time I have learned several byte saving programming tricks which I would like to pass on by illustration Through a few simple changes I was able to reduce the length from 40 to 2B hex bytes The result is a subroutine which works the same and saves a few more bytes The program demonstrates a few simple tricks Preservation of the Y index register on the stack 3 bytes saved Replace JMP instruction with ranges less than 128 bt bytes with forced relative branches This permits easier relocation of a generalized subroutine so it may be used elsewhere in memory Make use of TYA instruction rather than saving the Y index in a memory location and then adding it in later 5 bytes saved Test the carry flag condition and increment the high order byte if set rather than adding 00 2 bytes saved Try to avoid dead space inside programs and non sero page data storage i
118. 0 35 C4FF C900 C901 400 C9FF 35 02 410 480 9804 E480 90E9 C400 CAF4 CAFS C454 CAFB C40C CAFA C400 CAEA Nov Dec 1976 ALLOCATION OF RAM FOR NIBL VARIABLES AND LINE BUFFER 501000 28 VARS AESTK SBRSTK DOSTAK FORSTK 5 LBUF PGH 52 26 16 16 28 48 74 gum H H H NH H 0 MACRO MLDC SET LDI LDI ENDM P VAL TEMP TEMP VAL HC TEMP L TEMP P i I L INSTRUCTION FLAGS SC MP POINTER ASSIGNMENTS THE EXTENSION REGISTER FOR RAM VARIABLES USED BY INTERPRETER DO STACK POINTER FOR STACK POINTER ARITHMETIC STACK POINTER GOSUB STACK POINTER 1 1 PROGRAM COUNTER I L CALL STACK POINTER CURRENT LINE NUMBER MALUE OF CURRENT PAGE LISTING FLAG RUN EDIT FLAG SPACE TO SAVE CURSOR SEEDS FOR RANDOM NUMBER STACKS i NIBL VARIABLES A Z i ARITHMETIC STACK GOSUB STACK gt DO UNTIL STACK FOR NEXT STACK I L CALL STACK LINE BUFFER i USERS PROGRAM E SHIRE EHE IEEE IEEE EERE IE E IE RRR INITIALIZATION OF NIBL 3 0 SLOOP 1 CLEAR NOP LDPI LDPI LDI ST ST LDI ST LDI ST XPAL LDI XPAH DLD XAE LD XRI JZ DLD LDI LDI ST ST LDI ST XPAH CCL ADI XRI JZ XRI JMP LDI ST ST LDI ST LDI ST LDI ST Dr Dobb s
119. 0610 0612 0614 0616 0618 061A O61C O61E 0620 0622 0624 0626 0628 405 2002 C406 410 BAFD BAFD 33 C3FF 1 E301 50 2 CAEA C2EE DAEF 2802 E480 01 2 05 40 2028 2081 9 05 40 480 2020 2 04 2 2018 9COS 40 DAEA POOF BAEB 9CO7 40 DAEA E480 9004 C2EA E480 9404 C401 2002 C400 CBFE C400 CBFF C400 C2EF DAEE 9802 2086 501 E40D FCFA 402 20 7 C401 7006 402 2002 C403 CAEB C410 37 BAFD BAFD BAEB 9COE C301 D3FF CBFF C300 D3FE CBFE 9008 9COE C301 DBFF CBFF C300 DBFE CBFE 90C6 701 1976 GTR GEQ SETZ 12 NERI LEQ1 GTR1 GEQ1 CMP1 FALSE 2 LDI LDI ST LDI XPAH DLD DLD XPAL SCL LD CAD ST LD CAD ST XOR XAE XOR ANE XOR ST LD OR LDI XRI XAE DLD JNZ LDE DLD JNZ LDE XRI JMP DLD JNZ LD DLD 2 LDE DLD JNZ LDE OR XRI JP LDI JMP LDI ST LDI ST JS JMP 5 6 NUM P2 LSTK P2 LSTK P2 P3 2 LO P2 1 1 HI P2 1 P3 1 P3 1 HI P2 TEMP P2 HI P2 LO PZ SETZ 080 080 NUM P2 NEQ1 CMP 1 X11 NUM P2 551
120. 08E 9041 CAFC E47A 9812 AAFC AAFC 33 C410 C2F4 7808 35 31 CBFE 31 9001 CBFF 90BB C40A 901B 501 E420 420 9804 437 2001 404 2008 2 E46A 9004 C409 9043 BAFC BAFC C410 37 C301 9409 C402 9085 35 C300 C401 4 90 4 C2F2 9404 C408 401 4 501 E422 98DE E42F 9805 4 407 2035 RTN LDI XFAH LD XPAL LD LD ST LDE JMP PCSTK P2 P3 1 P3 1 P3 PCSTK F2 CHEAT 1 EO POINT P3 I L PC STACK GET HIGH PART OF OLD PC GET LOW PART OF OLD PC i UPDATE IL STACK POINTER P3 NOW HAS OLD IL PC j FFE FE FF 4 3 3E 3E FE FE 3E FE 3F HF FE E FF E HE HE ME 3E 2E FE 36 3 3E FE 30 3E IE 3E E IE E E 3E CHECK FOR MORE THAN 8 SAVES SET P3 TO SUBROUTINE STACK TOP IF IMMEDIATE MODE SAVE NEGATIVE ADDRESS i HIGH PORTION OF CURSOR SAVE LOW PORTION OF CURSOR RETURN IMMEDIATE MODE RETURN ADDRESS IS i NEGATIVE ERROR MORE THAN 8 GOSUBS P SAVE GOSUB RETURN ADDRESS HE HF HE HE HE E FE E E E E AE SE IE HE E PE FE FE SESE TE AE SESE HE FE E 3F HE 4F 4 4F HE HE 3 SAV LD SBRPTR P2 XRI L DOSTAK JZ SAV2 ILD SBRPTR P2 ILD SBRPTR P2 XPAL LDI H SBRSTK LD RUNMOD P2 JZ Savi XP H P1 ST 1
121. 176 843 266 853 319 176 043 345 215 355 881 877 318 B77 328 383 373 098 26 START LINE TEXT EDITOR BUFFER FORMAT 7 7 BOTH LINE 1 LIHE 2 LINE 2 7 ono LINE STORAGE FORMAT 7 LINE NUMBER LOU 8 BITS LINE NUMBER HIGH 8 BITS CHRS WHICH APPEAR ON LINE 280 7 CAL DEINT GET LINE gt DE PSHX HL FIRST CHR ADR SAVE PSHX DE SAVE LINE PSHX PSU ZERO TRUE IF BLANK LINE LXI BC 2 LINE LENGTH 3 BYTE OVERHEAD EDT LA M COUNT UP LINE LENGTH gt OR A INN HL INX BC 2 EDT CDUNTING PSU ZRESTORE FLAGS PSHX BC LINE LENTH PSHX PSU SAYE FLAGS CAL LFND INSERT ADR gt BC SONL gt HL PSHX BC SAVE INSERT ADR JFC EDT2 COULDN T FIND SD INSERT ONLY DE lt gt HL SONL gt DE LDHL EOTX EDT1 LDAX DE DELETE OLD LINE STAX BC INX BC INX DE CMPR DONE YET JFC EDT1 NOPE LH B SAYE NEW EOTX LL C DCX HL STHL EOTX EDT2 POPX DE INSERT ADR gt DE PSU ANYTHING TO INSERT JTZ NOCR NOPE EXIT EDITOR LDHL EOTX SP lt gt HL ZEOTX gt BC LL gt HL BC BC NEW EDTX gt HL PSHX HL SANE IT CaL EOM ZRODM FOR THIS LINE PSHX BC SP lt gt HL ZOEOTX gt HL gt BC ED21 UP FOR LINE M 4FROM OEOTX gt STAX BC DCX BC DCX HL JFZ ED21 ZNOT DOME YET POPX HL RE
122. 2 CHRNUM F2 7 e 1 P1 NEQ LOOP CHEAT EXECIL CHRNUM P2 eEREG P1 FAILLO P2 P3 FAILHI P2 P3 CHEAT1 i CLEAR NUMBER OF CHARS SCANNE SLEW OFF SPACES REPOSITION CURSOR POINT P3 AT IL TABLE FAIL ADDRESS lt OLD CHAR FROM TABLE i DECREMENT CHAR COUNT GET CHAR DACK SCRUB OFF FLAG IF ANY IS CHAR EQUAL TO TEXT CHAR iNO END TEST YES BUT IS IT LAST CHAR IF NOT CONTINUE TO COMPARE IF SO GET NEXT I L i INSTRUCTION RESTORE P1 TO i ORIGINAL VALUE LOAD TEST FAIL ADDRESS INTO P3 GET NEXT IL INSTRUCTION j EHE AERE HEISE RE Ie HF AE AE FF IEEE E EE HE EHE AE IE IE E IEEE it 1 1 SUBROUTINE RETURN j HF EH HF PE FE E HE PE IE PH FE E HF PE FE FE PE FE FE BE FE PE HF DH HF DE PE HF 4F FF FE IE 2 39 OOFD OOFE 0100 0101 0103 0104 0106 0107 0109 O10A 3 0108 0100 010F 0111 0113 0115 0117 0119 11 011C 0110 011 0121 0122 0124 0125 0126 0128 0129 012 0120 012 0131 0133 0135 0137 0139 0138 0130 1 0141 0143 0144 0146 0148 014A 014 O14E 0150 0152 0154 0156 0157 0159 015A 0156 015 0165 0167 0168 016A 0168 0160 16 0171 0173 0175 0177 0179 017B 017D O17E 0184 0186 0188 018A 9182 18 0190 0191 0193 0195 40 C410 CaF 33 7 01 C7FF 33 CAFS 40 9
123. 27 CSA OR KEYBOARD INTERRUPT ANI 020 JNZ SLOOP Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 0875 0877 0879 7 33 OB7C C410 OB7E 37 OB7F C2F6 OB81 C400 0885 CBFF 0887 2047 AAFD AAFD 0889 C401 OB91 CAFS C2EF D407 9C02 0894 0896 C411 9 CAE 420 OBAO CAES OBA2 E401 OBAS O1 C404 OBAA 40 OBAB 02 OBAC 70 OBAD O1 OBAE BAEB OBBO 9CF8 OBB2 40 OBB3 CAE OBBS C402 OBB7 CAES OBB9 3F C2F6 E401 9 CO9 C2E9 OBBC 35 OBBD 2 OBBF 31 OBCO 3F 1 35 OBC2 O1 OBC3 40 4 35 OBCS 40 1 OBC7 1 1C OBC9 CAFE 2 35 OBDO 2 OBD2 21 C40D OBDS C9FF OBD7 OBD C900 OBDB 901 OBDD OBDE 2 9 OBEO 35 27 522542222222 j PUT PAGE NUMBER ON STACK PUTPGE LSTK P2 ILD LSTK P2 XPAL P3 LDI HOSESTK LD PAGE P2 ST 2 P3 LDI ST 1 X27 j E HF HF IEEE EIE IEEE IEEE EE E EE EE E ASSIGN PAGE 2 2 IE HF IE FF FF PE DE FF E E DE lt lt 3F HFF FF DE DE DE DE DE 2F 2F 4F 3F BH F 2F LOCAL NUPAGE LD 0 2 GET PAGE FROM STACK 7 GET THE
124. 3 CBFF ST 1 PUT INDEX ON STACK 0460 O2 LOOP CCL BEGIN MAIN DIVIDE LOOP 0525 C402 LDI 2 INCREMENT I L PC SKIPPING 0461 LD 4 3 i SHIFT QUOTIENT LEFT 0527 02 CCL OVER TEST FAIL ADDRESS 0463 4 P3 0528 F2FB ADD PCLOW P2 0465 CBFC ST 4 P3 052A CAFB ST PCLOW P2 0467 C3FD LD 3 P3 052 C400 LDI 0 0469 ADD 3 P3 OS2E F2FA ADD PCHIGH P2 046 CBFD ST S FP3 0530 CAFA ST PCHIGH P2 0460 02 CCL SHIFT 32 BIT ACC LEFT 0532 90AE X10 046 C303 LD 3 P3 0470 ADD 0472 ST j HEHE 0474 C302 LD 2 P3 P IND EVALUATE VARIABLE 0476 302 00 2 j AMEE ERE EE 0478 CBO2 ST 2 P3 047A C301 LD 1 P3 0534 C410 IND LDI STACK 047 F301 ADD 1 0536 37 047 1 ST 1 0537 AAFD LSTK P2 0460 C300 LD P3 0539 33 XPAL P3 0482 F300 ADD P3 0534A LD 2 P3 i GET INDEX OFF 0484 CBOO ST P3 OS3C 01 PUT INDEX IN REG 0486 03 SCL 0530 C280 LD EREG P2 GET LOWER 8 BITS 0487 C301 LD 1 P3 i SUBTRACT DIVISOR INTO 5 ST 2 P3 SAVE ON STACK 048 CAD 2 P3 i LEFT HALF OF 0541 02 CCL 048 CBO1 ST 1 P3 0542 40 LDE INCREMENT REG 0480 C300 LD P3 0543 F401 ADI 1 O48F CAD 1 3 0545 01 0491 CBOO ST P3 0546 C280 LD EREG P2 GET UPPER 8 BITS 0493 9411 JP ENT1 IF RESULT IS NEG
125. 345 052 811 366 311 325 317 277 337 192 113 521 317 307 311 317 322 353 942 311 317 341 353 942 341 311 219 919 340 317 156 215 353 341 832 267 312 347 923 383 317 172 315 35 835 248 315 341 311 n2 134 117 993 117 996 900 101 232 933 232 922 099 995 942 985 272 336 847 998 272 334 981 133 025 135 985 370 370 985 951 991 256 951 881 256 995 285 895 374 995 905 095 0605 005 005 985 985 0095 095 981 885 085 882 RBRT CHECKS THE CONSOLE DEVICE FOR CHR AND THERE CHECK IF IT S CONTROL C IF NOT RETURN WITH MUNCHED IF YES FALL THROUGH TO STOP ROUTINE STACK USAGE 6 BYTES 7 RBRT 715 RERDY FLAG UP RTZ RETURN CAL TTYI YUP FETCH THE CHR CPI 3 CONTROL C CRC RFZ RETURN RST BACK TO ENTRY POINT 4 7 057 TST 0 ZJMP TO OS OSPK IFNOT Sav MIGHT BE POKED TO 05 4 7LOKU GETS THE INDES OF THE VARIBLE POINTED TO BY HL AND 7RETUNS THEM IN HL THE TXA IS BUMPED OVER THE YARNAM 7AND PUSHED BEFORE RETURNING YOU MUST POP AFTER CALLING LOKU IS USES ALL REGS EXCEPT DE STACK USAGE 4 BYTES IF Z gt 16 IF SUBSCRIPTED ZERO FLAG IS TRUE IF IT IS DOUBLE BYTE VAR CSIMPLE OR DOUBLE ARRAY ZERO 715 FALSE IF SINGLE B
126. 4 0740 O74F 0751 0753 0759 0758 0750 0763 0765 0767 0769 0768 076C 0760 076F 0771 0772 0779 077B 077C 077D 077F 0781 0783 0784 0786 0788 0789 078 0780 078 0750 0792 0793 0795 0797 0798 0798 079C 079E 079F 0761 44 C400 CAE7 C2F4 2808 C43F C420 3F 2003 C40F C4BD 33 8F3 E40A 9SEF E40D 2850 40 4 2841 40 408 2836 40 415 980F 40 E403 C443 LD P3 PUT TEST FAIL ADDRESS ST PCHIGH PZ INTO LL PC LD 1 F3 ST PCLOMW P2 JMP X12C RET LDI 2 SKIP OVER ONE IL INSTRUCTION CCL IF NUMBER IS ADD PCLOW P2 ST PCLOW PZ LDI 2 ST PCHIGH PZ X13 JMP X12 ESA JMP ESB 1 XAE SAVE DIGIT EX REG LDI H AESTK POINT P3 AT AE STACK ILD LSTK PZ ILD LSTK P2Z XPAL P3 LDI 1 P3 LDE ST 2 P3 LOOP LD 61 1 GET NEXT CHAR LD P1 SCL TEST IF IT IS DIGIT CAI 9741 JP SRET RETURN IF IT ISN T SCL CAI 207 797 1 JP 2 JMP RET 2 SAVE DIGIT LD 1 P3 PUT RESULT IM SCRATCH SPACE ST 1 P3 LD 2 3 ST P3 LDI 2 ST TEMP P2 MULTIPLY RESULT BY 10 SHIFT CCL FIRST MULTIPLY BY 4 LD 2 P3 ADD 2 P3 ST 2 P3 LD 1 P3 ADD 1 ST 1 DLD TEMP P2 JNZ SHIFT CCL i THEN ADD OLD RESULT LD 2 P3 SO WE HAVE RESULT 5 ADD P3 ST 2 P3 LD 1 ADD 1 1 P3
127. 4E IE 4E E IE 3E EIE SE j HE HE E E E EEE HF FF FE NEE EEE CKMODE RUNMOD PZ THIS ROUTINE CAUSES AN ERROR JZ CK1 IF CURRENTLY IN EDIT MODE CK1 LDI 3 E8 ST NUM P2 ERROR IF RUN MODE 0 JS P3 ERRZ MINOR KLUGE j E FF EER EIE FF IE EIE IE IE EE E 3F 3F IE ETE IE EHE GET HEXADECIMAL NUMBER HEE E E FE HE FE IE IE IE E E PE 3F PEPE FE E PE PE FE FE ME ME PE IE 3F 3F FE IE PE PE 4F 3F FE LOCAL HEX ILD LSTK P2 i POINT AT ARITH STACK ILD LSTK P2 XPAL P3 LDI H AESTK XPAH P3 LDI 0 NUMBER INITIALLY ZERO ST 1 P3 PUT IT ON STACK ST 2 P3 ST NUM P2Z i ZERO NUMBER OF DIGITS SKIP LD e1 P1 SKIP ANY SPACES XRI doo JZ SKIF LD 6 1 1 LOOP LD CHARACTER SCL CAI 97 1 CHECK NUMERIC CHAR JP LETR SCL CAI 207 797 1 IF NUMERIC SHIFT NUMBER JP ADD DIGIT JMP 12 12 LETR SCL CHECK FOR HEX LETTER CAI 67 79 1 StL CAI CEL ADD 10 TO GET TRUE VALUE ADI 10 OF LETTER NEM DIGIT IN EX REG LDI 4 SET SHIFT COUNTER ST TEMP PZ ST NUM P2 DIGIT COUNT IS NON ZERO SHIFT LD 2 P3 SHIFT NUMBER LEFT BY 4 CCL ADD 2 P3 ST 2 P3 LD 1 P3 ADD 1 P3 ST 1 P3 DLD TEMP P2 JNZ SHIFT LD 2 P3 ADD NEW DIGIT ST 2 P3
128. 5 6 127 lt S These are but a few of the lines that you might find use ful in your own computer system and we re sure you can imagine a lot more that we didn t cover here Oh yes One more There always are empty lines on everyone s bus and these of course are then designated A thought compliments of David G If we put an auto USED matic disc ejector on a disc drive then perhaps we could put those old Wurlitzer boxes to some interesting use Page 32 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box Menlo Park CA 94025 Nov Dec 1976 REPLY STRUCTURED PROGRAMMING Oct 23 1976 Several months ago wrote letter to DDJ parts of which appeared Vol 1 No 6 page 40 In 1 9 page 37 Tim Bonham takes issue with several of the comments in my letter wish to have the op portunity to in turn take issue with several of Mr Bonham s comments First Mr Bonham states that seem to equate structured program ming with lots of control structures a matter of fact don t make such as equation since am aware that SP structured programming in volves concepts other than control structures such as top down program ming and so forth However SP in my mind does involve lots of control structures and will explain why later For the purposes of this letter will assume that SP is concerned only with controlled structures Second Mr B
129. 5 091 010 021 023 377 225 270 278 27 188 261 243 285 081 278 984 on 377 256 856 811 600 377 382 126 085 381 126 907 egg 007 097 ao 010 007 907 807 997 007 007 207 007 287 887 097 097 007 097 9007 904 204 284 912 296 811 087 896 811 286 574 Nov Dec 1976 STHL 1 1 THE INPUT ROUTINE LBA 14 INPUT DATA PORT gt A STA POK2 1 THE INPUT ROUTINE LXI HL REAC 4 POKE QUT THE JUMP TO BINL STHL PGE 1 MAKE A JUMP TO READ 3 RERC LXI SP PGE 0256 RERD LCI 9 CLERR CHECKSUM CAL RDIN CHR FROM CPI 277 ZIS AN EQT CHR JT2 GOTO YUP LOOK FOR START ADDRESS CPI 377 IS A START OF BLOCK 2 JFZ READ MUST BE LEADER KEEP LOOKING CAL ADIN THE LOAD ADDRESS HL CAL RDIN BLOCK LENGTH gt A ZBLOCK LENGTH 8 7 JTZ CKSM ZYUP NO VERIFY CHECKSUM LE WOVE BLOCK LENGTH gt CAL RDIN GET A DATA BYTE FROM TAPE LM A PUT IT INTO MEMORY CP M DID IT WRITE PROPERLY 7 JFZ MERR GIVE A CAN T WRITE ERROR UPDATE CHECKSUM gt A LC A UPDATED CHECKSUM INX HL BUMP THE LOAD ADDRESS DCE DONE WITH THIS BLOCK YET JFZ DATA GET MORE DATA BYTES CKSM CAL RDIN DONE WITH BLOCK GET CHECKSUM gt ZDOES IT
130. 686 O6AS O6AA amp O6BO 0682 0684 O6B6 OGBA O6BC O6BD O6BF O6Cc1 0602 06C4 O6C6 6 O6CB C701 E4FF CBFF 33 CAFD 9085 2 1 31 1 C2FO CAFO 2 4 2801 C403 CAEB 402 AAFD 33 C410 C400 CBFF CBFE CAEB C501 E420 CSFF C100 FC3A 9409 FCF6 9413 9032 90BB FCOD 942 2402 2024 02 F40A C404 CAEA CAEB C3FE 02 FSFE CBFE C3FF BAEA 58 2501 2 9 87 C405 2097 C501 E4260 98 CSFF 2405 FCF6 9421 C2FB C2FA 37 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 ST 1 TOP ITEM STACK LD j BY ITS ONE S COMPLEMENT XRI OFF ST 1 P3 XPAL ST LSTK P2 STACK POINTER FIXUP X12B 12 j EE YF E FF MEE ME E HF PEIE IE ERENT EXCHANGE CURSOR WITH HEF HE FF E PE BE PE E MEE PE FF FF E PE PE PE FE PE PE PE IE 2F PE FE E PE AE FESE 3 3F FF XCHGP1 LD PILOW P2 THIS ROUTINE IS HANDY WHEN XPAL i EXECUTING INPUT STMT ST PiLOW PZ IT EXCHANGES THE CURRENT LD 2 TEXT CURSOR WITH ONE SAVED 1 IN ST P1HIGH P2 XPPC P3 j 3E 3E VF 2E HE 4E FF FF 3E FF IE 3E 3E 3E 3E IE 3E3E EIE 3E 4E
131. 7 OFRE Ol OONTSCHBLOILM 0556 NAHL CQL 4I 9918 1 QJ OL 4 5 SCCB3D HO MISS 81 841 NYNLAYN 0006 8 W SNN O 8323 0005 81509 ENIM EEEF a 2l 9 0297 OTO 0009 0255 155 0155 0055 Ot O 0 05 0295 a TOR OTOS 0905 QF ocat QO 085 040 QG v Ovet Oot 018 oot OOTY OFT OTT 0017 060 040 OF OF 050 OF OF OL OF 080 a TO 000 0956 OL Se Oca OTSE QO Oct OTS 00 204 OL 09NT 8N SNISSIW ANIMA 0055 41509 Wad OL DONTHSN 5 ANIMA 9955 41509 OL 00 000 31509 0057 nso 0006 31509 OL 09 005 81509 Ol 09 509 0006 41509 Overs OL 09 0056 Jn QETE NAHL dI OSTE AI AT O 93 AI amp C15 C340 LD Ie NYNLAYMN 0205 NAHL TBN 31 NYALAY TBNA IOANNAS 0955 91509 ONITINVH MOMMA WAM 019 OL OONT E8NN MOTAMESAO 0915 1 0192 01 09 2 0552
132. 7CB 07CD 07 0700 0702 0704 070 0709 0708 0700 07DE 07 0 07 1 07 07 4 0820 0822 0823 0825 0826 0828 082 C410 37 C2FD C3FF 35 C100 CBFE CBFF C2EF 40 410 37 C2FD 1 LDI 14 i CAUSE A BREAK SXU LDI 54 ECHO CONTROL U AS U XPPC P3 LDi u XPPC LDi PRINT CR LF XPPC LDI 52 i GO GET ANOTHER LIKE X15 X14 SENTER LDE ST 1 21 PUT CHAR LBUF ILD 2 INCREMENT CHRNUM 72 1F272 LIKE FULL JNZ 1 LDI CARRIAGE RET LDE i PRINT IT JMP SCR i STORE YT IN LBUF E10 JMP LDI i d i BLANK QUT THE CHARACTER LDI PRINT ANOTHER BACKSPACE XPPC SRUB LD CHRNUMHCPZ JZ 51 DLD CHRNUMCPZ OXE LESS CHAR LD 1 1 i CURSOR JMP 51 LDE ST 1 1 i STORE CR IN LELE LDI PRINT LINE FEED LDI HIOLEUF SET P1 TO BEGIN P1 gt NING OF LBUF LDI L LBUF XPAL Pi X16 X13 EVAL GET MEMORY CONTENTS EHRE THIS ROUTINE IMPLEMENTS 707 OPERATOR IN EXPRESSIC EX LO EVAL LDI LD LSTK P2Z gt STACK LD 1 3 ADDR OFF ST
133. 808 JZ SHOVE REPLACED 0928 E472 L DOSTAK 0852 40 LRE 2 04 21 0865 02 CCL OSZE i Di 15 0866 ADI 092 90 0868 Oi 09 CZEF 1 LD LO1P2 CHECK FOR EXPRESSION 0 0869 9 O0FS3 JMF 5 0232 DASE OR HIPZ 086GB X19 Xi 2806 JZ SREDO i ZERO REPEAT DO LOOP 0860 9OAF E12 Eli 0236 2 ELSE POP SAVE STACK OB6F 40 SMOVE LDE DISPLACEMENT AND LENGI 33 DLD DOPTR UP2 0870 OR Ur Ni Lin AP E 0238 90OCD X20 CONTINUE TO NEXT STMT 0872 9827 JZ X19 40 REDO LDE POINT DO STACK 0874 C47A LDI 1 CLEAR SOME STACKS 0930 22 XPAL 0876 ST DOPTRIP2 C410 LDI H DOSTAK 0878 LDI LIOSERSTKO 0940 27 P3 0878 CAFC ST 0941 1 3 Pi FROM DO STACK 087 LDI LIFORSTK 25 21 CAFE ST FORPTRIP2 0944 LD 3 P3 0880 40 LDE 0946 XPAL Pi CURSOR NOW POINTS TO FIRST 0881 9860 Jz 0947 90CO JHP X20 STATEMENT OF DO LOOP 0883 9410 0885 100 LD 0 P1 PP IVE DIS MENT 0887 ST EREG Pi 109 FI e oss 501 81171 94F5 JP Pici ogan 100 LD UNTIL amp lt 0
134. 884 965 684 gno 868 888 211 884 995 086 377 37 094 018 881 016 841 088 818 134 885 117 685 O98 177 gno 253 994 1976 SHLP DE lt gt HL CAL CHSG BEX gt HL JFS MSGP 055 42080 NOSP 4 DEINT TAKES ASCII FROM MOVES TXA UNTIL CHR IS STACK USAGE 4 BYTES DEINT DCX HL DE 8 DEIN FETCH RFC PSHX HL LH D LL DE HL DADX DE HL SUI LE LDI DAD DE DE lt gt HL POPX JMP DEIM NUMBER gt DE ABSCHUMBER gt DE ABSCNUMBER gt HL 7 5 POSITIVE PRINT SPACE PRINT THE MINUS SIGN PRINT THE NUMBER MEMORY INTO BINARY IN DE NOT MUNCHES ALL REGS EXCEPT BC DECR FOR FETCH CLEAR PARTIAL SUM FETCH CHR 97 DONE SAVE CHR ADR PARTIAL SUM gt HL 4PS DE 10 PS 10 REMOVE ASCII BIAS SETUP 16 BIT DIGIT gt DE ZADD IN NEW DIGIT PARTIAL SUM gt DE YRESOTRE TXA CHS CHECKS THE SIGN OF DE REG IF POSITIVE RETURN A MUNCHED SIGN BIT FALSE IF NEGATIVE COMPLIMENT DE 78 MUNCHED SIGN BIT SAME AS THAT OF B CHSG CLEARS THE SIGN BIT OF B REG FIRST COMD UNCONDITIONALLY COMPLIMENTS REG STACK USAGE 2 BYTES CHSG LBI 6 CHS LA D OR A RFS LA E
135. 9 0222 0231 0233 0234 0236 0237 0230 23 0241 0243 0245 0247 0249 0244 024 024E 0250 0252 254 5 025 0251 C410 37 AAFD AAFD C40A CBFE C400 C405 CAE7 CAFF C3FD 9413 4 C400 03 FBFC CBFC C400 FBFD CBFD 909F C420 4 9099 9057 AAFD 31 C410 35 AAE7 01 101 D9FC 9808 C40F CAFA C42F CAFB 90DB 2 5 CO6 C104 3F 2 7 01 C580 C100 3F CSFF 94FB 450 CAFD CAFS 420 9085 400 C40A 9047 405 CAED 2 CAOD 2806 501 9OF 4 2501 CiFF 94F 7 CZEA E40E C501 1 THIS ROUTINE IS BASED ON DENNIS ALLISON S BINARY TO DECIMAL CONVERSION ROUTINE IN VOL 1 1 OF DR DOBB S JOURNAL BUT IS MUCH MORE OBSCURE BECAUSE THE STACK MANIPULATION LOCAL PRN LDI ILD ILD XPAL LDI ST LDI ST LDI SCL ST LDI ST JMP 1 LDI ST X4 JMP E2 JMP THE DIVISION 18 PERFORMED WHICH FOLLOWS 1 ILD ILD XPAL LDI ILD XAE LD ORI ST LD OR JZ LDI ST LDI ST JMP LDPI LD JNZ LD XPPC LD XAE 2 LD LD XPPC LD JP LDI ST LD JNZ LDI JMP 51 H AESTK P3 LSTK P2 LSTK P2 P3 10 2 P3 1 0P3 CHRNUM
136. 974 SAVEDO LD DOPTR G 2 CHECK FOR STACK OVERFLOW C2FO LD PiHIGH UPZ 0976 XRI L FORSTK 35 1 0978 9504 1 OSED C2F3 LAGLLOCPZ POINT INSERTION PLACE 097A 10 33 XPAL F3 Eis 14 2 2 LD LABLHI P2Z 97 51 ILD 2 37 0980 AAFF iin 2 C2F7 LD HILINE CPZ PUT LINE NUMBER INTO TEXT 0982 33 5 CFO1 ST 61 F3 0783 C410 LDI H LOSTAK 7 2 LD LOL 2 0985 37 P3 gt OF DO STACK OSF9 CFO1 ST 21 0286 35 SAVE CURSOR ON THE STACK OSFB C2E7 LD 2 STORE LINE LENGTH TEXT 0987 CBFF ST 41 F3 OSFD 1 ST i FS 0989 35 1 C501 52001 LD 1 1 PHT REST CHARS 31 0901 ST 21 3 INCLUDING CR INTO TEXT 8 CEFE ST 7 0903 400 1 0980 31 XFAL Pi Nov Dec 1976 Dr D tia Box E Menio Park CA 94025 Page 45 46 0790 0922 0993 0999 0996 0995 99 gt 9 1 OAS OSAS 0347 OAS 0961 OPES 0987 9 O9BB O9BC O9BE O9BF JOBE 2 9 37 2 amp 33 C300 7402 9007 C302 7 702 AAFD 33 C410 37 40
137. 996 996 995 996 906 6906 896 996 686 686 896 996 906 906 905 892 994 066 9018 013 914 922 023 827 932 934 93 126 127 131 133 136 137 141 142 144 146 131 153 154 157 161 162 164 165 167 128 171 172 175 176 281 204 295 206 207 218 211 212 216 31 040 976 315 176 313 353 952 176 315 367 043 382 397 942 365 346 312 323 311 333 346 312 333 311 000 154 30 123 096 126 126 260 255 126 026 124 90800 142 252 944 142 872 044 256 003 142 367 076 188 260 005 092 12 916 205 801 142 004 99 896 000 010 816 221 247 247 284 296 006 004 296 806 996 286 995 905 886 004 896 991 286 806 994 0026 086 992 985 985 886 896 28842 PUNCHES TAPES OF THE CONTENTS OF THE TEXT BUFFER RETURNS TO COMMAND MODE WHEN DONE COMMAND IS FOLLOWED BY A SINGLE CHR PROGRAM SO ZMORE THAN ONE CAN BE ON TAPE IF CR IS GIVEN FOR PUNCH NAME AS A NULL TAPE FORMAT 252 START CHR 7 NAME OF PROGRAM 000 IF NULL NAME NNN BYTES BETUEEN 000 A 828 IS MARKED BY THREE NULLS 5 TST S SAVE COMMAND IFNOT TAP LAI 252 START OF TAPE CHR CAL PNOU SEND IT LA PROG
138. ACK AND INTO SAVING OLD LD 2 gt XPAL Pi ST LOtP2 LD MEMORY CONTENTS ST SKOVE ONTO STACK LDI ST 1 P3 HIGH ORDER BITS Z LD LO P2 XPAL Pi 3 RESTORE ORIG Pi LDE P1 Xi5 j HERRERA EHE MOVE STORE INTO THIS ROUTINE IMPLEMENTS THE STATEMENT 767 FACTOR HOVE LDI H AEST LSTK P2 XPAL P3 gt BRITH STACK LD 2 P3 BYTE TO 1 2 GET ADDRESS INTO ST TEMP P2 LD 2 3 P3 XPAL ST LSTKI P2 STACK PTR UPDATED LD TEMP P2 LDE ST i ROVE THE BYTE INTO X17 X16 11 10 TEY YE TEXT EDITOR j EERE HEH HEH INPUTS TO THIS ROUTINE POINTER TO LINE EUFFER IN k PAHIGH THE STACK HAS THE LINE NUMBER IT STACK IS ALREADY POPPED FORMAT THO BYTES CONTAINING THE LINE Pi POINTS TO THE INSERTION POINT IN TEXT POINTER EACH LINE IN THE NIBL TEXT IS STORED IN THE FOLLOWING ww LOCAL INSRT LDI LD XPAL LD ST LD HIGH ORDER BYTE FIRST LENGTH OF THE LINE BY CARRIAGE RETURN FOL
139. ARRAY IHR HL LM D LETT HL IGHORE FROM LAKU POPX HL RESTORE EDS TRA FSHL FINDS THE START OF THE NEXT LINE IH MEMORY HL IS BUMPED TO POINT TO THE LO ORDER LINE NUMBER OF THAT A amp PSU HUNCHED STACK USAGE 2 BYTES FSNL THA HL GF NULL YET JFZ FSHL RET EOM AND EOM CHECK MAKE SURE THAT THERE IS LEAST 24 BYTES STK SPACE LEFT FOR NORMAL OPERATIONS EOM LOOKS FUR 24 BETWEEN HL AND CURRENT LOOKS FOR 24 BETWEEN CURRENT EOTX AND SP BOTH MUNCH FSW amp LDHL EOTX CURRENT DE TES FHL SAVE HIS HL LSI HL 24 LOOKING FOR 24 BYTES DADA SP ADD IM CURRENT SP SUBTRACT PASSED HL DEK RESTORE HIS HL FAFS DE RESOTRE PLENTY OF ROOM LEFT RETURN CAL ERRO OUT OF ERROR THIS ROUTIHE INPUTS A LINE OF TEXT AND PLACES IT AT LINE WHEN ENTERED AT RUBOUT DELETES THE PREVIOUS CHR CONTROL DELETES THE MAXIMUM F LEUL WILL BE ACCEPTED AFTER WHICH THE BELL WILL RING INSTEAD OF ECHOING CHRS AS NORMAL CONTROL CHRS OTHER CONTROL U CONTROL G BELL e m gt Y e c m 882 gaz 892 Nov Dec 1976 AND CARRIAGE RETU
140. ATIVE 0548 CBFF ST 1 P3 i SAVE ON STACK 0495 02 CCL j RESTORE ORIGINAL CONTENTS 054A 9096 X11 X10 0496 C301 LD 1 P3 ADDING DIVISOR 0498 FSFE ADD 2 P3 049A CBO1 ST 1 P3 j WME E E TEE ETE HF ESE 3E IE HE TE E E IEEE HF HF HF HF 049C C300 LD P3 5 j RELATIONAL OPERATORS O49E 1 P3 HE HE 0 3F FF E E HE E 4 FF EAE 0460 CBOO ST P3 0462 9008 53 054 401 LDI 1 EACH RELATIONAL OPERATOR 0464 9093 X9B JMP 9 054 9012 LOADS NUMBER USED LATER 0486 1 LD 4 P3 ELSE IF RESULT POSITIVE 0550 C402 LDI 2 SELECTOR 0448 1 ORI 1 RECORD 1 IN QUOTIENT 0552 900E JMP THE TWO OPERANDS ARE 04068 CBFC ST 4 P3 W O RESTORING THE ACC 0554 4 LSS LDI 3 PARED BASED ON THE COM O4AC AAEB 3 ILD NUM P2 i INCREMENT THE COUNTER 0556 900a JMP CMP PARISON FLAGS ARE SET THAT O4AE E410 XRI 16 i ARE WE DONE 0558 C404 LEQ LDI 4 ARE EQUIVALENT TO THOSE SET 04 0 JNZ LOOP LOOP IF NOT DONE 055 9006 JMP CMP BY THE INSTRUCTION Page 42 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Nov Dec 1976 0509 OSDB OSDD OSDF OSE1 OSES OSES O5E7 OSEE 05 05 2 OSF4 05 6 5 8 5 0601 0603 0604 0606 0608 O60E
141. CHECKSUM ERROR THIS CHARACTER IS ALSO STORED IN THE HIGHEST LOCATION OF THE FAGE WHERE THE BINARY LOADER RESIDES 887 3772 AFTER A MEMORY ERROR THE HL REGISTER WILL CONTAIN THE ADDRESS OF THE BAD MEMORY LOCATION TO READ IH A TAFE Page 21 LOAD THE BOOTSTRAP FOR YOUR 120 CONFIGURATION CHECK THE TABLE TO FIND WHICH ONE TO USE VERIFY THAT THE BOOTSTRAF IS IH MEMORY CORRECTLY EXAMIHE AND THE SET THE SENSE SWITCHES FOR THE TYPE OF 120 BOARD YOU ARE USING LOAD THE CUSTOM 120 TABLE AT THIS TIME IF NECESSARY 4 PLACE THE TAFE THE READER IF YOU ARE USING PAPER MAKE SURE THE BOOTSTRAP LEADER IS IN THE READER THIS 15 THE FIRST SECTION OF TAPE WITH THREE OF THE EIGHT DATA HOLES PUNCHED IF YOU ARE USING CASETTE LOAD AND REWIND THE TAPE AND START IT PLAYING WAIT 15 SECONDS AHD PROCEED TO STEP S START THE BOOTSTRAP AT LOCATION 8688 SPLIT OCTAL NOTE LOADERS AND START AT ADDRESSES UTHER THAN ZERO CHECK THE TABLE WHEN THE BINARY LOADER HAS BEEH READ IN ADDRESS LIGHTS WILL CHANGE AND THE TAPE SHOLILD KEEP READING 64 n cu cn THE ONCE THE BINARY LOADER HAS BEEN READ IN THE ADDRESS LIGHTS WILL DISPLAY 88 27 WHILE NORMAL LOADING IS GOING OH IF AN ERROR OCCURS BO 237 MILL BE DISPLAYED IF THE TRANSFER ADDRESS WAS HOT READ PROPERLY 887 257 WILL BE DISPALYED IF EITHER OF THE LAST TWO CONDITIONS OCCUR GO BACK STEF 1 AND RELOAD Lac A B C D E F G H
142. CUTION AT NOTE THAT A ROUTINE CALLED IN THIS MANNER ALWAYS RETURNS TO THE LINE FOLLOWING THE LIHE CONTAINING THE CALL TO IT SETS THE MEMORY ADDRESS WHERE PEEKING AND POKING IS DONE THE ADDRESS WILL REMAIN SET UNTIL 1 IS FOHHD THE LEFT SIDE H ASSIGNMENT STATEMENT WHEN LOADED CASUAL SETS THEREFORE YOU MUST SET THIS ADDRESS BEFORE FOKING OR YOU POKE CASUAL TO DEATH SEE amp AND 1 IS USED STORE THE VALUE ON THE RIGHT OF THE ASSIGNMENT STATEMENT IN THE LAST MEMORY ADDRESS GIVEN WITH THE VRLUE WILL BE TRUNCATED TO BITS BEFORE IT IS STORED THIS FUNCTION IS SOMETIMES CALLED POKING IS USED TO SET THE BASE ADDRESS FOR THE SINGLE BYTE ARRAY THE BASE ADDRESS WILL BE SET THE VALUE ON THE RIGHT OF THE ASSIGNMENT STATEMENT NO VALUE SHOULD BE ASSIGNED WHICH IS LESS THAN THE NUMBER TYPED IN RESPONSE TO SIZ PERFORMS THE SAME FUNCTION AS EXCEPT THAT IT SETS THE DOUBLE BYTE ARRAY BASE ADDRESS DEFINES THE USER DEFINABLE FUNCTION IT 15 EXECUTABLE THEREFORE MORE THAN ONE FUNCTION CAN BE USED IN THE SAME FROGRAM BUT NOT AT THE SAME TIME THE VALUE ON THE RIGHT BECOMES THE NEW USER DEFINABLE FUNCTION AT THE TINE IT IS DEFINED IT 15 EVALUATED SENDS THE VALUE ON THE RIGHT SIDE OF THE ASSIGNMENT STATEMENT TO THE QUTFUT FORT GIVEN BY THE LAST ASSIGNMENT SEE BELOW SETS A NEW OUTPUT FORT NUMBER THE
143. D ST LDI ST ST ST ST LDI LD RRL ST LD RRL CSA JP CCL LD ADD ST LD ADD ST JMP RRL ST LD H AESTK LSTK P2 P3 1 P3 3 TEMP P2 1 P3 1 0 2 2 0 1 P3 1 P3 52 4 4 3 3 0 1 2 3 P3 16 NUM P2 1 1 P3 2 P3 2 P3 3 2 P3 4 2 3 53 2 Dr Dobb s Journal Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 SET P3 TO CURRENT STACK LOCATION DETERMINE SIGN OF PRODUCT SAVE IN TEMP P2 CHECK FOR NEGATIVE MULTIPLIER i IF NEGATIVE NEGATE i CHECK FOR NEGATIVE MULTIPLICAND NEGATIVE NEGATE i CLEAR WORKSPACE SET COUNTER TO 16 ROTATE MULTIPLIER RIGHT ONE BIT CHECK FOR CARRY BIT IF NOT SET DON T DO ADD ADD MULTIPLICAND i INTO WORKSPACE SHIFT WORKSPACE RIGHT BY 1 Page 41 OSDC RRL 4 2 2 TEMP 2 CHECK THE QUOTIENT S SIGN ST 2 0484 9400 SEND NEGATING IF NECESSARY O3DF C301 LD 1 O4B6 C400 LDI 1 1F RRL SCL 2 ST 1 0489 FBFC 4 P3 4 C300 LD 0 P3 O4BB CBFC ST 4 1F RRL O4BD C400 LDI 03 7 ST O4BF FBFD 3
144. E DINENSIONAL SELECTABLE ARRAY BASE ADDRESSES FOR MULTIPLE ARRAYS SIMPLE VARIABLES A Z 26 OF THEM DEFIHRHELE LIKE DEF FHACHS RUB OULIT TAKES BACK LAST CHARACTER TYPED CONTROL t U ABORTS BEING TYPED 2 LINE INPUT EUFFER FOUR 43 RELATIONAL OFERATORS lt 2 CNOT EQUALS OVERFLOW CHECKING MATH FUNCTIONS 15 BIT SIGHED ADDL SUBTRACT MULTIPLY AND DIVIDE STANDARD EXPRESSION HIERARCHY RELOPS THEN THEN FAREHTHESIS ALTER HIERARCHY HO LIMIT NUMBER SPACES WAY BE INSERTED FREELY IMPROVE CLARITY OPERATOR TO FROVIDE REMAINDER AFTER LAST DIVISION OPERATOR TO PROVIDE RESULT OF LAST EXPRESSION MACHIHE LaNGURGE CALL FUNCTION SINGLE CHARACTER KEYBOARD IHPUT FUNCTION RUN AND FUH COMMANDS LIST AND LIST LINE NUMBER COMMANDS HEU COMMAND CLEARS PROGRAM STORAGE AREA NOTHING CLEARS VARIABLE VALUES NOTHING JUMP TO OPERATING SYSTEM PROVIDED INITIALIZATION DIALOGUE LA MITS COMPLETE WITH EGQUTSTERHF AHD BINARY LOADERS AUTO TRANSFER 5001 ERROR MESSAGES RUNS IN COMPLETE gt 488 BYTES LEFT A 2K SYSTEM CASUAL IS SLOW CASUAL DOCUMENTATION CASUAL IS AN INTERFRETER WRITTEN 8888 ASSEMBLER CASUAL IS ALSO THE NAME OF THE SYNTAX WHICH IS ACCEPTED BY THE INTERPRETER OUNCE CASUAL HAS EEEN LOADED AHD THE INITIALIZATION DIALOGUE COMPLETED IT WILL OUT CASUAL WHERE IS THE VERSIQH HUMBER T
145. E FROM LINE BUFFER ST 1 P3 PUT IN SPECIFIED LOCATION XRI DO UNTIL CHAR RETURN JNZ 2 X27 JMP X26 PORE AE EAE EE EIE E EE AE TE IE EE FE FF E I EH P STRING CONSTANT ASSIGNMENT j REGAN FF GE PE AE IE AERA FF E E E E TE IE E FE PE IE PE EE THIS ROUTINE IMPLEMENTS THE STATEMENT 797 FACTOR STRING LOCAL PUTSTR LD LO P2 GET ADDRESS TO STORE STRING PUT IT INTO P3 LD HI P2 XPAH LOOP LD e1 P1 GET A BYTE FROM STRING XRI vue CHECK FOR END OF STRING JZ SEND z SURE THERE S NO CR JNZ 1 LDI 7 19 ERROR IF CARRIAGE RETURN 1 XRI RESTORE CHARACTER ST 1 PUT IN SPECIFIED LOCATION JMP LOOP GET NEXT CHARACTER SEND LDI APPEND CARRIAGE RETURN ST P3 TO STRING JMP X27 3F 3 3 3F 3F 2F 4 P MOVE STRING FH FF FF FF FF FF HF HF FF E HF HF FF THIS ROUTINE IMPLEMENTS THE STATEMENT 757 FACTOR 7 FACTOR LOCAL MOVSTR LD LSTK P2 POINT STACK XPAL F3 LDI H GAESTK e 1 P3 GET ADDRESS OF SOURCE STRING 1 INTO LD 1 P3 XPAL LD 1 GET ADDRESS OF DESTINATION STRING INTO P3 LD 1 3 XPAL P3 ST LSTK P2 UPDATE STACK POINTER LDE XPAH P3 LOOP LD 1 Pi GET A SOURCE CHARACTER ST SEND IT TO DESTINATION XRI i REPEAT UNTIL CARRIAGE RET JZ X
146. EP TRYING LEAVE ROOM FOR PATCHES TEST TERMINAL INPUT READY BIT STATUS MUNCHES amp FLAGS STACK USAGE 2 BYTES 7 1 HDI 1 150 8 7 aR A LM A IHX HL LH A IHX HL LM HL LIHE 1 INPUT STATUS MASK TO INPUT READY BIT FZ MEANS READY TZ MEANS NOT READY ROOM FOR PATCHES A CONTINUATION OF GETL PUTS EOB EOL MARK IN LINE CRLF SEND A CARRIAGE RETURN AND LINE FEED TO TERMINAL MUHCHES A 8 FLAGS STACK USAGE 2 BYTES Pd CRLF MSGP 055 15 212 985 885 805 eos 995 885 005 005 005 985 895 805 995 095 995 085 885 005 905 995 895 995 905 005 005 995 985 085 905 005 805 0905 085 995 895 805 005 905 885 205 805 895 885 085 005 405 005 005 985 905 995 005 905 885 885 985 605 985 886 906 157 158 163 164 167 171 172 173 175 177 202 205 205 210 212 215 216 217 228 223 224 225 227 230 231 232 234 236 241 243 246 247 250 251 254 256 261 262 263 266 267 271 540 342 344 347 350 351 352 356 35 368 363 365 367 372 73 374 375 881 311 315 319 315 376 309 317 282 176 326 332 376 322 943 343 345 941 117 986 811 257 311 232 317 252 315 343 345 052 911 911 257 311 317 137 315 343
147. ERE ARE 4696 BYTES IN A 4K SYSTEM 2048 IN A 2K SYSTEM 8192 IN SK SYSTEM THE DDRESS GIVEN IN TO 512 MUST BE OR ELSE CASUAL WILL REPEAT THE QUESTION THERE ALSO CERTAIN MINIMUM AMOUNT OF MEMORY CASUAL MUST HAVE TO OPERATE IF THE RESPONSE IS LESS THAN THIS CASUAL WILL THE MEMORY SIZE QUESTION IN VERSION 16 THIS MINIMUM IS ABOUT 1766 CASUAL WILL NOW ENTER A DIALOG WHICH ALLOWS YOU TO DELETE SOME COMMANDS AND FEATURES IF FEATURES ARE DELETED THIS WILL LEAVE MORE FOR YOUR PROGRAM HOWEVER ATTEMPTING TO ACCES THESE FEATURES WILL GIVE AN ERROR USUALLY THE SYNTAX ERROR THE ONLY TO RESTORE A FEATURE WHICH HAS BEEN DELETED IS TO RELOAD CASUAL THIS IS THE DIALOG WHICH WILL OCCUR ANSUER TO RETAIN SAVE AND TAPE COMMANDS IF YOU ANSWER N ASKS NEXT QUESTION WANT SAVE TAPE WANT STR 1 0 ANSWER TO RETAIN STRING INPUT AND OUTPUT IF YOU ANSWER ASKS NEXT QUESTION WANT ARRAYS ANSWER TO RETAIN SINGLE AND DOUBLE BYTE ARRAYS IF YOU ANSWER BOTH ARRAYS ARE DELETED ONCE THIS DIALOGUE IS COMPLETE CASUAL TYPES OUT IS THE NUMBER OF BYTES AVAILABLE FOR PROGRAM STORAGE AND STACK SPACE IS THE CURRENT VERSION NUMBER BYTES FREE CASUAL V YY DELETING SAVE AND TAPE COMMANDS WILL FREE UP AN ADDITIONAL 166 BYTES STRING 1 0 ANOTHER 34 AND DELETEING ARRAYS GIVES ANOTHER 62 BYTES
148. ERMINATOR WAS FOUND WHERE AN EXPRESSION WAS EXPECTED AFFENDIX D SPACE HINTS IN ORDER TO MAKE YOUR PROGRAM SMALL AND SAVE SPACE THE FOLLOWING HINTS MAY BE HELPFUL Nov Dec 1976 Nov Dec 1976 1 USE MULTIPLE STATEMENTS PER LINE THERE IS A SMALL AMOUNT OF OVERHEAD 3 BYTES ASSOCIATED WITH EACH LINE IN THE CASUAL PROGRAM TWO OF THE BYTES CONTAIN THE LINE NUMBER IN BINARY THIS MEANS THAT NO MATTER HOW MANY DIGITS YOU HAVE IN YOUR LINE NUMBER IT TAKES THE SAME AMOUNT OF SPACE PUTTING AS MANY STATEMENTS AS POS SIBLE ON A LINE WILL REDUCE THE NUMBER OF BYTES USED BY YOUR FROGRRM 2 DELETE ALL UNNECESSARY SPACES FROM YOUR PROGRAM SPACES ARE ALLOWED ON THE RIGHT SIDE OF A CASUAL STATEMENT FOR CLARITY BUT THEY ARE IGNORED NOTE ALL SPACES BETWEEN THE LINE NUMBER AND THE FIRST CHARACTER IGNORED 3 DELETE LL FROM THE 4 USE VARIABLES INSTEAD CONSTANTS 5 THE LAST STATEMENT OF PROGRAM NEED NOT BE AN END STATEMENT CASUAL WILL RETURN TO COMMAND MODE AUTOMATICALLY IF IT RUNS OUT OF PROGRAM TO EXECUTE 6 USE SUBROUTINES TO EXECUTE SECTIONS OF CODE WHICH APPEAR IN A PROGRAM MORE THAN ONCE USE RELATIONAL OPERATORS INSETAD OF GOTOS FOR INSTANCE IF YOU WANT X 18 IF 18 AND X IF Y 18 DO IT LIKE THIS X Y 10 32 USE THE OPERATOR INSTERD OF REPERTING RN EXPRESSION STORAGE ALLOCATION INFORMATION THE USER DEFINED FUNCTION USE
149. ESSION WHICH IS ITSELF THE SUBSCRIPT OF AH ARRAY APPENDIX LOADING PROCEDURE THE PURPOSE OF A BOOTSTRAP LOADER IS TO READ A LARGER BINARY LOADER INTO MEMORY WHICH IN TURN LOADS CASUAL THE BOOTSTRAP PROGRAM MAY BE LOADED FROM THE FRONT SWITCHES OR BY USING THE SYSTEM MONITOR ROM IT 15 21 BYTES LONG AND GOES IN VERY QUICKLY THE BOOTSTRAP LOADER IS SD NAMED BECAUSE IT 1S FREQUENTLY USED TO BRING THE SYSTEM AFTER A POWER OFF CONDITION THUS IT IS PULLING THE SYSTEM UP BY ITS BOOTSTRAP THE BOOTSTRAF PRESENTED HERE IS IN A HO CHECKSUM FORMAT BUT IT DOES ALLOW LEADER IT SHOULD WORK EQUALLY WELL FOR PAPER TAFE OR CASETTE INFUT THIS BOOTSTRAP WILL LOAD A BINARY LOADER AND THEN TRANSFER CONTROL TO THE BINARY LOADER AUTOMATICALLY THE BINARY LOADER LOADS CHECKSUMMED FORMAT AND ALSO TRANSFERS AUTOMATICALLY WHEN DONE LOADING THERE ARE TWO POSSIBLE ERRORS WITH THE BINARY LOADER CHECKSUM ERROR AND MEMORY ERROR THE FIRST OCCURS WHEN THE CHECKSUM READ FROM THE TAPE DOES NOT MATCH THAT CALCULATED DURING LOADING BECAUSE A BYTE WAS READ FROM INCORRECTLY A MEMORY ERROR OCCURS WHEN DATA READ FROM TAPE IS LOADED INTO MEMORY AHD CAN T BE READ BACK THIS CAN BE CAUSED EY BAD MEMORY PROTECTED MEMORY OR NON EXISTENT MEMORY WHEN EITHER ERROR OCCURS THE LOADER STOPS READING TAPE AND ENTERS AN INFINITE LOOF AN ASCII CHARACTER IS PUT QUT OH FORTS 1 18 21 AHD 23 gt AN FOR MEMORY ERROR A FOR
150. EXT LINE O 60 CHECK FOR EOF 2 3 i 2 LSTK P2 TO STACK SAVING LSTK P2 OLD P3 WHICH CONTAINS P3 IT SOMEHOW H AESTK 1 P3 2 P3 X22 FE FF 3 SEHE AE 3E 3E IE HE ESE IE IE 3E 3F 3F SE 3E IE HE 3E HF ESE EE 3E EHE AE E E SKIP TO NEXT NIBL LINE HEE 4 34 IE TE REESE RE HE 3F IE E E E 4F SE IEEE 3F 3F HEE 3F 3 TEESE TEE HE EAE 3F IGNORE LD XRI JNZ XPPC e1 P1 SCAN TIL WE RE PAST RETURN IGNORE P3 YES RETURN j EAE AE SEHE dE ERE EHE IE 3E IE AE 3E 3E HE FF E HE EHE EHE IE CHE ETE MODULO FUNCTION j HF HE HE HF HE HF 34 4F 3F 3E 14 3F 4F FF HF 34 3 1F 3F 3 3E E 3F 3F E 3F FF 3 3 3F HF 3F 3 MODULO LD XPAL LDI LD ST LD ST JMP JMP X23 E16 LSTK P2 THIS ROUTINE MUST P3 IMMEDIATELY AFTER DIVIDE TO WORK CORRECTLY P3 2 PUT ON STACK 2 GET HIGH BYTE REMAINDER 1 PUT ON STACK X22 E15 HE HF E FH 3 HF FF E EF HK FF RANDOM FUNCTION ERE TERE AE HERE EACH EEE IE EEE EEE EE Ht LOCAL RANDOM LDI ST LD XAE LD ST LOOP LD CCL ADE XAE LD CCL ADD ST DLD JNZ LDE CCL ADI XAE LD CCL ADI RR ST ILD JZ LDE 51 LD X24 E164 8 LOOP COUNTER FOR MULTIPLY NUM P2 RNDX P2
151. F 3E E 1E IE IE HF EIE HF IE IE EHE JE EE IE 3E 3F E ADD AND SUBTRACT j FE HE E IEEE FF 3F HF HF HF FE FE HE FF HF FF HF 3E FF HF FE HF FF FE HE HF FF FF 3 3 HF 3F HF 3F ADD LDI DLD XPAL CCL LD ADD ST LD ADD ST JMP LDI DL D DLD XPAL SCL LD CAD ST LD CAD ST H AESTK P3 LSTK P2 LSTK P2 P3 2 2 1 P3 1 1 X6A H AESTK P3 LSTK P2 LSTK P2 2 2 1 1 1 P3 X6A SET P3 TO CURRENT STACK LOCATION REPLACE TWO TOP ITEMS ON STACK BY THEIR SUM SET P3 TO CURRENT STACK LOCATION REPLACE TWO TOP ITEMS i ON STACK BY THEIR DIFFERENC j HEHEHE HE E HE IE IE IE PE IE REDE IE PE FF FE FE SEHE HF EE SESE REDE HE IE RENE RE AERE AERE NEGATE j FEE HF HE Pe HE HE IE FE PE IE IE FE 3E HE HE 3E TE 3F FF FE FE PE FE DERE HE FF FF 3F aE id NEG X8 LDI LD XPAL SCL LDI CAD ST LDI CAD ST JMP JMP H AESTK P3 LSTK P2 P3 2 2 1 P3 i P3 X7 ES i SET TO CURRENT STACK LOCATION i NEGATE TOP ITEM ON STACK j EHF HE FEE RE EF HF 22524 MULTIPLY j HEHE HEHE HF FE FE E PE PE HE E IE HF HF BE PE PE E E FE PE PE FE PE FE E PE PE EHR MUL 1 2 LOOP ESA 3 LOCAL LDI SCL ST LDI CA
152. F EXPRESSION IS ZERO YES IT IS iNO ISN T SO CONTINUE SKIP TO NEXT LINE IN PROGRAM I E TIL NEXT CR i CALL NXT AND RETURN j EE 3E 3E FF HE E FF 3E 3E 3E 3F 3F FE E 3F 3F HF E 3 3 AND OR j HFH HE E DF FF HF HF FF E FF TE E 3F FF EEE EE TEE EAE HE 3 3F 3 ANDOP 51 SOR SNOT LOCAL LDI JMP LDI JMP LDI ST LDI XPAH DLD DLD XPAL DLD JNZ LD AND ST LD AND ST JMP DLD JNZ LD OR ST LD OR ST JMP LD 1 51 2 51 3 NUM P2 H AESTK P3 LSTK P2 LSTK PZ P3 NUM PZ OR 1 P3 1 1 3 2 P3 2 P3 X120 NUM CPZ NOT 1 P3 1 P3 1 P3 2 2 X1ZA 1 P3 i EACH OPERATION HAS ITS OWN CASE SELECTOR SET P3 gt ARITH STACK i TEST FOR AND REPLACE TOP ITEMS i STACK BY THEIR AND TEST FOR REPLACE TWO TOP ITEMS ON i STACK BY THEIR OPERATION 062a 062C 062 0630 0632 0634 0635 0637 0639 O63B 063C 0640 0641 0643 0544 0646 0648 0649 0648 0640 0654 0656 0658 0659 0658 065 065 0660 0662 0664 0666 0668 06686 066C O66E 0671 0673 0674 0676 0678 067a 067C 067D 067 0681 0682 0684 0686 0688 0689 0688 068C 068 0690 0692 0694 0695 0697 0699 069 0620 069 0681 0603 0685 0
153. F FF E FF FF FF TE SET COUNT 8 SET READER RELAY WAIT FOR START INOT FOUND i DELAY 1 2 BIT TIME i IS START BIT STILL THERE SEND START RESET READER RELAY i DELAY 1 TIME i SAVE VALUE O OR 1 i ROTATE INTO LINK SHIFT INTO CHARACTER RETURN CHAR TO E ECHO BIT TO OUTPUT DECREMENT BIT COUNT i LOOP UNTIL O SET STOP BIT i DELAY APPROX 2 BIT TIMES i AC HAS INPUT CHARACTER 7 RETURN j HF HF HF E E FF E HF HF E EF E FF FF FF FF FF HF EF FF FF 2F FF 3F 4F FF j HF HE E HF HF HF E PE DE E DE TE PE PE PE PE PE DE FF DE PE TEE FF FF 3F EE EEE PUTC PUTC1 XAE LDI DLY CSA ORI CAS LDI ST LDI DLY DLD JZ LDE ANI ST SR CSA ORI XOR CAS JMP PUTC2 AESTK ANI CAS END _ 1050 0288 1 OO9B CKMODE 0644 0562 COMMA ODBD OCCD DONE 0135 DOSTAK 107A El 0195 12 08 1 16 19 0804 5 06 5 EQ 054 ERR2 0227 EX2 0 69 EXECIL 0076 F2 OEB6 F OEDB FACTOR OEAS 255 23 1 2 138 8 TEMP3 P2 PUTC2 1 TEMP2 P2 1 TEMP2 P2 PUTC1 PUTC 0 ANDOP CALBIT CHPAGE CLEAR 1 DOLLAR DONE1 DOUBLE E10 E13 16 2 EG EREG ERRNUM EX3 EXPR F3 F7 FAIL 05 0080
154. FER TO STATEMENT j HE HE HE HE HE HE 3E 4F HF HERE EH HEHE 3F 3 XFER LD JF LDI XFER1 LDI ST XPPC LABLHI P2 XFER1 8 1 i RUNMOD P2 P3 CHECK FOR NON EXISTENT LINE 4 i SET RUN MODE TO 1 j TE3E JE EIE 3E 4E EE 36 364 4 3 3 4E 4 3 3E 3E HF 4C 3E 3E 3E 4F 3F HF E 3E 4E 3E 3E EE POINT AT PUTC ROUTINE i LOAD NEXT CHAR IF END OF STRING IF CR ERROR i RESTORE CHAR PRINT CHAR GET NEXT CHAR SYNTAX ERROR P PRINT STRING IN TEXT j HEHE HE AEH HF HF E HEHE E 3 4 AE E E E HF HEHEHE 4F PE FF E PE EE EEE IEEE HE PRS LDPI P3 PUTC 1 LD 1 P1 XRI ue 42 XRI 2 42 PRS1 XRI oD XPPC PRS PRSi LDI 7 El JMP E2 j HFEF HE FF FF FF FE FE 3F FF JE FE FE 3F IEEE IE JE 4E TE E EHE 3E HF FE FF IE 3E 3E FF 3F 3F 3 3 PRINT NUMBER DN STACK j HHHH FH FHF FF FE FE HF FF FE FE HF FH HF HE FF HF FF HE FF HE 3F FE 3F FF FE HF HF FF 3F 3F FF 3E 0197 0199 019 019 019 019 01 1 1 0185 01 7 01A 1 O1AD O1AF 0181 0183 0185 0187 0189 01 BA O1BC O1BE O1CO 01C2 01C4 01C6 O1C8 O1CA O1CC O1CE 0100 0102 0103 0105 0106 0108 010 0108 0100 O1DF 1 1 O1E3 O1ES O1E7 O1E9 O1EB O1ED O1EF 01 5 01 7 1 9 O1FB O1FC O1FE O1FF 0201 0203 0204 0206 0208 020A 020C 020E 0210 0212 0213 0215 0218 0210 021 0220 0221 0223 0225 0227 022
155. GET GET H P1 SAVE RESTORE OLD P1 UPDATE FOR STACK PTR UPDATE AE STACK PTR j HH FH EE IEEE E IE EE EE EE EE E I EH IE IEEE EE IRE EE EE ERE EE EE E ERE EE EHE Ps FIRST PART OF NEXT j TEE IEEE EHE IE LOCAL LD XRI JNZ LDI 51 XRI XPAL ST ST LD XPAL LDI XPAH LD XOR JZ LDI JMP XOR XAE LD CCL ADD 87 LD LD ADD ST ST LD LD ST LD ST LD JP LDI ST LOOP LD XRI ST DLD JNZ JMP 2 LD 3 XPAL ST LD XPAL LD XPAH JMP E18 10 X26 FORPTR P2 L CFORSTK 1 11 E17 L FORSTK Pi 2 H FORSTK P1 P1HIGH P2 LSTK P2 P3 H AESTK P3 1 P3 7 1 510 12 17 7 1 EREG P2 4 1 EREG P2 P3 e1 P2 EREG P2 3 P1 EREG P2 1 P3 1 P2 6 1 2 5 1 1 2 4 NUM CP2 14 0P3 NUM P2 LOOP 3 4 LSTK P2 PiLOW P2 P1 Pi1HIGH P2 P1 X25 Box E Menlo Park CA 94025 POINT Pi FOR STACK CHECKING FOR UNDERFLOW i REPORT ERROR i SAVE OLD Pi POINT AE STACK i GET VARIABLE INDEX COMPARE WITH INDEX i ON FOR STACK ERROR EQUAL RESTORE INDEX IN EREG i GET L VARIABLE i ADD L STEP i STORE IN VARIABLE i AND ON STACK INCREMENT PTR i GET H VARIABLE ADD H STEP STORE
156. HEN CASUAL WILL ENTER THE COMMAND IHFUT MODE THIS IS INDICATED BY THE PRINTING OF A PERIOD lt gt AS A CHARACTER CASUAL IS READY TO ACCEFT A LIHE OF IHPUT FROM THE USER THE USER ERCKSPRCE OVER TYFING ERRORS WITH THE RUB OUT KEY HE MAY ELECT TQ START THE LINE OVER BY STRIKING THE CONTROL U tU3 KEY WHEN THE USER IS WITH A LINE HE STRIKES THE CARRIAGE KEY TELLING CASUAL PROCESS THE LINE JUST TYPED DURING LINE INPUT ALL OTHER CONTROL CHARACTERS WILL BE EXCEPT CONTROL G lt G5 CASUAL HAS THE ABILITY TO EXECUTE COMMAHIS IMMEDIATELY AFTER THEY ARE TYFED TO STORE THEM AWAY FOR LATER AS A CASUAL WILL SCAN THE IHPUT LINE FOR THE FIRST HON BLANK CHARACTER IF THIS CHARACTER IS A HUMBER CASUAL WILL SAVE THIS LINE IN THE CASUAL PROGRAM BUFFER IF IS CASUAL WILL ACCEPT THE LINE AS IMMEDIATE NODE C MMAHD AND ATTEMPT EXECUTE IT EDITIHG IF LIHES IHFUT TO CASUAL STARTIHG WITH HUMBERS THEY WILL BE EDITED IHTO THE CURREHT PR GRAM THE BUFFER LIHES ARE ALWAYS STORED BY LINE NUMBER ASCENDING ORDER THE IHFUT 18 ING 28 38 65535 CORRECTIONS MADE AFTER LINE HAS BEEN ENTERED BY RETYFING THE CORRECTED LINE WITH THE SAME HUMBER AS THE BAD OHE THE LINE WILL REPLACE THE OLD ONE OF THE SAME HUMBER LINES MAY BE INSE
157. HL GOTO ZERO YUP FALL THRU GOTO LINE TO NEXT STMT gt 5 65535 2 0 12 YUP THIS IS HIS LINE THA gt MOVE TO PRECEDING FOUHD THE LINE HQ FIND ERROR HULL EXECUTE IT A GOSUB 7 FIHD START LIHE SAVE ITS LINE HUMBER 10 A GOTO MEMORY ADDRESS 7 STORE MEMORY ADDRESS RESTORE EDS TRA A FOKE 7 THE MEMORY DDRESS POKE IT WITH LOW ORDER EXFR RESTORE EDS THA AH QUT INST NOPE QUT INST BINARY gt MEMORY CRAM DATA OUTPUT gt A RESTORE EOS THA 700 THE OUT AND RETURN SET PORT HUMBER 2 TRUNCATED EXPRESSION gt A SET NEW PORT NUMBER INTO RAM RESTORE EDS TARA DEFINE FUNCTION MIGHT BE FOKED TO LETS MOVE TRA TO EXPRESSION SAVE FUNCTIOHS THA RESTORE EDS THA Nov Dec 1976 861 881 881 Bel Bal aal 1 agi 5881 891 091 eal agi 981 1 981 801 eaa 882 HAZ O62 GAZ 902 aa 882 662 092 gaz gaz 892 682 gne 882 892 092 092 992 882 O62 092 eaa 41 244 345 258 551 2 2
158. HOSP DIFFEREHCE MSGP ZPRINT BYTES FREE DSS Y T E 5 F R 200 RST ZRESET STACK AND ENTER 7 THIS IS THE ROUTINE USED TO PUNCH MEMORY IN BOOTSTRAP FMT PGE T0512 LXI SP 8256 LBI 377 ZSEND 255 LEADER CHRS MAKS LAI LLOC ZLE DER CHR gt A CAL PNOU SEND A CHR OF LEADER DCB ZDONE WITH LEADER JFZ MAKS NOPE SEND SOME LXI HL LLOC 1 HIGHEST ADR TO SENT gt HL MAKT LA A CHR TO PUNCH gt CAL PNOU PUNCH DCL PUNCHED IT ALL 2 JFZ MAKT KEEP SENDING LAM ZSEHD LAST CHR CAL PNOU 7374 ALL DONE BACK MONITOR Z ZTHIS SECTION CODE IS THE 1 0 POKE SECTION ZIT IS READ IN BY THE BINARY LOADER AFTER THE 1 0 SECTION CASUAL THIS ROUTINE READS THE FRONT PANEL SENSE SUITHCES AND POKES THE 1 0 FOR SOME MITS 1 0 BORRDS THE SWITCHES MEAN THIS WHEN THEY ARE UP Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park 94025 009 000 2080 900 eoo 800 288 ago 000 890 888 900 000 899 000 800 080 880 900 000 288 000 098 oga 899 ogo 088 800 690 0860 000 006 000 000 800 000 089 600 000 009 000 000 200 008 298 900 809 098 280 2112 121212
159. HROUGH OBSCURE METHODS i SIMULTANEOUSLY THE IL PC BY 2 INCREMENT IL INSTRUCTION IS A TEST CHECK FOR IL CALL i CHECK FOR IL JUMP jana I L JUMP 24 ALL IT TAKES IS SCRUBBING THE JUMP FLAG OFF OF P3 MUST AN ML SUBROUTINE NONE OF THE ABOVE j FEE HE HF E E HF HF 4F HF HF FF FF 3F FF HF E 4F 3F HF 3F 4F PE E GE 4 4F 4 E A E i CHECK FOR STACK OVERFLOW i RESTORE ACCUMULATOR i SAVE LOW BYTE OF i 1 1 PC IN TEMP iPOINT SUBROUTINE STACK SAVE OLD I L ON STACK GET LOW BYTE OF I L PC INTO LOW UPDATE I L STACK POINTER GET HIGH BYTE OF I L PC INTO P3 HIGH P INTERMEDIATE LANGUAGE CALL ILCALL LD PCSTK P2 XRI L LBUF JNZ ILC1 LDI 10 JMP EOA ILC1 XRI L LBUF XPAL P3 ST TEMP P2 LDI H PCSTAK XPAH P3 LD PCLOW P2 ST e1 P3 LD PCHIGH P2 ST LD TEMP P2 XPAL P3 ST PCSTK P2 LDE ANI OF XPAH P3 JMP CHEAT j HF HE FF FF HF FF HF HF HF R EIE I ER E P I L TEST INSTRUCTION j HH HF 4F E E E HF HF E FF FF FF LOCAL TST ST SCAN LD XRI JZ LD LD XPAH ANI ST LD XPAL ST LOOP LD DLD LDE ANI XOR JNZ LDE JP JMP JMP SNEQ LD XAE LD LD XPAL LD XPAH JMP CHRNUM P2 e1 P1 SCAN 1 P1 2 FAILHI P2 PCLOW P2 FAILLO P
160. I L TABLE PUT IT 0433 FBFD 3 0500 2 PCHIGH P2 INTO 7 1 PROGRAM COUNTER 0435 02 ST 2 P3 0502 37 XPAH P3 0437 9006 JMP 1 0503 C300 LD P3 0439 9084 x9 0505 sT PCHIGH P2 043B C3FD POS LD 3 i STORE NON NEGATED DIVIDEND 0507 C301 LD 1 3 0430 2 ST 2 32 ACCUMULATOR 050 ST PCLOW P2 4 C3FC LD 4 P3 0508 2005 X10 0441 CBOS ST 0500 01 MAYBE SAVE VALUE 0 25 0443 51 LD 1 P3 i CHECK FOR NEGATIVE DIVISOR OSOE C100 LD 1 CHECK FOLLOWING CHAR 0445 940D 62 0510 03 SCL MUST A LETTER 0447 CAOO LDI NEGATE DIVISOR 0511 5 CAI 71731 i OTHERWISE WE D BE LOOKING 0449 O3 SCL 0513 9405 SOK A KEYWORD NOT VARIABLE 044A FBFE CAD 2 P3 0515 03 SCL 044 CBFE ST 2 P3 0516 FCE6 CAI 787 727 1 044 400 LDI 0518 94E1 FAIL 0450 FBFF 1 0514 C410 LDI i SET TO CURRENT 0452 5 1 P3 OS1C 37 i STACK LOCATION 0454 C400 52 LDI 0 PUT ZERO IN 0510 AAFD ILD LSTK P2 i INCR STACK POINTER 0456 CBO1 ST 1 P3 i LEFT HALF OF 32 BIT 33 XPAL P3 0458 CBOO ST 0520 02 CCL DOUBLE VARIABLE INDEX 045A CAEB ST NUM P2 i THE COUNTER AND 0521 40 LDE 045 CBFD ST 3 0d IN THE DIVIDEND NOW USED 0522 70 ADE 045 ST 4 i STORE THE QUOTIENT 052
161. IN VARIABLE AND ON STACK RESTORE RAM POINTER i GET L LIMIT PUT ON STACK GET H LIMIT PUT ON STACK GET H STEP i IF NEGATIVE INVERT i ITEMS ON STACK LOOP COUNTER GET BYTE FROM STACK INVERT IT PUT BACK ON STACK DO UNTIL NUM 0 UPDATE AE STACK POINTER RESTORE OLD P1 Nov Dec 1976 OREA OAEC OAFO OAF 1 5 OAFS OAFS OAF OAFB OAFF OBO1 0802 0804 OBOB OBOC 0812 0814 0816 OB18 OB1B OBiC 1 0820 0822 0824 0825 0827 0828 2 2 OB30 0832 0834 0 35 0837 0840 0842 0844 0846 0848 4 0850 0854 OBSS 0857 0858 OBSA OBSE 0850 OBSE 0861 0864 6 0867 OBGA 0870 0871 0873 C2EF 9808 C2FE 02 FAF9 CAFE C2FE 33 C410 37 35 90 4 2081 2 2 31 501 400 E40D 06 0420 2 90C6 2 37 2 33 C501 CFO1 E40D 9CFS 90B6 C2EF 2 37 C501 E422 980E EA2F 9COA C407 400 1 C40D 90DE 37 501 1 400 0420 1976 j 3tSEREE AE EE IEEE EIER EHE AE
162. INE NUMDBER CLEAR LISTING FLAG i 60 TO NXT POINT AT IF TYPING GET NEXT CHAR TEST FOR CR i GET CHARACTER PRINT CHARACTER i CARRIAGE RETURN i LINE FEED 0329 2 0328 032 0331 0333 0335 0337 0338 0330 0340 0342 0344 0346 0348 034C 034 034 0351 0353 0354 0355 0357 0359 035 0350 5 0361 0365 0366 0368 0369 O36A 0370 0372 0374 0376 0378 037 037C 037D O37F 0380 0382 0384 0386 0388 0391 0373 0395 0397 0399 O39B 039C 0382 0384 2 03B4 O3B6 03B O3BB 1 03C3 0354 o3ca 0300 0302 0304 0305 0307 0308 02 2447 POAC C410 37 BAFD BAFD 33 02 CAFE F300 CBFE C3FF F301 410 37 BAFD BAFD 33 1 2047 C410 CZFD 33 C400 FBFE CBFE C400 FBFF CBFF 2002 9092 2002 2084 02 1 2302 CCL LDI ST LDI ST JMF P3 L LIST3 PCLOW P2 H LIST3 PCHIGH P2 LST NEXT LINE j HH 3E 4E HF 3E dE AE HE 3E E AE EE 3E FF F
163. Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 P2 VARS P1 1 1 1 P1 1 1 2 PAGE P2 Pi 020 2 P1 EREG P1 00 0 PAGE P2 020 P1 1 1 1 P1 1 P1 P1 010 080 1 080 SLOOP RUNMOD P2 LISTNG P2 L BEGIN PCLOW P2 H BEGIN PCHIGH P2 2 POINT POINT STORE P2 VARIABLES Pi PAGE ONE PROGRAM 1 AT START OF PROGRAM i ALSO STORE A DUMMY END OF LI POINT P2 AT PAGE 2 INITIALLY SET PAGE TO 2 i CHECK IF THERE IS REALLY i PROGRAM IN PAGE 2 IF FIRST LINE LENGTH POINTS TO CARR RETURN END OF LINE IF NOT PAGE 1 STORE 1 IN 2 CONSECUTIVE LOCATIONS AT START OF PAGE i ALSO PUT A DUMMY END OF LINE i JUST BEFORE TEXT i UPDATE Pi TO POINT NEXT PAGE UNTIL PAGE 8 INITIALIZATION i FOR PAGES 2 7 i CLEAR SOME FLAGS i INITIALIZE IL PC SO THAT NIBL PROGRAM IS EXECUTED IMMEDIATELY 0035 0056 0058 005A 005 0050 005 0060 0062 0064 0066 0068 0064 006C 0070 0072 0074 0076 0078 0079 0078 007C 007E 007F 0081 0082 0084 0085 0086 0088 0089 0080 0091 0093 0095 0097 0098 009A 009B 009D 0055 0067 oocB OOCF 0001 0002 0004 0006 0008 0009 0008 0000 OODE 1 5 7 OOEA
164. K SOS TXA gt HL THE ASSIGHMENT RESTORE SOL TSA LIST COMMAND gt GET ARG gt DE FIHE THAT LINE START ADRESS gt HL 9 IF NO ARG SETUP BOGUS LAI SKIPPED FIRST TIME THRU CONTROL C gt CHECK FROM LAI FETCH LINE gt DE EXIT IF ZERO SAVE DURING PRINT LINE gt HL PRINT IT FIRST CHR OF LIHE GET A CHR EQL LAST ON LINE DD NEAT LINE NOT LAST PRIHT IT DO REST OF LINE NEW COMMAND 7 MARK BUFFER RETURN ADDRESS gt BC HOLDS STACK RESET ADDRESS RESTORE RETURN ADDESS INCASE THIS IS SUICIDAL BOTR 1 gt HL RUN COMMAHD gt NO ARG RESET STACK AND GET THE ARGUMENT DO A GOTO THESE ROUTINES ARE USED TO PRINT THE 16 BITS IN THE HL REGISTER AS DECIMAL ASCII OH THE TERMINAL INPT PRINTS THE NUMBER IN CURL IF IT IS 65555 IMMEDIATE THE WORD PRECEDES THE NUMBER IF IS PRINTED PRINTS 15 SIGHED NUMBER IH HL 352768 TO 32767 PRINTS THE 16 UNSIGNED NUMBER IH HL 65535 HOSP PRINTS 16 UNSIGNED NUMBERS IH HL WITHOUT THE LEADING SPACE NORMALLY ONE TRAILING SPACE PLACE OF THE LEADING STACK USAGE 3 BYTES NOSF DIVD SPOU TENS LDHL CUR
165. L LA H Hh L INA RTZ SS gt 4208 DE TEHS DE OF OTS Nm TEN WM Ln IHR HL SP lt gt HL LBI LA SU LL LA SE LH IHE JFC DIVD DCE DE JFZ OF JFZ RRI LCI 8 DEYO LA DCA JFZ POSI DE LA C A JTZ SPQU HSGP 055 80 208 MSGP 55 266 RET DSD 8188808 gt gt m r 81988 PRINTED ALL NUMBERS ARE FOLLOWED SHLP PRINTS A MIHUS SIGH i SPACE IF HL IS MUHCHES ALL REGS CURREHT LINE HUMBER gt HL IS 377 YUP RETURN PRINT NOPE IH PRINT A SPACE POINT TO POWERS OF TEH TABLE PUT TABLE ADR STACK CLEAR SIGHIFICAHT DIGIT FLAG NUMBER OH STK TABLE 2 HL POWER gt TABLE ON STK THIS DIGIT 16 BIT SUBTRACT HL HL BE HUMBER gt HL INCREMENT THIS DIGIT ZHOT YET KEEP SUBTRACING GONE ONE TOO FAR DIGIT DIGIT 1 TOO FAR ABD BACK POWER A 8 IS THIS DIGIT ZERO 2 NOPE SIGHIFICAHT DIGITS YET HOPE DDH T THIS ZERO ADD IN ASCII BIAS SET SIGIHIFICGaHT DIGIT FLAG SEHD THIS DIGIT OH THE LAST DIGIT HOPE DO HEXT ONE YUP CLEAH UP STACK 4SIGHIFICGSHT DIGIT FLAG gt A HAVE WE SENT AHY 515 DIGS YUP
166. LD 1 P1 ADVANCE THE CURSOR JMP LOOP GET NEXT CHAR SEND LD NUM P2 CHECK IF THERE JNZ 2 MORE THAN CHARACTERS LDI 5 ERROR IF THERE WERE NONE ESB E8 j HF FE HF E FF FE 3E 2F HF FF HE E 3F HE 3 3F FF 3E HF FF E 3F FF FH 3F 3F 3F 3 3F 3F 3F 3F 3 3H FH 3F TEST NUMBER TEXT j MHA HE 3F E 3F 3E 3F FF 3E TEE E 3E FF 3F 3F 3F 3F 3F E 3F 3 3F E 4F 3 3F 3F HEEE THIS ROUTINE TESTS FOR A NUMBER IN THE TEXT IF NO NUMBER IS FOUND 1 1 CONTROL PASSES THE ADDRESS INDICATED IN THE TSTN INSTRUCTION OTHERWISE THE NUMBER IS SCANNED AND PUT ON THE ARITHMETIC STACK WITH I L CONTROL PASSING TO THE NEXT INSTRUCTION lt lt x lt lt LOCAL TSTNUM LD e1 P1 XRI i SKIP OVER ANY SPACES JZ TSTNUM LD 1 1 GET FIRST CHAR SCL TEST FOR DIGIT CAI 9 1 JP SCL CAI 1 LD 2 GET TEST FAIL ADDRESS XPAL P3 FROM I L TABLE LD PCHIGH PZ 43 062 0600 0602 0504 0606 0609 O6DB O6DF 1 OGES 06 7 OGES O6EA O6ED OGEF O6FO 06 2 06 4 06 06 7 06 O6FB O6FC 0700 0701 0703 0705 0707 0708 0708 070C 070E 0710 0712 0714 0715 0717 0719 0718 0710 071F 0721 0723 0723 0726 0728 072A 072C 072E 0730 0732 0733 0735 0737 0739 073B 073D 9073F 0740 0741 0743 0745 0747 0749 07
167. LOWED BY TWO CONSECUTIVE BYTES THEM ONE BYTE CONTAINING TRE AND FINALLY THE LINE ITSELF FOLLO THE LAST LINE IN THE TEXT IS i POINT PS AE STACK PS WHICH HAS THE LINE 0 5 2 ON IT 1 i SAVE LINES 1 HILINECP2 Nov Dec 1976 2 CAFS 082 Cari 33 0205 FCF 0907 RETURN 0909 C400 20 0831 2 0910 13 6833 37 0834 5 0836 CAE 4 0838 C701 51 5 E40D 804 AAE7 DLD LSTK PZ3 THIS ROUTINE THE 0840 90 6 0914 LSTK P2 STACK AND PUTS THE RESULT 0842 C2E7 2 0916 gt INTO 10 2 AMD HICP2 0844 E404 0917 LDI HOSESTKO 0846 9 02 0919 0848 91 C300 P3 084 C2E7 3 LD san 621 CREF ST LO P2 01 091E C301 LD 1 0840 2 2 LD LABLHI PZ 0220 ST 2 084 9406 0927 FOES X20 0851 DAFF OFF 0853 2 ST LABLHI P2 0855 9018 JMP ROYE 0857 C503 84 LD 23 1 UNTIL 0859 40 LDE 3 LEENA RB 3 02 CCL 3 06858 F4FC ADI 4 LOCAL 0550 01 j 0 24 C2FF UNTIL CHECK FOR DO STACK UNDERFLOW 085 0501 5 LD 1 1 SUBTRACT 1 FROM Di 0926 01 XAE 0860 400 FOR E amp CH CHAR IN 0927 40 LDE 0862 2
168. M Dear Dr Dobb Nov 1 1976 have seen the articles disc operating system available from Digital Systems am writing because am a satisfied customer have had a system from Digital Systems running for nearly a year now and have had no trouble with it The hardware is reliable and well designed do not know of anything presently on the market that compares favorably to it The software is also fan tastic and reliable It is easy to interface with the DOS to read and write files and do 1 0 The software developed Digital Research is well designed and is implemented much like the Monitor on the DEC System 10 The assembler editor and debugger supported by the system are excellent In addition to that the documentation that comes with the system is first class am enthusiastically pleased with the performance of the system have dealt with Digital Systems and can unqualifiedly say that they are honest decent and responsive Dr Torode was exceptionally helpful in getting the system up and supporting me afterwards have not encountered a more honest and responsive vendor The software written by Digital Research is excellent in design and documentation and to me it would be worth five times the price Altogether the combination of hardware and software which is provided turns an 8080 system into a true software development system which is flexible easy to use easy to learn and reliable Since
169. MORY LM a ZURITE IT BACK COMPLIMENTED 018 IT GO 2 RESTORE MEMORY LM A JFZ INIU NOPE THIS IS END OF RAM INX HL YUP KEEP TRYING INIS 986 9086 806 806 0806 286 886 006 006 886 O06 006 086 886 086 eo 807 087 007 087 897 aa 897 887 807 887 Bar gg 887 99 00 9g go 007 8807 887 O07 887 987 007 887 887 807 087 027 887 007 8807 087 221 24 lt lt 238 c cn m m CJ CJ CJ J CJ 351 352 353 554 355 268 363 371 286 811 814 815 816 017 3 924 926 832 835 840 041 842 843 844 845 O46 858 851 954 181 194 167 112 113 115 315 353 021 367 332 B42 315 123 181 126 195 857 181 128 195 277 315 841 842 941 315 lt 124 122 040 111 057 117 277 315 941 122 123 27 315 841 642 842 383 383 841 842 941 257 167 357 915 183 181 123 125 101 514 383 245 247 375 312 311 357 815 912 122 191 115 248 383 181 972 952 174 396 142 OY m i gt e Ore W m CN n fH m OQ N ants 054 137 285 213 693 382 117
170. NTROL SECTION 081 001 081 991 eati 001 081 901 an 091 201 681 801 901 001 onl 091 881 091 021 881 0011 1 ani 001 1 081 ani 1 adi 881 801 001 1 601 001 081 681 801 081 981 901 801 881 001 991 981 881 801 081 881 881 801 081 o91 881 681 881 6801 001 gai D py PH p PJ PO PO DO DO py n m r3 AN Cn rn p CJ f an ra 226 227 232 23 23 241 242 243 244 U ta e d 4 ee YD DO o 04 HY 004 mM TM Oy E C CD CJ c4 Ch p 74 QO G C4 OJ QU Py py F GN Q Q TJ Fo m OQ O D We 276 C Qj UNA NAN ONAN pQ 0 GJ 74 G OY r rj Roc wD Re Be 2 4 02 J GJ G G Q Q QQ GJ GJ GJ GI GI g O N N aw DI Ghee 0 oe oe 4 wpe Wm OT Wea mage CJ CJ QJ J P Q 0D 11 137 oni 323 013 188 814 O91 9 1 001 004 STMT IS THE STATEMENT EXECUTOR OF THE STRING
171. Name unknown at press time Los Angeles Area Proposal to hold such a con vention has been placed before SCCS Bd of Directors 299 Technihobby USA 3 of the 4 listed previously were postponed Last word was they were considering also postponing the 4th Montvale NJ 07645 201 391 9810 Austin Cragg listed prev 7 773 Magazine 73 5 Peterborough NH 03458 603 924 3873 Midwest Affiliation of Comp Clubs PO Box 83 Brecksville OH 44141 216 732 8458 ARRL QCWA WWDX Club ARRL Conven Comm 10352 Sand Point Way NE Seattle WA 98125 John Dilks PC 77 503 W New Jersey Ave Somers Pt NJ 08244 609 927 6950 Interface Age Box 1234 Cerritos CA 90701 213 469 7789 Southern California Computer Society P O Box 3123 Los Angeles CA 90051 Marketing Ventures Inc 5012 Herzel PI Beltsville MD 20705 301 937 7177 Note This list excludes a number of conventions directed towards computer professionals that are expected to have at least nominal activity in the area of personal and hobby computing Although the 77 NCC is primarily for compu ter professionals its Personal Computing Section will be a major activity with a number of significant sessions and events planned for personal computer en thusiasts Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Nov Dec 1976 0001 0020 0040 0080 0001 0002 0003
172. OEDO OEDS OED7 OEDB OEE1 OEES OEEA OEFO 5 OEF7 OEFD OF 02 OF04 OF 12 OF 18 OF 1C OF 1F OF 21 OF Z4 OF 24 OF 29 OF 2B OF 2F OF 37 OF SD OF 41 OF 45 Nov Dec 1976 ML TST LIN K CALL RELEXP DO DONE XCHGP1 CALLML XCHGP 1 NXT REM TST SYNTAX H DO IGNORE NXT SYNTAX DO ERR ERRNUM CALL PRNUM DO FIN NOTE EACH RELATIONAL OPERATOR LEQ ETC DOES AUTOMATIC RTN THIS SAVES VALUABE BYTES RELEXP CALL EXPR TST REL1 CALL EXPR DO EQ REL1 TST REL4 lt TST REL2 CALL EXPR DO LEQ REL 2 TST REL3 727 CALL EXPR DO REL3 CALL EXPR DO LSS REL4 TST gt TST RELS CALL EXPR DO GEQ RELS CALL EXPR GTROP 00 GTR EXPR TST 1 7 7 CALL TERM NEG JUMP EX3 EX1 TST 2 EX2 CALL TERM EX3 TST EX4 CALL TERM DO ADD JUMP EX3 4 TST 5 7 7 CALL TERM DO SUB JUMP EX3 5 TST RETEXP O CALL TERM JUMP EX3 RETEXP DO RTN TERM CALL FACTOR TST T2 CALL FACTOR DO MUL JUMP T2 TST 7 CALL FACTOR DIV JUMP T3 TST D CALL FACTOR Do JUMP FACTOR TSTV F1 DO IND RTN F1 TSTN F2 DO RTN F2 TST 87 TST CALL RELEXP TST SYNTAX DO RTN F4 TST FS CALL FACTOR EVAL
173. OL 4 5 5941445 8 309 018 YYA LINI T AN SLAI 271891 NOILUTSNUMJ I amp 01 HONS DL Tel SNL LAS Ce 711 COR COB 4 5 ATAYA ALSO SNU ML LINI 01 N 1 M QUON Al Ove NEL Sept 13 1976 508 4th St Laurel MD 28810 Enclosed you will find a modification of Bill Thomp son s arithmetic expression evaluator published in your June July 1976 edition As another uninitiated person on the subject of interpreters I found his BASIC program to be enlightening However after trying out his program I did find that his stack operations could be handled much more efficiently by moving pointers to the stack tops rather than the entire Thanks Jim Abshire stacks Also I tried to make the flow a little more readable by limiting the use of GOTO statements to within the same tines in increments of 500 Since my mod was implemented on a PDP 11 there are some minor differences in the string subroutine and by starting the line numbers of the subrou functions Gentlemen ovt uD OTST OORT n x I OLTI 0511 OTT OL TT 0111 0011 06091 0801 OLOT 0701 O80 T OF OT OLOT aroT STOT 001 Ov QES Q Ge SN OTJLZOMWILSNT NOS AWOL
174. OSUB Syntax error Statement type used improperly UNTL without DO Constant format or value error Stacks Buffers Required ROM PROGRAM PROGRAM ROM RAM CODE FOLLOWS tooo Variables Required KILOBAUD A PRENATEL NAME CHANGE John Craig the Editor of Wayne Green s new computer hobby mag just phoned and told us that Wayne has changed the publication s name before the first issues comes out from the initially advertised Kilobyte to Kilobaud Oh well we re still waiting for someone to start yet another rag and call it Megabyte but with luck that won t happen Page 38 Aug 28 29 1976 COMPUTER HOBBYIST CONVENTIONS amp TRADE SHOWS CONVENTIONS ALREADY HELD May 2 1976 Trenton Festival Trenton NJ Amateur Comp Group of NJ June 11 13 1976 Midwest Reg Comp Conf Cleveland OH Midwest Affiliation of Comp Clubs Personal Computing 76 Atlantic City NJ S Counties Amateur Radio Assn of NJ CONVENTIONS BELIEVED TO BE IN THE WORKS Mar 5 1977 Microprocessor Hobbyists Demo Saturday United Good Neighbor Bldg 10 AM 3 PM Renton WA Not a convention but interest ing Mar 19 20 1977 Western Personal Computing Show Hyatt House International Airpt Los Angeles Apr 15 17 1977 The First West Coast Computer Faire Civic Auditorium San Francisco CA San Fr
175. OTOROLA FOR SIMULTANEOUS NUMBER CRUNCHING AND ANTENNA POINTING Dear Sir 17 Nov 1976 Two of us here Northern Virginia area interested in using a micro for some number crunching with peri pheral calculator chip and antenna pointing for satellite work simultaneously The 6800 Motorola line of chips looks like it will fill the bill due to the superior I O con figuration possible The 8080 kinda misses the boat So I am interested in all kinds of homebrew hardware for 6800 line compatible with SWTP line Sincerely Ellis Marshall Rt 1 Box 158 Front Royal VA 22630 FREDDIE S FOLLY by Jim Day Frugal Freddie bought a video board kit from a local com busying sockets for the ICs Who needs he said just solder everything The board worked fine for a few weeks then developed a hardware glitch that Freddie hasn t been able to fast e g 2 5 msec worst case time for multiply track down He took it back to the computer store and asked them what it would cost to fix Well now said the repairman If this thing had sockets probably find the trouble in few minutes by random sub stitution But with everything soldered down to the board there s no telling how long it might take Why it could end up costing you more than the price of the kit One can avoid duplicating Freddie s folly by socketing everything ei a
176. OUTPUT THE TRAILIHG SPACE HOPE A 2 SEHD PRIHT SPACE 8198 010 91 Nov Dec 1976 084 684 BASF 664 284 ena eaa 884 eaa 4 084 oag G84 094 A94 gas Bas 094 084 084 993 064 994 004 005 005 005 885 eas 285 5 895 gas BOS Bus 925 2855 gas Uo 0 c0 Th A f PJP pa pa lt QE D G ol 6 p p 9 74 Q CO C 04 09 N NY 9 54 n TY FY D F9 256 268 262 4 CD QJ gt Co CQ D J T7 m Cn c 815 22 106 111 112 114 115 117 122 125 127 131 132 1 1 15 n m A J c OS J m on ocn r We 4 Y YD 0E 04 73S WNW J j WN hoo f Tee We 0 n CD 154 156 37 118 151515 151515 nl 0 GO OQ gt 151515 186 312 361 gt 323 311 688 215 312 333 346 311 4 Cs ANU e oc it re fo Cn 7J 255 884 864
177. PART OF CURSOR DIVIDED LDE BY 16 1 SR SR SR SR ST PAGE P2Z XPPC P3 i RETURN j HEE SE DE E PE FE FF E E E PE FE FF E FF PE E E E E E E PE E FF 3F IE AE CLEAR CURRENT PAGE j HEF E FF E E E E E E E E E FF ENE EEE EE AE AE NEWPGM LD TEMP2 P2 POINT P1 AT CURRENT PAGE 1 LD TEMP3 P2 XPAL P1 LDI PUT DUMMY END OF LINE ST 1 1 JUST TEXT LDI 1 PUT 1 OF TEXT ST P1 ST 1 P1 XPPC P3 RETURN i RAE HEC FE FF TEE AE IEEE PG FIND LINE NUMBER IN TEXT j IERE PE E TEE AE E PE PE EH TE TE HEHE ETE PE E FE HE ETE TEE HE PE 3F 3 2F EE EEE INPUTS THE START OF THE CURRENT PAGE IN 2 AND TEMPS THE LINE NUMBER TO LOOK FOR IN LO AND HI OUPUTS THE ADDRESS OF THE FIRST LINE IN THE NIBL TEXT i WHOSE LINE NUMBER IS GREATER THAN OR EQUAL TO THE j NUMBER IN HI AND LO RETURNED IN ADRLO AND ADRHI LOCAL FNDLBL LD TEMP2 P2 iPOINT AT START OF TEXT 1 47 1 C2E8 2 0572 NEW1 OBE3 31 XPAL 1 0574 4 C100 51 1 HAVE WE HIT END OF TEXT 0676 DONE NUPAGE FNDPGE OBES E4FF OBES 9412 52 YES STOP LOOKING 0 82 STMT TST LET T OBEA 03 SCL NO COMPARE LINE NUMBERS 0587 TSTV OBEE C101 LE 1 F 1 BY SUBTRACTING oceB TST SYNTAX 7 7 OBED FAEF
178. RAM NAME CHR gt A CAL PNOU SEND IT LDHL EOTX STOP ADDRESS gt DE DE lt gt HL LDHL BOTX START OF TEXT ADR gt HL SAYA LA M CHR OF PROGRAM gt A CAL PNOU SEND IT CMPR DONE YET 2 INX HL BUMP JFZ SAVA NOPE KEEP SAVING RST ALL DONE RE ENTER 7 TAP READS A TAPE FROM THE READER INTO THE ZBUFFER RETURNS TO COMMAND DONE COMMAND IS FOLLOUED BY A SINGLE CHR PROGRAM NAME LIKE SAVE ZIT WILL SEARCH THE FOR A START CHR FOLLOWED BY THE NAME GIVEN IF CR IS GIVEN FOR A TAKE FIRST ONE FOUND IF THE NAMED PROGRAM CAN T BE FOUND THE TEXT BUFFER IS LEFT RLONE WHEN READING STARTS THE FROM TAPE IS ECHOED SO YOU LL KNOW IT IS LOADING P4 TST T RERD A TAPE COMMAND IFNOT SNER CRL CHIN A CHR 252 START CHR 2 JF2 NOPE KEEP LOOKING CAL CHIN YUP GET NAME CHR THE ONE WE WANT JTZ TAPF YUP START READING LB A SAVE NAME IN LA H DID HE GIVE DON T CARE NAME 2 OR A LA NAME FROM TAPE gt A JFZ TAPA NOPE DON T READ THIS ONE DEVO SEND NAME BEING READ LDHL WHERE WILL GO LCI 3 ZINITIRLIZE NULL COUNTER CAL CHIN GET CHR LM ZPUT CAL ZPGM BIG 2 LR GET CHR BACK INX HL BUMP OR A 7A NULL 2 JFZ TAPB NOPE KEEP READING DCC
179. RN WILL HOT ECHOED BUT IGNORED RETURNS ON ENTRY OF A CARRIAGE RETURN BY ECHOING A CRLF AND PLACING 3 NULLS AT THE END OF BUFFER ON ERIT HL POINT LIHB 1 STACK USAGE 18 BYTES GET J DCR HL CHR POINTER MSGF ZSEHD A BACK SLASH Iss 260 DCE CHR COUNTER JFZ GETM DELETED TOO HOPE GETK CAL CRLF LAI HL LINE 4CHRS WILL GO HERE LEI 1 INITIALIZE CHR COUNT GETM CAL TTYI CHR gt CFI 7 R BELL JTZ GETH YUP PUT IN BUFFER CPI 15 A CR JTZ CRLE YUP EXIT THRU CRLF CPI 25 4 COHTROL U JTZ GETK START OVER CFI lt SPACE CONTROL CHR JTC IGHORE CPI 177 RUBOUT JTZ IGNOR LAST CHR GETH LC A SAVE CHR LA GET LIHE LENGTH gt CFI LBUL 1 COMPARE WITH MAXIMUM LAI GET READY TO RING BELL IF TOO LONG GETO RING IT LA RESTORE CHR LM PUT IT BUFFER HL IHCR BUFFER POINTER IHE INCRE CHR COUNTER ECHO CHR JMP GETM ZDQ SOME MORE THIS ROUTINE FETCHES LIHE NUMBER FROM MEMORY gt DE IF IT IS LINE 8 THIS MEANS EOE AND IT GOES EHTR IF NOT 8 JUST RETURN DE amp amp FLAGS BUMPS HL HL POINTS TO LOU ORDER OH EHTRY HI ORDER EXIT STACK USAGE 2 BYTES FELH LE H LO ORDER gt E HL LD M HI ORDER gt D
180. RONICS I received a AY5 8500 6 Game MOS LSI chip from Advanced Micro Electronics P O Box 17329 Irvine CA 92713 It didn t operate properly I wrote them a letter in August two months ago describing what the ep did and have received no answer Thank you for reading my letter Stuart R Fallgatler 7910 Rio Vista Dr Goleta CA 93017 We wrote them saying 76 11 7 We recently received a complaint concerning your company a copy of which is enclosed Recognizing that there are two sides to every story and in keeping with our published policy copy en closed See DDJ Vol 1 No 9 concerning handling of consumer complaints regarding vendors products and services we wish to offer you the opportunity to present your view of the situation There fore we wil withhold any decision concerning possible publication of the complaint for least two weeks from the date of this letter pending the possibility that you may wish to offer a timely response you do choose to respond we will of course take your com ments into consideration in deciding whether or not to publish the complaint f we do decide to publish it even in light of your com ments we will almost certainly also publish your response your side of the story unless you explicitly prohibit our publication of your reply Also if you choose to reply we would appreciate your for warding a copy of that reply to the complainant Many thanks bd atten
181. RTED OTHER LINES AT THE BEGINNING OR END OF THE PROGRAM BUFFER THE USER SIMFLY GIVES THE NEW LINE A NUMBER BETWEEN THE NUMBERS OF THE LINES ABOVE AND BELOW IT LINE NUMBERS MAY BE IN THE RANGE 1 TO 65534 INCLUSIVE THE USER MAY LOOK AT ALL OR PART OF THE PROGRAM CURRENTLY STORED IH THE CASUAL PROGRAM BUFFER BY USIHG THE LIST WHILE IH THE MODE TYPING L CCR WILL START LISTING WITH THE LOUEST HUMBERED LINE AND STOP AT THE OF THE BUFFER WHEH CONTROL C lt C gt S TYPED LXXXXZ WILL START LISTIHG AT LIHE 5542 AMAA Page 20 THE FOLLGWIHG SECTIOH WILL COVER ALL THE STATEMENTS WHICH ARE LEGAL IN CASUAL AS EACH STATEMENT IS PRESENTED EXAMPLES ILL GIVEH OF ITS USE IF FOSSIBLE I TRYING THESE EXAMPLES AS THEY ARE ENCOUNTERED MENTS THE CASUAL HAS BASICALLY THREE 022 TYPES STATE FRIHT ASSIGHMEHT AHD STRING IHPUT THIS IS OF SONS FOR ITS INHERENT SIMPLICITY VARIATIONS OF THESE THREE STATEMEHT TYFES PROVIDE A WIDE RANGE OF FUNCTIONS TO THE USER S TERMINAL THE STATEMENT THE FUNCTIOH OF THE FRINT IS TO SEND DATA SINCE THE WORD PRIHT IS HORE DIFFICULT RECOGHIZE THAN A SINGLE CHARACTER QUESTION MARK 7 IS USED TO SPECIFY THE PRINT FUNCTION TRY THI 2 210 4 PRINT TRY 218 4 1 14
182. S ITSELF TO USE THE SAME DEVICE AS THE BOOTSTRAP THEREFORE YOU MUST USE BOOT STRAP OF THIS FORM OR REWRITE THE BINARY LOADER TO MAKE YOUR OWH BOOTSTRAF PUT YOUR STATUS PORT NUMBER INTO LOC 887 FUT MASK WHICH WILL LEAVE THE READER READY INTO Loc 11 IF READY ACTIVE PUT 316 INTO 812 IF READY IS ACTIVE LO FUT 388 IHTO LOC 812 FUT THE DATA PORT NUMBER LOC 814 LEAVE ALL OTHER LOCATIUHS THE SAME LOADER E INITIALIZATION DIALOGUE AFTER CASUAL HAS BEEN LOADED PER INSTRUCTIONS IN A AHD AHY IZO HAVE BEEH MADE IT WILL ASK SIZ IF YOU CARRIAGE CASUAL WILL USE ALL THE CONTIGUOUS MEMORY UPWARDS FROM ZERO THAT IT CAH FIND CASUAL WILL STOP SEARCHING IT FINDS ONE BYTE OF I E MEMORY WHICH WILL NOT ACCEFT AHD SUC CESSFULLY READ BACK A TEST BYTE THIS IS A HOH DESTRUCTIV TEST 50 10 PATCHES SUCH WOH T BE DESTROYED IF YOU WISH TO ALLOCATE ONLY PART OF YOUR COMPUTER S MEMORY TO CASUAL THE DECIMAL ADDRESS OF THE FIRST BYTE WHICH CASUAL IS USE THIS MIGHT BE FOR ERAMPLE IF YOU WERE FART UF MEMORY FOR MACHINE Page 22 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 LANGUAGE SUBROUTINES OR TO SET ASIDE MEMORY FOR CASUAL ARRAY STORAGE TH
183. S NO MEMORY TO STORE THE DEFINITION WHILE A PROGRAM IS BEING EXECUTED SPACE IS ALLOCATED ON THE STACK EACH LEVEL OF PARENTHESIS ENCOUNTERED IN AN EXPRESSION TAKES 8 BYTES OF STACK SPACE APPENDIA E BASIC TO CASUAL STATEMENT CROSS REFERENCE BASIC CASUAL RUN R LIST L NEU N 350 DEF 350 999 999 1 50 188 58 100 18 60508 910 10 52318 16 IF X 1 gt 2 THEN 214 16 214 410 gt 22 20 IF gt AND lt 10 THEN 250 20 258 X gt 3 X lt 10 140 INPUT X 140 145 INPUT 2 8 145 1 7 227 A 147 LET A 8 147 9 107 LET 2 3 4 107 2 3 4 10 49 100 gt lt 5 105 DN SGN 2 GOTO 48 58 68 105 50 18 gt 02 55 lt 82 118 I GOSUB 50 60 7 Che 40 I 19 I gt 8 lt 3 355 OUT LJ 355 J 357 I 4J 357 amp J 360 PRINT 2 360 2 2 378 PRINT 378 7 389 PRINT X Y 388 Y 390 PRINT I THINK 8 390 I THINK 17 57 400 400 410 PRINT lt 2 2 64 64 418 2 gt 2 2 64 64 580 REM SMRLL IS GRERT 500 510 SMALL IS GREAT 0 58 9000 STOP 9808 1 BASIC TO CASUAL FUNCTION CROS SS REFERENCE THE FOLLOWING TABLE CAN BE USED
184. SS OF THIS ROUTINE IS HELD LOCATIONS 5 6 THE ARGUMENT SHOULD BE ENCLOSED IN BRACKETS C AHD 152 THE USERS ROUTINE MAY ENABLE IHTERRUPTS AS LONG AS THE USER USES ONLY RST 7 INTERRUPTS INTERRUPTING TO OTHER LOCATIONS WILL CAUSE TROUBLE THREE BYTES HAVE LEFT AT LOCATION 56 DECIMAL 78 38 THESE LOCATIONS ARE LEFT 0 THE USER DHSEIST A JUMP TO SERVICE ROUTINE CARE MUST BE TAKEN IH INTERRUPT SERVICE ROUTINES SAVE ALL OF THE CFU S REGISTERS DON T FORGET TO INTERRUPTS BEFORE RETURHIHRG OR YOUR MACHINE WILL NEVER SEE INTERRUPT SUPPOSE YOU HAYE 2K COMPUTER AHD HEED A ROUTIHE TO READ THE NUMBER THE FROHT PANEL SWITCHES NOTE THIS FUNCTION BE DONE DIRECTLY IN CASUAL YOU HAVE 2048 BYTES OF MEMORY MINUS BYTES FOR THE ROUTINE LEAVES 2042 FOR CASUAL THIS IS THE NUMBER THE MOST YOU WOULD IN RESPONSE TO MEMORY SIZE LOAD THIS INTO MEMORY LOC DATA OPCODE 997 372 333 377 373 377 007 374 137 MOY E 6007 375 02 D 8 00 376 000 0D 377 311 RET APPENDIX H CHF 32 SPACE 34 35 s 36 37 X 8 amp ag 40 41 2 42 43 44 45 46 47 48 8 49 1 51 3 52 4 53 5 5 6 95 55 o 9 98 ao 5 lt 61 52 2 ez 7 64 8 65 A ee er 69 G 72 H fe I 74 J re L M H 9
185. ST DOLLAR 006 TST SYNTAX z MACRO JUMP ADR CALL RELEXP DBYTE JMPBIT ADR 6 DONE NUPAGE FNDPGE CHPAGE ENDM DOLLAR 5 PRINT 787 MACRO CALL ADR 0070 CALL FACTOR DBYTE CALBIT ADR 007 TST SYNTAX ENDM 0082 TST DOLR1 0085 PUTSTR MACRO DO 0089 JUMP DOLR2 MLOC I DOLR1 TST SYNTAX 787 SET 1 1 CALL FACTOR DO XCHGP 1 MOVSTR ADDR 1 0096 DOLR2 DONE I 1 1 ENDDO OD9A PRINT TST INPUT P OD9E TST 71 7 T7 1 TST 7 I L TABLE ODAS DO PRS JUMP COMMA j HEHE HE AE ETE ESE E E E E E IE EAE ETE EEE HEE EE E HF E HF HF HF E 3 EEE 2 TST 7 I L TABLE CALL FACTOR j HEHE HE HF E HF E 3 TE IE TE TE HE SE SESE HEE HEME HE IE HEE HERE 3 ODAF DO XCHGP 1 PSTRNG XCHGP 1 ODB7 JUMP COMMA 18 START DO NL INE ODB9 PR3 CALL RELEXP OC1A PROMPT DO GETL ODBB CALL PRNUM ocic TSTCR PRMPT 1 ODBD COMMA TST PR4 7 7 JUMP PROMPT 1 OC21 PRMPT1 TSTN LIST ODC2 PR4 TST PRS 7 7 0225 FNDPGE XCHGP1 POPAE FNDLBL INSRT ODCS JUMP PR6 OC2F JUMP PROMPT 00 7 PRS DO NLINE ODC9 PR6 DO DONE LIST TST RUN LIS T 7 FNDPGE INPUT TST END INPU
186. STORE NEOTX STHL EOTX DE lt gt HL ZINSERT ADR gt HL POPX DE LINE 8 gt DE LM E PUT IN NEU LINE INX HL LM D INX HL POPX DE ADR OF TEXT ON LINE EDTZ LDA DE PUT IT IN BUFFER LM A INX HL INX DE OR A JFZ EDT3 NOT DONE INSERTING JMP NOCR ANOTHER LINE L LFND 18 THE LINE FINDER ZTRIES TO FIND THE LINE IN DE IN THE BUFFER ZIT WILL EITHER FIND IT OR HIT THE EOB FIRST OR GO ONE LINE FAST BUT HOT HIT 4 EQ GOT IT NEXT gt HL EOE SONL 50 Z BC 501 SD lt L CARRY FALSE TRUE FALSE 4 ZERO TRUE TRUE FALSE ZUSES ALL REGS AND FLAGS EXCEPT DE STACK USAGE 6 BYTES BOTX BEGINNING TEXT LB H START OF LINE gt LC L M 4EOB INX HL OR M DCX HL RTZ ZERO TRUE CARRY FALSE La RELOAD LOW ORDER gt INX HL PSHX HL SAVE SOL TXA 1 LH M LINE 8 gt HL LL CMPR LINE WANT HL 501 1 gt HL PSHX PSU SAVE RESULT OF COMPARE INX HL START OF NEXT LINE gt HL CAL FSNL POPX PSU ZRESTORE RESULT COMPARE ZFOUND 2 ZYUP CARRY ZERO TRUE IT RFC CARRY ZERO FALSE KEEP LOOKING 4 7 Dobb s Journal Computer Calisthenics 8 Orthodontia Park 94025 RETURN CONDITIONS FOLLOW e THIS IS THE INTERPRETER CO
187. SUAL TO EXECUTE THE LINE AFTER THE CURRENT LINE 1 CAUSES CASUAL STOF EXECUTION AND RETURN TO THE COMMAND MODE CONDITIONAL IS LIKE THIS 4B CAC182 THE EXPRESSION THE RIGHT EVALUATES TO 348 IF THE COHDITION IS TRUE X IS LESS THAN IF IT IS FALSE IS GREATER THAW EQUAL IT EVALUATES ZERO AND THE NEXT LINE IS EXECUTED HAS THE SAME EFFECT AS amp 4PERIOD ADDITION BEFORE COHTROL IS TRAHSFERRED THE HUMBER OF THE LINE FOLLUWIHG THE CURRENT LINE IS SAVED BY CASUAL THE MOST RECENTLY SAVED VALUE IS RECALLED WHEN 5 FOUND THE RIGHT SIDE OF ASSIGNMENT THIS 15 USED TO BRANCH TO SUBROUTINES THIS CODE S 5 166 58 2 75 2 100 2 PLUS 1 188 15 YOUR HUMBER 118 WILL IS YOUR HUMBER Nov Dec 1976 CRI DR CHR M Nov Dec 1976 7 IS YOUR NUMBER PLUS IH LINE 48 X IS ASSIGNED THE 5 THEN THE VALUE OF x IS PRINTED 188 CAUSES CASUAL TO BRANCH TO LINE 188 ANT SAYE THE NEXT LINE NUMBER TO BE EXECUTE 36 gt WHEN THE SUBROUTINE IS FINISHED IT RETURNS BY z IN THIS CASE HAS VALUE OF 58 SO LINE 58 IS EXECUTED ANOTHER VALUE IS PRINTED AND 188 CAUSES CASUAL TO SAVE THE NUMBER OF THE NEXT LINE 702 THIS TIME WHEN 118 IS EXECUTED WILL BE EQUAL 78 AND CASUAL WILL COHTIHUE EXE
188. THE CHR FOLLOWING THE RESTART INSTRUCTION IS FETCHED AND HL COMPARED TO THE CHR POINTED TO BY HL IF THE 000 165 321 POPX DE ERROR TXA gt DE TEST IS TRUE THE IFNOT ADDRESS IS IGNORED AND TST RETURNS 988 166 367 BAD SPOT YET 8180 HL IS BUMPED AND IT FALLS THROUGH TO NXTC TO SET FLAGS 898 167 182 174 000 JFZ PRINT CHR IF THE TEST IS FALSE THE RETURN ADDRESS THE STACK MSGP ATUR es SHSERT 18 IGNORED AND THE ADDRESS IS RETURNED TO 000 173 27 055 209 BUMPING HL 880 174 327 ERRG FETCH ZEND OF STHT USAGE 2 BYTES MUNCHES A amp FLAGS 175 312 204 age JTZ ENTR YUP BACK TO COMMAND MODE f 489 208 347 DEVO PRINT ONE CHR AND xit 888 281 ZAZ 166 808 JMP ERRP TRYING 086 818 176 5 5 5 811 342 PERENE gt HL MAIN INTERPRETER ENTRY AND RE ENTRY POINT ENTR SENDS CRLF ORO 276 COUMPA RE WITH REFERENCE AND ENTERS LINE INPUT MODE DOES WITHOUT CRLF 888 014 113 080 JMP COHTINUES UN NUMBERED LINES ARE PASSED FOR EXECUTION RESTART 2 IS THE FETCH THE NEXT CHR ROUTINE HL IS BUMPED 998 284 315 154 085 ENTR CAL CRLF BEFORE THE FETCH SPACES ARE IGNORED ON RETURN FC 880 207 315 624 884 CAL RSSP RESET 8088 STACK MEANS NON NUMERIC NOT 8
189. TING INSTRUC gt 5 TIONS and instructions for writing your own programs PLEASE total cost 10 00 MicroCosmos 210 2 Daniel Webster Highway 5 S Nashua 03060 617 u 9 256 3649 0 Z E 20 lt a Ui E a EE lt F m Ix Os 00 m 0 lt TOI M Eo EROS 88 5 4 t bi Vu z Z z 220 O ui H 0 lt 2 Zu lt a gt n u 200 20625 s IL 098 zuZu9 52 00 ufe EFF ror CZF ZX sq Zul 4979 CE gt Zul 022 140158 8 8 8 9 8 2 8 dits 55 fete 226 O lt U UU GG E moe Z Haru d 20 gt gt 5 lt 5 eee 820 Wht Os Zz gt gt KU r5 B 0 0 RE d fessos 5 ro 255 u a ex o L fa e 2 3a r lt v 95 e250r 3a 9 94 Gare gt gt gt 3 gt 3 3 ax E gt lt x 25 8 o duni
190. UBSTR function dex generation APL or novel subscripting forms A 5 8 in HP BASIC 3000 My subscripting form for indicating subvectors should be familiar to any user of English I call it ellipsis It is formed by three consecutive periods be tween the initial and final subscript but separated by blanks from them to avoid ambiguities when I introduce real num bers in HI A 4 11 is same A 4 567 8 9 10 11 but both in conception and the generation of object code the first is preferable Global indication the prefix can be omitted from calls of external functions unless the function name is dup licated by a local fucntion My theory is that data is usual ly local and functions are usually global Subscripting is an operation and may apply to expres sions 2 3 5 MORE Nov Dec 1976 cont Arithmetic append exponentiation has it and I want the differences between the two levels to be few and ma jor Exponentiation is also easy to implement in integer arith metic I prefer to the up arrow Exponentiation derives from multiplication just as multiplication from addition so the symbol is logical in some sense and also common I want to reserve the up arrow for a presently undefined sorting or ordering operation REVISED TINY LANGUAGE SUMMARY Vocabulary BEGIN END IF ELSE DO Comments Continuation Infix arithmetic
191. UPPER 8 BITS j MEAE AERE HE E E SEHE HE DERE EAE AE E GE E AE AE AERE AERE IE RE AE EHE OADF 33 XPAL P3 INTO VARIABLE 4 CAFD ST LSTK P2 UPDATE STACK POINTER LOCAL OAE2 400 X10 JS P3 EXECIL 0410 C410 DIV LDI H AESTK 0412 37 75 0413 C2FD LD LSTK P2 j EH E HF E E P E FF E HE ME IE HE AE AE IE SEHE AE AERE ACIE EEE EE HF A AE 0415 33 XPAL P3 j TEST FOR VARIABLE IN TEXT 0416 C3FF 1 P3 CHECK FOR DIVISION BY EEE EEE MEE AE RAE 0418 DBFE OR 2 P3 i gt 041 9 04 2 0 04 9 501 TSTVAR 1 P1 041 C40D LDI 13 OAEB E420 XRI 67 7 SLEM SPACES O41E 2082 JMP EGA O4ED 98FA JZ TSTVAR 0420 C3FD 50 LD 3 O4EF 1 LD 1 1 GET CHARACTER QUESTION 0422 XOR 1 0P3 OAF1 03 SCL 0424 CAEA ST TEMP P2 i SAVE SIGN OF QUOTIENT O4F2 FCSB CAI 777 1 SUBTRACT 72741 0426 3 P3 IS DIVIDEND POSITIVE 04 4 9405 FAIL IF POSITIVE 0428 9411 JP POS i YES JUMP 04 6 03 SCL 0424 C400 LDI 0 O4F7 87 727 1 i SUBTRACT 0422 O3 SCL f 4 9 9412 MAYBE i IF POS BE VARIABLE 0420 FBFC CAD 4 3 iNO NEGATE DIVIDEND O4FB SFAIL LD 1 1 i BACKSPACE CURSOR 042 ST 3 P3 STORE IN RIGHT HALF O4FD C2FB LD PCLOW P2 iGET TEST FAIL ADDRESS 0431 C400 LDI 0 32 ACCUMULATOR O4FF 33 XPAL FROM
192. VALUE THE RIGHT IS SAVED FOR USE WITH AND SETS THE VARIABLE A THRU Z TO THE VALUE ON THE RIGHT SIDE OF THE ASSIGNMENT STATEMENT THE OLD VARIABLE VALUE IS LOST SETS THE ELEMENT OF THE SIHGLE EYTE ARRAY TO THE VALUE ON THE RIGHT OF THE ASSIGNMENT STATEMENT SETS THE ELEMENT OF THE D lBLE E YTE ARRAY THE VALUE OH THE RIGHT OF THE ASSIGNMENT STATEMENT THE RIGHT SIDE HOLDS THE VALUE OF THE LINE CURRENTLY BEING EXECUTED IF IT AFFEARS IH LIHE 138 IT HAS THE VALUE 138 IF APPEARS IN A DIRECT STATEMENT IT HAS THE VALUE 1 CAUSES PROGRAM EXECUTION TO STOP FOR USER INPUT A QUESTION MARK AND SPACE ARE FRINTED THE TERMIHAL AS A PROMPT THE USER IHPUTS A WITH A SINGLE EXPRESSION IT THE VALUE UF THIS EXPRESSION IS GIVEN TO THE LEFT SIDE OF THE ASSIGNMENT CAUSES CASUAL TO STOP AND ACCEPT WHICH IS THEN ASSIGHED THE VARIABLE X DO A QUESTION MARK IH RESPONSE THE INFUT FROMPT IF THE USER TYFES A RETURN INE TEAD OF AH EXPRESSION CASUAL RETURNS COMMAND LEVEL SEE DISCUSSION FOR LEFT SIDE REMAINDER AFTER LAST DIVISION IF 2076 THE LAST DIVISION FERFORMED WOULD BE EQUAL TU PEEK FUNCTION TAKES THE YALUE OF THE CONTENTS THE MEMORY LOCATION ADDRESSED BY THE LAST ASSIGNMENT To 1 SEE 1 FOR LEFT SIDE RETURHS A VALUE 6 TQ 253 INP FLNCTION TAKES ON THE YALUE OF THE DATA AT THE INPUT PORT WHOSE
193. YTE VARIABLE SINGLE BYTE ARRAY 4 LOKU LKP 1 LKP2 1 5 SSUB 7 VARNAM gt A SUI A 15 ITA 2 JTC DARY CPI 02 Z26 LETTERS 1 JFC NOPE TRY ARRAYS IF NOT POKED SAVE TXA ON STACK BEFORE RETURNING HL TXA OVER SP lt gt HL ZPUT STK PSHX HL RETURN DDRESS LXI HL VART BASE ADDRESS gt HL RLC ZMULTIPLY INDEX BY 2 LC 7140 BYTE INDEX gt LBI 9 BC 7800 IN INDEX TO BASE xR SET ZERO FLAG THIS IS DOUBLE BYTE RET WILL BE BOTX 1 IF ARRAYS ZSTRING AND S amp VE ARE DELETED TST DUUBLE BYTE ARRAY IFNOT SARY CRL SUBS THE SUBSCRIPT gt BC SP lt HL ZINDES gt HL STK PSHX HL LDHL DBSE DADX DRDX BC SET ZERO FLAG THIS IS DOUBLE BYTE RET TST SINGLE BYTE ARRAY IFNOT SNER CAL SUBS SUBSCRIPT gt BC SP lt HL TRA ON STK INDES gt HL PSHX HL LDHL SBSE DADX BC ORI 1 ZERO FLAG TO SAY SINGLE BYTE RET 75085 GETS THE SUBSCRIPT FOR A STRING OR ARRAY gt 4 HUNCHES ALL REGS EXCEPT DE STACK USAGE gt 14 BYTES 7 SUBS SUBO SUB1 BSES BSED SBSE DBSE 2 PRI STRA NPRT PSHX DE SAVE DE TST L IGNORE IFNOT 5088 THE SUBSCRIPT DE LB D 750
194. airs 8 IMSAls Palo Alto Tiny BASIC 2 Star Trek in Palo Alto Tiny BASIC 2 Palo Alto Tiny BASIC for HP2100 XASYM 2 Numbers Guessing Games 12 Number Abase Trap Stars Clocks Bagels Quadgt Button N C9 N C9 NJ N G N SAN FRANCISCO S SETH IS BECOMING THE BOOTSTRAP COMPUTER STORE computer mob known as SETH 4001 24th St San Francisco CA 94114 is working on opening a storefront computer operation that will include walk in play a computer game facilities They have miscellaneous peripheral gear and would like to trade some of it for other goodies They will also sell gear on a consignment basis They can be contacted at the above address or at 3981 24th St By phone call 415 282 8000 or 11 a m 7 p m and ask for Bob George on Page 62 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Games Letter Abagel Hangmn Madlib Word Nimlike Games 23Mtch Batnum Nim Chomp Zot Hide n Seek in 2D Hurkle Mugwmp Snark Pattern Games Dangle Sunsgn Biosin Mandal Life Amaze Board Games Qubicb Gomoku Teaser Rover Welcome to the Caves Caves1 Wumpus Caves2 Business amp Social Science Hamrbi King Civil2 Market Stock Policy Polut Science Fiction Games Trader Sttr 1 Last Chapter Crash Lunar Revers Zeros Taxman The following games are in Dartmouth BASIC Motie 5 Rescue 5 Pounce1 gt gt
195. ancisco CA Expecting 7 000 10 000 people 50 sessions 200 exhibitors Trenton Computerfest Trenton NJ Apr 31 May 1 1977 May 7 8 1977 Eastern Personal Computing Show Mariott Hotel Philadelphia PA Jun 13 16 1977 Personal Computing Section 1500 people 45 exhibitors 1500 2500 people 4500 5000 people 103 exhibitors Mike amp Key Amateur Radio Club Bill Balzarini K7 MWC 1518 S Pearl St Seattle WA 98108 206 762 7738 Austin Cragg Conference amp Exposition Manage ment Co Box 844 Greenwich CT 06830 203 661 6101 co sponsored by a number of Bay Area hobbyist professional and educational zations Alan Katz Dept of Engr Trenton State Coll Trenton NJ 08625 609 771 2487 Austin Cragg listed prev AFIPS National Computer Conference 77 210 Summit Ave Dallas TX Jun 18 19 1977 New England Personal Comp Show J B Hynes Aud Boston MA Atlanta Computerfest Atlanta GA in conjunction with Hamfest 18 19 1977 1977 Midwest Reg Comp Conf Cleveland OH Jul 29 31 1977 Northwestern Amateur Radio Convention Seattle Ctr amp Washington Plaza Hotel Seattle WA will include significant micro computer activities Aug 27 28 1977 Personal Computing 77 Consumer Trade Fair Atlantic City NJ Name unknown at press time Anaheim Conv Ctr Anaheim CA Oct 25 28 1977 Fall 1977
196. ay to get their own unit costs down We got a 2546 discount of quantity one price with a 5K order and some smaller orders have since been filled at the same discount Whether they would still do this for other groups I do not know but probably they would Amateurs pay cash I have also seen other distributors adver tising club discounts on the LSI 11 By the way we went this route after trying for almost a year to put together a group of 50 people to buy directly from DEC and never succeeding There isa common belief that the LSI 11 is too expensive for hobbyists I don t agree For about 1K you can get a processor 8K bytes of memory and a serial card and a back plane fully assembled to industrial standards that works when you plug it in It took me 15 minutes to go from box to teletype The machine has a very nice monitor and for an extra 100 or you get hardwired fixed and floating point instructions for those who are into that Plus you get the very elegant and powerful instruction set of the PDP 11 all of the system software that has been developed for the 11 at a price of course and the DECUS library which is full of 11 software and is going to get a lot fuller in all I think it s a pretty good deal There are some disadvantages of course If the machine breaks you probably have to ship it back to DEC for repair DEC claims a very long MTBF but who knows I don t know what a nominal repa
197. board With a Pixie Verter and a keyboard you re ready to go into any American household with a TV plug in and program away And you ve a lot left over another 16K Voila or Cello for that matter we have a 32K computer with serial port cassette interface video interface and software aplenty power supply and on off switch tucked away in our viola case I must mention that a two port serial interface is built into the CPU and the RS 232 and cassette interface cards are snug against the connec tors in the back of the case That is a lot of computer in an itty bitty base That isn t enough You say you have a pile of old 4K boards Poly has the Idea of the Year at the rate we get new ideas in this business maybe the idea of the month At one side of the chassis the backplane terminates in a male S 100 bus connector On the other side of the chassis is a female connector Aha You can buy another chassis put it alongside the one you already have sort of nudge them together and guess what Nope you don t get a litter of 4040 s You push them together and you get aten slot chassis Actually eleven slots cause you can put a card into the end and let it stick out instead of yet another chassis This is useful and saves need for an extender board The power supplies are separate and bussed together Like the IMSAI this machine has a substantial power supply They rate it 6 amps at 5 volts I loaded it down with 9 amps
198. ction see Section 8 Carry and Auxiliary Carry are properly set to indicate borrows carries from each four bit nibble for use with the DAA instruction SUB flag is used to determine whether required DAA is for addition or subtraction BCD arithmetic programs written to run 18080 will also run uPD8080A unless the operations ORA XRA ORI XRI INR DCR or DAA are depended on to affect the AC flag Also see Section 7 7 Flag Registers for 18080A uPD8080A are as follows D1 02 D4 Ds Dg D7 18080A C 1 P 0 0 Z S uPD8080A 1 P 1 AC SUB Z S Note that if the flag byte is pushed the stack to be used as a byte in any operation such as a compare that the value will be different for the I8080A and the uPD8080A 8 flags set the same 18080A uPD8080A except as noted A Number of Flags 18080A Five flags Zero Carry Sign Parity and Auxiliary Carry uPD8080A Six flags SUB is sixth flag subtract We suggest the use of a SUB A to clear the AC and Flags since the common A does not clear the AC flag on the uPD8080A Nov Dec 1976 SUB set by DCR SUB SBB SUI SBI and CPI reset INR ADD ADC ADI and DAD affected by POP PSW B Affect on Flags Except as noted the affect on the five common flags Z C S P and AC are all the same for 18080A uPD8080A 18080A AC is affected by INR DCR and DAA AC is reset after l
199. cution GOTO and GOSUB can slo be used to jump into a program from edit mode For example if there is a subroutine at line 1000 that is being tested typing GOSUB 1000 will cause that routine to be executed with NIBL returning to edit mode upon encourntering a RETURN state ment When GOTO and GOSUB are used to run a program the varia bles and stacks are not cleared Hitting any key while a program is being run will cause NIBL to break execution printing a message and the line number where the break was detected The BREAK key on the teletype works best for this CLEAR causes all variables to be zeroed and the three stacks men tioned above to be cleared This latter feature of the CLEAR command Page 35 s is quite useful after a stack nesting error has occurred for example if GOSUBS are nested more than eight levels deep NEW clears the programs in Page 1 and changes the value of PAGE to 1 This is the form of the command most likely to be ue ov NIBL novices who do not wish to be confused bv ie page features NIBL NEW should be the first thing one types in o NIB BL when first powering up NEW number gt sets the value of PAGE to the number gt and clears the program in that page Assignment Statements Already two different types of assignment statements mentioned assignments to the pseudo variables STAT and and assignments to memory locations with the indirect operator ier for
200. d to by X being assigned the value of the memory loca tion pointed to by the value 10 Despite this it is still safest to use plenty of parentheses in expres sions to make the intent clear Use of the indirect operator is not limited to reading from writing to memory it also provides a simple way to communicate with peripheral devices that are interfaced to the SC MP through memory addresses Note that the operator can only access at a time that when assignment is made to a memory location only the low order byte of the value 15 moved to the location the high order byte is ignored The indirect operator can also be used to simulate arrays in NIBL For example if we wish to define an M x N matrix of one byte positive integers we can access the I J th element of the matrix assuming that 0 0 is a legal element in the matrix with the expression A I N J An assignment could be made to that same element by placing the expression on the left side of an assign ment statement Expressions Expressions in NIBL are made up of the components described above variables constants function references pseudo variables and operators binding them all together NIBL expressions are all 16 bit integers Evaluation of expressions takes place left to right and the order in which operations take place is determined by operator precedence and the presence of parentheses T
201. diately thus if the program halts for some reason the value of PAGE will be 2 But if NIBL fails to find a legal program in 2 initially it sets the value of PAGE to 1 the normal case and prompts at the teletype When executing programs NIBL periodically checks for keyboard interrupt returning to edit mode if it detects it Therefore if a NIBL program 15 to be executed with the teletype disconnected the Sense line of the SC MP should be set high so that NIBL will not sense interrupt while running This would aliow a NIBL system to act asa process controller which starts executing immediately upon powering up Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics 8 Orthodontia Box E Menlo Park 94025 BIOGRAPHICAL NOTE Mark Alexander a graduate of the University of California Santa Cruz is getting bored with assembly language programming and wishes someone would save him by making a microprocessor copy of the Burroughs B5500 computer TABLE 1 NIBL Grammar On reading the grammar items in single quotes are actual symbols in NIBL all other identities are symbols in the grammar The equals sign means is defined as parentheses are used to group several items together as one item the exclamation point means exclusive or choice between the items on either side it the asterisk means zero or more occurrences of the item to its left the plus sign
202. distortion sine waves from one digital oscillator FM synthesis and new methods design of real time playing instruments real time controllers such as organ like keyboards joysticks pressure sensitive pads and new designs circuit design of microprocessor or minicomputer controlled digital oscillators any waveshape hich speed multiplication 16 bit X 16 bit 16 bit product in less than 200 review of hardware components composition of music using a computer music theory which would be more easily realized with a computer than with traditional instruments homebrew digital music instruments choral effects digital filtering envelope generation of any shape digital reverberation and movement of spacial location with Doppler shifting high resolution high speed digital to analog converters analysis of acoustic instruments psychoacoustics reviews books about computer music acoustics musical instruments psychoacoustics music theory computer design and electronics The first issue of the journal will be about 50 pages in length If enough people subscribe to pay printing larger journal the journal will increase in size one year subscription will cost 14 and be published by PCC non profit The will published every other month first issue will be mailed out during January 1977 If interested please mailto E Menlo Park
203. e Chaff a critique of problems found in a number of kits in the September issue and think it is the greatest aid to the hobbyist planning on purchasing his com puter system certainly feel that both Dr Dobb s and Jef Ras kin have done a great service for the hobbyist Please publish more articles like this one If Jef has inputs on software by all means let S hear them Jef s appraisal was believe very objective In order to make more room for articles of value would like to see you eliminate as much as possible the references to new clubs and new stores which feel are more than adequately covered elsewhere i e Byte Interface On Line etc f you must how about a one liner like On Line These items are used only as filler items You might consider using smaller type for all articles in order to make room for your backlog of articles to be published We re willin Are there any objections to dropping from 10 point type to 8 point type It might also be appropriate to eliminate items such as the article Energy Publications which does not seem to be tinent to the subject matter of Dr Dobb s This also happened to be a filler article of the right size However we do admit to a soft spot in our hearts for the topic of energy problems and people oriented alternative energy sources Our only excuse for its inclusion is that it is a technology related subject closely associated with consumer advocac
204. e LIFE was running Perhaps an 8008 with hardware stack mod wouldn t be too bad but it would take a lot more than 2K Memory Info If all features are retained at initializa tion 403 bytes are left in a 2K system If all features are deleted 610 bytes are left slightly over The code for the interpreter I O drivers and all buffers except the CASUAL Program buffer takes 1 61K If all functions are deleted it takes 1 40K The first can be ROM or protected after initialization mnemonics for been significantly modified from Intel Standard mnemonics Loading Time It takes about 5 minutes to load and initialize itself at 10 CPS Using Tarbell Cassette Interface at maximum baud rate it should take about 4 seconds Dr Dobb s is superb Keep up the fine work Bob Van Valzah 312 852 0472 Home 1140 Hickory Trl 312 971 2010 Ext 231 Work Downers Grove IL 60519 P S 18 years old and entering my second year working for an EE degree Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Bob Van Valzah 1140 Hickory Trail Downer s Grove IL 60519 It s CASU NOTES ON MY ASSEMBLER MY OPCODE INTEL STANDARD LBH MOV SP lt gt DE lt gt HL XCHG SP SPHL LXI HL LABL LXI HLABL JFZ JNZ JES JP JTS JM JTZ JZ 1 1 010 MVI 10
205. e a charm in my Poly without modification And another almost unforgivable error on the Poly it is not quite an S 100 system Sure everything I tried with it worked except for that one board But when a manufac turer came by my place with a prototype of their new 16K board and plopped it into the Poly it didn t work few unimportant outputs and inputs to the CPU were left off the bus More importantly the WAIT signal is not on the bus This let the memory know that the computer was in the HALT state which the memory needs to know This is not the place to go into that gotta leave something for other articles This particular device did not need the other signals but some new board might The point is this you are either on a standard or not on a standard There is no in between Polymorphic Systems Poly 88 is not really an S 100 compu ter You have to ask first does the board you wish to use with it require separate disables address status data out Does it need HLDA INTE WAIT If it does then the Poly won t do The disables are on the bus in non standard loca tions but they can only be disabled as a group as required by DMA s One of the output signals such as WAIT can be fed through a spare buffer on the board to the bus For your information it s 8 8197 Because this is DDJ I m sure the editor will permit the gory details Bus lines 22 18 23 26 19 28 and 27 are not on the bus To put WAIT on the bus
206. e return NIBL then stores the line in memory locati ions Bates mamng at the address specified 8 5 this manner can be tested and manipulated erator or the string handling statements described below They can alse be displayed by a PRINT statement two INPUT statements may be executed edit op 2 Q 7 e e ot oh e lt S form of the PRINT statement is PRINT or PR followed by The list of print items separated by commas and optionally terminated by semicolon which suppresses an otherwise automatic carriage return s in the list are printed t item consists of one of the following ted string which is printed exactly as it appears with the quotes removed 2 expression which is evaluated and printed i in decimal format with either a leading space or a minus sign and one a string in memory lt address gt where lt address gt isa Factor as usual Successive memory loca tions starting at the specified address are printed as ASCII char acters until a carriage return which is not printed is encountered acing in the PRINT statement nor does NIBL perforr m 7 return line f after printing 72 char is an output oriented language fancy formatting has been tor more useful control structures and manipula i
207. e schematic below Mount the socket piggyback on the plug and solder all other pins one to one Pins 1 9 12 24 are straight through pins 10 11 now inverted Any plastic NPN switching transistor 2N5210 MPS3646 etc Page 56 1 5 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia E Menlo Park 94025 GLITCH TINY BASIC amp MEK SYSTEMS Dear DDJ Oct 26 1976 I was referred a copy of what appears to be a column in the CHG NT newsletter which briefly mentions a failure of Tiny BASIC 6800 in Mot Eval kits It is true that I have had a number of calls from owners of MEK systems in which Tiny BASIC failed to run It seems that the Motorola kit comes with no memory except for the Mikbug private RAM and very little else When the user adds a memory board care should be taken that all of the address and data lines are properly buffered in the expanded system since buffers are not provided in the basic kit What happens is that Mikbug is able to load and display the memory with no problem but the program will not run This is due to the excessive capacitance in the address lines the 6800 is spec ed at 130pf which is good for about 8 10 MOS devices a 4K static RAM board alone has 32 MOS de vices on some of the address lines This causes the access lines to be slowed considerably Mikbug does all its memory access using the Indexed addressing mode which leaves the
208. e the gotchas next section so they can talk to a computer instead of a ter minal Quick all you hardware fanatics send in the hard ware details to guide us naive systems fanatics in making the necessary changes Modems and couplers have been around for so long that a number of them are on the used equipment market Some months ago Walt Gruninger at the Minicomputer Exchange 154 San Lazaro Ave Sunnyvale CA 94086 408 733 4400 told me that couplers could easily be had for about 100 It s a quick way to gain hardcopy facilities when you have no hardcopy device Here s how have your system dump a text file into your kid s 19 95 audio cassette via a coupler or modem Take the whole thing over to anybody s coupler equipped time sharing terminal Play the tape into the coup ler via a telephone handset that you scrounged from a sur plus phone and watch the pretty hardcopy be printed The cassette tape is just acting as a hand carried telecommunica tions system Once the coupler or modem is interfaced to your coupler of course it can easily be used for telecommuning with another computer or a central program and data storage facility Such central repositories are already being discussed as 1 a good solution to the problem of home computers having access to continually updated programs and data and 2 an appropri ate project for any of the larger clubs if hams can get to gether in constructing co op re
209. e the au thorized publication of the Southern California Computer Society We expect SCCS Interface will carry out the spirit and policy of the Society to be objective with regard to ven dors products and services to report the activities of our Society to provide an open forum for our members to ex periment and of course to provide important articles of interest We are working hard fast and enthusiastically on this and appreciate your patience The memberships of those who missed any copies will be extended Larry Press has been named to fill the editor s spot Please send editorial contributions and suggestions articles announcements inquiries on ads or distribution aspirin and good wishes to Larry at 1702 Ashland Ave Santa Monica CA 90405 213 399 2083 The member authors whose articles appeared in August and September issues of Age intended to have their material appear in the official Society publication We assure them that in the future no submitted material will appear in other than SCCS Interface Very Truly Yours The Board of Directors SCCS Interface October 18 1876 A FIXIT KIT FOR MARK 8 DOCUMENTATION Dear Jim Sept 17 1976 _ have been reading with great interest the issues of DDJ have an offering for BUGS amp FIXES have put together a modifications corrections kit for the MARK to fix up the over 50 typos in the schematics errors in design and errors in instruc tions It
210. ed April 1 1977 point is don t limit such a great system to Music Tapes or to Home Stereo Another nitty gritty On Page 5 you seem to imply that the 199 and the 299 packages from Triple I also include two tape transports From what I know only the 189 package includes two transports You get only one transport in the deluxe model packages Sincerely yours Linchen Wang I debated phrasing the article in this more general applica tions context but decided to keep the main article narrow minded and merely point out the much more general applica bility of the system I outlined I did so because I didn t have the time or space to discuss the wider applications in the detail that I felt would be necessary to a more generalized article mE Yer right on how many transports are included in each package The 189 package includes two fixed speed transports but the 199 and 299 packages include only one transport What s worse the prices have gone up but they re still a good deal see Phi Deck article elsewhere in this issue SOON SPEECH INPUT We hear straight from quadraped s mouth that a speech recognition experimentation system will be placed on the market early next spring In kit form it will cost well over 500 and will plug into the S100 bus PUBLICATION DETAILS DESIGN CONTROL PROCESSOR FOR A MICRO COMPUTER NETWORK The Computer Systems Synthesis Group o
211. ed by the interpreter REMARK STATEMENT A comment can be inserted into a NIBL program by preceding it with the word REM REM causes the rest of the line to be ignored by BL during execution Remarks are useful in debugging programs or helping other people to understand them but of course they take up valuable memory Then again memory is getting cheaper all the time MULTIPLE STATEMENTS ON ONE LINE A program line may contain more than one statement if the state ments are separated by colons 7 7 Using multiple statements on a single line improves the readability of the program by separating it into small blocks and uses less memroy for storing the program It is important to note that an IF statement will cause any state ments appearing after it on the line to be ignored if the IF condition turns out to be false This is the feature that allows a group of state ments to be executed conditionally A multiple statement line may be entered without line number but NIBL will only execute the first statement on the line ignoring the rest POWERING capable of executing a program in ROM in Page 2 immedi ately upon powering up without the need for the user to give the RUN command at the teletype When NIBL initializes it examines Page 2 and makes an educated guess about the possible existence of a legal NIBL program in that page if NIBL thinks there really is a program there it starts executing it imme
212. en St No 209 Van Nuys CA 91405 TINY HI SUGGESTIONS Dear Mr Buchanan would like to offer some suggestions regarding your TINY HI language as defined in the October 1976 Dr Dobb s Journal First of all let me say that LIKE IT It seems to be quite powerful in its simplicity like the one statement per line format PL I addicts look down their noses at FORTRAN for this but readable programs require it like being able to easily put comments on the same lines as state ments this is what often makes the comments of assembly language programs better than those of so called higher level languages for input is great and admire the simplicity of the vector scheme Now for the comments this is more or less random order 1 Negation of 215 will probably produce overflow so perhaps there is a case where negation can produce an error 2 Rather than bracketing loops with WHILE END how about using LOOP and REPEAT WHILE and UNTIL not imply iteration except to mer who s seen them before b WHILE cond terminates when cond goes false and UNTIL cond terminates when it goes true but it s very hard to see why one of these implies a test at the front of the loop and the other at the back This isn t original see Knuth in Computing Surveys Vol 4 No 6 Dec 1974 pp 278 280 LOOP IF cond LOOP code code REPEAT REPEAT IF cond test at top test at bottom H
213. enlo Park California retyping all natural language as opposed to computer lan 415 323 3111 guages communications that we publish Editor x PROGRAM LISTINGS We will accept hand written _ programs only as a very last resort Too often they tend to g Editors ae Maron Winzemea f9 say something that the computer would find indigestible On Jim Day the other hand if computer typed it computer Product amp SON Evaluation Group would probably accept it particularly if it is a listing pass Jef 2 from an assembler or other translator Dennis MeChie x It is significantly helpful for program listings tobeon Watchdogs continuous paper either white or very light blue roll paper Bob Albrecht 4 or fan folded paper Since we reduce the copy in size submit TM e aon gt tingit on individual pages forces us to do a significant amount Rosehips Malloy of extra cutting and pasting For the same reason we prefer Circulation amp Subscriptions that you exclude pagination or page headings from any list p Jacobsen J ings ales 1 Do ons Please please please put a new ribbon your printer before you run off a listing for publication In any natural language documentation accompanying a Reprint privileges program listing please refer to portions of code by their Articles herein that are copyrighted by individual authors otherwise explicitly marked as having restric
214. for an Intel MDS microcomputer development system but can be easily altered to operate with a wide variety of customized hardware envi ronments Basic requirements are a Intel 8080 based microcomputer mainframe b At least 16K of read write main memory c One or two IBM compatible disk drives and controller Given these facilities the CP M disk system is patched by the user to communicate with the specialized hardware The exact steps to follow in programming and patching the CP M system are given in the manual CP M System Alteration Guide In fact several popular mainframe and controller manufactur ers currently support their own CP M patch The CP M system is distributed on an IBM compatible dis kette in machine code form only source programs are avail able for internal use or distribution with custom hardware at additional cost along with complete documentation required for operating CP M and programming in the CP M environ ment The software is licensed for use by the individual who purchases CP M and is registered and serialized to prevent unauthorized copying and distribution In particular the licensing agreement specifically disallows copying CP M for use by any individual other than the registered owner The registered owner of a CP M system receives notices of updates and becomes a member of the CP M User s Library System documentation includes Features and Facilities this manual presents the
215. ftware adapted to user s system interpreter was co developed by John Arnold and Dick Resides in only 8K of memory mente Whipple of Tyler TX authors of the first implementation l 22 Kansas City or Suding Digital of Tiny BASIC It includes floating point 6 to 72 digits Thorough explanatory manual and variable length integers Full string capability up to 255 characters string variable Our goal was to develop a variant of BASIC designed N dimensional arrays specificically for hobbyist and small business user keeping s precision ari mete in mind that the most important priorities from the user s standpoint were ease of program development and straight Easily handles assembly language routines Direct memory and addressing 27 error codes forward one step program execution Both character and line erasure editing We feel we ve accomplished that goal and with a memory efficient program too said Arnold 8 functions plus user defined functions BASIC ETC uses the lower 8K of memory plus at least 1 Null control to 25 seconds of RAM for scratchpad Since BASIC ETC is for games and Formatted output statements business applications the less frequently used scientific functions of Dartmough BASIC not available According to Arnold BASIC ETC is readily software adapted to the individual s system and best answer today for
216. g point package is now available for 7 50 Included are manual paper tape and complete annotated source listing The scientific package will also be 7 50 Both packages may be ordered for a reduced price of 10 00 To obtain or both send your name address the appropriate amount to Burt Hashizume P O 172 Placentia CA 92670 Page 57 13H 0658 69 5800 1 ZN IAN 6658 90 2800 ERU Diis i o E ye OSES L9 28 e 2800 S YAT 0019 00 44 VE 7800 dn H80 THO oreg 30 94 0800 242 0609 00 66 72 1800 y INV 84 93 3900 INY 0809 70 93 4400 nue 0228 21 9900 S 0109 00 44 V 2100 60 2900 405402 200 440 IXT dN 0058 44 09 10 6 00 5 In 6502 i Es Lio LIU 0628 62 8900 S GT 0709 00 44 VE LOO HES H IAW 0728 88 92 9900 ZN 0609 00 69 92 1400 4 7 448 0558 09 65900 1 INV 0209 10 93 4900 140 0228 18 34 2900 6 915 0109 00 44 26 2900 H V 0128 JL 2900 0009 08 96 9900 0028 ae 1900 75 0006 00 YZ 9 1900 ed aon 6 18 69 0900 SHOX OVIE 9900 2 88 IAN 0718 88 92 3600 AON 0212 11 6900 32 9 4600 1 04 VAT 0216 00 YE 2900 28 34 8600 22 0116 00 48 90 4500 H V 0118 94 9600 0 0012 1600 H XNI LY 0018 6600 5240 423ndwuo2 x2N 04 0606 00 qa YE 9500
217. group buy There are two different buys avail able at this time One is the VT4000B a complete crt terminal with Motorola 12 monitor completely assembled tested and ready to use The second for the do it yourself types It consists of the five PC boards without parts the power supply and the cabinet for the VT 4000A To qualify for the group buy price we will have to buy at least 10 of the buy or buys we choose To try and clarify further we cannot combine the two to get a total of 10 If the minimum of 10 is not reached by 15 January 1977 all money will be returned To quali fy as an order full payment must be made at time of order Prices VT4000BA Assembled Terminal regular retail 999 95 less 20 199 95 800 00 6 596 state tax 296 TOTAL 868 00 Bare bones lit separate parts regular retail 240 00 less 1096 24 00 216 00 6 5 state tax 296 handling fee TOTAL 234 36 The above prices include delivery in the Bay Area outside the Bay Area will be sent freight collect If shipped outside Bay Area subtract of the handling charge Make checks payable to Video Terminal Technology Mark on lower left of check Homebrew Computer Club Buy Send orders to Norman Walters 3107 Laneview Dr San Jose CA 95132 0 1 10 01 101 NEW COMPUTER At last someone has come out with a microcomputer based on the 1802 and suitable for many hobbyists Produced by Infinite Inc
218. he extremes Designated the DAC 76 this 18 pin DIP costs 19 in lots of 100 For high quality audio output having negligible quantiza tion error at low volume levels 12 bit D A converters are cus tomarily used These tend to be expensive and awkward to drive from an 8 bit MPU Fortunately the amplitude response of the human ear is logarithmic This means that greater quan tization error is tolerable at high volume amking an 8 bit logarithmic D A converter ideal for speech synthesis and com puter generated music when used with an 8 bit MPU A SUPER BOOK FULL OF COMPLETE SYSTEMS PROGRAMS Dear Dr September 27 1976 valuable new book is available for the computer hobbyist Software Tools by B W Kernighan and P J Plauger Reading MA Addison Wesley 1976 presents programs for a test editor file formatter macro processor librarian and language preprocessor while teaching struc tured programming These are complete programs avail able from the publisher in machine readable form cost unknown for a machine with a Fortran compiler I ve read the book it s great It starts with a simple echoing routine and builds and builds very logically Tiny Fortran compler with integer arithmetic charac ter I O the IF statement and FUNCTION and SUBROU TINE subprograms could implement an impressive array of tools Tiny BASIC could do it if it were compilable and could pass arguments as parameters to subroutines
219. he incorporation of an italic mode same ROM could be used to produce the basic dot patterns for both italics and non italics only the character timing would change Figures 1 and 2 show how text strings would look in both modes In the italic mode successive lines of each character would be displayed with a different time delay Assuming a 7 by 9 dot matrix the first line of each character i e the top line would be displaced by 4 dots to the right Line 2 would be displaced by 3 5 dots i e three and a half dot clock cycles and so on Line 9 would have no displacement shift register IC could be used to implement the displacement and an embedded control character such as CTRL I could be decoded to turn the mode on or off The regular and italic modes could both be used in the same line of text with appropriate control of transitional timing although this would complicate the logic required by Jim Da y y e 27 Seed oof Figure 1 Regular WF Qe 2 oo a o 2 2 2 e 66000 Figure 2 Italic Mode SCROLLING MOD FOR TVT 2 s Dear Sirs Oct 7 1976 The TVT 2 is the most popular video terminal used by computer hobbyists today Until now the users have had to settle for the page concept with their terminals Your readers might be interested
220. he order of evaluation can be deduced from the grammar in Table 1 here is a table of operator precedence Lowest precedence applied last lt gt lt gt lt gt AND Highest precedence applied first NOT Program Control Commands LIST causes the entire program in the current page to be listed Listing can be halted by hitting any key on the teletype the BREAK key works best LIST number gt causes listing to begin at the given line number the nearest one greater than the number rather than at the first line LISTing a program is the method used to save it on paper tape accomplish this type LIST with the punch off then turn on the punch and hit carriage return After the program is dumped type a Shift O with teletype on LOCAL so that the last character 2 will de leted when the tape is entered to NIBL at a later time NIBL will ac cept a tape made in this fashion at any time during edit mode The tape reader is enabled at all times by NIBL and it does not distinguish between the reader and the keyboard when accepting input Super fluous line feed and null characters on the tape are echoed but ignored RUN causes three actions first all variables are zeroed secondly all stakes the FOR DO and GOSUB stacks are cleared and finally the program in the current page is executed starting with the first line in sequence RUN is not the only way to start program exe
221. he purposes function and nonprofit status of this organization and the exempt status for Federal income tax purposes Check one If changed publisher must submit explanation of change with this statement HAVE NOT CHANGED DURING PRECEDING 12 MONTHS HAVE CHANGED DURING PRECEDING 12 MONTHS AVERAGE NO COPIES EACH ACTUAL NO COPIES OF SINGLE ISSUE DURING PRECEOING ISSUE PUBLISHED NEAREST TO 12 MONTHS FILING DATE 10 EXTENT AND NATURE OF CIRCULATION A TOTAL NO COPIES PRINTED Net Praes Run 3125 5000 B PAID CIRCULATION 1 SALES THROUGH DEALERS AND CARRIERS STREET 810 1426 VENDORS AND COUNTER SALES 2 MAIL SUBSCRIPTIONS 1332 2670 C TOTAL PAID CIRCULATION Sum of 1081 and 1082 2142 4096 D FREE DISTRIBUTION BY MAIL CARRIER OR OTHER MEANS 50 60 SAMPLES COMPLIMENTARY AND OTHER FREE COPIES E TOTAL DISTRIBUTION Sum and D 2192 4156 F COPIES NOT DISTRIBUTEO 1 OFFICE USE LEFT OVER UNACCOUNTED SPOILED 933 844 AFTER PRINTING 0 G TOTAL Sum of E and 2 should equal net press run shoun AND TITLE OF EDITOR PUBLISHER BUSINESS 11 I certify that statements made Em MANAGER OR OWNER above correct and complete u Dobb s Journal Calisthenics amp Orthodontia E Menlo Park CA 94025 Page 7 VIDEO DISPLAYS One possible enhancement of character generation TV typewriters is t
222. hout charge If you are completely dissatisfied you may return the interface for a refund within 90 days after you accepted delivery Idon t know if there s another manufacturer that stands behind his product like this but I think it attests to my confidence in the Tarbell Cassette Interface I have not charged one penny for repairs yet and in all the units I ve shipped only one has asked for and received a refund I sincerely believe that most of the people with these units are completely happy with them I completely support your suggestion to write or phone me directly Please if you have problems with your interface Page 12 s 3 passes 1 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 and we can t seem to get it going over the phone or by mail send it to me for repair There have been some units that have been difficult enough to repair that I ve actually supplied a replacement unit at no cost I don t really see how you can lose when you buy one of my interfaces Sincerely Donald E Tarbell Tarbell Electronics 213 832 0182 144 Miraleste Dr No 106 Miraleste 90732 CONFERENCE ON COMPUTERS IN HUMANITIES Papers and participation are being sought for the Third International Conference on Computers in the Humanities to be held Aug 2 5 1977 at the University of Waterloo Waterloo Ontario Send papers or ab stracts to Prof Paul Bratley Dept D Infor
223. ial page it can contain a NIBL program to be executed immediate ly upon powering up the NIBL system The memory organization of NIBL is shown in Figure 1 Throughout this article the assumption is made that the user has a teletype with paper tape reader and punch as with the SC MP Low Cost Development System In fact NIBL was designed to use the LCDS teletype interface but to be completely independent of the LCDS LCDS firmware 1f NIBL is to be run on its own the system should have the same configuration for the teletype with the reader relay being operated directly by the SC MP At present paper tape is the only medium for saving NIBL programs but as soon as the hardware and software for a SC MP cassette interface become availalbe NIBL will be able to link to routines for saving and loading programs with ease Since the teletype interface is not based on a UART the terminal baud rate can only be changed by modifying the timed delays in NIBL s routines NIBL has been run successfully at 1200 baud with a CRT terminal the listing of the program in the Appendix is for a 110 baud system Communicating with NIBL When the NIBL system is ready to accept input it prompts at the teletype with gt sign NIBL is now in edit mode The user then enters a line terminated by a carriage return There are several special characters that are used to edit lines as they are typed Shift O back arrow cuases the last character typed
224. ich are truly difficult to achieve in machine lan guage programs NIBL programs are interpreted by a large 4K byte SC MP program that resides in ROM The interpreter is broken into two blocks a program written in an Intermediate or Interpre tive Language I L for short which does the actual inter pretation and a collection of SC MP machine language sub routines invoked by the I L program The I L approach is well documented in Vol 1 No 1 of Dr Dobb s Journal of Computer Calisthenics amp Orthodontia and readers should refer to that issue for a more detailed description of the inter pretation process In Table 1 the formal grammar for NIBL is given This is the ultimate authority other than the interpreter itself on how legal NIBL statements are formed The following descrip tions of the NIBL statements will refer to portions of the gram mar Table 2 contains a list of the error message produced by the NIBL system Finally a listing of the interpreter is given in the Appendix History of NIBL NIBL came into this world as an interpreter for Tiny BASIC as originally described in the first issue of Dr Dobb s Journal That program was written by Steve Leininger who subsequent ly left before the program was ever assembled or executed The current version of NIBL is an almost complete re write of the original interpreter with changes and additions being made to improve the modularity of the program to greatl
225. iented language that can be com piled by a resident compiler amp can interface with assem bly language subroutines TINY HI looks good in this respect The idea here is that system development is just too slow if done in assembly language Further more assembler listings are very difficult to decipher as to control structures and such A good procedure oriented language will provide the 3 or 4 basic control structures plus as little else as can be gotten by with Efficiency can well be sacrificed for gains in readability understandability and maintainability 2 I would like to encourage you to encourage manufacturers to seek out a few top notch software types and turn them loose for a few weeks Promise them a bonus for early completion and institute a penalty clause for late delivery but get a high level language compiler out and get it out fast Once a tool like TINY HI is in the hands of a large number of people then you ll see some progress Assembly language is indispensable for certain tasks but for the bulk of application programming it continues to be a millstone around our necks Larry E Walker CAL INTERPRETER PROPOSED Dear Jim I just got Niklaus Wirth s book Systematic Programming An Introduction Prentice Hall 1973 which is about PASCAL but not mentioned in the title I sure had a time finding anything on PASCAL even in N Y C I notice that it is ALGOL like in many ways but it does pick up some of
226. includes instructions 11 pgs complete set of new schematics and a parts kit The cost is set to only recover costs MARK 8s have suffered the software marketplace due to lack of enthusiasm which feel is in part due to the difficulties in getting them up This package should help the problem clear up and create more spirit since still want BASIC for my 80081 MAR K 8 Corrections Mods Package Fixes those glitches interrupt structure mem addr levels LED bd buffered CPU clock phases console controls etc Includes new complete schematics instructions and parts even drill bit and wire 10 Ronald Carlson 14014 Panay Way Apt 225 Marina del Rey CA 90291 _ Sincerely Ronald E Carlson 14014 Panay Way Apt 225 Marina del Rey CA 90291 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Page 5 BYTE OFFERS AN EXCITING PROPOSAL Machine Readable Programs in Magazine Format Praise by Jim Warren Editor DDJ OK folks are you ready to throw away those can tankerous and expensive paper tape readers Are you ready to give up those cat naps you take while waiting for pro grams to load from your kid s audio cassette player you do have a megabyte of memory don t you Then look to Byte for a better way The November issue of Byte magazine carries an article by Walter Banks and Roger Sanderson of the University of Wa terloo and Carl Helmers of Byte proposing
227. ions on strings END STATEMENT The END statement may appear anywhere in a NIBL program and not necessarily at the end It causes a message and the current line number to be printed with NIBL returning to edit mode The END statement is useful when debugging programs since it acts as a break point in the program that can be removed easily LINK STATEMENT The LINK statement allows NIBL programs to call SC MP machine language routines at any address A statement of the form LINK lt address gt where lt gt is an arbitrary expression will cause the NIBL system to call the routine at that address by executing appropriate XPPC P3 instruction The user s routine should make sure that it returns by executing another XPPC P3 and that the value of P3 upon entry to the routine is restored before returning The routine may make use of the fact that P2 is set by NIBL to point to the beginning of the RAM block used to store the variables A through Z with each variable being stored low byte first high byte second Thus parameters may be passed between NIBL programs and machine language routines through the variables Both P1 and P2 may be modified by the user s routines they are automatically restored by the NIBL system upon return The user should be careful not to modify RAM locations with negative displacements relative to P2 or the locations with displace ments greater than 51 relative to P2 These locations are us
228. ir charge would be Until somebody builds a LSI 11 to Altair bus interface we won t be able to use all the neat hobby peripheral cards Memory is somewhat more expensive than for hobby machines although it too comes fully assembled and checked out from a variety of vendors You have to supply your own power supply and box although that isn t a big deal Also some of the most desirable software like BASIC interpreter is still pretty expensive I think DEC should consider releasing the papertape stuff to DECUS probably they have recovered the cost by now In all though I think that the LSI 11 has a lot to recommend it to the hobbyist particularly to those who are more into programming than hardware So far no really creative applications for the machine have emerged from our group since most of us are still working on developing auxiliary hardware like terminals and stuff Periphe rals include a few TVT s and TTY s papertape readers and punches and cassettes Three of us have built the InteColor 8001 intelligent color terminal kit and are using it as our main I O POSTSCRIPT TO COPYRIGHT MANIA B Dear Jim Aug 25 1976 1 am writing this letter as a postscript to the article Copyright Mania in the May issue of Dr Dobb s became rather attracted to TRAC trademark of Rockford Research Inc and don t you forget it and therefore wrote to Mooers asking for information regarding the devel
229. ision D cassette interfaces were delivered September 3 1976 before Dr Dobb s Number 8 The boards in these kits one of which is enclosed are far superior to the previous ones and the plated through holes look beautiful Revision D also includes all the latest modifications including several unused inputs connected to pull up resistors The connector pin alignment has also been corrected slightly Several months ago I contracted with someone to com pletely rewrite the manual The rough draft is now being reviewed so it will probably be ready to print in about a month This manual provides new information such as siagrams for all the integrated circuits step by step instruc tions for the beginner and a more thorough theory of operation section Although my present manual is not in a professional format I am proud of the fact that it is chock full of the kind of information a hobbyist needs to get his interface up and running and useful The new manual will be even better and some of the pages have already been added to the present manual 0 One page of the manual starts If you cannot make at least ten 8K byte transfers with no errors you have a problem and the items below may be of some help This is followed by several items to check The last two items on this page state If you still have problems please return the unit preferably with your cassette recorder and I will get it operating perfectly for you wit
230. ith the uPD8080A during M2 and of a CALL instruction the status signal remains active The 18080A re quires the use of an 8228 to generate INTA by decoding O2H all status inactive Both 18080 and uPD8080A work correctly with Intel and NEC 8228 38 2 Interrupt during HALT state with the uPD8080A INTE is reset at T2 02 of the next clock period following the sampling of INT as opposed to the 18080 where INTE is reset at M1 T1 02 of the interrupt instruction fetch 3 Instruction Execution Times All instruction execution times are the same except the following which require the listed number of T clock states assuming no wait cycles 18080A uPD8080A MOV r r 5 4 RET 10 11 DAD 10 11 XTHL 18 17 SPHL 5 4 4 Data on Address Bus during T4 and T5 with uPD8080A is the same as during T1 T3 With the 18080A the Address Bus is unde fined during T4 and T5 5 Subtraction is performed as a direct binary operation in the uPD8080A and the carry Auxiliary Carry and subtract flags are properly set to indicate the subtract operation and borrows from each four bit nibble for use with the DAA instruction 6 DAA instruction works correctly directly following both addition and subtraction operations with uPD8080A while 18080A BCD subtraction must be performed by a sequence of additions and subtractions With uPD8080A three flags Carry Auxilliary Carry and SUB are used for DAA operation both for addition and subtra
231. ivision Any overflow or underflow other than division by zero is ignored by NIBL the reasoning behind this is that it may often be necessary to treat NIBL expressions as unsigned values such as when performing calcula tions using memory addresses as the operands Thus the value of 32767 1 is 32768 hexadecimal 7 1 8000 which Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 makes more sense Logical Operators In NIBL there are three logical operations that may be performed on values AND OR and NOT The first two are binary operators and the latter is unary All three perform bitwise logical operations on 16 bit arguments producing 16 bit results AND OR and NOT are sufficient to simulate any other logical operation through various combinations of the operators The Indirect Operator The indirect operator realizes the functions of PEEK and POKE operations in other BASICs but with somewhat more elegance The sign followed by an address whcih can be a constant variable or expression in parentheses denotes the contents of that address in memory Thus if memory location 245 decimal contains 60 the statement X lt 9245 would result in the value 60 being assigned to X The indirect operator may also appear on the left side of an assignment statement For example X Y 10 would result in the memory location pointe
232. k can do with my other 10K Sincerely Basil Barnes VEGBB Box 1226 x Bonnyville Alberta _ 01 0 P S Can obtain Mr Wang s address Dr Lichen Wang 150 Palo Alto 94301 415 321 69831 more users that device that s a story for another day The peripheral that most ___ See ya of us would like to get is of course a floppy disk but so far we Jim McCord 3710 State St haven t found anybody who makes affordable controller for SysteMetrics Inc Santa Barbara CA 93105 the LSI 11 That shouldn t be too far off though P S Anyone who has LSI 11 or is interested in one is welcome Jim thanks for the stuff on PerSci They had an ad in Inter to write to me So far there is no organized newsletter for the machine but undoubtedly one will emerge when enough people are interested DEC will create a DECUS Special Interest Group SIG for hobby users of the 11 or 8 or both which would take care of nuisances like printing and mailing but we need a few face this month offering drive and controller for just over a kilo buck It s a really fantastic intelligent controller requiring prac tically no support software in the host machine If I can t find a compatible controller for my 11 I may go this route writing my own drivers Nov Dec 1976 Dobb s Journal of Computer Calisthenics 8 Orthodontia Park 94025
233. l base 16 constants to appear in expressions Decimal constants must lie in the range O Nov Dec 1976 through 32767 the unary minus is used to obtain negative values The value 32768 is a valid NIBL integer but it is not legal as it stands To represent it use 32767 1 or 8000 instead Hexadecimal constants are denoted by a pound sign x followed by a string of hexadecimal digits 0 9 A F NIBL does not check for overrun in hex constants consequently only the 4 least significant digits of the nex digit string are kept Functions NIBL provides three built in functions that may appear pression These are described as follows RND X Y returns a pseudo random integer in the range X through T inclusive where X Y are arbitrary expressions T inclusive where X Y are arbitrary expressions In order for the function to work properly the value of Y X should be positive and no greater than 32767 MOD X Y returns the absolute value of the remainder from X divided by Y where X and Y are expressions TOP with no arguments returns the address of the first free byte in the memory page currently being edited or executed In other words it is the address of the top of the NIBL program in the current page plus one Pseudo variables NIBL has two pseudo variables in addition to the standard varia bles These are STAT and PAGE Both of these varialbes may appear on either
234. l and 2K of RAM starting at 000 000 e Complete machine control is possible inputting from and outputing I O ports memory READ and WRITE PEEK and POKE machine language CALL e 16 bit everything line numbers expression values e Arrays e String I O One tape works on any system POKE s itself for most popular I O boards like MITS BASIC e Deletion of unwanted features at initialization time Note The source tape alone is 2 inches think fan fold somewhat greater than 75000 characters at this time I am currently at version 164 Version 09 was distributed to local hobbyists three weeks ago That version was 200 bytes longer and had some small bugs While I don t have the time or the means for mass distribution of CASUAL binary paper tapes and documenta tion are available from 1 CACHE Software Library Lloyd Smith 530 Pierce Ave Dyer IN 46311 2 Chicago Computer Store Lou Van Eperen 517 Talcott Rd Park Ridge IL 60068 3 Itty Bitty Machine Company 1316 Chicago Ave Evan ston IL 60201 4 American Microprocessor Ed Cooper at the Chicago Land Airport 20 N Milwaukee Ave Prairie View IL 60069 Converting CASUAL to other CPU s If you re using a machine without a hardware stack I d say start from ground zero CASUAL makes extensive use of the stack and almost no use of memory direct instructions By putting CASUAL s stack on my VDM I was able to count 48 bytes on the stack whil
235. lations Comparisons of MIKBUG MINIBUG IL Dennis Sutherland et al Floating Point Notes Assembler Coded Graphics Games on an Alphanumeric Video Monitor Marvin Winzenread CHASE A One or Two Player Video Game LIFE on an 8080 with a VDM Program Repository amp Tape Duplication Facility Community Computer Center New PCC Periodical The Computer Music Journal and dozens of other tidbits 1 5 IER 19 34 _ 51 52 54 56 57 58 SUBMITTING ITEMS FOR PUBLICATION lt DON T KEEP IT A SECRET Let us know what exciting new software and systems you are working on We ll tell everyone else if you wish Maybe someone is also working on the same thing You can work together and get results twice as fast Or may be someone else has already done it no reason for everyone to reinvent the wheel E Doo Re o ci lt a Le DR DOBB S JOURNAL OF COMPUTER CALISTHENICS amp ORTHODONTIA A E i Volume 1 Number 10 November December 1976 Box E Menlo Park CA 94025 DATE M Please include your name address and date Copyright 1976 by People s Computer Company on all tidbits you send to us TYPE M If at all possible items should be typewritten double spaced on standard 8 x 11 inch white paper If we Publisher People s Computer Company we xh publish it Remember that we will be 1010 Doyle M
236. lay stations why can t weco p erate in building machine accessable central repositories quick check with an old analog engineer friend down in Silicon Gulch assured me that using this technique to handle data rates up to 300 baud would present no problems even when using el cheapo cassette units and audio tapes Note that this is the same rather slow data rate as the Byte standard It is obviously no problem since after all coup lers are rated up to 300 baud and are explicitly designed to function reliably over scuzzy unconditioned lowest band width telephone lines Modems are currently available that will run up to 9600 baud over conditioned phone lines My analog friend hedged somewhat on whether or not such higher data rates would present problems on audio tapes Again I call on you hardware types for the necessary details to make this fantasy a reality And now the hidden gotchas First of all the garden vari ety acoustic coupler is built with the electronic protocols for its analog end to slave to a master computer over the telephone handset and its digital end to speak in full duplex or half duplex to a terminal Its protocol circuitry must be modi Nov Dec 1976 AN ACOUSTIC COUPLER WRITE TAPE CASSETT fied so that its digital port will be the slave to the computer and its analog part connect to the terminal cassette Alter natively one might purchase master modem that 15 nor mally
237. lt O 01024 01 G Q Q Q N NO N N O1 G BON N CO CO N N gx x gt C9 gt Dodgem 3 Sinners 2 Kingdom for TSS 8 BASIC English Version 2 Spanish Version 2 BUSINESS SOFTWARE FOR 3 000 Aircom Inc Rt 16B Union NH 03887 603 473 2323 has three software or business packages for business users All are assembler coded for a Computer Automation Alpha LSI 2 and are teletype ori ented both for 1 and for record storage i e on paper tape Their general ledger accounting program system is 3 000 for the software alone ot 9 950 for the software and a computer with 16K words Their payroll package with 38 character variables requires 6K and is available for 3K for the software or 8250 including an 8K machine They also have a line oriented forms package for 7 950 with an 8K machine or 2 700 for the software alone They have no documentation that they could provide for our exami nation and plan on customer training at their site in New Hampshire Nov Dec 1976 N N E te ee The Computer Music Journal will be devoted to the development of computer systems which are capable of producing high quality music The following topics will be covered production of natural sounding timbre or quality of tone by Fourier like synthesis with up to 128 ultra low
238. m manual processing of subscription records so fraught with human error to computerized subscription processing thereby obtain ing even more potential for human error Therefore please check your address label and let us know if it is in any way incorrect Nov Dec 1976 It must have been computer error CORRECTION TO PHONE NUMBER FOR KENTUCKY FRIED COMPUTERS Our September issue carried an announcement of a 10 discount on selected products available to DDJ readers for a limited amount of time offered by Ken tucky Fried Computer Store in Berkeley CA We in cluded the phone number only to be told later that it was incorrect When we checked the original copy sub mitted by the store owners a computer edited article we found that we had correctly copied an incorrect number Tsk tsk must have been the computer Their correct phone is 415 549 0858 and they are located at 2465 Fourth St NEW LOGARITHMIC CONVERTER by Jim Day Precision Monolithics Inc 1500 Space Park Dr Santa Clara CA 95050 408 246 9222 recently announced develop ment of a D A converter providing the 72 dB dynamic output range of a 12 bit converter from an 8 bit input Three bits select one of eight chords 1 ranged approximating a loga rithmic function and four bits select one of 16 linear steps within each chord Resolution near zero is equal to that of a 12 bit converter dropping to 5 bits plus sign at t
239. m now a believer to replace my current memory chips with the new 4K dynamic chips sometime next spring for about 500 The Apple was designed to be pin compatible with the new chips and so I ll have 32K on board Any company that can produce equipment like this and then match it with their service is really great Companies like them and magazines like yours make home computing an accessible field for everyone Yours Raymond T Hoobler 789 West End Ave New York NY 10025 Apple Computing is at 770 Welch Alto 94304 415 26 1248 PRAISE FOR SUNSHINE COMPUTER co Dear Editor Nov 24 1976 A commendation is in order for Sunshine Computer of Carson California bought a Sanyo cassette recorder from them on Saturday Nov 20 They forgot to pack in the AC cord When I discovered the omission Saturday night made a note to call them Monday about it Sunday night they called and apologized and said they d mail it Monday Received it Tuesday postmarked Mon day as promised Total time to resolve my query minus one day _ Sincerely Raehl 943 Begonia Escondido CA 92027 Nov Dec 1976 BASIC It s an APL Dear Jim Sept 12 13 15 amp Oct 2 1976 Here i is my entry in the hobby software field tiny language called CASUAL That s the Chicago Area Small Users Algorthmic Language Here are the design goals used e Must run on an gt 8080 system with a termina
240. m of the assignment statement is the conventional assi to variable Z e g or 32 There also statements which look like string assignments but there are not standard BASIC and are described later in the section on string han dling The word LET is optional in front of dii assignment state ment leaving it out increases execution speed unlike most Tiny BASIC systems If then Statement The IF statements allows conditional execution of one or more statements as many as can fit on one line The syntax for the statement 15 Rel exp THEN Statement which indicates that the word THEN ts optional and that any statement including another IF statement may follow the conditional expression If the IF condition is true is non zero the statement following it and any others on the line will be executed otherwise control immediately transfers to the next program line The condition does not need to contain relational operators a statement such as IF MOD A 5 THEN is per legal In this example the statement following the THEN would be executed if were divisible bv 5 GOTO GOSUB AND RETURN STATEMENTS The syntax for the GOTO statement is GOTO followed by an expression The effect of the GOTO statement is to transfer control the line whose number indicated expression error if the specified li
241. matique Universite de Mon treal Montreal Quebec H3T 1J4 by January 15 1977 l TARBELL PRAISE DISASSEMBLER amp AN APL CHARACTER QUERY Dear DDJ Sept 26 1976 Just a quick note on the Tarbell interface about which you say you have been receiving a lot of com ilaints mine worked the first time I tried it and refused o drop so much as 1 bit when fed by a tape recorder with a variable speed control I could go 2090 slow and dbout 1095 fast with no trouble Only by intentionally ttying could I get it to drop a bit to see if my checksum toutine was working In daily use for about 2 months it has dropped a bit only once It is a fantastic peripheral I use it to back up floppy disks as it is the only device that is 1 fast enough 2 cheap enough 3 reliable enough I had no non plated thru hole problems friend says Tarbell left some TTL inputs floating which Ere noise susceptibility but I have not had this prob em Keep up the fantastic work on supplying the Hobbyist community with public domain software and P S are you interested in a disassembler which I wrote and commented It is 8080 based uses sense switches to determine when to generate instructions when to gener ate DB s with or DB s with hex It can be used as one pass process to just see object or can be used 5 address reference JMP LXI CCLL tc is placed in a symbol table compatible with Processor Tech
242. means one or more repetitions the question mark 2 means zero or occurrences and the semicolon marks the end of a definition NIBL Line Immediate Statement Program Line Immediate Statement Command Statement Carriage Return Program Line Decimal Number Statement List Carriage Return Command s NEW CLEAR LIST Decimal Number 1 RUN Statement List Statement STATEMENT Statement LET Left part Rel Exp 1 LET 2 15 Factor String 5 Factor 1 GO TO 1503 Rel Exp RETURN i PR PRINT Print List IP Rel Expr THEN Statement t po UNTIL Rel Exp FOR Variable Rel Exp Rel Exp STEP Rel Exp NEXT Variable INPUT Variable Factor LINK Rel Exp ED Any Character Except Carriage Return 29 b hem Q ham Left Part Variable 186 Factor STAT PAGE Rel Exp Expression Relop Expression 1 Expression e 1 e lt 259 i 950 1 930 3 Expression Expression Adding Operator term 1 J 2 Term H Adding Operator s 08 3 Term Term Multiplying Operator Factor Factor Hultiplying Operator 5 7 AND 3 Factor Variable Decimal Number Rel Exp Factor Factor HOD Rel Exp Rel Exp Rel Exp Rel E
243. moving paragraphs from the end of the text to the beginning or some other spot several pages away Then there are nice things like automatic page numbering single or double spacing from the same source file and the ability to not mess up special formats such as tables or lists while at the same time properly adjusting lines and paragraphs as words or sentences are added or deleted would be pleased to hear from anyone with interests along these lines Yours truly Dr Charles F Douds 381 Poplar St Winnetka IL 60093 e W pus ud u Cocke Nov Dec 1976 16 FLOATING POINT PROPOSAL ERRATA FOR RANKIN S 6502 FLOATING POINT ROUTINES In past weeks I have talked to several members of the CACHE about tiny languages I keep hearing use it if it only had floating point Having written three languages myself I can understand this Nobody seems to realize that 32 bits are a lot more than twice as hard to work with as 16 As a compromise I propose 16 bit floating point The format I have worked out gives 3 significant digits with an exponent of 15 to 15 decimal Proposed format 15 5 AANTISSIA SIGN ES EXPONENT SIGN I don t have the time ambition to write this now but I would be happy to swap ideas with anyone interested Bob Van Valzah 312 852 0472 Home 1140 Hickory Trl 312 971 2010 Ext 231 Downers Grove IL 60519 Work 6800 M
244. nal use only No dupli cation or modification for commercial use of any kind is authorized COMMANDS STATEMENTS LIST REM END RUN DIM GOTO STOP NEW DATA GOTO GOSUB SAVE READ ON GOSUB PATCH LOAD RESTORE IF THEN RETURN PATCH LET INPUT TDES FOR PRINT TPEEK FUNCTIONS NEXT TPOKE ABS TVAL TSIN INT TEXTS TCOS RND TLENS TTAN Direct Mode statements SGN TLEFTS TEXP 7 8K Version only CHR TMIDS TLOG USER TRIGHTS tSQR TAB MATH OPERATORS RELATIONAL OPERATORS unary Negate Equal Multiplication lt gt Not Equal Division lt Less Than Addition gt Greater Than Subtraction lt Less Than Equal t Exponent gt Greater Than or Equal GOOD POINTERS ON 6800 SYSTEMS SOFTWARE Dear Dr Dobb s Sept 22 1976 Your readers who are interested in the article by Tom Pittman on the 6800 Resident Assembler and Editor might like to know that true annotated assembly listings of the I O routines are available in the 6800 users group library Program No 10 is a listing of the I O routines used with EXBUG While this listing does not describe the routines in EXBUG itself the comments do provide an insight into the operation of the flags Of more interest is Program No 11 which is the MIKBUG version of the I O routines When this is com bined with the listing of MIKBUG in Engineering Note 100 on the MCM 6830L7 ROM one will have a listing of a complete I O system This can be used as a model to develop sui
245. ne does not exist in the current page Unlike 22 BASICs any arbitrary expression can be used to specify the line number _ as well as the usual decimal constant This allows computed branches to be performed with the same effect as the GOTO statement in standard BASIC The GOSUB statement is identical to the GOTO statemsnt for m It too causes a branch to a new line but it also saves the address 2 following statement on stack When a RETURN statement 15 execut ted the saved address is popped from the stack and contro returns tot t point in the program Since an actual address nota line number saved on the GOSUB stack GOSUB statements may appear bem re on a multiple statement line GOSUBs may be nested up to eight levels deep an error will occur if an attempt is made to exceed this limit The error condition does not destroy the previous contents of the stack so RETURN statement can be executed even edit mode without an error occurring How ever any modification of the NIBL program will clear tne GOSUB stack so that a subsequent RETURN without a will cause an error DO AND UNTIL STATEMENTS The DO and UNTIL statements are useful in writing program loops efficiently without using misleading GOT statements Enclosing group of zero or more statements between a DO statement and an UNTIL condition gt statement where lt condition is an arbitrary expression will cause the statement g
246. ne have original manufacturer s documentation for 3 these units Editor 3000 FOR 2 400 LINE PER MINUTE PRINTER Houston Instruments has 80 column and 132 column printers that print up to 2 400 lpm and up to 1 400 lpm They say their interfacing is explicity designed for easy connection to micros Houston Instruments is located at 1 Houston Sq Austin TX 78753 2 When a variable in a FOR NEXT loop is decremented and becomes zero it is not recognized as zero Example 10 FOR 1 2 TO 2 STEP 1 20 120 THEN relation line 20 never becomes true zero 15 apparently a negative zero since 20 IF 5 0 THEN will work If any of DDJ readers have solution like to hear from them A letter to PT regarding these problems has not been answered Realistic Supertape has been recommended in some hobby magazines as suitable for digital data recording The October 76 issue of Consumer Reports contains a test of audio cas settes Recording music and digital data are not directly related However it is interesting to note that Supertape was rated below average in two important factors output uniformity and freedom from dropouts From personal ex perience I d have to agree with the test findings The four top rated cassettes were BASF Studio Series Maxell UD XLC60 Scotch Master and TDK Super Avilyn SAC60 I m not sure this can be printed in DDJ since it is copyrighted info
247. ned from a number of ratings based on response speed quality of product pricing com plaint satisfaction and overall quality Companies which received less than 2 ratings are not listed Note that it could be safer to deal with a company which has a rating slightly lower than some others if a large number of persons found it favorable In all categories most favorable rating was 5 least favorable was 1 COMPONENTS DIGI KEY 4 58 4 TRI TEK 4 5 2 JAMES 4 42 10 S D SALES 4 42 6 NEWARK 4 36 3 ALTAJ 4 04 5 FORMULA INT L 4 00 2 GODBOUT 3 9 4 MESHNA 3 82 6 DELTA 3 54 4 BABYLON 3 36 3 SOLID STATE SALES 2 89 5 POLYPAKS 2 62 8 OLSON 2 35 5 B A 2 28 5 RADIO SHACK 1 92 11 PUBLICATIONS Dr Dobb s 4 38 4 Byte 4 23 10 73 4 18 3 Ham Radio 4 16 4 People s Computer Company 4 10 4 Computer Hobbyist 3 75 2 Popular Electronics 3 65 10 Interface 3 08 3 Radio Electronics 2 92 9 Creative Computing 2 88 3 KITS AND MAJOR COMPONENTS SWTPCO 4 16 8 HEATHKIT 4 16 9 PROCESSOR TECH 3 90 2 IBM 3 75 2 MOS TECHNOLOGY 3 74 3 IMS 3 73 4 MITS 2 82 5 Should software be included in the price of the hardware YES 82 NO 18 gt Computer Stores Good but expensive was the general response Selected comments from What do you think is the biggest problem facing personal computing now Information spreading mercenaries need free softwa
248. nformation has been in use for some years in the banking industry There total reliability is an abso lute requirement and the encoding format and scanner de sign they use is considerably more complex than is necessary with bar codes and bar code scanners Bar code techniques have proven sufficiently reliable that they are in wide spread use in grocery checkout facilities where accuracy is a must demanded by the paranoid consumer was well as by the food retailers and where sloppy usage must be assumed This is not an idle proposal or one shot in the dark by Dyte The November article is an explicit detailed nuts and bolts article The December issue of Byte will include sam ples of machine readable code in several experimental for mats an article on signal processing for optical scanning of bar codes and the specifics of the software that is necessary for reading bar coded information Articles in the immediate future are sure to include complete details for the construc tion of bar code scanning wands and their interfaces We cannot praise this proposal too highly If this tech nique in fact proves feasible and reliable it will provide a Significant breakthrough for the problem of distribution of machine readable software ard data Note The import of this for the forseeable future well may be in its facility for distribution of data rather than programs e g census data voting records mathematical and engineering tables
249. nformation on a Chicago computer fest Scott Meaden a local CASUAL user has just written a neat game in CASUAL It s called Zapp the Moonman It runs with a VDM by poking the screen a moving target a moonman moves back and forth across the top of the screen You shoot lightning bolts at him from your gun at the bottom am now twisting his arm to finalize it and send you a copy Sincerely Bob Van Valzah 312 852 0472 312 971 2010 x231 1140 Hickory Trl Downers Grove IL 60515 ZAPP THE MOON MAN Dear Dr Dobbs Oct 21 1976 I ve been using a nifty little language called CASUAL my IMSAI which is only 4K smart at the moment with a VDM and came up with a program you might con sider for publication I call it Zapp the Moon Man It starts a moonman VDM character 7 moving from left to right and then back again across top of the screen Your job is to try to zap him with a lightning bolt VDM character 4 that moves from the bottom of the screen to the top The bolts are fired by the sense switches on the front panel of my IMSAI The program also keeps track of how many bolts you have left and how many moonmen you ve zapped The start of the VDM screen must be set in line 3 My VDM is set up for CC hex 314 octal which in CASUAL decimal notation is equal to 13312 You can use CASUAL to help you figure out what number to set Z to For ex ample if your screen starts on page 364 octal ty
250. ng data entry Interfacing with machine language programs Linking loader design Dynamic storage allocation and file retrieval design NO J ON CHANGES TINY Comments semicolon 427 in column one reserves only the line on which it appears for comments semicolon in any other column reserves that column and all to the right of it for comments until is again encountered in the com ment field This replaces the and delimiters pre viously specified The change makes commenting easier to learn and use and increases flexibility Vectors Vectors may have lengths up to 232 1 Other wise it would be almost impossible to handle data structures with more than 256 elements This also allows any positive integer as a subscript Logical operators AND OR NOT NOT is evaluated first AND and OR have equal precedence All three must be set off by blanks or as in NOT gt MIN AND A lt MAX Being able to express complex predicates is important in Page 54 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 making structure as clear as possible else many unnecessary IFs and DOs would make programs more confusing Continuation lines a plus sign as the first nonblank character indicates a continuation line line may be con tinued indefinitely and even when comments intervene or there is a comment field Conti
251. nstructions were terrible There were as many many errors as the other brands had see DDJ Vol 1 No 8 Nov Dec 1976 Lots They say they re coming out with a new manual If it s any good probably write it up Volume II of the instructions however is on the side of the Angels This is the clearest manual on the 8080 instruction set I have ever seen I leave it on the living room floor for people to pick up and read It s that good Someday I may even get a coffee table for it So if you want to learn 8080 get that manual Maybe some magazine will serialize it in good serial style Last month our hero got saved from the evil Dr Halt when an interrupt arrived in the nick of time What is life like without a front panel Sheer joy my friends sheer joy You can deposit examine single step everything You can do it in style from a keyboard When you single step you see not only the address and the con tents and in hex not in binary less than joyful to those who prefer octal but you also see the accumulator the flags the B C register the D E register H and L the program counter and the stack pointer And you also see the first eight bytes of the stack the location the PC points to the next seven bytes thereafter and the eight bytes pointed to by each of the B D and H registers It certainly beats lights it also beats the hex displays found on a few other machines I hate to say this but the
252. ntia Box E Park 94025 TST 2 IFNOT TRYV MSGP DSS 206 PSHX HL CAL EOM CaL GETL FETCH JTZ ENTR EXPR POPX HL RET MUNCHES THE LINE INPUT OPERATOR 2 SEND THE QUESTION MARK SAVE THE TXA VERIFY ROOM FOR RECURSION HIS INPUT GET FIRST CHR RETURH 2 YUP CLEAR STK AHD RE ENTER 7EVALUATE HIS INPUT RECURSIVE TXA 883 985 693 883 883 gaz 883 883 883 893 8983 885 883 883 3 883 3 883 883 883 803 883 883 083 684 864 804 984 884 884 664 084 664 884 804 8804 9884 8804 684 884 684 884 664 884 884 884 684 604 884 9834 884 664 994 O04 664 884 884 684 684 664 664 884 884 884 664 6804 884 684 994 664 4 arg 0 4 gua ana 884 684 gas 984 854 884 684 M C4 QJ 74 74 74 C C J J QJ p 084 986 616 813 814 815 915 gir 28 821 824 25 838 931 asa 835 841 B43 B46 847 c a e al tab J G J Wa WNW CY GJ N J C ON GJ T2 D
253. nuation lines can be used to make output lists or complex predicates clearer by arranging them on several lines to show structure and they also reduce the use of temporary variables Control structures The UNTIL structure is now DO code END IF p The WHILE structure is now DO IF p code END The compound structure is also allowed DO IF p code END IF Noise may no longer be added to END statements Professor Howard Tompkins of Indiana University of Pennsylvania caused my reexamination of my control struc tures for which I am grateful though we still disagree as to the best iterative structure He pointed out that UNTIL should be WHILE from the English meanings of the words and also that UNTIL in COBOL has a meaning different from the one used by I and IBM The new con struct locates each predicate where it is actually examined allows a new structure reduces my vocabulary eliminates a source of possible confusion and allows for future inte gration with an iterative form DO I J K BY LIF 1 lt 1 1 Input alone will get a literal from the keyboard with the prompt followed by a variable will generate prompt of the form gt Subvectors In a sequence of numbers or characters one often wants to indicate a subvector that is a continuous sequence often a very long one Other programming lan guages use pseudovariables PL I s S
254. o be executed LOCATION DATA OPCODE HI LOW OLD NEW OLD NEW 004 037 317 317 TST R TST C 004 040 122 103 004 041 173 173 IFNOT 004 042 005 005 OS OS 004 043 312 337 004 044 024 353 JTZ EXPR 004 045 004 042 RSSP DE lt gt HL 004 046 337 377 STHL 004 047 303 004 EXPR STRS 004 050 207 307 JMP GOTA ROCKWELL RUMORS REVEAL ZILOG COMPETITOR 9 21 76 Rockwell International had been considered by Zilog as a potential second source for the Z80 parts Since Rock well was not chosen they went ahead with the develop ment of their own 780 type CPU chip R80 It will be ready sometime in 1977 The words is that the chip will be pin compatible and software compatible The device is mask microprogram mable similar to Western Digital s 16 bit CPU chip set Some of the instructions execute much faster than Zilog 5 280 e g block move 780 in 21 cycles byte vs R80 in 3 cycles byte Finally there will be some instruction enhancements over the Z80 which include a hardware multiply and divide MOSTEK AND FAIRCHILD TO SECOND SOURCE EACH OTHER Mostek is already the second source for Fairchild s F 8 microprocessor chips Now Fairchild will become the second source for Mostek s 4K bit fast RAM the 16 pin MK4027 that runs at less than 200 ns Page 24 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Dear Jim Oct 16 1976 am still attempting to locate more i
255. obb s Journal because you don t want to hassle with its dis tribution you are encouraged to forward the tapes to CCC and the documentation to the Journa for publication The CCC will thus serve as a desirable alternative and supple ment to the User Groups that are controlled and operated by many of the processor manufacturers some of whom charge up to 100 for membership and access to the programs that their customers developed and offered to the User Group without compensation There is no membership fee for access to the tapes from the Community Computer Center Instead one pays only for the duplication and mailing costs Duplication charge 1 ounce or fraction thereof for tapes weighed after punching on roll paper tape Add 696 tax for orders mailed to a California address Postage and handling 0 50 on orders of 5 and less 51 on orders exceeding 5 Payment must accompany all orders First Class within 3 days of receipt Lists of available tapes will be published periodically in Dr Dobb s Journal as well as being available from CCC Community Computer Center 1919 Menalto Avenue Menlo Park CA 94025 415 326 4444 The following source tapes are currently available They are programs written for the version of BASIC that is implemented for the 20002 minicomputers and are discussed in What You Hit Return available from the Bookstore 95 Orders will be mailed Tiny BASIC for Alt
256. of the Third College Computation Center at the University of California in San Diego and serving as a Professor of Visual Arts there for five years Before that he was an instructor in Computer and Electronic Music at Pennsylvania State University for several years He holds a B S in Philosophy 1965 from the University of New York with minors in mathema T and physics and a M S in Computer Science 1967 from Penn tate The second member of the evaluation group is Dennis McGhie Dennis is currently working for a major biomedical research center in the San Francisco Bay Area He has been a programmer since 1968 working on both maxi s and mini s primarily in the areas of database systems training systems computer graphics and real time systems Though he has no formal hardware training he has a good seat of the pants background derived from years of working with experimental real time computer ized biomedical data acquisition and process control He holds a B S 1968 in Chemistry from Stanford University The third team member is Michael Heathman currently a senior systems programmer for a new time sharing system being installed in a major Bay Area research institution He has systems experience with maxi s and midi s including PDP 15 s and PDP 11 s He has been a programmer for six years except for a year s leave taken to perform graduate studies in computer science at the University of Washington He holds a B S 1970 in elec
257. ogical operations ORA XRA ANI ORI and XRI AC is not always set correctly to indicate bor row from bit 4 after subtraction Subtract is performed by two s complement only Carry is complemented to indicate correct borrow uPD8080A 15 not affected by INR DCR and DAA AC is not affected by logical operations AC is always set correctly to indicate borrow from bit 4 after subtraction 9 Status information for 18080A uPD8080A is the same except as follows During HALT Acknowledge D7 18080A 1 uPD8080A 0 during Interrupt Acknowledge while HALT D3 HLTA 18080A 1 uPA8080A 0 and during CALL instruction following interrupt DO INTA during M2 and for 18080A and for uPD8080A 1 10 Pull Up Resistors on the Data Bus The uPD8080A does not utilize active pull up resistors on the Data Bus To make inter facing easier on the DATA BUS VIN MIN volts for the uPD8080A vs 3 3 volts for the 18080A With uPD8080A DATA BUS input leakage current is the same as any other input 11 The temperature range for the 18080A is 0 70 degrees C and the uPD8080A is 10 to 70 degrees 12 DC characteristics are the same except as noted 18080A uPD8080A VIH 3 3 Min 3 0 Min VOH 3 5 Min 1 0 ma 100 40 55 IDD lt 70 75 ICC AV 60 50 80 70 IDL 2 0 ma Max 10 ua Max IFL 100
258. old your from published letter 16 year anywhere outside U S 0 21 year to Canada if you so request We will not publish correspondence how 2nd Class Regulations require surcharge D 28 year to Europe amp Pan America rf ever which is sent to us anonymously on mail sent to Canada 32 year other foreign We reserve the right to edit letters for purpose of European Distributor European Rates clarity and br evity Pan Atlantic Computer Systems gmbh 35 DM year in West Germany 2 ADVERTISING As long as we can afford to do so we Darmstadt West Germany gt will not accept paid commercial advertising This keeps us honest when we pursue the role of consumer advocate Page 2 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Nov Dec 1976 CONSUMER ACTION With this issue we are initiating what we expect to be a regular feature in Dr Dobb s Journal reports of indepen dent product and software tests and evaluations We pro pose that these will be independent in that we have financial ties or obligations to these manufacturers the pro ducers of these products We carry no paid advertising Ever since the computer hobby began there have been regular pleas for such independent testing and evaluation Until recently we have been rather haphazard in our at tempts to assist consumers in judging the quality of pro
259. on purpose The Poly 88 s almost S 100 bus hobbyist bus Altair bus I could care less has the best switches of all there aren t any Polymorphic Systems in Goleta rhymes with California makes this very unassuming little box that does a lot of things right which the bigger names with bigger boxes and price tags are doing wrong Not that Poly is perfect My corrections to their manuals were extensive and numerous But they listen harder For example when I called up IMS with a long list of carefully annotated errors in their manuals they put me off promised to call back never did put me off when I called again etc In the end my careful documenta tion of their manuals did them no good at all and frustrated me Polymorphic Systems listened sent me extra manuals so that I could send them mine with corrections and the like They re not dumb they ve got a proof reader working for free It is my opinion that manufacturers should hire a proof reader before sending manuals out but the way that is now used is cheaper and only has the drawbacks of having a few hundred frustrated customers out there And they get hun dreds of phone calls of the form Where does R21 go Maybe the phone company is behind the bad manuals The Poly 88 system which has replaced my Altair 8800 and my IMSAI 8080 has but two controls on the box on off switch with a power on indicator light and a reset button with a halt light
260. ond the code 7868 CIRP Signal goes low when all the LED s the front 7 861 CIRM pan GR x panel are out 7863 multi processing environment the control fers eid cessor polls the slave processors asking who put that 866 COR data into the common memory and all pro 7867 CODP idn ATE peer NUR that didn t will issue this signal 05 ADDRESS HIGH WERE line goes low when the system is crashed a x n Z 80 systems this line goes low durin h 000 OB PG 7 050 899 block search when the is found n 175 oos 5 5 175 some systems this the line isd ans e Invalid spurious 136 136 During each cycle of ram test this line will nor l63 pas TIEZ 5 163 mally be low unless a location is faulty 125 aps TIBP S 125 GLTY Response to the How do you plead line Also a3 low on owned hobbyists who dis agree with Bill Gates 112 085 5 112 anii 24 THERE Signifies that the TTY connector has come undone 144 806 CIRM 6 144 4 1 1 ERU BIT This signal is present when a hobbyist doesn t have 151 006 CIDF 6 151 MT his own computer yet 127 886 PNOV 6 127 FNI Issued in response to most of the foregoing lines 131 885 CORM 6 131 133 885 COA 6 133 137 88
261. onham states that one of the important events in the history of structured programming was the publication of a proof that all programs could be written using only three control structures name ly sequence if then else and loops assume that Mr Bonham is refer ring to a proof which appeared in a paper written by Boehm and Jaco pini 1 Knuth 2 says the following about this result Recent interest in structured programming has caused many authors to cite Jacopini s result as a significant breakthrough and as a cornerstone of modern programming technique Un fortunately these authors are unaware of comments made by Cooper and later by Bruno and Steiglitz namely that from a practical standpoint the theorem is meaningless Knuth goes to show how Jacopini s result may be used to put any program into a virtually structureless form Third Mr Bonham states that one of the basics of SP is the use of only a very few control structures If this is indeed the case then we can do much better than SIL sequencing if then else and looping because as Presser 3 has shown if then else is superfluous However not even Presser advocates the complete elimination of if then else Thus believe that it can be said that the minimum feasible set of con trol structures is not the same as the minimum practical set of control structures although there does seem to be a general consensus that a minimum practical set must include SIL
262. onth and no more than that to respond the report and any ap propriate response will be published in Dr Dobb s Journal The products that are tested will become the property of People s Computer Company Often the evaluators will be paid for their services by giving them the products they have evaluated This will both assure an active interest in the evaluation on the part of the team members and will also provide us with the opportunity to observe Page 3 units operation over some period time with supplementary reports being given as appropriate WILL THE MANUFACTURERS COOPERATE Both the public and the manufacturers have often noted that com merical magazines rarely if ever publish articles that are really critical of products available from companies that are advertising in that maga One publisher targeting for the computer hobbyist community is widely reputed to consistently publish excellent evaluations of products from advertisers and highly critical evaluations of pro ducts from manufacturers who refuse to advertise in the publication Thus the public tends to take such evaluations in ad carrying periodicals with a well deserved grain of salt Alternatively Dr Dobb s Journal and PCC before it has had a consistent reputation for readily publishing compliments and complaints including complaints about our publications We believe that carefully done comprehensive p
263. opment of a TRAC processor Two months later received a copy of a License Agreement for permission to use Rockford Research copyrighted writings on TRAC language in academic experimentation What it consisted of was an agreement that Rockford Research would not sue me if signed the agreement and sent them 10 That the promise that they won t sue me is get for my 10 manuals are another 15 Also once finished the TRAC processor could not publish reproduce resell lease give lend circulate or license TRAC pro cessor or any portion thereof in any manner or on medium which shall include but not be limited to copies tapes films computer program library deposits there was about paragraph more Anyway that rules out sending to Dr Dobb s which was my idea for the processor from the start The agree ment also wanted me to agree to challenge the Rockford copyright x In short have abjection with a person or group copy righting a program but this seems a bit excessive Thanks for the time and keep up the good work Yours Chris Pettus PO Box 611 Malibu PRAISE 1 FOR PALO ALTO TINY BASIC amp TINY TREK AND QUIBLET ABOUT THE VDM SOFT WARE Dear Jim Oct 5 1976 PALO ALTO TINY BASIC and TINY TREK have to be the best 4 00 investment ever made I d like to recommend it to all Dr Dobb Dobb s readers For further details
264. or an active low line is to gt 66 E SI LAN put a bar gt over the line s name for example Now 362 133 STA 10 1 1 001 111 643 INX HL when this is read you say not strobe or sometimes bar strobe 21 113 062 140 096 STA CODP 1 With this mind then we thought that the following active 001 116 852 978 000 LDHL OSLO low signals might be useful additions to a microcomputer s bus 1 124 311 structure SO This signal is present during the hours 2 00 ZCTION LOGIC REYE R 9 00 a m CM This line goes low when you leave the house useful TIRP 1 8 8 8 28 TROV 1 OM TIRM 1 1 40 2 180 1 TIRM 1J in intelligent security systems gt ele 382 312 312 312 Sr NOW Present when interrupts are disabled TIDP 8 1 1 1 21 21 This line goes low when the system 15 out lunch 1 9 8 28 A 2 TOR 312 312 312 312 312 SUE NOT ELE E is acknowledged by the TODP 16 1 1 1 23 21 TODP o line 3 HOL This signal is present when ram board goes out 312 the middle of your memory 2 RT Signifies that your jump went the wrong way Sear NK CORM 1 In a polled interrupt system all devices not request sa eee ing service must pull this line low This line goes low when certain combinations ZFUNCTIOH
265. organiza tion of the CP M system along with the forms for file name references Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 built in commands and transient commands including operation of the editor assembler debugger peripheral interchange program and batch processor CP M Editor CP M Assembler and CP M Debugger Manuals these three manuals provide the operating details for CP M s principal subsystems for program composition ED assembly ASM and test ing DDT Manuals can be purchased separately CP M Interface Guide this manual gives the exact details for pro gramming in the CP M environment In particular all system calls are specified along with details of CP M file organization which is necessary for programs which operate upon CP M files CP M System Alteration Guide the alteration guide gives the step by step process which you must follow in order to alter the CP M sys tem to run with non standard hardware 1 O drivers for commonly available hardware systems are given Individual manuals are 55 package consisting of all six manuals is 25 An initialized loaded floppy disc is 50 disc and all documentation the works is 70 And of course Californians get to add 6 tax Digital Research Box 579 Pacific Grove CA 93950 408 373 3403 PRAISE FOR DIGITAL SYSTEMS FLOPPY UNITS amp DIGITAL RESEARCH S CP
266. ow about providing a means for the n loop problem Again stealing from Knuth LOOP LOOP ENTER A A ENTER A A WHILE A gt 47 for gt 47 EXITLOOP TOO BIG TOO BIG REPEAT REPEAT 4 finally figured out why the example 5 73 1 looks strange to me because can t get used to a unary operator with a higher precedence than a binary operator All unary operators should be higher than the binary operators Under the cur rent rules 5 7 9 5 7 9 5 What determines whether input is taken as string or integer How can 123 be input as a string 6 What sets the value of a function Should the example have an additional line GCF Y 7 The current syntax disallows null arguments such as CPTIME 15 this intentional 8 Deletion of the or line has the potential for causing a lot of trouble when editing a program would favor a scheme such as it is used by some assemblers where means that everything else on the line is a comment 9 Since a string is really a vector of characters and you allow vectors of strings will you allow vectors of vectors of vectors 10 1 agree with for assignment but please choose the character to be used with ASCii keyboards before every implementor picks a different one guess that s all that comes to mind now I m sending copy of this to DDJ Keep up the good work Yours Gregg Townsend 450 Mathilda No J20 Sunnyvale CA 94086
267. pe in 2256 3 64 6 8 4 hit return and CASUAL will print 3072 This is Z for that system Also if you want to use a different trigger source say passing your hand over an OP 80 papertape reader you ll have to change lines 11 and 110 for port numbers and Ready bit But remember once that bit is ready you ll have to give the data port an amp to clear it The game is set up so when a bolt gets to the top of the screen it checks 2 places to see if it hit line 210 To make him harder to hit type in 210 240 X 2 P B 0 X 2 P B 1 Happy zapping Scott Meadow 116 Surrey Dr Glen Ellyn IL 60137 ol 13312 H UM MANY BOLTS DO YOU WANT 7 5 5 lt 1 gt 6 5 10 2 754 224864 2 32 2 32 2 722 11 92255 15 7 gt 12 1 2 amp 32 0 Iz0 128 160 128 20 2 592 7 11290 7 2 65 31 80 4 83 30 132 66 7 33 79 34 2761 35 84 36 83 40 76 7 198 69 7 99 270 Z 10012841 Se S41 2400 50 BHO X 28 2 64 100 3000 110 2100e 0z85 120 400 130 64 328 L 48 64 3000 150 130 gt 200 32 210 240 lt 1 gt CX 2 P gt e CBE 000 1 CK Oz PO e 1252 220 5 65 lt 12 230 110 240 lt 1 1 10 1 gt 48 1 48 I2H ede 7 2 32 1 90 7 2 65 3 80 4 80
268. r Mr Warren Nov 2 1976 We recently received a copy of a letter sent to you by a Mr Tenney and feel that it is appropriate for us to respond We hope that this will eliminate any concerns your readers may have about the use of the NEC uu PD8080A the differences between the Intel 18080 and the NEC uPD8080A are clearly stated our u PD8080A Family data sheet and COM 8 Software Manual These documents are available through any of our distributors representatives or NEC Microcomputers Inc These documents clearly enumer ate the additional features which lead to the improved per formance of the u 8080 both in simplified code and faster execution However a user need not utilize these features in his pro gram If the application program is written for the Intel 80804 it will run the NEC part except for a few very limited situations For an example all NEC PDA 80 and Intel 5 800 programs operate properly using either part as do all system programs in the IMSAI 8080 and the Altair 8800 to the best of our knowledge It is obvious from the differ ences that one can create sequences of code that do operate differently in several of the 8080A s on the market today but most of these do not represent useful sequences of appli cation programs As far as the CLAIMS we make as referred to in Mr Ten ney s letter we do claim as explained above that the u PD 8080A is compatible Upward Compatible This is
269. r languages will have to be used An example of how such languages can contribute to standardization Molloy will point to PL M Two popu lar 8 bit Ps are the Intel 8080 and Motorola s 6800 While PL M was generated by Intel for the 8080 PL M compilers are available to translate the syntax into object code for the 6800 And Signetics 2650 The EIA NEMA task force will study drafts of two new MIL M 3851 microprocessor detail specs the 400 for Motorola s 6800 and the 420 for Intel s 8080 MORE COMMENTS ON PROC TOLOGY WARE PLUS SOME NOTES ON CASSETTE TAPE QUALITY Dear Jim DDJ has become the best newsletter for the computer hobbyist None of the commercial magazines can approach the wealth of information you provide I enjoy every issue especially the letters Keep up the good work Aww geee fellas Some more comments on Processor Technology software I think the PT people have done a great job providing rea sonably priced software It seems that their programs are not thoroughly debugged The source listings for FOCOL and BASIC do agree with the paper tapes The problem with the PT BASIC INT function mentioned in DDJ No 8 can be corrected as follows AINT LDAX B SUI 129 JP AINT1 XRA A MVI D 5 AINT2 STAX DCX B DCR D JNZ AINT2 RET Thanks for Fred Greeb for this fix In addition l ve come across two more bugs 1 Formatted print will not work with fractional values Example
270. re long mailing waits number of software compilers soft for the 6800 Page 13 IMSAI INCOMPATIBILITY Dear Jim Oct 14 1976 I have just entered a real life description of compati bility While trying to figure out why a simple three instruc tion program would not work as documented in the Intel 8080A manual being executed on my IMSAI 8080 I dis covered that the flag bits as stored in memory via PUSH PSW were not as Intel describes For openers bit 5 and bit 3 are supposed to be 0 On my IMSAI 8080 bit 3 was always 1 and bit 5 fluctuated with as yet no pattern sometimes being 0 and other times being 1 At this time I played around a bit and found that the XRA A instruction did not work as documented At this point I contacted IMSAI Very quickly I was put in contact with Mr Bruce Hollo way of IMSAI After Bruce confirmed that strange things were happening with his IMSAI 8080 he researched the problem and report d the following my interpretation follows These IMSAI 8080 s use NEC 8080A chip instead of an Intel chip NEC reported in a confidential letter to IMSAI some minor differences between their chip and Intel s At all times the chips were stated as being software compat ible The software differences are 1 Flag bit 3 is always 1 2 Flag bit 5 is set 1 on subtract type operations and is reset 0 on add type operation
271. refer to Dr Dobb s 1976 with an addition of software for VDM display in June July 1976 The tapes came back within 4 days from the Community Compu ter Centre which must be a record Trudeau s Turtles and every thing worked immediately The abbreviating possibilities of P A T B really make for conpact programming P instead of PRINT for exam ple in conjunction with multiple statements per line One thing would have liked to have seen would have been simple strings for inputting and outputting words names etc but one can t have everything in less than 2K guess Any chance of Li Chen Wang re considering haven t too much use out TINY mainly because my kids won t let me have a turn However the times that have played have thoroughly enjoyed it and it ranks up there with the other versions have played STARTREK and STARTREK 3D on 470 As a matter of fact it is extremely difficult to win and that increased the enjoyment with the frustration Another problem in using the VDM software given in June July 1976 Dr Dobb s is that when listing a long program the screen goes zzzip and all you catch is the last few instructions that remain on the screen delay or a hold feature would be nice u Still for 6 of memory have hours of fun or at least my kids I m reduced to playing after lights out for them What the hec
272. rely Robert Swartz 195 Lane Highland Park IL 60035 A SUPER DUAL FLOPPY SYSTEM Dear Jim Sept 17 1976 You guys are usually way ahead on new products and things but have you seem the DTC Micro File It sa WOW e 8080A Super System e Has an extremely high quality compact dual floppy e Has superb system software including fantastic text editor e Uses MITS BASIC they bought it plus numerous improve ments e Speeds to 9600 baud through two RS323 ports It might appear as a commercial system to you folks it is you should check it against IMSAT s dual disk system It runs rings around them on price and is far superior Price 4295 If you haven t seen it you should take a look Keep up the excellent work with DDJ Sincerely C Delmas ADVANCE SYSTEMS P O Box 531 Saratoga CA 95070 We heard identical remarks from another friend whose judgment has been impeccable DTC is located at 1190 Dell Ave Bldg L Campbell 95008 408 378 1112 Editor Page 51 SAMMY 8 ARITHMETIC EXPRESSION EVALUATOR MOD COBIAN T 0821 QE IN 08 z L 0551 128 4I A S MO C TNC 62 4 T 1 123 9c OL Wd e LUI e Lm e LUI er Lu eL U LUI AX IN MEN d 9458 AZIIVILINI
273. ress and 5 00 to Ron Santore MUMPS IS SPREADING Oct 18 1976 The MUMPS computer language is used for medical and business applications number institutions that use MUMPS is growing by about 80 per year concise pocket guide to MUMPS has been written to facilitate use of this text handling and data management language The guide includes descriptions of all the commands opera tors functions and all other capabilities of Standard MUMPS and gives many examples of their use The Standard was developed from dozen MUMPS dialects under the sponsorship of the National Bureau of Standards and the Department of Health Education and Welfare Single copies of the guide are available at no charge from Dr Joan Zimmerman MUMPS Users Group 700 S Euclid Ave St Louis MO 63110 Page 61 PROGRAM REPOSITORY TAPE DUPLICATION FACILITY A PUBLIC DOMAIN ALTERNATIVE TO MANUFACTURERS USER GROUPS ERRATA FOR PREVIOUS CCC INFORMATION The CCC Program Repository currently furnishes programs on roll paper tape fan fold as was previously announced The Community Computer Center CCC will act as a reposi tory for program tapes both source tapes and binary tapes one wishing to contribute programs to the public domain may do so by forwarding appropriate paper tapes to In particular if you are hesitant about submitting a program for publication in Dr D
274. roduct evaluations published in DDJ will be accepted as being un biased and accurate If we publish a favorable evaluation of a product it should be of significant value to that manufacturer In particular we herewith grant explicit permission to any manufacturer to reprint such evalua tions from Dr Dobb s Journal either in their entirety or a paragraph ata time Such reprinting may be done without further permission from DDJ and without any compensation whatsoever being paid to Dr Dobb s other than possession of the products that were tested Publication of less than a paragraph at a time minimum will require explicit permission from DDJ We explicitly prohibit reprinting out of context portions of such a copyrighted evaluation when it fails to accurately reflect the results of the evaluation We also hope to in the not too distant future develop an ob jective rating procedure for home computing products Once devel oped we will invent and trademark DDJ evaluation logo that in cludes the ratings Manufacturers may then mark their products as Grade A Tested in Dr Dobb s Kitchen or some such thing We have already spoken with several manufacturers outlining our plans Reception has varied from an active interest in immediately participating to a total rejection of the proposal We will report the details whenever it seems fair and appropriate to do so UNRESPONSIVENESS FROM ADVANCED MICRO ELECT
275. roup to be repeated one or more times until the lt condition gt becomes true non zero example of the use of the DO and UNTIL statements we presen program that prints the prime 10 1 PRINT 2 20 3 30 40 J 1 2 2 50 60 N N 2 70 UNTIL OR N gt J 80 IF N gt J PRINT 90 1 1 2 100 UNTIL 0 DO loops may be nested up to eight levels de the same manner if an overflow occurs as it does flow NIBL also dins an error if an UNTIL bot f a previous A single DO loop may have more than one statement as a terminator For it on T c em n d Page 36 DO and transfer to some appropriate line it could manner X umber Neither the DO n nor the UNTIL statement may be executed in edit The NIBL FOR statement is virtually identical to that in standard 25 ntly it is not explained in great detail here BASICs both positive and negative STEPs are allowed the FOR stat ement and STEP of 1 is assumed if the STEP portion of the statement i 15 cm itted A FOR loop is terminated by a NEXT lt vari ble gt statement and the variable gt must be the same as that referred to in the FOR E at the beginning of the loop loops may be nested four levels deep NIBL reports an error if xceeded or if a NEXT statement occurs without a previous ment As with the DO and
276. s 3 The CY carry and AC auxiliary carry flags are now properly set for both adds and subtract operations 4 The DAA decimal adjust opera tion now works properly following either an add or a subtract using flag bit 5 5 THE AC FLAG IS NO LONGER CLEARED BY LOGICAL OPERATIONS Additionally Bruce mentioned that there are also some minor hardware differences having to do with data on the same bus not being present at the same states as with the Intel chip I wonder what problems this might cause When I heard all of this I informed Bruce that the fact that the AC flag is not cleared means that software written for an Intel chip would not work on the NEC chip For example MVI ADD this forces AC to be set this is supposed to clear AC and CY DAA this should result in 00 but produced 06 with the NEC chip At this point Bruce agreed with me since he has written similar code that would not function properly with the NEC chip Bruce has informed that this incompatibility was not known previously Well in the span of the last three days I have uncovered 8080A compatible chip that is for all purposes as incom patible to the Intel 80804A as is the Z 80 programs can be written that will run properly on the Intel 8080A but will run properly on the NEC 80804 and vice versa I am now waiting for the Intel 8080A IMSAI will be ship ping shortly What really disturbs me
277. search the disk directory for files TYPE type the contents of a file at the console REN rename a specific file to a different name ERA erase a given file or set of files from the disk SAVE save memory on the disk for later reload or test The CCP also supports automatic program load and execution of CP M system programs as well as user programs PIP the CP M Peripheral Interchange Program allows transfer of files between various devices and disk files as well as concatenation of files on the diskettes SUBMIT the batch processing features of CP M allow the operator to prepare command files with parametric substitution which can be subsequently automatically executed if typed by the operator ED the CP M editor allows preparation of programs and text using powerful context editing and display commands ASM the CP M assembler is compatible with both the standard Intel assembler and Processor Technology assembly language DDT the CP M Debugging Tool is a monitor which allows sy mbolic program tracing debugging and testing LOAD the loader prepared a memory image file from Intel format hex file ready for direct execution under CP M DUMP the dump utility prints the contents of a CP M file in hexadecimal at the user s console SYSGEN the system generation utility prints the contents of a CP M system diskettes from existing diskettes for back up purposes The CP M operating system is distributed
278. stopped at that point since business is taking me out of town too much to concentrate on a solution My observations The interface is sensitive and error prone assume this is the price one pays for the high speed scope is nearly essential to correct problems This is true for all computer applications actually but this was the first of six boards l ve assembled that required more than a little initial prodding Don is good to his customers have no qualms about calling him if can t get the error problem corrected but want to put in my own best efforts before bothering him further An article DDJ mentioned that the user has to figure out that a start byte is essential True This can be a real problem if you don t use Don s programs because that s the only place mention is made of it In short have mixed emotions appreciate the potential speed Of the interface and Don s integrity in backing his product But would have been much farther along in getting a system running with a slower but more fool proof literally unit Right now I m still using console switches since can t use the keyboard effectively without reloadable software Sincerely Jim Wilson San Diego CA Dear Jim Oct 14 1976 A P S to a letter wrote a few days ago about my experiences with the Tarbell cassette interface unit It is now up and running apparently reliably My solution finally was
279. t in the chips is a classic of good manual writing The VDM board I built worked perfectly The Poly video board suffers from drawing current at the hairy edge of what the regulator can handle What I like about it is the relatively fine graphics it allows a 128 by 48 bit resolution The graphics can be mixed with alphanumerics in any arbitrary way It is a good use of that eighth bit that the ASCII code doesn t require Use of the Motorola MCM6571AL character generator gives me upper and lower case Roman characters as well as the Greek alphabet and a gaggle of other special characters including the entire official ASCII set the square root symbol etc I don t know enough to write articles like this without some help from my friends so thanks to Doug Wyatt my constant colleague on microcomputers Kent Strother for the cardboard craftsmanship Steve Calebotta for finding the problem with the missing WAIT and out editor Jim Warren for the phrase Hidden Gotchas that graces these articles who plagerized it from Dave Wyland at Ratheon If you find any hidden or just plain hanging out gotchas send them to me check them out and include them in a future article You ll get credit in the mag and as much moola as I get Zilch Ahhh but such glory and fame you get PRAISE FOR RASKIN amp SUGGESTIONS FOR DDJ Dear Jim Sept 25 1976 just read the very informative articles by Jef Raskin A Bit of Wheat Amongst th
280. table I O routines to interface the Assembler and Editor with any system The price Motorola charges for the Assembler and Editor is a little high for home use though Sincerely John P Byrns 1953 Governors Hoffman Estates IL 60195 Nov Dec 1976 3rd Prize Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 Tiny BASIC Game Contest OPPORTUNITY TO WIN A MICROCOMPUTER ASSOCIATES VIDEO TERMINAL ETC VT 200 terminal with resident TINY BASIC and JOLT assembler 2nd Prize VT 100 terminal JOLT 4K system kit 4th 10th Prizes JOLT CPU kits 1st Prize CONTEST RULES 1 All entries must be postmarked by April 1 1977 2 All entries must be submitted as follows a JOLT TINY BASIC source program as paper tape with CR LF and four 4 rubout characters terminating each source state ment b Running instructions game description and at least one exam ple of game play all in typewritten form on 8 x 11 white bond suitable for printing 3 All entries must run on an MAI VT 200 equipped with 4 096 bytes of RAM storage OR on a JOLT 4K system equipped with TINY BASIC All entries must run correctly and be sufficiently well documented to enable a non technical person to enter run and play the game as directed by the running instructions Entries which for any reason do not run or are not sufficiently well documented to enable easy entry and pla
281. te a report of their findings good and bad Particular attention will be given to reporting the following aspects does the unit perform as advertised Are there inadequacies that are unmentioned by the manufacturer How does the unit compare to its competitors How does the unit compare against perfection When comparing against perfection the report will explicitly point out that no one else s product meets those standards either Are there any little hidden gotchas In all cases as much of the test data as possible will be provided in the article from which the reader will be able to judge the unit for him self Any personal judgements made by the evaluator will be accom panied by the hard data he used in reaching that opinion and or will include an explicit statement of the evaluator s personal bias in the matter Once completed the report will be submitted to the manufacturer of the product for their comments They will have the opportunity to offer corrections of fact the factual character will be judged by the evaluators the Editor If they wish they may also provide a manufacturer s response which if concise and pertinent the judgement of the Editor will be published along with the evaluation Though the manufacturers will have the right to suggest corrections and to provide a response article they will have no editorial control over the report After giving the manufacturer several weeks to a m
282. ted reproduction rights address or line number or label rather than by page number may not be reprinted or copied without permission from People s DRAWINGS amp SCHEMATICS Please draw them sig Computer Company or the larger than the size you expect them to be when is included The should indicate that the material was they are published Take your time and make them as neat reprinted from Dr Dobb s Journal of Computer Calisthenics amp as possible We do not have the staff to retouch or re draw Orthodontia Box E Menlo Park CA 94025 illustrations Use a black ink white paper LETTERS FOR PUBLICATION We are always inter Melee EA ee ested in hearing your praise complaints opinions daydreams Menlo Park Published 10 times per year excluding July amp In letters of opinion for publication however please back up any opinions that you present with as much factual infor U S Subscriptions Back Issues to U S mation as possible i nd 50 We quite interested publishing well founded 21 for one year for vol NS responsible evaluations and critiques of anything concerning first class airmail to 5 l hobbyist hardware or software home computers or compu anywhere i in U S Vol No mE for 1 50 ters and people Foreign Via Air Mail Wemay withh
283. the JOSS and CAL flavor This leads me to wonder why Dr Dobb s is not looking into trying to get CAL interpreters or compilers started Joseph F Gaffney 321 Lyndhurst Ave Lyndhurst NJ 07071 Great idea How bout sending us a CAL interpreter for some micro in the next month or two Editor ee HORRORS WE LEFT SOME ADDRESSES OUT OF ARTICLES IN PREVIOUS ISSUES Here they are Itty Bitty Computers amp Tom Pittman Box 23189 San Jose CA 95153 408 578 4944 October issue 6800 and 6502 Tiny BASIC for 5 Per Sci 4087 Glenoe Ave Marina del Rey CA 90291 213 822 7545 August issue Dual drive floppy disc drive for 1K with fast voice coil head positioner Page 33 complete documentati by Mark Alexander National Semiconductor Corp Nov 29 1976 Introduction NIBL National Industrial Basic Language is a machine oriented programming language for the SC MP It is a lan guage similar to Tiny BASIC but it also has some unique features Many of these features such as a genuinely useful control structure the PASCAL influenced DO UNTIL and the indirect operator have been added to the language to allow NIBL to be nearly as flexible as machine language in such applications as medium speed process control By using NIBL one trades the high execution speed and low memory consumption of machine language for some very tangible advantages Program readability modifiability and reliability wh
284. the desired pro duct In the case of products sold only by mail a unit will be ordered when it arrives it will be paid for by returning the voucher with the invoice If the desired unit is available through Bay Area retailers our buyer will in pick out a unit and when it comes time to pay for the item will use the voucher to for it The voucher of course will guarantee to immediately replace the unit or reimburse the dealer In this way we can be reasonably assured of obtaining units for testing that have not been especially tuned they will be standard consumer products The product thus obtained will then be evaluated in whatever manner is most appropriate and in whatever ways are possible with the test gear available at the time In the case of kits where such independent examinations are perhaps most badly needed a team member may construct the kit or we may well have some interested novice put the kit together under our observation In either case careful notes will be kept concerning all aspects of the unit and its evaluation Subsystems that are advertised as being plug compatible with some particular interface structure will be tested for such compatability Major components will be tested against manufacturer s advertising claims and the rated capacities given in the documentation Other testing will be conducted where appropriate When the testing is completed the evaluator s will wri
285. the extensible language I mentioned my system is up and I want to imple ment TINY I renege the promise to describe FORTH as Interface has had a good article on it I will act as a clearinghouse to standardize TINY HI implementations complete language standard as detailed below should be out by 15 January Implementors please send 3 to cover copying costs and first class postage This will be the last revision in DDJ but I believe I ve finalized what the user sees DDJ will get a free copy of those standards for existing otherwise I would have to invent it and couldn t do nearly as well I hope to be HI in 77 Laissez faire Martin Buchanan 703 893 7978 2040 Lord Fairfax Rd Vienna 22180 ELEMENTS OF PROGRAMMING LANGUAGE STANDARDS 1 A complete semantic and syntactic description mostly accomplished This includes little things like the sig nificance of blanks levels of nesting algorithms used for real or mixed arithmetic in languages with real numbers and identification of lexical tokens 2 Storage formats for source programs object programs and data both in main memory or on mass storage units 3 Conventions for the naming and semantics of global func tions or variables which handle hardware differences DE VICE MAINSIZE etc 4 Standard names and algorithms fer common library func tions All error messages when they are invoked and their meaning Text editing functions duri
286. tion to these comments We look forward to your reply As of Dec 2 1977 we have received no reply JCW Page 4 kkkKkkKkkkkkkkkkkkkkkkkkkkkkkkkk k k k kk k k k k k k lee alee e RARO EN CURRO te te te de te 2 te te 2 9 Yr te He NOR OE NR OE NOR NL NO NOR BEWARE THE DOLLAR GOBBLING INFLATION INFECTION IS ABOUT TO AFFLICT ONE OF YOUR LOVED ONES Subscription Rates for Dr Dobb s Journal Increase January lst Almost all of our subscription rates are going up as of the start of 1977 This means that our basic sub scription rate will now be as much as Byte s And as always a year s subscription is for 10 issues we pub lish single issues for June July and Nov had to either do this and remain responsible only to our readers or begin accepting paid adver tising along with its strong though perhaps subtle in centive to the advertisers happy Considering that we have been purusing an active advo cacy role ever since we started and considering that we are significantly expanding that activity see edi torial on product and software testing and evaluation plans we felt that the subscription increase was the preferable alternative We are still awaiting the results of the question concerning whether or not we should carry paid advertising a question posed in the last several subscription forms and in the subscription re newal notices
287. tput port 2 Load the program and run it This should clear the screen of random characters within 10 seconds 3 Use the front panel to load your original population directly into memory 2 in hex 4 Run the program Every 2 seconds a new genera tion will appear Marvin R Winzenread KIM 1 OWNERS PLEASE THINK SMALL Now that you have your KIM 1 attached to the power supply and have successfully added 2 3 and gotten 5 would you like something else to do Would you like to use the KIM 1 as TIMER accurate to a millisecond CLOCK displaying hours minutes and seconds ADDING MACHINE with six digit add subtract for the old checkbook a DECIMAL HEX HEX DECIMAL Converter a DRUNK TEST a simple GUESS THE NUMBER game for the kiddies the MASTERMIND game for you the SHOOTING STARS puzzle a series of REACTION TIME tests a MOVING MESSAGES DISPLAY with Alphabetic Characters plus other demos tests and games Would you appreciate having all of these capabilities in an integrated software package that includes high level lan guage which will let you create your own programs MicroCosmos announces PLEASE a package which con tains all of the above features and runs on the basic KIM 1 no additional memory TTY or peripherals required 6 PLEASE distributed plus a plete SOURCE LISTINGS full OPERA
288. trical engineering from Stanford Final responsibility for this program will rest with the Editor of Dr Dobb s Journal Jim Warren Aside from editing the Journal currently Jim is working as an independent consultant specializing Nov Dec 1976 SOFTWARE EVAL NG TO BECOME REGULAR iei done Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 in small computers in highly interactive environments He is also in dissertation mode in a Ph D program through Stanford s Electrical Engineering Department He has worked as a computer consultant for most of a decade with several years of programming experience pre ceeding that Prior to entering the computer field he taught mathe matics for about ten years including Chairing the Mathematics Depart ment at the College of Notre Dame Belmont He holds a B S 1959 and M A 1964 in mathematics and two M S degrees one in Medi cal Information Science and the other in Computer Engineering HOW WILL THE EVALUATIONS BE DONE We will contact producers of products being marketed to the com puter hobbyist community and encourage them to participate in this testing and evaluation program If they choose to do so this is what will happen They will send us a purchase letter a voucher with which we can purchase an item to be tested We will then have someone not known be associated with or obtain
289. ua Max 10 ua Max VIN Vss 0 45V 13 AC characteristics are the same except as noted See data sheet for details I8080A uPD8080A 001 output delay from 01 low SYNC DBIN 160ns Max tps2 data setup time to 02 during DBIN 150 ns Min tRSO1 ready setup time to 01 high 240ns Min INT up time During 02 for During 02 for all modes all modes cept HALT mode During 01 in HALT mode 14 All instructions are executed in the same sequence except XTHL The uPD8080A first reads the top of the stack then writes the contents of the L register into the top of the stack next it reads the data at the stack pointer 1 and then writes the contents of the H register into the stack pointer 1 The 18080 reads the stack twice then writes the stack twice 15 Data on Data Bus During T4 and T5 I8080A The contents of the internal bus during 4 and T5 are available at the data bus uPD8080A Data Bus 15 the high impedence state during 4 and T5 16 HOLD Operation while DAD I8080A Same timing HOLD in Write mode i e HLDA appears from 01 of the state following and Address Data Bus goes into floating state from 02 Nov Dec 1976 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 of the state following T3 uPD8080A Same timing as HOLD in Read mode i e HLDA appears from T3 01 and Address Data Bus goes into floating state from T 3 02 NEC RESPONDS Dea
290. ut of UCLA s Computer Science Department has recently released a 231 page tech report by R Fenchel entitled System Control Processor for a Microcomputer Network It discusses the design of a control processor for such a network to be used as an education tool in a computer science lab You can probably obtain a copy without cost while they last by writing the CS Department in the School of Engineering amp Applied Science UCLA Los Angeles CA 90024 Are there any of our readers who don t know about Byte magazine 70 Main St Peterborough NH 03458 12 year Nov Dec 1976 Why With Those Single Purpose Cassette Interfaces Steve Moore just phoned in a hot idea Why not use a data communications modem or acoustic coupler to read from and write to audio cassettes Here are the advantages By doing so suddenly all of the recording standards problems disappear The standards for couplers and modems have been accepted and in use for some years and are well debugged Why waste our time haggling over which homegrown standard to adopt when we can steal the standards that have been proven in industrial use for well over a decade Couplers and modems are specifically designed to inter face to a byte oriented digital device Plenty of them are around that are already built to plug into a 20 mA current loop or RS 232 standard interface It should be a simple matter to modify master slave circuitry se
291. veral people have asked us if TSC is OK to dc with stat ing that they were unable to locate a phone number or street address We wish to emphatically state that they are real they are reputable and they do have a phone 317 742 7509 Nov Dec 1976 UPGRADED CP M FLOPPY DISC OPERATING SYSTEM NOW AVAILABLE CP M is a disk operating system designed for diskette based computer systems which use the Intel 8080 microcomputer The CP M software package is now being offered to the small computer user community Previously available only to OEM s CP M has been in exist ence for over two years in various manufacturers products and thus has had extensive field testing CP M functions in clude file management with console interaction batch pro cessing and program loading facilities The overall operation of CP M closely resembles the standard features of the DEC System 10 In particular CP M components include BDOS the CP M Basic Disk Operating System supports a named file system with up to 64 distinct files on each diskette Files storage is dynamically allocated and released as necessary with algorithms for optimal read write head movement Any file can contain as few as zero bytes and up to 250K bytes depending upon the requirements of the user program Sequential and random access are supported CCP the Console Command Processor interacts with the program mer s console providing the basic commands DIR selectively
292. which is located in the upper half of Mikbug and is probably not worth finding at this point in time The following entry points have been tested and appear to work in programs that reference them MIKBUG MINIBUG II ROUTINE ADDRESS ADDRESS OUTCH E1D1 E108 INCH E1AC E11F OUTHL E067 EOFA OUTHR E06B EOFE OUTS 180 07 130 CONTRL EOE3 E040 INHEX 070 2047 2009 OUT4HS EOC8 E17C OUT2HS EOCA E17E MINIBUG HARDWARE CHANGES REQUIRED General Since Minibug is a IK rom must be made active instead of being grounded CS and CS arevactive low instead of active high as was Mikbug This requires inverting the logic pins 10 11 SWTPc i Isolate IC2 pin 15 A_ from the large ground buss by making a cut around the plated through that now connects 15 to ground Do not drill out the through Use a miniature circular saw a minia ture fly cutter or an Exacto knife Now connect the isolated pad 1 2 15 to the pad immediately to the right which comes from 13 If a semi permanent change is anticipated cut the lines coming from 2 10 and 11 just past the first bend Connect a jumper from 16 8 to 2 10 CSa Connect a jumper from 1C13 4 to IC2 11 CS If plug in interchangeability is desired don t make the last two cuts but add two inverters The inverters may be made and installed between a 24 pin IC plug and a 24 pin socket available from James Electronics Se
293. xp fag Variable I C f 1 CY EF 2 Decimal Number Decimal Digit Decimal Digit 1 717 2 f 27953 Hex Number Decimal Digit Hex Digit Hex Digit A B E Print list Print Item Print Item String Rel exp Factor String Almost Any Character NOTE Spaces are not usually significant NIBL programs with the following exceptions spaces cannot appear within key words such as THEN or UNTIL or within constants Also a variable such as A or Z must be followed immediately by a non alphabetic character to distinguish it from a key word Page 37 1 TABLE 2 Grammar NIBL error messages Error messages are of the form EEEE ERROR AT LN where EEEE is of the error codes below and L N is the number of of the line AREA CHAR DI VO END FOR NEST NEXT NOGO RTRN SNTX STMT UNTL VALU interpreter 2000 which the error was encountered No more room left for program in current page Character after logical end of statement Division by zero No ending quote on string FOR without NEXT Nesting limit exceeded in expression FOR s GOSUBs etc NEXT without FOR No line number corresponding to GOTO or GOSUB RETURN without previous G
294. y Also did you really need two pages for the ad newspaper was Dr Dobb s mama Would you have us ignore our ma Anyway it s a product we think is well worth the attention of hobbyists and as such we published details about it in all 1 think Dr Dobb s is great but it can be better We agree Very truly yours Demrow 18 11 Linda Andover 01810 performing since had very little experience with computers was worried about Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 SWTPC KEYBOARD IMPROVEMENTS Dear Jim Here s a plug for the latest in keyboards from SWTPC For those of us whose only experience with SWTPC key boards is with the original ones the bad memories may make one a bit leery about giving them another chance The new KBD 5 has much better contacts than before and it uses the 2376 keyboard encoder which makes it a cinch to redefine keys At 50 plus another 10 for a UART to make it standard serial RS 232 this is the best possible buy I can imagine Bob Powell 22 Bunker Hill Run E Brunswick NJ 09916 A WELL DESERVED RAVE REVIEW FOR IHE APPLE COMPUTER SYSTEM amp FACTORY RESPONSIVENESS Editor Journal of Dentistry Oct 11 1976 Dear Jim Last July found out about the miracles the silicon engineers were was immediately hooked on home computing But all the delays that
295. y increase execution speed and to extend the capabilities of the language itself The program was developed on the PACE Disk Operating System and was assembled by a PACE resident cross assembler for the SC MP System Requirements The NIBL interpreter is intended to be a ROM resident program in the first 4K of the SC MP address space although it will run just as well in RAM The interpreter requires at least 2K bytes of RAM starting at address 1000 base 16 of which the interpreter uses nearly 300 bytes for stacks variables etc leaving the rest for the user s pro Page 34 Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Box E Menlo Park CA 94025 amp annotated source code gram Another 2K bytes of memory may be added to fill up this 4K page forming what is hereafter referred to as Page 1 The SC MP architecture forces memory to be split into pages of 4 bytes each therefore NIBL allows seven such pages to be used for storing programs NIBL programs in the seven pages are edited sepa rately but may be linked together during program execution by special NIBL statements described below The first page mentioned above must be RAM since the interpreter uses part of it as temporary storage the part used to store programs starts at location 111E base 16 The other six pages each of which starts at location 000 base 16 where n 15 the page number may either RAM or ROM 2 isa spec
296. y will be DISQUALIFIED All decisions by MAI with respect to acceptance disqualification and winners will be final MAI employees and their families are not eligible to enter This contest void where prohibited by law All entries become the property of MAI and will not be returned Contest winners will be notified by registered later than 60 days from contest closing date of April 1 1977 Contest Win ners will also be published in the Microcomputer Digest and the JOLT Users Newsletter Contest Winners may also be obtained directly by sending a stamped self addressed envelope to MAI no earlier than May 1 1977 and no later than July 1 1977 110 The JOLT TINY BASIC language summary is available at partici pating computer stores The language summary may also be ob tained by sending 1 00 cash check or money order for postage and handling to MAI TINY BASIC CONTEST P O Box 1167 Cupertino CA 95014 A paper tape form of JOLT TINY BASIC complete with documentation is available by sending 5 00 cash check or money order to ITTY BITTY Computers P O Box 23189 Jose AS 591 lt 5 WUMPUS Hi I have written a machine language version of Wumpus by Greg Yob It s a great game The 8080 program is under and is self contained It requires user PROM sub routines etc Anyway if anyone wants a listing just send 1957 Huasna Dr San Luis Obispo CA 94301 your name add
Download Pdf Manuals
Related Search
Related Contents
Descripción XP Analog LCP es una fórmula infantil exenta de Sharp VL-Z1U Camcorder User Manual Newstar NS231 KVM switch Simplicity 2690479 Lawn Mower User Manual Manual de Instruções Istruzioni per l`uso Este calefactor infrarrojo está fabricado con una función especial de 1.1 Nota Editorial.pmd - Pastos y Forrajes Copyright © All rights reserved.