Home
IPSO FACTO ISSUE #6
Contents
1. gt 5 22 AE FERE 23 1 11507 01212100 00 50010060 10 010008 147 065 5 Whee GIy ou 2 23 es 1 o 1 9 77 70 8 1 12177 44 610191 un d 101 a j 10 34 0 4 ase cta 2 53638 02500122 82008008 un iba a 23M view fu E s 22 23 24 MEE 4 02100208 ni CIHO CSRI 600600 GEELEN U 2G _ 2 9 CDS e pg 38000883 TIFE FAET 5654 MV GSIS 010020 4 000000 010131019191013 gt e ee O nome ama em ee ev 25 9 9 I000 420200970014 SAV VTE 111 0 RAPER seg 1 T m 58 ME 5 Wl 11111 EHUN N 1151 1 141 0 11 HHHHT 111011 URE REE RES bees hE
2. 40 GLO RD t IF 80 00 SKIP LOAD 8 AND 9 82 RGTEDG 4 WORDS BECAUSE A WORD IS AT BOTTOM EDGE INC RD LDN RD LOAD uci NORD RSHL DEC RD LDN RD LOAD CA 8 WORD RSHL PUT DF LSB SEP R5 CALL SUB 5 5 5 PHI R7 STORE SHIFTED 8 WORD WITH BIT FROM FROM a 9 WORD BR RGTEDG 4 BRANCH AROUND CODE FOR RIGHT EDGE NORD SHIFT OF 158 RGTO108 LDN RA 5 LOAD WORD BEGIN SHIFT 0 BIT OF RIGHT EDGE NORD SHL TO MAKE 6 TOTAL SHIFTS MOVE 01 BIT TO 40 SEP R5 CALL 508 5 45 LEFT SHIFTS PHI 86 GHI RC 5 IF RC 1a0 THEN SKIP LOAD OF 8 WORD BZ 4 BECAUSE IS AT EDGE 7 0 0 LDN RC FETCH 8 WORD SHL 6 LEFT SHIFTS BIT 40 SEP R5 PLO R7 STORE SHIFTED A 8 WORD IN R7 0 TOPO50 GLO RD IF RD 1 0 THEN SKIP LOAD OF 8 WORD BZ RGTEDG 4 BECAUSE A NORD IS AT BOTTOM EDGE LEAVES 7 1 0 LDN RD LOAD A 8 WORD 581 6 4 LEFT SHIFTS 01 TO 40 SEP R5 PHI R7 STORE SHIFTED 0 WORD SEP R3 2 CYCLE 5 RGIEDG SEP R4 CALL SUB 40 COUNT 175 AMONG 8 NEIGHBORS OF 46 POSITION WRITE 0081 IN GENERATION 8 ADDRESS INCREMENTING AND 4 PAGE ALTBRNATION CONTROL 8 SEP R3 2 CYCLE wSPARE SEP R3 2 1 5 5 2 5 SEP 3 8 2 GLO RA 4 IF LAST WO
3. 76 SHRC ROTATE RIGHT 0068 59 SIR R9 4 RESTORE BYTE 0066 27 DEC 87 ONE LESS BYTE 0060 6 4 READ MOUSE SPEED FROM KEYBOARD 6 PLO RE AND SAVE IN TIME REGISTER 006 2E DEC RE t DELAY LOOP 0070 0071 BNZ DELAY 0073 7 R7 ALL BYTES SHIFTED 0074 68 BNZ 968 0076 98 Re 1 SHIFT FIRST BYTE ONLINE 76 SHRC 0078 SA STR RA STORE 0079 37 7D 84 SKIP 4 CONTINUE SHIFTING 0078 30 SE BR UNTIL 0070 F 03 SKIP LDI 03 JEN E 007F PLO RF 0080 LON RF TEST IF MOUSE 0081 02 602 4 I CAUGHT 0085 FB 01 LDI 401 SCORE 1 FOR YOU 0087 50 STR RD 0088 80 GLO RD 0089 FC 08 ADI 908 0088 AD PLO RD 009 F8 20 LDI 20 SET BUZZER AB PLO RB FREQUENCY 0 30 9B BR 812259 0091 01 LDI 4 SCORE 1 FOR THE MOUSE 0093 5 STR RC 0094 8 GLO RC 0095 08 ADI 268 0097 PLO RC 0098 F8 FF LDI SET BUZZER AB PLO RB FREQUENCY Se 0098 BUZZER 550 009C 88 GLO RB we 0090 01 BUZONa SMI 001 DO9F 9D BNZ BUZON TA REQ DOA2 88 RB DOA3 FF BUZOFFs SMI 901 OOAS BNZ BUZOFF 37 98 B4 BUZZER 1 BUZZ WHILE IM IS ON DOA9 F8 FD LDI 1 PLO RF LDA RF OOAD FB Ol XRI DOAF 32 88 BZ HALT OF LDN RF 0082 Oi XRI 901 0086 LOOP LOOP B
4. 1 5 3 Ky Ww 24222222 Soi lt lt 444 obi s To RAM ADDR f sg 3 T Bhs gt 84567211154 485 14 0 11 11 _ 7094 9240 20 5 4 4 25 9c Do 3 E D2 13 pata 23 245 D4 13 D D cct b ae 27 _ 1 27 7111 4 Buss List wor i UI 791504 4o 2 2 U23 21602 1 2 2032513 0 4029 7 4029 U24 2 402 V3 4030 2029 WE 21L02 UE Jol Ud 74 65 40 3 U 21 LO2 UI 4016 46 WB Fors Uzo 21202 1 Z27 4023 U6 4o 4 2 402 2 74 92 U23 2072 7 4002 5 2 402 Uz2 40 4 1 27 40 2 U8 4049 Ci luke Ki Ka Rl LIKA 22 amp 2 IK in 89 2 thoy or l3 100 pf K3 220n 9 T 22K C4 110 ef f 4700 CS pf 470 10K 06 HO pF Rb Ika Rid Note US 15 AN UNUSED JU AKE WRAP Mi Dt 14148 4 OMH CRYSTAL 22 N4148 23 N 414 2 QI 242222 DL 2 48 tV 6 ConVeteTionwis FOLLOWS 4 7 1 V3 V6 U7 V9 012 013 U22 26 027 6 8 V4 UB Vio VI7 25 ULB 29 6 4D 9
5. 15 2D 76 F8 2F Al 1 F8 8 A2 21 06 F8 07 FE 81 01 53 36 75 95 30 D A5 30 9 amp 29 89 58 73 2C dc 74 F8 2 F8 Fe 54 p FE F8 HF 32 D F8 D 30 73 AB 00 ERRATTA A ROM Out of RAM Issue 4 pg 25 The Editor s Note at the end ef the article is incorrect The memory chips will not drive the data buss if the CPU writes to the memory block when it is write protected Cassettes and Computers Issue 3 pg 23 28 In Figure 2 on pg 26 the value of R13 is unspecified It is 22 Kohms Also despite what the accompanying article says the KC Interface as shown has O True Data Input and Output That is Data In Tone Data Out TO 2100 Hz 1 1200 1 This arrangement is operable until you want to exchange recorded tapes with someone else who uses l1 True Data in his KC Interface Then you will find the tones on the are wrong To obtain 1 data in and out do 2 things 1 Take DATA OUT from pin 2 instead of pin 1 of 1013 2 Add an inverter 4049 typical in the DATA IN line before IC2A to invert the data input KC Interface Test Routine Issue 3 pg 29 30 If you do not change the data input and output as shown above then make the following changes to the Test Software LOCATION OLD INST NEW INST lA REQ 7 SEQ 7B 28 SEQ 7B REQ 7 If you do make the hardware changes shown above then change the follow
6. 2 53 7B SEQ 54 30 47 BR PLAY3 56 12 PLAY5 INC R2 Point to next song note 57 21 DEC Rl 58 81 GLO 59 37 00 B4 START Button pushed Yes 5B 32 00 BZ START Tune finished Yes 5D 30 43 BR PLAYL No Continue playing tune 5F SONG 11 17 song notes go here 70 80 80 1 second delay constant A DIFFERENT CASSETTE I O ROUTINE Robert Edwards Oak Ridge TN Dear Tom Several months ago I mentioned to you that I was working on 1802 cassette interfaces and that I was not happy with McCormick s 2MHz version from Dr Dobb s Journal I have investigated the problem to some extent and I was aided considerably by your comments I would ppreciate your consideration of the attached 1 79 MHz cassette rou tines The memory to cassette routine starts at zero the cassette to memory starts at fifty hex The routines are set up for a one page memory system so that they read or write the 112 remaining bytes of the 256 byte memory I used McCormick s one transistor interface between the computer and the recorder except that the input to the recorder was attenuated so I could use the MIC input Also I drove the recorder with not Q rather than Q as he did have used this routine with great success with two cheap recorders One is a 1961 Zenith and the other is a hand held Panasonic dictation recorder Each will read the other s tapes The theory of the cassette to memory routine deserves a little expl
7. 42 6C 64 FA F 37 hA 53 F8 A1 3 Fh 73 58 FG 7C 00 30 53 22 82 19 F8 87 1 2 78 66 51 64 37 6A 22 82 E 7h 30 DA FB BA 1 51 F FE 73 s 73 26 86 75 34 73 00 00 90 dd 00 02 10 Hexadecimal Calculator Twelve digit add subtract multiply and divide can be performed Pressing the run key clears the accumulator To enter a number requires six presses of the input key followed by the operation code 20 for add 01 for subtract 2 for multiply and any other number for divide a press of the input key and six more presses of the input key for the result Division is performed with the remainder truncated There is no overflow indicator 256 bytes F2 F8 90 OF 5 BO FB C2 7 F8 D AS 22 DY F8 78 F8 6C AD 6 amp 4 21 81 3A 1C A1 F3 A2 34 37 46 3d 2D Dh D5 3B 56 D F2 F8 81 F2 AE 5 73 28 21 81 FB 00 1 D6 FE 86 59 D6 F2 21 36 77 11 F8 06 9 4G 2 F8 00 06 9 F8 F9 A2 F 76 F8 d5 9 hd 2 FO FE F9 A2 F8 8D 3A 3F D 36 64 21 81 F2 2D 8D 3A 6B F8 6 62 38 2D D5 D3 33 89 30 73 d3 FC 73 29 89 52 60 29 89 73 F 75 73 AF D 5 9 L A2 hd AC dc 29 89 34 CC 05 A9 F5 73 2B 85 75 73 29 89 36 D6 00 00 d 99 dd 00 09 77 90 09 09 00 00 02 90 00 1 1C 37 15 FE 7A F8 34
8. 8 A 8 words so that the particular bit being tested with its neighbours is shifted to occupy the 40 bit position The shifted words are stored in R6 1 R7 0 and R7 1 For the 80 and Ol bits single neighbour bits from RAM words to the left and right respectively of the A word in Fig 1 are brought in via DF as part of this process Finally all three code segments call a single subroutine SUB 40 which applies the rules of LIFE to the 40 bit in R6 1 and its neighbours in R7 0 and R7 1 as described under 3 above SUB 40 then writes or 1 in the actual bit position of the A word on the next generation display page 1 knows where to write by using the A alternate word address in RF and a pointer to the actual tested bit in RE O It knows what to write by testing R6 0 which it used to count the number of l s among the 8 neighbour bits The remaining code consists of rather straightforward and obvious controls to increment and reset the A word address after all bits in a word have been tested and to swap display pages when the pattern for a new generation has been completely written There is also a simple subroutine which merely performs 5 left shifts SUB 5 1 is used in testing the Ol bit The handling of edge words can be done several ways One published BASIC version of LIFE simply stops the program whenever the rules would call for a live cell outside the displayed area In this program zeros are entered in th
9. even if the keyboard and interrupt routines are not in ROM In order to understand how the heart of the program works that part that counts the number of live neighbours which each cell has and applies the rules of LIFE refer first to Fig 1 This is a map of 9 words in the display refresh page of RAM with their addresses relative to the center word shown They are drawn the same way that the 1861 draws their contents on the CRT in ascending address order words are painted left to right in 8 rows with the first row across the top of the screen In the des cription and listing the word in which bits cells are currently being checked is called the A word The A word address is stored in RA The eight neighbour words shown in Fig l are obviously those having one or more neighbour bits of bits in the A word and thus involved in testing that word These words are referred to by their relative addresses e g the At9 word not to be confused with the A 9 address sometimes called the address of the 4 9 word Figure 2 also drawn the same way the 1861 draws on the CRT with the MSB on the left shows the designation used for individual bits in each 8 bit word i e the hex value of a word in which only that bit is a 1 This notation is convenient and is used throughout the listing it corresponds to the hex value of a pointer or mask which picks out the single bit which it designates Brief study of Fi
10. 1 51 is UG 11584 2 e 264 25 V 52 9 gt n 45V 3 n GRouN Du ume cmm 28 A CMOS 16X32 VIDEO DISPLAY CONT D edge connector size and contact assignment The display is wirewrapped xcept for Ul which is a standard solder tail socket The wiring diagrams straight forward and easy to follow don t think anyone should have problems assembling the video display card If you require more info please write Sincerely George Millar Box 1412 Parksville B C BUILD 1 VIDEO RAM R Alan Parker Laurel Md Introduction The circuit described here is a memory mapped video display The display contains 1K of memory a memory mapped display I mean that each character on the video screen is physically represented by one byte in the computer s address space To the CPU the display cir cuit simply looks like ordinary memory i e the CPU can read and write into any location Hardware independent of the CPU scans this block of memory and displays it on the CRT Since the ASCII characters only use 7 of the 8 bits a byte the 8th bit is used to cause the character to blink If the leftmost bit in a byte is 1 then the character stored the other 7 bits will blink on the display display has the format of 12 lines of 32 characters At a give
11. If DF equal to go to 63 Shift out M S B If DF equal go to 63 Subtract 20 from ASCII char Change L C to U C Skip ASCII char on stack to D Return to caller 6 we we 9 9 we we we 5 for spacing Save ASCII char at RFo Compare char space Same Yes go to 9 Get ASCII char Shift out 2 M S B If DF equal to O go to 8A Get RC let figs register Compare RC FF Same yes go to 96 Load 7A to D Go to 96 Get ASCII char Load to RCO Get ASCII char Return to caller Get RC let figs register Compare RC 00 Same yes go to 81 Load 6D to D Go to 81 Get ASCII char Load FF to RCo Go to 88 PRINT OE9F AO A2 A3 5 6 A8 BREAKSUB 0501 3 06 08 09 DB AE F8 BE 04 7B FD D5 D5 OF Ch FE D9 00 OF NOP RE 7 SHL DELAY BA B4 B5 DELAY AC DELAY DELAY RC 08 01 RC RETURN NOP SDI DY 00 RETURN ADI 00 RETURN 72 we we we we we we 28 we we 99 6 9 we we 2 0 9 509 wes 9 9 we we Save ASCII char at REo Load OF to RE 1 5 extra space Load Baudot char from look up Table pointed to by RE Shift out 2 5
12. we no avail avail no avail PS lt 320 CHIR Ob OUO ve 46 Control Characters OF13 37 021 figs OF91 37 DC 3 figs NOTE Other locations in memory not listed in page OF that is should be coded with the code for Baudot blank i e 01 This insures that any ASCII characters that Tiny Basic might output that are not available on a Model 15 Teletype keyboard will not result in illegal codes being presented to the Teletype printer MOUSE TRAP GAME FOR PIXIE GRAPHICS Dan Rubis St Clair Shores Mich Tom Enclosed find a mouse trap game program which will work for anyone having Pixie Graphic capability 1861 chip It uses less than 256 bytes speaker should be connected to the Q lime as shown in Sept 76 issue of Popular Electronics The speed of the mouse can be varied by the input byte The Input switch controls the trap There is on screen scoring and sound effects Sincerely Dan Rubis ZEE Register Useage for Mouse Trap Game RO Program counter Rl Interrupt R2 Stack 3 Main Spare R5 Spare R6 of Lines R7 of Bytes R8 Store lst Byte on Line R9 Store Address of Fisrt Line Store Address of First Line RB Freq RC Mouse s Score RD Your Score RE Time Register for Speed or Mouse RF Game Board Pointer amp Searcher amp End of Game Test 17 525555 8 52255 5555 22 888888888888 88888 0010 2
13. 1802 Programmer s Notebook 5 Minimum Debug and Operating System User programs begin after location 27 a Overating System 1 To examine a memory location or secuence set 1 and press the run key set the memory location and press the input key and the selected memory byte will be displayed Press the input key again for the next byte of the sequence 2 To modify memory set 2 and press the run key set the memory location and press the input key and load the byte sequence 3 To run program set 00 and press the run key set the memory location and press the inout key and the program will begin running with R3 as the program counter Debug System RF is dedicated register 1 Examine and save the two bytes appearing immediately after the selected breakpoint 2 Place 30 21 after the selected breakpoint in the program undergoing debugging 3 Place in location 22 one of the following Ch to indicate register D b 7E to indicate the data flag DF Odd DF 13 Even 1 0 8N to indicate register RN d 9N to indicate register RN 1 is the register number 3 4 Run the program under test and examine what occurs at your selected breakvoint 5 Restore the two saved bytes that appeared after the breakpoint 6 Select new breakpoint and repeat the process F8 20 AF EF 6C 64 2F d 37 09 32 10 F6 33 11 7B 6C AF 13 37 15 39 1A 6C 64 38 13 6C A3 D3 00 EF Ch 5F 64 2F
14. 23 mane B d a y 28 od dE 5 t 5 4514 i dora 2 1 H i x 28 4 e dnce di m 4 4 1 eod a EN fos EN ER di els de 2 EE 5 gt Be Sy ar pac 24 MU NEC bcn 1 37 INSTANT EDITOR by S Takahashi Montreal Quebec Dear Mr Crawford Here is my little INSTANT EDITOR which is only 15 bytes long so can over write your program and when finished you re enter original 15 byte so this Instant Editor disappears ADDRESS OP CODE USE 00 F8 04 i GOTO the address YYXX which is OOOF to FFFF 02 Press RESET then RUN and LOAD 03 01 Start loading or verifying with M on from 01 F8 YY the address YYXX Without using Input Switch 06 BO for TEC 1802 Users 07 F8 XX ii RUN from the address YYXX 09 Press RESET then RUN and I OA 3F OA Program Starts from the address YYXX when you OC 37 OC release the switch I OE DO iii For other addresses simply change YY and XX Address 05 and 08 This is not only short but using RO as address counter so you can enjoy your automatic entering on 1802 Sincerely yours S Takahashi USING A BAUDOT TELETYPE AS AN OUTPUT DEVICE FOR AN 1802 BASED SYSTEM by Brian Millier Halifax NS The low cost of a CPU card such as those offered by Tektron or Netronics mak
15. 8 8 e 5555 8 INTRPT REFRSH LINE MAINS BLANK 802 01 MOUSET RCA 15 JUN 78 32 13 43 PAGE 1 MOUSE TRAP A GAME FOR PIXIE GRAPHICS WRITTEN BY DAN RUBIS SEX INP DLDI LDI STR GLO XRI BZ INC BR LDI PLO LDI RO RI INITIALIZATION SECTION INITIALIZE HIGH BYTES SOME REGI STERS INITIALIZE MAIN PROGRAM P COUNTER INITIALIZE STACK POINTER INITIALIZE INTERRUPT HANDLER P COUNTER GO TO MAINLINE RESTORE D REG RETURN FROM INTERRUPT R2 IS THE STACK POINTER SAVE T REG ON STACK SAVE D REG ON STACK SYNC SYNC SYNC GET LINE START ADDRESS NOP NOP NOP LOOP TIL DISPLAY STATUS LON TURN ON RF POINTS TO DISPLAY AREA BLANK OUT BYTE IN DISPLAY AREA CHECK FOR END OF BOARD 4 IE END PAGE YES CONTINUE ON INC TO NEXT BYTE AN BACK FOR NEXT SET REG RF TO POINT TO MOUSE PICTURE AND STORE THE MOUSE SET REG RF TO POINT TO GAME BOARD PICTURE AND STORE PART OF GAME AND THEN DO SECOND PART OF BOARD INITIALIZE SCORE BOA RO 48 6058 F8 DE LDI 0050 PLO RC 00 F8 DO LOOP LDI 00 INITIALIZE ADDRESS 0060 A9 PLO R9 OF TRACK 0061 PLO RA 0062 8 07 101 07 1 R7 NUMBER OF BYTES 0064 PLO R7 5 IN TRACK 0065 09 LDN R9 STORE FIRST BYTE ONLINE 0066 88 PHI R8 0067 76 SHRC ROTATE RIGHT 0068 19 Inc R9 4 MOVE POINTER TO NEXT BYTE ONLINE 0069 09 LDN R9
16. At the Annual General Meeting the subject of club T shirts was discussed Eugene Tekatch has volunteered to supply the silk screen for the T shirts and a local manufacturer can supply the T shirts for a cost of about 4 00 each in quantities of 36 or more One suggestion for a design is a pin out diagram of an 1802 chip In addition or in place of the pin out a club logo could b used ATTENTION 1111 ALL CLUB MEMBERS TAKE NOTE CLUB LOGO DESIGN CONTEST Designs for a club logo should be sent to the new President Ken Bevis Entries should be on 8 x 11 plain paper GRAND PRIZE TWO FREE T SHIRTS Latest in the rumour market the IEEE Hamilton Section is tentatively planning to have an Advanced Microprocessor Applications course in the coming year This would possibly be a follow on to the initial course held last year 72 NOTICE OF CLUB MEMBERSHIP RENEWAL NEW CLUB DUES ASSESSMENT All club memberships expire 31 May 1978 Club members should complete the form below and mail to George York 60 Chester Road Stoney Creek Ontario Canada L8E 1Y2 The club dues assessment for the 1978 79 fiscal year is 10 00 Make cheques payable to the Association of Computer Experimenters If you know of anyone who would be interested in joining our club why not give him her the membership application are constantly o for new members with new and ideas a MEMBERSHIP APPLICATION FORM FOR THE
17. George York Seconded Sy Cobb Carried unanimously George York secretary treasurer reported a current bank balance of 1381 32 Re 78 3 3 information from the Ministry of Consumer and Commercial Relations indicates the club cannot incorporate for at least one year Therefore any move in this regard must be done by a future executive A call was made for nominations for the new club executive Membership There are now 379 paid members Software Bernie Murphy noted the importance of setting a standard format for cassette interface before the summer Hardware No report Ken Bevis has suggested setting up a phone contact committee This would allow information exchange without long distance phone tolls Bernie Murphy volunteered as an Oakville Mississauga contact and Bert deKat volunteered as a Brantford Linden region contact Brian Fox is attempting to set up a ham radio net There large number of 1802 users that are also hams It was noted that Ed Leslie can contact any ham in North America Other Business a Stephen Fielding of Hamilton Logic Systems Box 7 Stoney Creek is setting up a mail order distribution centre for electronics parts b Ken Christmas mentioned the club should be thinking about the size of the membership and the size of the newsletter He noted that we may be growing out of control c standard format for articles submitted to the newsletter should be detailed in
18. WORD AND ADDRESS TO 00 DISPLAY PAGE POINTERS CALL OF DATA ENTRY ROUTINE DIRECT AFTER ONE PASS 4 THROUGH ERASE CALL MONITOR OPER SYST FOR ENTERING PATTERNS ON P 6 OR P 3 VIA KEYBOARD TEST OF CENTER 6 BITS IF A WORD AT TOP OR BOTTOM ENTER 0 5 IN PLACE OF NEIGHBOR WORDS CALL SUB 40 SHIFT ALL 3 WORDS LEFT 1 BIT TEST 01 BIT LSB IF A WORD AT TOP BOTTOM OR RIGHT EDGE ENTER 0 5 IN PLACE OF NEIGHBOR WORDS SHIFT ALL 3 WORDS LEFT 6 BITS POSITION USING TO 40 SUB 5 CALL 508 40 17 88 882858 T 002C 002D 002F 0035 0036 0037 0039 0038 0047 2048 0049 0048 004 004 0051 0053 813338 0057 9058 FEH 46 01 FF 01 51 07 01 oe 99 9 60 MAIN TOPO10 80 010 020 GAME OF LIFE FOR COSMAC 1802 WITH 186 VIDEO INTERFACE WRITTEN BY BEN RC1802 V0OI GOLIFE RCA 15 JUN 78 332311520 PAGE MACHINE LANGUAGE PROGRAM INITIALIZATI ON GHI RO PHI LDI PLO SEP LDI PHI LDI PLO 01 PHI LDI PLO GHI PHI PHI LDI PLO 01 PLA GHI PLO PLO LDI PHI PHI PHI RD 07 ERASE R2 00 RC BZ DEC RC LDA RC RSHR LDN RC PLO R7 GLO RD BZ 8 807020 DEC RD HUTCHINSON JR 1978 80 1200 SET R3 amp 0006 AND MAKE IT THE PROGRAM COUNTER SET RI ENTRY ADDR OF DISPLAY REFRESH INTE
19. to the MSB of the byte accessed by an OUT 4 instruction On the TEC 1802 this is the MSB of the DATA leds The polarity is such that a l led ON will operate the bolt mechanism Electric door ocks are available from such manufacturers as NEDCO and from Edmund Sciencific Co Operation The program is continually watching for operation of the door bell button Once it sees the first push of the button it begins a series of timing loops each approximately 1 second long At the end of each time period the program checks to see whether the button is pressed or not depending upon the particular combination which has been programmed in as the right one for opening the door lock mechanism the present program there are 4 time loops therefore 4 checks of the button are made after the initial push The present combination is First Push l secs 2 secs 3 secs 4 secs l 0 0 1 can be changed easily by changing the instructions at 11 19 21 and 29 hex The instruction at 09 hex should remain a 3F as long as the door bell button is a N O type If at any point in the above combination the program sees the wrong sense of the pushbutton ie pushed when it shouldn t be then it will immediately play the tune programmed into locations 5F to then go back to the beginning of the program If the combination is correct all the way through the door lock mechanism will be operated for approximately 2 seconds then the micro ta
20. use pages 2 and 3 the listing shows how The operation can be made less clumsy in a number of ways like automatic or key dependent clearing of the erase flag However if 14 MACHINE LANGUAGE GAME OF LIFE PROGRAM FOR COSMAC 1802 CONT D you want this program it before you play the game or youfll be having too much fun to bother like I did An ELF with its hardware switch mode selection and ability to start execution any where in memory may be able to avoid clever or dependent branching entirely by selecting starting addresses for erase monitor or run RO R1 The registers all of are used as follows Initial program counter then DMA refresh initialized by interrupt routine to beginning of display page in use Interrupt service program counter For VIP initialize to 8146 before turning on the 1861 chip with a 69 instruction For ELF or other initialize to entry point of interrupt routine Stack pointer Used only by interrupt routine in this program Initialize to 01 or any place with 2 free bytes Main program counter immediate handover from RO SUB 40 subroutine program counter SUB 5 subroutine program counter l s counter used by SUB 40 to count 115 among the eight neighbour bits Working storage for the shifted word being tested Working storage for the shifted A 8 word being tested Working storage for the shifted A 8 word being tested Changed by VIP interrupt not u
21. 78 5 6 Door prize draws were held for a number of pieces of ribbon cable 78 5 7 Bernie Murphy outlined his proposal for a cassette software data format standard for the club The will be published in the next newsletter Motion that the Club formally adopt che standard presented in the document called Software Standard for Kansas City that will appear in the next newsletter Proposed Bernie Murphy Seconded Vic Sydiuk Passed 78 5 8 Motion to adjourn meeting Proposed Tom Crawford Seconded Passed 70 78 6 1 78 6 2 78 6 3 78 6 4 78 6 5 78 6 6 78 6 7 78 6 8 The Association of Computer Experimenters Minutes of Annual General Club Meeting 78 6 Held at Stelco Wilcox St Auditorium 23 1978 8 00 P M George York secretary treasurer reported a current member ship of 450 paid members and a current bank balance of 1274 48 Motion to adopt Minutes 78 4 Proposed George York Seconded Tom Crawford Carried unanimously Ken Smith mentioned there was a small but solid core of people interested in the training sessions Hardware report by Eugene Tekatch mentioned that the club had progressed exceptionally well considering the lack of 1802 software support the club has developed as a grass roots organization However the club is lacking in hard ware and varied applications expertise Eugene outlined hardware developments of Tektron and pointed out that now
22. Association of Computer Experimenter FIRST 111 1111 FIRST LINE OF ADDRESS SECOND LINE OF ADDRESS SECOND LINE OF ADDRESS CITY amp PROVINCE COO EET TT 11111 ATTACH MAILING LABLE HERE Association of Computer Experimenter MEMBERSHIP RENEWAL FORM nmm LINE OF A CITY amp PROVINCE 4 4 41 4 4444444 4 12 KURSEJ a ab Tm ma Up Ld apu lt ae
23. Cosmac Microprocessor 201 Corporation 2 RCA COS MOS SSD 203C RCA Corporation 3 Lancaster INS AND OUTS OF VOLATILE MEMORIES BYTE November 4 RCA COSMAC VIP Instruction Manual RCA Corporation 57 4071 ie cs 4011 BANKA 25 4 TO PIN 401 2 EACH PAIR MRD 211 5 Balka C JPL nD ee 30 JE 4 TUM A 39 3 33 3 Regt 35 35 oF 33 52 CHIP 14 4 REST 14 n a 22 4 B HIPS Figure 1 An 1802 RAM System 58 COMBINATION LOCK AND DOOR CHIME Anthony Tekatch Caister Centre Ont This program combines the music generation program IPSO FACTO 1 with some simple sequential logic to produce a combination Door Lock Door Chime Connections sconnect your front door bell button from the existing chimes and power transformer and connect it between ground and On the TEC 1802 this is in parallel with the I pushbutton so testing can be done with I if desired 2 Connect a simple amplifier and speaker to the Q line from the 1802 and mount near your existing chimes A test circuit can be easily and cheaply constructed as shown En SPEAKER 15V 2N2222A Bolt an electric lock mechanism to your front door and wire it via an inexpensive relay and transistor driver as above for speaker
24. G I AY5 3600 Encoder and two 4016 quad transmission gates to form the input system The Keyboard Encoder Chip s data ready strobe is connected to the 1802 s EF 3 line and is tested in software The ASCII data is gated to the bus through the two 4016 quad transmission gates These are enabled by the N 1 line of the 1802 instruction will cause the keyboard entry to be loaded into the Accumulator and M R X System Initialization For Input Output Subroutines The following is a system initialization which will be required if the Monitor in your system does not support the SCRT Standard Call and Return Technique system of calling sub routines as set out in the R C A 1802 User s Manual This is only required if the user wishes to use these routines as part of machine language programs of his own initialzation is already present in Pittman Tiny Basic and it will run properly without this initialization being entered in memory Assuming a 4K memory maximum space will be left for user s Basic programs if the following scheme is used 0 00 0 52 Inilialization if required above OE 53 OEDB Ineee Outee Break subroutines OFOO OFFF ASCII BAUDOT look up Table Stack Basically more than of the last page is not required by the look up table and could be used for other purpose I have chosen to leave it filled with the code for a Baudot blank System Initialization OEOO OE LDI Set this program to run
25. PA 19407 USA Terry Thank you for your letter Our reprint policy is similar to that of Dr Dobb s please see the Editor s Remarks section of this issue of IPSO FACTO T C Tom The COSMAC SOURCE BOOK is a continuing non profit newsletter for 1802 users all over In CSB you will get l Hardware whats available and where to get it 2 Software original programs printed in the up dates addresses to write and get lots more software you might not have thought existed 3 People Addresses of other users groups and other handy things Send 1 to THE COSMAC SOURCE BOOK 1227 lOth Ave San Francisco CA 94122 You get the book in a paper binder which is continuing Every couple of weeks you will receive a 1 3 page update Sincerely Karl Mosgofian RCA 1802 MICROCOMPUTER CLUE Ses DELANO ST RESEDA CA 90335 34 5614 Dear Crawford We are a small group of individuals in the Los area who have gotten together to form an Elf Club We are just getting started and are in need of any help or advice we can get It has come to my attention that you are with a huge well run club up in Canada We would most appreciate hearing from you with any suggestions as to how we may correspond and exchange information I am enclosing a check to cover the cost of your subscription Many thanks Sincerely Ron Reis Dear Mr Crawford After talking to Bernie Murphy recently I aquired an interest
26. POINTS TO LEAST SICNIFICANT DIGIT 814 IS A DIGIT COUNTER GET A DIGIT LEAST SIGN FIRST AND COMPARE TO 9 IF DIGIT 9 THEN INC ELSE SET TO ZERO DECREMENT DIGIT COUNT AND CHECK FOR ALL DIGITS DONE AND IF SO THEN COMPARE ELSE DECR TO NEXI DIGIT AND REPEAT TEST INCREMENT A DIGIT IF PREVIOUS DIGIT WAS A 9 RtS POINTS TO LAST NUMBER 814 POINTS TO WORKING STORAGE RI3 IS A DIGIT COUNTER DIGIT FROM ENDING SUB A DIGIT FROW WORK AREA IF NOT EQUAL THEN RETURN ELSE DECREMENT DIGIT COUNT APD CHECK FOR ALL DIGITS DEN IF DONE THE NUMBERS EQUAL IF NOT DONE THEN INC 10 NEXT DIGITS AND REPEAT THE TESTS COPY FRSINM DSPNUM Ly TICKET WINNING TICKET DRAN UA UN C7 AD DO BD OF 00 9B CHRRTNS CHROUTs CHRLUPs DIGBLKs SEGSELt DIGSELt M RC1802 VOI TICKET RCA 15 JUN 76 1802 01 TICKET 2CA 15 JUN 78 324504320 CKET WINNING TICKET DRAN D DECR M 0005 SE BYTE 52 D SMALL CHROUT 2 9004 79 7 t E 3 0607 7 71 t CHARACTER OUTPUT ROUTINE 4 _ 5 0008 0008 05 5 8 NUMBER DISPLAY ETC BUFFER SEP R3 6 RETURN TO MAIN PROGRAM 6 00 12 END START DLDI 0 0 5 115 0 RIS POINTS TO DATA TABLE LDI 1 PHI R12 812 8 IS DIGIT SELECT _ SEX R13 DLDI DIGSEL R 3 R13 END OF OUTPUT TABLE CHI R12 GET DIGIT SELECT BIT A
27. REMOVED CHANGED TO A NOP INSTRUCTION gt SO THAT YOU CANNOT SEE THE NUMBERS BEING INCREMENTED THIS TIME SOMEONE SHOULD BE SELECTED TO PICK A MINNING NUMBER ITS GOOD IDEA TO STALL FOR ABOUT A MINUTE TO ALLOW THE PROGRAM TO CYCLE THROUGH THE NUMBERS SEVERAL TIMES AND THEREFORE ASSURE MORE RANDOM NUMBER 6 PRESS THE I KEY A NUMBER MILL BE DISPLAYED THIS 15 YOUR WINNING TICKET NUMBER SLN 1 TICKET MINNING TICKET lt Que wh 0000 0012 0012 0014 0015 0617 0018 0018 0010 0015 0020 0021 0022 0023 0024 0025 0025 0026 0026 0028 0029 0029 002B 002C 002 002 30 12 00 08 00 08 FS 49 9 25 F8 FF 29 DB 3F 26 a D ET RCA AND COMPARE TO NUMBER IN LASTNM 15 20 78 32 50 32 P COUNTER FOR THE MAIN PROGRAM DELAY LOOP COUNTER FOR SLOW NUMBER DISPLAY P CNTR FOR COPYNM RTN COPY FRSTNM DSPNUM P CNIR FOR CHROUT RTN DISPLAY NUMBER IN DSPNUM INCREMENT NUMBER IN DSPNUM R13 R14 RIS TEMPORARIES BR DRAM 186 t REGISTER USEAGE R3 8 4 RB R9 Ri START STORE TICKET NUMBERS HERE FRSINM 8 INITs SLOLUPs DISPLYt LASINM BLOCK 8 LNIT
28. Set Q start bit Convention Mark O Space on Q line Shift out M S B If D equals o then go to If DF equals o then go to Reset Q Go to B5 Set Q Go to AC Reset Q Stop bit Stop bit two units duration Return to caller NOP s extra spaces Save Baudot char at RC Delay constant for 75 WPM Teletype and 1 79 MHZ clock Subtract 1 from D NOP s for timing for timing D equals 0 No go to 08 Restore Baudot char to D Return to caller NOP extra space If equals go to 09 Break switch connected to 1802 EF line Set DF equal to 1 Break cond in Tiny Basic Return to caller Set DF equal to 0 Return to caller No Break ASCII BAUDOT LOOK UP TABLE Address OFOO OFO7 OFOA OFOD OF20 21 22 28 OF29 OF2B OF2C OF 2D OF2E OF2F OF30 OF31 OF32 OF 33 OF34 OF35 OF36 OF37 OF38 OF39 OF3A OF3B OF3C OF3D OF3F OF41 OF42 OF43 5 OF46 OF47 024 8 OFLA OF4B OFLD OFAE OFAF OF50 OF51 OF 52 OF53 OF 54 OF 55 OF 56 OF D7 OF58 OF59 OF5A Data 29 1 05 09 2D ASCII nul bel LF CR SP O JO WME I 21 0 6 3 lt 75116050 Py Ave Baudet igs Bell line Feed Carriage Ret Space 1 avail avail 226 090 4 Own WwW
29. TO COPY FIRST NUMBER BUFFER ON INITIALIZE AND WHEN NUMBER NCREMENTED UP TO LAST NUMBER OF SERIES IE RESET FOR SOFIMARE DEBOUNCE DISPLAY NUMBER INCREMENT NUMBER REPEAT TILL I PRESSED DISPLAY WINNING NUMBER FOR EVER AND EVER OF SERIES DISPLAY RETURN TO MAINLINE ADDRESS OF FIRST ADDRESS OF DISPLAY BUFFER INITIALIZE THE DIGIT COUNTER GET A DIGIT FROM FRSTNM PUT IT IN DSPNUM DECREMENT DIGIT COUNT AND WHEN IT GETS TO O THEN FINISHED NO FINISHED SO RETURN 0061 0065 DF AF BF 08 6B 61 08 00 08 98 62 15 JUN 78 32450 WINNING TICKET DRAW INCRTN INCNUMt INCLUPs INCDIGs CMPNUM CMPLUPs CMPEQLs 1802 SEP DLDI LDI PLO LDN SDI BNZ STR DEC GLO BZ DEC BR LDN ADI STR DLDI DLDI SEX LDI PLO LDN 50 BNZ DEC GLO RZ INC INC BR SEP BR SL TI ET RCA 15 JUN 78 322503832 I NCNUM R3 DSPNUM 7 R15 8 RI4 R15 9 INCDIG R15 14 814 CXPNUM 815 INCLUP R15 815 815 DSPNUM RI4 14 8 RI3 R15 NCRTN R13 R13 CMP EQL R14 R15 CMPLUP 88 INCNUM ROUTINE TO INCREMENT THE NUMBER IN DSPNUM AND IT TO THE VALUE IN LASTNM IF DSPNUM IS GREATER THAN gt 9 9 456 LASTNM THEN FRSINM IS COPIED INTO DSPNUM IE AND RESET TO FIRST IF GREATER 841 P COUNTER R15
30. UNTIL BIT POINTEReO1 LOOP TO TO TEST NEXT BIT FROM THE CENTER 6 THEN MOVE ON BNZ CENO3O 4 TO TEST OF BIT 4 TEST 2018 BIT 158 4 TSTOIBs SEP R3 2 CYCLE 5 5 SEP R3 2 CYCLE weSPARESe SEP R3 5 2 CYCLE NOP eSPARESe SEP R3 2 CYCLE NOP SPARESe SEP R3 2 CYCLE NOP SPARES GLO RA IF THE LEAST SIG 3 BITS OF THE ADDR ANI 07 IN ARE ALL THEN SKIP GETTING XRI 07 THE MSB S OF THE A 1 C A 9 A 7 WORDS BZ RGTOIO BECAUSE 15 RIGHT EDGE WORD INC RA INCREMENT RA TO OF WORD LDN RA LOAD 4 1 WORD RSHL MSB gt DF DEC RA RA WORD ADDRESS LDN RA A WORD RSHL MOVE NSB 2 WORD INTO LSB OF D SEP R5 CALL 508 5 5 SHL S PHI 86 STORE SHFTD WORD WITH BIT FROM WORD GHI RC SKIP GETTING 728 8 WORDS 1 0 cae oe SHOWING A IS TOP EDGE LDN RC LOAD 4 7 WORD RSHL 1 MSB gt DF DEC RC LDN RC LOAD CA 8 WORD RSHL DF LSB SEP R5 CALL SUB 5 PLO R7 STORE SHIFTED A 8 WORD WITH BIT FROM A 7 WORD 19 8 B BERERE DOF 01 00 0101 0103 0108 0107 0108 OI OA 0108 010C 5185512551 E 007 55555 5855 5828585 28 8 m 322 55 55 03 38 16 FE 16 DF DF D7 30 39 AQ 10 UT MSB DF _
31. VIS UB 9 UZo 23 024 24 12 27 apr mpm ar ec Ene adage marriages Hmm E mno 53 24 3 fae 1 M h gt rt r 3 MASS 05 ye i CD P 2 2725 68 es 7859 ne ee pos 25 p 7 e E amp mc e Up LI oa 4 MAS 00220 Ti nia ais 2 A 121519 J p NAME vt 1 wiwiw 12 TT 1012 8 8 8 21 121 2 2 r2 Io 862000 80307300 7 7 43 09000002 80000000 00900050 8 c femen RUHIN 10 ICICI Men iN ema 2 6 1 BO UT T dat Sil ti AC 5 U 0 2 00000000 82 23 55 evt 4 ove we Sls OCOD Beds Sab naig Gippiy fio c oy 1217 n ni e 5 253 hr 01210103 02105100 20000200 000501200 i sums 5 02282928 906090 0 82000000 80002008
32. a loop sustaining bit and eliminates the need for a register allocated for use as a coun ter Tiny Basic uses most of the registers making this a consideration 2 The software routine must keep track of the nature of the last character printed i e whether it was a letter or a figure This is done by looking at the M S B of the ASCII char i e the 7th bit If it is a thechar is a figure 1 indicates letter There fore upon receipt of an ASCII character the program determines what the present char is and compares it with the data stored in Register C which contains the nature of the last character sent differ ence exists a routine which outputs the correct Figs or letters character takes over and then returns to the main print program to output the character given it by the main program After this char acter is printed its nature is stored in the Register C for use by the next character that is inputted The character space is trapped before it enters the above routine as it looks like a figure and stores a code in Register C as such but when it is printed it will unshift the TTY carriage This has the effect of printing letters in place of numbers if there is a space between them The space character is handled differently in the routine and always results in a letters code being placed in Register C after it is printed Certain control codes outputted by Tiny Basic as well as pad characters will also ca
33. bit in the middle of the 5 bit data stream will be easy to distinguish and measure 22 ms pulse corresponds to a 60 WPM machine 20 ms equals 66 WPM 17 57 ms equals 75 WPM While the TTY is connected in the local loop check to see whether the machine unshifts goes from figs to lets when the Space bar is depressed or for that matter after a carriage return I am not familiar with other machines but the model 19 that I have will unshift on space UOS This must be taken into account in the software program or the computer will lose track of the shift condition of the TTY machine and print incorrectly IHE SOFTWARE e software program to run the Teletype was developed to be compatible with Pittman Tiny BASIC 1802 It is in the form of SCRT type subroutines and can of course be utilized by other pro grams such as machine language programs developed by the user There are several considerations that arise in developing the necessary software program The important ones are as follows 1 The ASCII output of the BASIC program or users program must be converted to Baudot The ASCII output is parallel and is 40 converted as such to Baudot This is most easily accomplished by a look up table The parallel Baudot data could then be serialized by UART but it is rather easy to implement this in software so that 15 method that I have ehosen to use the Baudot data I have im bedded a 1 in the L S B in all cases This is
34. configuration This may mean some software modification If this is the case Assembly listings of these programs are available 1 Random Hex Number Displays a random hexadecimal number 00 to FF each time the input key is pressed Because the computer can count faster than the uncertainty in the user s reaction time and each count is exactly the same number of machine cycles from the last count the output is a random number F8 D Al 12 3 82 51 El 64 21 39 93 gg 2 Seconds Clock Displays decimal seconds 00 to 59 for the 1802 cloc frequency of 1 789773 MHz For frequencies other than this calculate th number of machine cycles per second M M is one eighth the 1802 clock frequency Mz223 721 6 for the ELF Next calculate X for the equation 6 256 10 255 44 9 10 60 1 12 64 1 60 Round X to the nearest whole number and convert it to hexideciamal Of that number place the most significant byte in location 28 contents 9 and the least signi ficant byte in location 25 contents F6 If you don t know the frequency use sucessive approximation The larger the value of X you choose the slower the clock will run F FF A2 B2 F8 33 12 82 1 00 A2 92 10 B2 92 60 1C 27 22 2 82 53 92 53 64 23 8 F6 Al F8 98 21 91 2A 81 2A 30 3 Hex Addition Program performs single precision 1 byte addition Starting or restarting the program clears the accumulato
35. in your Hamilton Computer Club We also have started a club in the Oshawa area and go by the handle Durham Computer Club We are still quite small with a membership of 20 But we have only had 2 meetings and I hope the interest will grow in the future The large E e of computers owned by club members are 680015 from Motorola B do not have a news letter yet but that will be our next m Myself amp my friend would like to apply for membership in your club We may not be able to make many meetings but hope to find interesting reading in your newsletter Also if you ever find any bargains periferals and memory could you please let me know Thank you Yours truly Vic Willis 1442 Wecker Dr Oshawa Ontario LETTERS TO THE EDITOR CONT D Dear Tom TINY BASIC is supposed to be ready soon so they say from Quest It is to be on two 2708 EPROMS at 8400 and 8800 hex Pittman is doing it and RCA is said to be picking up the cost It appears that Netronics will have it too I have my order in certainly agree that you should publish commented assembly language No doubt My problem is that I have no way of checking such a program that is one I have dis assembled To that end I enclose an order for a cross assembler It is not fair to expect you to dis assemble my programs indeed I would like to do it myself Then I can send them to you for publication Great T C Regarding the same 1802 article
36. programs as well as a list of programs to follow As a consolation we are also offering at no charge to the Users Club members a complimentary copy of our new short course on programming 1802 based microprocessors This course is written in an easy to understand language and is designed to lead the neophyte through all 91 program instructions giving an illustration and example of how each is used Enclosed please find copies of our instruction material for the Elf II our Giant Board and a 4K memory board We would appreciate receiving copies of your IPSO FACTO and if possible the back issues so that we may join with your effort with respect to the 1802 Thank you in advance for your consideration Very truly yours George Meyerle President Netronics Research amp Development Limited 333 Litchfield Road Rte 202 New Milford Connecticut 06776 35 LETTERS OF CONTACT Dear Sirs Having received your letter I am more than eager to join the Association of Computer Experimenters Enclosed is 5 00 to cover the cost of membership amp back issues of your newsletter In response to your request for information on my computer system I am making an Elf computer as per plans in Popular Electronics magazine Having no previous experience in even kit building I decided to use point to point soldering as recommended in the P E article Looking back I would have either bought the Elf kit or used double sided PC board because of t
37. the memory and some peripheral hardware is available the emphasis of the hardware co ordination should be on appli cations Constitutional Amendment as published in Newsletter 5 page 56 section 78 2 9 Motion to adopt the Constitutional Amendment as published Proposed Tom Crawford Seconded Geff Waite Carried unanimously Article 5 4 of the Constitution now reads Meetings of the executive committee shall be at the call of the president or in his absence the secretary treasurer Club T shirts were discussed George York is to enquire of a local manufacturer and write a note for the next newsletter Club Logo contest will be tried the winner to get 2 free T shirts Audit Committee volunteers were requested Vic Sydiuk and Mike Hrycko volunteered The club books will be audited as soon as the current year s expenses can be finalized Election of 1978 79 Executive The office of President was the only contested position Norm Cunningham and Ken Bevis were nominees election by secret ballot resulted 71 Minutes Club Meeting No 78 6 cont d 78 6 8 cont d Ken Bevis elected the new President The other positions were declared by acclamation The list of new executive will be published in Issue 6 78 6 9 Motion to adjourn meeting Proposed Steve Fielding Seconded Mike Hrycko Passed The meeting adjourned at 9 40 20 members attended the meeting ACE CLUB T SHIRTS amp LOGO CONTEST
38. the newsletter This would make he newsletter easier to assemble 68 ACE Minutes of Club Meeting 78 4 cont d 78 4 9 76 4 10 78 4 11 Other Business cont d d Door Prize draw for Beldon ribbon cable The winners were John Rogers Walt Smith Joe Flaherty number of desk type junk calculators goed for parts were donated to the club These were made available for pick up by members attending the meeting as a bonus door prize Ken Collins gave a very interesting talk on the theory of Wire wrapping and followed the talk with a demonstration of various equipment and techniques Motion to adjourn meeting Proposed Tom Crawford Seconded Wayne Bowdish Passed The meeting adjourned at 10 00 About 40 people attended the meeting 69 The Association of Computer Experimenters Minutes of Club Meeting 78 5 Held at Stelco Wilcox St Auditorium 9 May 1978 8 00 P M 78 5 1 There was some discussion about board by Data 100 fea turing an 1802 CPU du capa for S100 bus Some interest was expressed 78 5 2 There are paid members The bank balance is 1137 62 78 5 3 38 people have replied to Lyle Sandy s system file report 78 5 4 It was reported that few people had sent in hardware applications Most people sending in info or articles are computer large systems oriented 78 5 5 There was a discussion and demonstration of a Video Display and ASCII I O in general
39. the source program Also the program counter P and stack pointer X may also have to be reassigned Make sure all register operations are reassigned when necessary Inout Output Ports If your system uses different I O Ports than the source program these instructions must be changed One advantage of writing programs in assembly language is that registers addresses and I O ports be referred to symbolically M the same assembly listing but a different machine code d Timing Constants Clocks frequency counters and music programs use the 1302 system clock for timing There are eight clock cycles per machine cycle Thus a machine that operates on 2 MH2 clock runs at 250 000 machine cycles per second 11 instructions are two machine cycles in length with the exceptions of the skip long branch and continue instructions which are three machine cycles Programs that require time delays longer than six machine cycles may use timing loops such as the one shown on the right Any using a simple timing looo with a timing constant C may be calculated using the formula Where A is the number of machine cycles in one transit of the timing 1000 is the number of machine cycles per second and B is arbitrary Given A and of the source program you calculate B Given this A and M your machine you can calculate C for the program to work on your machine 51
40. video modulator power supply amplifier and speaker on the Q line coaxial cable and ELFI proto board ALL ASSEMBLED and TESTED Also ELFII Expansion Board One input port one output port monitor RS232 and 20 ma serial interface cassette i o interface and N line decode Unassembled Total cost new 255 First money order or bank draft for US 180 takes it Alan Burnes M I U Fairfield USA 52556 A CMOS 16X32 VIDEO DISPLAY by George Millar VancouverB and Harley Shanko Van Tom I received a letter from Harley Shanko and he said to go ahead and submit the display to IPSO FACTO he wouldn t mind has added that his display is an adaption of the Suding version with numerous modification the main one being that it is software driven and addressed as a block of memory rather than an output port Also he has used CMOS where ever possible I ve enclosed the video card layout circuit diagrams showing the exact gates used and parts list of my video card as I built it The circuit is adaption of Harley s video display modified to suit my 1802 system I ve added the blink or solid cursor circuit to my display The card layout is of the back side or reverse component side didn t include the component side layout of the card as the only thing etched on it is the card name and the other edge connector contacts Anyone constructing a P C card will have to use their own 23 Dy 4 34 91191111
41. 10 30 12 78 91 53 64 23 2F 81 53 64 23 3 36 30 03 90 5V SOURCE Prescaler in Bi Quinary 70 Mode Source is connected to vin 12 of a prior stare 7490 1 Use an independent power supoly or low power TTL 23 1802 Programmer s Notebook 8 Multiple precision Hexadecimal Adder This program adds two B digit hexadecimal numbers The accumulator is cleared when the run key is depressed The t byte 8 digit number is inputed followed by addition to the value in the accumulator the G Lamp comes on and pressing the input key four times gives the sum 85 bytes 54 FB 1 F8 dd 73 21 81 96 FB 1 F8 4D A2 14 E2 64 37 19 21 81 14 F8 Ai 50 A2 54 03 52 21 22 23 03 E2 74 53 21 22 23 B1 2F 78 F8 1 F8 51 3F 4d 64 37 21 81 3A 4d 7A 30 00 dd dd p 09 02 02 00 9 ASCII Decimal to Hexadecimal Converter An eight place ASCII decimal number is inputed by pressing the input key eight times The hexadecimal result requires four depressions of the input key to show the result 144 bytes 5 A2 22 82 32 13 F8 dd 51 08 A2 07 3 F8 BE AY 2 2 75 A FB 1 5 8 5 85 23 D D BA Al 1 F 3 F 21 36 0 F8 A3 FB d 45 01 54 21 2 8 8 4 F8 85 AY 03 A5 0 73 24 25 74 73 85
42. 4 BE PAGE SELECT MEMORY OUTPUTS MWR D1 2 3 4 4016 IC 2 6 7 amp 5123 IC M Ae Aq MRED 1654 DATA BUS 33 w VIDEO BOARD CHURRACTER GENERATOR LOGIC 2 SED 6 ur BLINK D7 2 pr 7474 Vipeo 5 lt B GND WHITE BLACK GND O 5 BLACK WHITE 5 S EOS e 4 6 i ul 2b BLANK LKJ M 33K 5 2N404 FIELD VIDEO OUT 34 BUILD A 1K VIDEO RAM CONT D working since June 77 The ideal situation would be to place the display routines for scroll and other nice functions in PROM shat all programs could use them without having to actually include them I am doing this now When the CPU is accessing the display memory the display out put is blanked Under normal conditions this occurs so fast that it is not noticeable on the screen If however the CPU makes many accesses in a short period of time say more than thousands per second the display will suffer This is not a major problem and the user will quickly learn its limits REPLY FROM NETRONICS LTD PRESIDENT Dear Tom In response to your last issue pointing out that we have been delinquent with our Elf II Users Club please be advised that we are in the process of correcting that situation Our first newsletter will contain numerous
43. 78 00 References 1 ETOPS Build the COSMAC ZLF Microcomputer Part 3 Popular Electronics March 1977 P 64 2 and the Machine Debug December 1977 P 91 Calibrating the 1802 System Clock If you require applications where accurate timing 10005 are must and you don t have a Frequency Counter your system clock can be calibrated using a software clock and an accurate timing source such as WWV or a crystal controlled clock or watch Given the timing constant and equation for your software clock solve for M the number of machine cycles per second Measure T the time the software clock his rur and the accuracy of the software clock Multiply M by T AT T to get the value of M for your 1802 system clock Testing the software seconds program over a period of 24 hours will give an accuracy for your M of 2 machine cycles per second 52 1802 Programmer s Notebook 6 Clock This clock features reset hours minutes and seconds To reset the clock set the hour press the run key set the minutes press tte inout key set the seconds To start the clock after reseting it pressthe input key Inout 00 to show the hour input 01 to show the minutes and input 2 to show the seconds For 1802 systems that use frequencies other than M 223 721 6 machine cycles per second solve 1 14 M 251 03 Convert X to the nearest whole hexadecimal integer Place the most significant byte of X in
44. 80 RGTOIO S40L70 0126 20 005C ITEMS FOR SALE L For Sale One CDP1802CD based Super Elf by Quest Electronics Six digit address data display hex keyboard with monitor in ROM battery memory saver 256 bytes of RAM 1861 video controller with support chips and a limited expansion bus Supplied with manual 200 Write to A D Barksdale Garbee II 1601 Clayton Avenue Lynchburg Virginia 24503 USA 25 For Sale Model 19 teletype table consisting of model 15 printer and punch tape unit 5 level punch tape reader 5 level power supply distribution panel auto start up control and diagrams Price 125 00 or best offer Includes two new ribbons three rolls of paper and punch tape paper Eight level paper tape punch In process of overhaul needs new driver and interface Asking 40 00 Complete with diagrams Solid disk unit fixed heads clock and sector tracks 10 data tracks 20 sectors per track complete with electronics and diagrams As is 15 00 Two power supplies 30A will adjust to 20A 412v 5A in working order asking 20 00 each IBM card reader like new with diagram Asking 140 00 4120 pues paper tape reader like new with diagrams Asking 120 00 Call Stephen 416 545 4060 3 For Sale Netronics ELF II as described in Popular Elec tronics with video graphics 256 byte memory 1802 CPU hex keyboard and display along with four wire wrap 86 pin edge card connectors
45. A L8G 2W8 In accordance with the Constitution the 1978 79 Executive Committee approved at the Annual General Meeting is President KEN BEVIS Past TOM CRAWFORD President Secretary GEORGE YORK Treasurer Newsletter BERNIE MURPHY Editor Program BERT DEKAT Co ordinator Training NORM CUNNINGHAM Co ordinator Hardware FRED FEAVER Co ordinator WAYNE BOWDISH Temporary Membership Co ordinator Newsletter DENNIS MILDON Publishing Committee JOHN HANSON P O Box 137 220 Cherry Post Drive Missisauga Ontario L5A 1H9 277 2495 50 Brentwood Drive Stoney Creek Ontario 180 2W8 662 3603 60 Chester Road Stoney Creek Ontario LSE 172 6614 5261 102 McCrany Street Oakville Ontario L6H 1H6 845 1630 Lynden Ontario LOR 170 6427 3931 129 Barons Aveune North Hamilton Ontario L8H 5A6 549 3477 105 Townsend Avenue Burlington Ontario L7T 178 637 2513 l49 East 33rd Street Hamilton Ontario L8V 3T5 388 7116 14 Wildewood Avenue Hamilton Ontario LST 1X3 385 0798 955 Harvey Place Burlington Ontario L7T 3E9 637 1076 There are still some positions to be filled eg software and membership co ordinators volunteers for these positions or to help with any other activity should contact Ken Bevis CLUB MEETINGS There will be no club meetings during the summer months Unless notice to the contrary the following
46. ACK FOR ANOTHER PASS 0088 30 B8 BR HALT t END OF GAME HANG UP 00 00 0000 0000 008 00 OO d STACK STARTS HERE OOBE STACKs GAME BOARD STARTS HERE DOCO 9 0 coco 84 l usan 98 DELAY 006 BLANK 0035 BOARD BUZOFF BUZON 0090 BUZZER 00 INTRTN 000 LOOP NOSE MAIN 0020 MOUSE 0040 REFRSH SKIP 0070 PROGRAM SIZE 0060 ERRORS DETECTED 49 HALT 0088 STACK 0085 INTRPT 00 1 1802 PROGRAMMER S NOTEBOOK By David Wright Ames Iowa Dear Sir Your publication was mentioned in Ross Wirth s 1802 Software Exchange as someone to send information to on the RCA 1802 Microcomputer have enclosed a complementary copy of some material you might find useful I plan to have additional material in the future Additional copies are available at 25 per page SASE or 1 00 PPD for the packet Sincerely David R Wright 128 Campus Ave Ames Iowa 50010 April 23 1978 Hardware requirements These programs were developed on the COSMAC ELF II The computer has a hexadecimal keyboard 256 bytes of memory and utilizes I O Port 4 Programs are initiated at memory location with the program counter register P and the remaining 15 registers on the 1802 are not dedicated The computer uses a 3 579545 MHz Crystal whose frequency is divided in half before entering the 1802 Clock input Other computer Systems may use hardware in a different
47. AND gate should be removed if your character generator has more than 7 rows of output In this case M is the 4th bit of row information as I have shown if you use a 7 row device such as the 2513 Software Since the scanning and character generation is done by hardware the software required to use the display is fairly simple If you want a really simple display for a given program all you have to do is to store the characters in succeeding locations starting with the address of the upper leftmost corner When you run off the screen you have two choices clear the screen and start over or switch to the other page before wiping things out I prefer to start on the bottom line of the display and scroll upward line by line sample of the scroll routine is shown This routine is taken from my I O system for Tiny BASIC which I have hac 30 lor VIDEO BOARD TIMING 6 13635 Miz lis 5 2 74193 24 2 6 A DE Oo KLM 5 66 5 28 4 74193 24 3 2 6 E V X Y F8 lt E 7430 2 1819 7474 7 1 456 65 FAST L BLINK SB SLOW co pf 5 EE BLINK sue 5 5 13 T 4 FIELD SLANK FIELD 2O 5 6 5 31 cor VIDEO BOARD MEMORY 0 e 832 ANG m A GND R M c 45 7 M6 MS M M2 MI MO 5V NI
48. CYCLE SPARE SEP R4 2 SPARE SEP R4 2 CYCLE SPARE GHI R6 ANI 40 GET SHIFTED WORD MASK OUT ALL BUT 405 BIT 1 BIT WHOSE FATE IS TO BE DECIDED BZ 540190 IF BITeO SKIP TEST FOR 2 NEIGHBORS GLO R6 XRI 02 SINCE 40 81 1 GET 175 COUNT AND 9 BRANCH TO MRITE 19 ROUTINE IF BZ WRITE 175 COUNTe2 2 NEIGHBORS SURVIVAL GLO 86 s 175 COUNT XRI 03 1 IF OF 175 NEIGUBORS 93 BRANCH TO BZ WRITE WRITE 19 ROUTINE SURVIVAL OR BIRTH 9 s ELSE CONTINUE WRITE O ROUTINES GLO RE s LOAD BIT POINTER INTO D 41 BIT POS XRI COMPLEMENT BIT POINTER 0 AT BIT POS SEX RF 5 AND THE COMPLEMENTED BIT POINTER AND WITH WORD AT LOC A IN GENERATION PAGE STR RF WRITING 209 AND STORE IN LOC A NEW PAGE BR 4 1 BRANCH TO SUB RETURN POINT SEP R4 1 2 CYCLE SPARE SEP R4 2 CYCLE SPARE SEP R4 4 2 CYCLE SPARE GLO 5 WRITE 14 ROUT INE SEX RF LOAD BIT POINTER QR WITH WORD AT LOC A IN NEW GENERATIONS STR RF PAGE WRITING 1 AND STORE IN LOC A BR S4ORIN BRANCH TO SUB RETURN POINT 508 59 SUBROUTINE SHIFTS D LEFT 5 TIMES SEP R3 RETURN TO MAIN SHL 1 FIVE LEFT SHIFTS TO MOVE A BIT FROM 02 POSITION TO 40 POSITION IN WORD SHL SHL BR 558 9 BRANCH TO SUB RETURN POINT BLOCK 8 i SPARE LOCATIONS 158 TO 15F ROUTINES TO CLEAR D
49. E INITIALIZATION ROUTINE AS FOLLOWS LOC 0007 01 LOC 000 82 8 0180 42 INTRTNs LDA R2 0181 70 RET 0182 0183 22 DEC R2 0184 78 SAV 0185 22 DEC R2 0186 52 STR R2 0187 98 GHI RB GET NUMBER OF DISPLAY PAGE IN USE FROM 88 1 0188 PHI RO LOAD DISPLAY PAGE NUMBER INTO RO DMA POINTER 0189 F8 00 LDI 00 0188 PLO RO NOTE WITH THE EXCEPTION OF LINES 019 C4 0087 AND 0088 THIS IS 0180 C4 NOP ESSENTIALLY THE 32 64 ROUTINE 018 E2 REFRSH SEX R2 ON THE 1861 DATA SHEET 8 80 GLO RO WHICH SEE FOR COMMENTS 0190 2 SEX R2 THE CHANGE ALLOWS THIS 0191 20 DEC RO ROUTINE TO BE IN ROM 0192 PLO RO YET DISPLAY ANY PAGE 0193 2 SEX R2 0194 20 DEC RO 0195 PLO RO gt 0196 2 SEX R2 0197 20 DEC RO 0198 AO PLO RO 0199 3 REFRSH 0198 30 80 INTRTN END RC1802 VOI GOLIFE RCA 15 JUN 78 32 11 20 USER SYMBOL TABLE ALTOIO OOED 80 010 0048 80 020 0068 CENOIO 0087 CENO20 008 CENO3O CLEAR 0164 ERASE 0160 1 8 0182 INTRIN 0180 LFTEDG O06F 0006 REFRSH 018 RGTEDG 0 540110 0108 540120 0110 540130 0115 540 40 0119 540150 0110 5401 60 0122 540180 012A 540190 013 S4ORTN 0100 558 0150 50840 0101 SUBS 0151 TOPO3O 0078 40 50 0007 5 018 OOAO TST8OB 0030 WRITE 014A PROGRAM SIZH 019D ERRORS CTED 22 PAGE 9 CENTR 00
50. F THE WORD 008 000 THEN BRANCH TO 006F BECAUSE S AT LEFT EDGE SINCE IS NOT AT LEFT EDGE LOAD THE 1 WORD AND SHIFT ITS 158 INTO DF LOAD THE 4 WORD 6 SHIFT THE NEIGHBOR IN DF TO THE 80 POS STORE SHIFTED WORD TEST NOW 40 POS IF RC 1 0 THEN SKIP SHIFTING 4 8 WORD BECAUSE IS OF PAGE SINCE A NOT AT TOP EDGE 4 9 WORD SHIFT LSB INTO DF LOAD 8 WORD OF gt 80 1458 STORE SHIFTED A 8 WORD IF 0 0 THEN SKIP SHIFTING WORD BECAUSE 15 AT BOTTOM EDGE SINCE 15 NOT AT BOTTOM EDGE 18 711117 FEFE 185859009 309022 SISBRSUTRK 8525 85885 A7 32 oD F8 96 87 FE A7 97 B7 80 78 7E 68 87 40 01 07 07 LDA RD LOAD 7 WORD RSHR SHIFT LSB INTO DF LON RD LOAD A 8 WORD RSHR DF 80 lt 5 PHI 17 STORE SHIFTED 8 WORD SEP R3 2 CYCLE SPARE SEP R3 2 SPARE SEP R3 2 CYCLE SPARE BOTO20 LDI 80 SET BIT POINTER SHIFT MARKER TO 80 PLO RE SEP R4 CALL SUB 40 TO COUNT NEIGHBOR S 175 AND WRITE IN NEW PAGE SEP 3 2 CYCLE SPARE BR CENTR6 4 GO ON TO TEST OF CENTER 6 BITS LFTEDG LDN RA 5 LOAD NORD 15 AT LEFT EDGE SHR 5 MOVE 86 BIT gt 40 80 BIT 0 PHI R6 STORE SHIFTED NO
51. FACTO PAGE 49 FOR A DESCRIPTION OF THE DISPLAY HARDWARE PROGRAM USEA GE 1 THE PROGRAM SHOULD BE LOADED INTO MEMORY STARTING AT LOCATION 0000 NOTE INDICATES A HEX NUMBER 2 THE FIRST NUMBER OF THE SERIES SHOULD BE STORED START ING AT MEMORY LOCATION FRSTNM 40002 1 DIGIT PER BYTE MOST SIGNIFICANT DIGIT FIRST THE NUMBER MAY UP TO 8 DIGITS THE PROGRAM HAS BEEN USED WITH ROLLS OF TICKETS WHICH CAN PURCHASED QUITE CHEAPLY THESE TICKETS USUALLY CONTAIN 6 DIGIT NUMBERS IN THIS CASE THE FIRST 2 BYTES DIGITS OF FRSTNK WILL CONTAIN 00 EX ASSUME THAT THE FIRST TICKET NUMBER IS 400123 ENTER THE NUMBER YOU MUST LOAD THE 8 DATA BYTES INTO MEMORY STARTING AT ADORESS 0002 BY KEYING IN 00 00 04 00 00 01 02 03 3 THE LAST TICKET NUMBER 1 4 IE THE NUMBER ON THE PIRST TICKET LEFT ON THE ROLL SHOULD NOW BE ENTERED AT ADDRESS LASTNM 000 EX ASSUME THAT 20 TICKETS WERE HANDED OUT SO THAT THE FIRST TICKET LEFT THE ROLL IS 400143 ENTER THE NUMBER AS 00 00 04 00 00 04 03 4 RUN THE PROGRAM THE PROGRAM WILL CYCLE THROUGH THE SEQUENCE NUMBERS DISPLAYING EACH NUMBER FOR ABOUT 3 SECOND 41 MHZ CLOCK THIS ALLONS EACH TICKET HOLDER SEE HIS HER NUMBER AND BE REASSURED THAT THE COMPUTER IS NOT CHEATING 5 PRESS THE I KEY THE PROGRAM CYCLES THROUGH THE SEQUENCE OF NUMBERS QUITE QUICKLY WHEN THE PROGRAM IS FULLY TESTED THE SEP R9 INSTRUCTION AT LOCATION 0041 SHOULD BE
52. H WLB BITTEST GHI PLO LDI PLO SL BR LDN SDI BR PLO SEX SEQ INC NOP LDN BZ DEC SMI BNZ BNQ REQ DEC BR ORG DC DC DC DC GLO BNZ GLO BN4 PLO BR GLO BNZ GLO ALDI BZ LDN PLO LDI PLO OUT BR ANDI GLO SR ORI 09 x 88 x 81 WL2 BITTEST 1 x Cul l 4 S8 e 4 BT2 87 MORE TONE 4 80 P SET LEADER STATUS ZERO IF LEADER CONTAINS LEADER STATUS GET FIRST ADDRESS TO BE OUTPUT SEE NOTE 1 ABOUT THESE 3 INSTRUCTIONS SET DF TO GENERATE MARKS FOR LEADER GO SET UP ADDRESSES FOR DELAY CONSTANTS GET PREVIOUS DELAY CONSTANT SET D IF PREVIOUS WAS A MARK CYCLE WASTE TUO CYCLES GETTING DELAY CONSTANT ADDRESS IS IN D WASTE CYCLES UP PART OF TONE CYCLE MOVE ADDRESS POINTER BACK TO HIGH PART CONSTANT WASTE 3 CYCLES LOAD DELAY CONSTANT ZERO IF LOW PART OF MARK DECREMENT 2400 HZ COUNTER DELAY LOOP BRANCH IF LOU PART OF 1288 HZ CYCLE SET ADDRESS OF TONE CONSTANT TO LOW HALF OF TONE GO BACK FOR LOW PART OF TONE ADDRESS 20H IS USED BY THE QUEST MONITOR MARK LOW 46 46 MARK HIGH 4X7 4 15 47 SPACE LOW 4 11 4 46 94 SPACE HIGH 4x18 4 15 91 GET LEADER STATE NON ZERO IF NOT LEADER GET A NON ZERO MORE LEADER IF NO EF4 SET LEADER STATUS TO NOT LEADER GO GENERATE SPACE IN FRONT OF FIRST DATA BITS GET 2400 CYCLE COUNTER
53. IALIZATION SECTION START 8 CHROUT SKIP AROUND DATA STOREAGE we 9 we 595 FIRST NUMBER IN SERIES LAST NUMBER IN SERIES 1 SUBR TO COPY FRSINM TO DSPNUM 5088 TO DISPLAY NUMBER SUBR TO INCREMENT DSPNUM AND COMPARE TO LASTNM MAIN PROGRAM P COUNTER ZERO QUT HIGH BYTES OF REGISTERS INITIALIZE DISPLAYED NUMBER LNITIALIZE DELAY LOOP COUNTER DISPLAY NUMBER FO A WHILE INCREMENT NUMBER I NOT PRESSED 00 NEXT 99 WINNING DRAW 90 400 0031 0033 0034 0034 0035 0036 0038 0036 0030 0030 0041 0041 0042 0043 0045 0045 0040 0048 0049 004 004 0052 0055 0057 0058 0058 0059 0058 005 0050 005 F8 B4 24 94 31 4 24 94 09 08 09 30 D3 F8 F8 4D 2F 05 34 05 30 41 45 58 48 AD BD AE BE RC1802 VOI LDI 5 PHI R4 DEBNCI amp DEC R4 GHI R4 BNZ DEBNCI B4 LDI 5 PHI R4 23 4 GHI R4 BNZ DEBNC2 FASTLP1 SEP R9 SEP 811 BN4 FASTLP WINNER SEP R9 BR WINNER COPYRTs SEP COPYNMs DLDI DLDI LDI PLO COPYLP1 LDA STR INC DEC GLO BNZ BR SLN TICKET RCA 1 PRESSED SO SET UP DELAY COPYN R3 FRSTNM RI3 DSPNUK RI4 8 15 813 814 814 R15 15 COPYLP COPYRT ROUTINE
54. IPSO FACTO publieation of the Association of Computer Experimenters TABLE OF CONTENTS 1 ACE Executive and Meeting Schedule 78 79 2 2 Editor s Remarks 3 3 A Software Standard for Kansas City Standard Tapes 5 Letters to the Editor 5 5 Abstracts from Dr Dobb s Journal 10 6 A Game of LIFE for the 1802 11 7 Items for Sale 23 8 CMOS 16x32 Video Display 23 9 Build 1K Video RAM 29 10 Reply from NETRONICS LTD President 35 11 Letters of Contact 36 12 An Extra Page of ELF Memory 36 13 Instant Editor 38 14 Interfacing a BAUDOT Teletype to an 1802 38 15 Mouse Trap Game for Pixie Graphics 47 16 The 1802 Programmer s Notebook 50 17 Erratta 55 18 An 1802 RAM System 57 19 Combination Lock and Door Chime 59 20 A Different Cassette I O Routine 61 21 Winning Ticket Draw Program 65 22 Minutes of ACE Meetings 68 23 T Shirts and Logo Contest 72 2 Renewal Membership and Membership Forms 73 Editor Tom Crawford Invaluable Assistants Wayne Bowdish Diane York and all contributors to this issue Information furnished by IPSO FACTO is believed to be accurate and reliable However no responsibility is assumed by IPSO FACTO or the Association of Computer Experimenters for it s use nor for any infringements of patents or other rights of third parties which may result from it s use All Newsletter correspondence should be sent to Tom Crawford 50 Brentwood Drive Stoney Creek Ontario CANAD
55. ISPLAY REFRESH PAGE AND CALL OPERATING SYSTEM TO ALLOW ENTRY OF INITIAL LIFE FORMS VIP OPERATING SYSTEM CALL SHOWN ERASEs LDI SET RA O FF HAS BEEN SET EARLIER TO NUMBER OF INITIAL DISPLAY PAGE TO BE CLEARED EN 09 s STORE 60 IN LOCATION AND DECREMENT STXD GLO RA 5 IF RAO NOT EQUAL FF PAGE NOT COMPLETELY CLEARS XRI LOOP TO 0164 AND CONTINUE CLEARING BNZ CLEAR RA 5 INCREMENT RA BACK TO X 00 FROM 1 LDI 07 5 INITIALIZE R REGISTERS AS REQUIRED PHI RI SET Ri 07FF CALL OPERATING SYSTEM SO THAT LDI 1 INITIAL LIFE FORM PATTERN DATA CAN BE ENTERED PLO RI gt THE CODE LISTED AFTER LOC 016D LDI 280 4 CALLS THE ROM OPERATING SYSTEM OF COSMAC VIP WITH 2K MEMORY PHI R2 SET R228028 21 FOR BIGGER VIPS SET RI 0176 F8 28 01 28 TOP RAM FOR OTHER COSMAC SYSTEMS ELF ELF I SUPER ELF 0178 A2 PLO R2 CODE BEGINNING 0160 SHOULD BE REPLACED BY CODE OR BY A BRANCH TO CODE WHICH ALLOWS ENTRY OF ADDR AND DATA FROM KEYBOARD AND WRITES THE DATA IN 4 THE SPECIFIED ADDRESS ON THE s INITIAL DISPLAY PAGE 0 79 02 SEP R2 BR VIP RON OPERATING SYSTEM 8020 017A 00 06 BLOCK 6 SPARE LOCATIONS 17A TO 17 8 OPTIONAL DISPLAY REFRESH INTERRUPT SERVICE ROUTINE IF NOT USING VIP ROM ROUTINE 8 NOTE TO USE THIS ROUTINE CHANG
56. ND SAVE SIXD R13 THEN DEC X TO POINT TO SEGSEL SHL SHIFT DIGIT SELECT BIT PHI RI2 NEXT DISPLAY DIGIT AND SAVE LDA R15 MASK OFF ANY UNUSED DATA BITS ANI 0F JUST IN CASE THEY ARE SET ADI CHRTAB ADO LOW ADDR OF SEGMENT PLO R14 SELECT TABLE AND SAVE LDI 8 GET HIGH ADDR OF SEG SEL TAB ADCI AND AOD IN CARRY FROM PREVIOUS PHI R14 THEN SAVE HIGH ADDRESS LDN R14 GET SEGMENT SELECT DATA ANU 5 8 PUT IN OUTPUT TABLE OUT 2 OUTPUT DIGIT DESELECT OUT 1 OUTPUT SEGMENT SELECT OUT 2 OUTPUT DIGIT SELECT GHI 812 AND CHECK FOR MORE 0 5 BNZ CHRLUP LOOP FOR NEXT IF NOT ALL DONE BR CHRRTN RETURN IF ALL DONE 0 DIGIT BLANK CODE BYTE 0 SEGMENT SELECT CODE DIGIT SELECT BIT 00 lt o v 4 TABLE TO SELECT CORRECT SEGMENTS BE DISPLAYED NOTE SET BIT SEGMENT ON 30 BYTE 5 42 BYTE 4 13 66 144 BYTE 60 5 70 f 6 BYTE 07 JBYTE 18 67 9 77 BYTE 70 B SMALL JBYIE 39 78 1 78 4 2 78 4 3 78 1 4 78 4 5 78 4 6 78 7 78 4 8 78 4 9 The Association of Computer Experimenters Minutes of Club Meeting 78 4 Held at Stelco Wilcox St Auditorium 6 April 1978 8 00 P M The regular meeting was preceded by a 1 hour tutorial Motion to adopt Minutes 78 3 Proposed
57. O 6 RESET 175 COUNTER R6 0 TO 00 GHI 6 FETCH SHIFTED WORD ANI t MASK OUT ALL BUT NEIGHBOR BITS 80 AND 20 SHL SHIFT 80 BIT INTO DF BNF 5401 10 INC R INCREMENT 175 COUNT 2808 BIT WAS 1 ELSE SKIP 5401 103 a SHIFT 20 BIT INTO BNF 401 20 INC R6 5 INC COUNT IF 20 BIT WAS 1 ELSE SKIP 20 0110 6141 0112 6114 0315 0416 0119 atic QIIE 014E 0150 0151 0152 0153 0154 0155 0156 0158 0160 0162 9 64 0166 0167 0168 01 6 0140 0170 0172 0173 0175 3B 10 22 3B 26 3B 2 FA 40 22 02 4 03 4 F8 09 73 64 07 F8 80 5401 20 540130 5401 40 546150 540160 540170 5401 80 5401 90 KRITEIs SSRTN SUB51 CLEAR GHI R7 FETCH SHIFTED A 8 WORD SHL 80 BIT DF BNF S40L30 INC R6 INC COUNT IF 80 BIT WAS 1 ELSE SKIP SHL SHIFT TEST COUNT IF 1 40 OF 8 BNF S40L40 INC R6 SHL 20 BIT gt DF BNF 540150 TEST INC 6 COUNT IF 1 GLO R7 LOAD SHIFTED 8 WORD SHL SHIFT TEST COUNT IF THE THREE BNF S40L60 NEIGHBOR BITS IN THE A 8 WORD INC 86 SHL BNF S40L70 INC R6 SHL 540180 2 INC 86 SEP R4 8 2 CYCLE NOP SPARE SEP R4 2 5 SEP R4 2 CYCLE SPARE SEP R4 2
58. RD GHI 5 0 THEN SKIP BECAUSE BZ TOPO3O0 4 15 AT TOP EDGE LDN LOAD WORD FROM RAM SHR MOVE 80 BIT gt 40 80 BIT 0 PLO R7 STORE SHIFTED amp 8 WORD TOPO30 GLO RD IF RD 0Os0 THEN SKIP BZ 80 030 BECAUSE IS BOTTOM EDGE LDN RD LOAD 8 WORD SHR f MOVE 80 BIT gt 40 NEW 80 BIT PHI R7 f STORE SHIFTED 8 WORD 801020 1 GO TO 0068 TO SET BIT POINTER AND t CALL 5 40 5 TEST CENTER 6 BITS 4 CENTR LDN RA LOAD WORD BE TESTED 4A WORD PHI R6 VIA RA AND PUT IN 86 1 GHI RC IF RC 1 NOT EQUAL THEN FETCH 8 WORD BZ CENOIO VIA RC AND PUT IN R7 0 FOR A IS LDN RC 4 AT TOP EDGE ELSE SKIP TO 0087 PLO R7 4 LEAVING 87 0 00 GLO RD IF RD O NOT EQUAL THEN FETCH 8 BZ 20 4 WORD VIA RD AND PUT IT IN R7 1 LDN RD FOR S NOT AT BOTTOM EDGE PHI R7 ELSE SKIP TO 008 LEAVING R7 1 00 CENO201 Dr 237 SET THE BIT BEING TESTED POINTER 40 LO RE CENO30 SEP R4 CALL SUB 40 COUNT 175 AMONG 8 NEIGHBORS 56 OF BIT IN 240 POSITION OF WORD 4 WRITE 1 IN NEW GENERATION i IN ALT DISPLAY PAGE GHI 6 SHL PHI R6 GLO R7 SHIFT ALL THREE WORDS LEFT ONE PLACE SHL A 4A 8 AND 4 8 WORDS IN 16 1 PLO R7 5 7 0 R7 1 GHI R7 SHL PHI R7 GLO RE SHR MOVE THE BIT BEING TESTED POINTER PLO RE ONE PLACE RIGHT XRI 01
59. RD ON CURRENT DISPLAY XRI PAGE HAS BEEN TESTED SO TO PAGE ALT BZ ELSE INCREMENT THE ADDR ES AND LOOP INC RA RA HAS ADDR OF NEW WORD IN CURRENT 4 INC RF t RF NON HAS ADDR OF NEW WORD IN NEXT GENERATION BR TST8OB 4 LOOP TO TEST OF 80 BIT START TESTING BITS IN NEW WORD ALTOI10 GHI RF 3 PAGE ALTERNATION GET NEW PAGE FROM RF PHI RA SET A CA 8 NORD ADDR TO NEW PAGE PHI RD GHI RB OLD PAGE ADDR NOW ALTERNATE PHI SET RF 1 TO ALTERNATE PAGE NEXT GEN GHI RA GET NEN DISP PAGE ADDRESS PHI RB SET DISPLAY PAGE POINTER TO NEW ADDR LDI 90 PLO SET 0 6 AND TO 06 PLO PHI RC BR TST8OB LOOP TEST 80 BIT START TESTING BITS IN FIRST NORD OF NEN PAGE SEP R3 2 CYCLE SPARE e SEP R3 2 CYCLE NOP SPAREe SEP R3 2 CYCLE SPARE SEP R3 2 CYCLE SPARE SEP R3 2 CYCLE 5 SUBROUTINE SUB 40 TESTS ALL 8 NEIGHBORS OF THE BIT IN THE 40 POSITION QF THE SHIFTED A WORD STORED IN 86 1 COUNTS THE 175 COUNT IN 6 0 AND MRI TES OR 1 IN THE CORRECT BIT OF THE CORRECT WORD IN THE NEXT GENERATION PAGE ACCORDING TO LIFE RULES SHIFTED NEIGHBOR WORDS 8 AND A 8 ARE FETCHED FROM R7 1 AND R7 0 FOR THE TEST 9 9 S4O0RTNs SEP R3 SUB40 00 RETURN TO MAIN PROG ENTRY POINT 1 PL
60. REBIT SA2 4 1 x 00 CASREAD PUT REMAINING BITS BACK IN R4 LORD D WITH MARK HIGH CONSTANT ADDRESS IF DF 1 LORD D WITH SPACE HIGH CONSTANT ADDRESS IF DF 8 GO GENERATE HIGH PART OF TONE FIRST ADDRESS TO LOADED TO R1 LOOK FOR UP CYCLE 64 CYCLES LONG SEE NOTE 2 8 CYCLE LOOP LOOK ING EF2 AS MUCH AS POSSIBLE ZERO LEADING SPACE STATE COUNTER SEE NOTE 3 ZERO BYTE TO BE LOADED SET UP FOR THE START SPACE AND 8 DATA BITS Rd IS THE BIT COUNTER SEE NOTE 2 START EF2 STATE SAMPLE GET NUMBER OF TRANSITIONS IN EF2 SET DF IF MORE THAN 11 TRANSITIONS GET PARTIAL BYTE SHIFT IN DF FROM THE LEFT PUT BACK PARTIAL BYTE DECREMENT AND TEST BIT COUNTER ZERO EF2 TRANSITIONS COUNTER 90 8 26 746 HAS STATE CHANGED HIGH TO LOW YES INCREMENT 85 CHECK FOR TIMEOUT AND GO LOOK FOR LOU TO HIGH TRANSITION HAS STATE CHANGED LOU TO HIGH YES INCREMENT RS CHECK FOR TIMEOUT AND GO LOOK FOR HIGH TO LOW TRANSITION OUTPUT BYTE JUST READ GET ADDRESS OF NEXT BYTE TO BE LOADED CONSTANT TO CHECK FOR LAST BYTE IDLE IF DONE TICKET DRAW 9 RC1802 VOl TICKET 3 78 32 50 32 911115 TICKET WINNING TICKET DRAN TICKET WINNING TICKET DRAW PROGRAM THIS PROGRAM IS USED TO RANDOMLY SELECT A NUMBER FROM A GIVEN RANGE NUMBERS AND DISPLAY IT ON AN 8 DIGIT DISPLAY REFER TO THE ARTICLE LOW COST 8 DIGIT DISPLAY BY BLAIR GERRI SH IN ISSUE NO 5 OF IPSO
61. RRUPT SERVICE ROUTINE 8146 FOR VIP ROM OPERATING SYSTEM FOR ELF OR OTHER WITH ROUTINE IN RAM PAGE 1 CHANGE TO 0182 OR OTHER RAM QR ROM ADDR SET R2 STACK POINTER TO OLFF COR ANYWHERE WITH 2 FREE LOCATIONS USED ONLY BY INTERRUPT ROUTINE SET SUBR COUNTER TOP HALVES 84 1 05 1 TO PAGE 1 01 FROM 82 1 R4 NOW 0101 SUB 40 ENTRY POINT R5 NOM 0151 508 5 ENTRY POINT 800 SET RA O AND SET A MORD ADDR PAGE IN AND DISPLAY PAGE POINTER IN RB 1 TO 06 FOR VIP WITH 2K MEMORY 4 gt CHANGE LOC OOIF TO 02 TO RUN 46 48 WITH 1 OF RAM SPARE SET RD TO SAME PAGE AS RA AND RB SET ALTERNATE PAGE POINTER RF 07 FOR VIP WITH 2K MEMORY gt CHANGE 0025 TO 03 FOR IK RAM NLBR CO CAUSES BRANCH TO ERASE ROUTINE AT 0160 CHANGE TO RUN 3 CYCLES SPARES TURN 186 T V CHIP SPECIAL TO VIPS ELF OR OTHER MAY TURN ON 1861 DIFERENTLY SET RC 0 AND R7 TO DEFAULT STATE ALL ZERO IF LOW BYTE OF ADDR lt O8 THEN SKIP BECAUSE IS AT TOP EDGE LEAVES RC SINCE NOT AT TOP EDGE STORE 8 GET DISPLAY PAGE IN USE 2 CYCLE NOP SPARE STORE DISPLAY IF LOW BYTE OF ADDR sF8 THEN SKIP BECAUSE IS AT BOTTOM EDGE LEAVES 0 0 0 SINCE A AT BOTTOM EDGE CALCULATE 4 8 AND STORE RD IF THE LEAST SIGNIFICANT 3 BITS O
62. ZERO MEANS END OF LAST STOP MARK FOR THIS BYTE GET ADDRESS OF NEXT BYTE TO OUTPUT CONSTANT FOR LAST BYTE TEST GENERATE TRAILER IF DONE DATA BYTE TO D DATA BYTE TO R4 15 BITS 2MARKS 8 88 58 HEX INITIALIZE 2408 HZ CYCLE COUNTER DISPLAY DATA BYTE AND INCREMENT R1 GO GENERATE SPACE IN FRONT OF DATA BITS IF 2400 CYCLE COUNTER MOD GET NEXT BIT MORE TONE CYCLES FOR THIS BIT IF D NOT 8 GET REMAINING DATA BITS PUT TO BE OUTPUT IN DF FILL ON THE LEFT WITH ONES FOR TRAILING MARKS 4 gt 63 A4 F821 F898 Al 5608 3D53 3053 3455 65 51 2889 84 F831 3881 E1 85 FCF4 FO 76 51 24 84 3289 AS FBSA 3D64 15 FF 1 SAVE 3066 3587 15 1 3875 3066 3078 64 81 3853 98 F823 BT2 17 _ CASREAD SYNC NOBITS SDELAY SAS STOREBIT SETD SAMPLE 581 582 581 582 583 READOUT FTEST PLO LSND LDI LSD LDI SEX BR LDI PLO LDI BN2 SMI BN2 BNZ PLO STN LDI PLO LDI BR SEX GLO ADDI LDX SRC STN DEC GLO GHI PLO LDI BN2 INC SMI BNZ BR B2 INC SMI BR BR OUT GLO SMI BNZ IDLE END 4 MARKL SPACEL 1 WLOOP x 98 1 x 8B CASREAD x O1 CASREAD SYNC S 1 x a9 4 x 31 582 1 S EADOUT Are X SA SAZ 5 X 01 SB1 STOREBIT SB3 3 x01 581 STO
63. address high start address low 1 byte load address low byte count 2 bytes 16 bit length hi then lo byte data byte 1 1 byte 8 bits n the value of the byte count byte 8 bits byte 8 bits of checksum formed by adding all bytes excluding file type amp checksum byte data byte n checksum If anyone has any other ideas please contact me or the editor REFERENCES 1 IPSO FACTO issue 3 p 36 2 BYTE s Audio Cassette Standards Symposium Byte Magazine February 1976 p 72 LETTERS TO THE EDITOR Tom 1 am in the process of putting together a newsletter supporting RCA s COSMAC VIP RCA s new marketing manager for the VIP assures me that he and RCA will be co opertive and informative and gave me your name I d like to act as a sort of central clearing house for VIP in formation exchange I have the full support and co operation of several VIP user groups and have permission to reprint selected articles from their newsletters I d like permission from the ACE group to reprint from your newsletter too Ihe sample issue for which there will be no charge should be ready to mail by June lst and will be mailed to you now that I have your name and to anyone else in your group who let me know he she wants it I m looking forward to seeing your newsletter and to getting acquainted with your group LETTERS TO THE EDITOR CONT D Thanks Terry 1 Laudereau The Viper Box 45 Audubon
64. anation The strategy is to assume that the two stop bits and the start bit produce a consistent wave form independent of what preceeds or follows them The technique is to sync on some characteristic of this wave form then set up a string of eight sampling windows The program counts the number of transsitions in each window a simulated frequency to voltage converter This gives a statistical basis for each bit of the data There are two parameters in the cassette to memory routine They are marked See Note 2 in the listing at locations 53 and 62 hex The constant at CASREAD determined the criterion for estab lishing the synchronization for the byte to be read this program we are looking for an up part of a tone cycle 64 machine cycles long 61 The constant at SDELAY is used to position the string of eight Sample windows To determine the proper values for these two constants we need to modify the program so that it records the transitions counter R5 for a dozen or so bits after a sync accomplish this change the constant at NOBITS to 24 hex change the three instructions starting at SETD to BR 2 SEX 1 INC 1 and place an IDLE at FTEST The value of the constant at CASREAD is adjusted so that a consistent synchronization is realized can vary this constant between eight and ten and get consistent synchronization The constant at SDELAY is chosen to position the samples for a particular value of the s
65. bruary March and April 1971 November 1971 and January 1972 The name derived from an analogy with the growth of colonies of living organisms such as bacteria The idea is to start with a simple pattern of live cells in a COSMAC 1 s in memory giving spots of light and see how it grows when certain very simple genetic growth laws are applied Every cell in a square array has 8 neighbours counting diagonals The rules are Each cell with two or three neighbours survives Each cell with four more neighbours dies from overcrowding Each cell with one neighbouc or none dies from isolation Each empty space with exactly three neighbours has a birth live cell in next generation All births and deaths occur simultaneously together they produce a new pattern for the next generation The changes are unusual some times beautiful always unexpected Very simple initial patterns can grow to enormous complexity and persist for hundreds of generations In the program two pages of RAM are used for display refresh Storage One stores the current generation s pattern and is accessed by the interrupt service routine using RO as the DMA pointer as controlled by interrupt and DMA requests from the 1861 video chip The other page stores the next generation s pattern as it is built u bit by bit by the program which of course applies the rules listed above counting the number of live neighbours for each cell in the current generation The wa
66. e working registers R6 and R7 whenever the word touches an edge in place of whatever might be in noneexistent neighbour words This has the effect of killing or distorting growth when pattern hits an edge but at least the run continues one can watch other parts of the pattern develop Tests are made for top or bottom edge before testing the 80 bit Such words are labelled by making RC l or RD O respectively zero otherwise these registers are loaded with the address A 8 and A 8 respectively Left edge words are detected during setup of the 80 bit test while right edge words are checked before test of the Ol bit With a VIP operation is as follows The program is loaded with a CO LBR at location 0027 When the switch is first thrown to RUN initialization is followed by jump to the erase routine at 0160 which clears page and calls the operating system Best next step is to immediately write a C8 NLBR in 0027 so that the patterns you are about to enter on page 6 don t get erased when you forget Then call the operating system in the normal way key C held down while switching to RUN and use the memory write mode to enter the starting pattern somwhere on page 6 repeat this step as needed The four center words are 067B 067C 0683 and 0684 making a chart helps Finally switching to RUN with no keys held and a C8 at 0027 starts the evolu tion which stops only with a stable pattern or a switch to RESET With l K
67. ecorder Also given are listings to play music to interface with a Teletype to measure frequencies f max 5800 Hz and to measure time inter vals Hardware requires a 2 Mhz crystal plus simple cassette and Teletype interfaces Of interest is the fact that the software given implements the Kansas City standard for cassette interfacing 10 ABSTRACTS FROM DR DOBB S JOURNAL CONT D 4 Edward McCormick Promable RAM plus 256 byte EPROM plus cassette recorder plus simple transistor cassette inter facing hardware can overcome a limited memory lack of an OP and volatility of memory Same Issue as above The operating system performs five basic functions 1 starts program execution at any place in memory 2 reads from memory 3 writes to memory 1 reads from cassette recorder to RAM 5 writes from RAM to cassette recorder Cassette software for interfacing described in previous article above Operating system stored in a 1702 PROM with battery back up MACHINE LANGUAGE GAME OF LIFE PROGRAM FOR COSMAC 1802 by Ben Hutchinson Lexington Mass Dear Tom I appreciated your prompt and friendly response to my inquiry I am also going to look into Pitman s TINY BASIC and that offered by Infinite Inc I assume however that these are pretty much stripped down integer arithmetic no strings etc interest you expressed got me started documenting my LIFE program subsequently a few others inquired a
68. eived a letter from Mr George Meyerle President of Netronics Research and Development Ltd which should answer a lot of questions asked by those of you who joined Netronics Users Group many months ago and haven t heard a thing since Lok for Mr Meyerle s letter in this issue Those of you with RCA VIPs will be interested in a newsletter dedicated to the support of the COSMAC VIP Volume 1 Issue 1 16 pages came out in June 1978 and included a number of articles such as Tape Read Write Routines and a primer on use of the CHIP 8 language Single copy price is 2 00 annual subscription rate is US 15 00 ten issues per year For more information contact the Editor VIPER Box 43 Audubon PA 19407 A SOFTWARE STANDARD FOR KANSAS CITY FORMAT TAPES Bernie Murphy Oakville Ont Many owners of microprocessors are in the process of getting a cassette tape interface up and running or already have completed this task If we wish to exchange programs on tape a certain set of rules regarding data format must be set In order to get some standard going the following format is recommended I At least 15 seconds of mark 2400 HZ at the beginning of a file II A11 data bytes are 8 bits plus one start bit even parity and one or more stop bits III The Simplified format as discussed in the third issue of IPSO FACTO be used but slightly modified file type 1 byte ASCII character upper case 5 start address high 1 byte load
69. ell Wowl Lets hear about iti T C Does anyone have any ideas for a S 100 bus interface like the prices on 16k memory boards and would like to use one A schematic would be appreciated Do you have diagrams for a simple RS 232 interface and soft ware to use it I would also be interested in parallel interfaces and software as I am not very good at assembly language programming Keep up the good work Sincerely A D Barkdale Garbee II Student Experimenter 1601 Clayton Avenue Lynchburg Virginia 24503 5 I might be able to organize a branch of the club here in Lynchburg Any interested persons please contact him directly I think its a tremendous idea 9 ABSTRACTS FROM DR DOBBS JOURNAL Paul V Birke Burlington Ont DDJ is the definite source for software in the publishing world of personal computing in North America To quote from DDJ In the two years of publication DDJ has carried a large variety of interpreters editors debuggers monitors graphics games software floating point routines and software design articles DDJ also publishes independent evaluations on products produced for the personal computing market Since DDJ is a subscriber supported journal i e carries no paid advertising its evaluations are as unbiased as is possible meet 1 2 3 Abstracts of articles in DDJ will appear in IPSO FACTO if they either of the following two conditions 1 The article directly perta
70. es the 1802 chip a natural for anyone who wishes to ease into the microprocessor field without too great a cash outlay However before any serious programming can be done some form of terminal must be obtained as loading via a hex keypad and reading data from LEDs or a 7 Segment Display is rather slow At this point the cost of the system will likely soar as a Video Display or a printer will cost upwards of five hundred dollars Even a reconditioned Model 33 Teletype which is an ASCII machine and will interface with the 1802 hardware and software available costs over one thousand dollars A low cost alternative for those who can get their hands on one is a Model 15 or 19 Teletype unit These units have long been removed from commercial service and can often be obtained from ham radio operators for a very modest amount As they are Baudot machines they require some software modifications if they are to be used a system that communicates in the ASCII code This however is not difficult to implement A Baudot machine is however lacking in two areasthat cannot easily be overcome 1 The keyboard is a rather slow mechanical one that is awkward to use i e it must be shifted for letters figures changes Also there are no provisions for many of the arithmetic signs used in BASIC for example 38 2 Some useful ASCII characters that might be found in the out put string are not available on the printer Examples of this are arithmetic si
71. gns such as plus multiplication sign equals less than greater than etc As a result of the above it was felt that it would be better to use a low cost ASCII keyboard Encoder chip set configured as a parallel input rather than using the Teletype keyboard as a Serial input device That looked after 1 above The second limitation can be tackled by assigning some of the extra characters such as and dollar sign to the missing arithme tic signs This usage will soon become quite natural to the user The ASCII to Baudot conversion can be performed by a hardware circuit and indeed many hams have gone this route However it is more natural to do this in software in a computer system as no addi tional parts are required and the memory that it takes is minimal ELF 2 5 Q MfG 5 Q 2 222727 or Sim 5 i gt gt K 245294 15 VAC 3 16 IA D Fig 39 THE HARDWARE The first thing that must be done is make sure that your Teletype is working well Details of the operation of the machine are available from many sources The Sept 1977 issue of 73 Magazine is largely devoted to TTY and although there are more comprehensive sources available I was able to gain insight inte the operation of the machine weil enough with this issue to get the machine running The Selector magnets on the L H S of machine should be wi
72. gs and 2 together with the rules of LIFE given above make clear several key facts on which the structure and operation of the COSMAC program are based 1 All neighbours of the center 6 bits of the A word 02 thru 4 are contained in only 3 RAM words A 8 and 8 2 In contrast the 80 and Ol bits MSB and LSB clearly require separate and more complex treatment since in each case three additional RAM words contain at least one neighbour bit for a total of six words 3 Testing all the neighbours of the bit in the word is particularly straightforward all the neighbour bits are in three words and all can be easily shifted left into DF where a single BNF instruction tests or 1 4 Special provisions must be made when the word is at the edge of the display area and one or more words containing neighbour bits do not exist on the display page These facts are the key to the organization of the program s shown in the flow chart of Fig 3 there are three main code seg ments concerned with the actual testing of neighbours of all 8 bits PROGRAM FOR COSMAC 1802 CONT D MACHINE LANGUAGE GAME OF LIF in a particular A word one for testing the 80 bit one for testing the center 6 bits 02 through 40 which uses a loop and one for test ing the Ol bit Each of these code segments loads the A word and its neighbours from RAM after testing whether is edge word 1 then shifts the
73. he 1 memory I added on using plans in the P E articles I was forced to use LEDs for readout because I could not locate the necessary HP part Also I am including the IC for keyboard hexadecimal system is not up and running yet for I have not finished soldering and I have not bought the crystal and finally because I cannot find a CDLO58BE to run the LED display I am planning to use a modified P E monitor and my uses will be mainly games mathematical programs eg probability randomness etc and a few relays for controlling apliances In the past I have concentrated on software because I was introduced to computers in school where I met a Wang 2200 But I find that I am more interested in electronics and solid state experimenting I plan to add a cassette tape recorder to store programs and eventually add a TV display One of my main restrictions is money since I ama high school student using my own money to build my Elf I am looking forward to receiving your newsletter and would appreciate it if you would let me know if there are any members of your club in my immediate area Erin Mills Paul Brophy 4131 Saronton Court Missisauga Ontario L5L 1Y Tom I have built a COSMAC Elf and would like to keep in touch with others who have built the COSMAC Elf Thank you Robert Schroder 23 Ave D Holbrook NY 11741 USA AN EXTRA PAGE OF ELF MEMORY by William P Webb San Rafael The Elf microcompu
74. he remainder of the wiring shown in Figs 1 and 2 on page 65 of the March 1977 P E remains unchanged Next the 4042 4001 and 4049 are wired as shown in the diagram below For the most part only the new wires are shown Of course in addition to the pin 19 connection shown the 2 210l s have to be connected to the address bus the data bus and the rest of the control lines as shown in Fig 4 page 35 of the August issue of P E The result of these modifications is another 256 bytes of memory for the price of one inverter This memory has the address of 0100 1 1 t 4 5 4 4 4 uic 2 5 4 mE 5 4 s s i 1 p pes eol 4 1 NP A 1 5 t M 8 I S 1 2 amp EEr n an 7 1 1 4 s 2 poke 1 24 carca on 1 e oe ec h 42 4 wel s t dem n E HEN 2 5 5 8 cda 4 m 1 5 2 22 v i PEE Ber ul 2221 1178 As mud nde T 5 A i 224 d x 7 qM k m 4 te 4
75. her functions work I would be interested in corresponding with anyone interested in a low cost A D converter am thinking of using Exar s 2240 or Intersil s 8240 One example of an A D converter may be found in Popular Electronics Feb 1977 in the Solid State column Sincerely Chris Airhart 364 Church St Stratford Ontario N5A 251 Tom Thanks for your prompt response Your club sounds very active amp exciting Flease send as many back issues of IPSO FACTO as possible particularly issue number 5 have been very interested in 5 100 conversion if possible and MAG tape storage and many other subjects covered in your newsletter My RCA 1802 system is configured as follows LETTERS TO THE EDITOR CONT D Circuit derived from Popular Electronics articles Hexadecimal pad input 1K memory board 2102 Q line speaker Toggle switch input I am presently building a mother board using Molex right angle connectors a la SWIP 8800 a digital I C test board both TTL amp CMOS amp 3 1 0 Port board entire system including PC boards entirely homebrew am extremely interested in your 8K memory board and Kansas City standard cassette interface and TVT video displays I have been looking for a suitable TVT interface but have not found one as yet Please send me as much info on these projects as you can and I will forward additional information on both my software and hardware A friend and I a
76. ing locations in the software LOCATION OLD INST NEW INST T B2 35 BNe 3D 41 B2 35 BN2 3D 46 BN2 3D B2 35 53 B2 35 BN2 3D Hardware Paper Tape Loader Issue 5 pg 4 10 Figure 1 was accidently omitted from this article so here it is with our apologies 55 7 BIT ASCII CODE LEADERS NUL 7 EE d O gt J gt 2 W rj 38 xj gt 25 38 58 gt Or EE This is ASCII HEX of first line of Object Code listed 9 on TTY 64 chars 32 bytes gt 00 QN NO I z 65 t 2 gt Ex gt m 9 52 gt 3 O 4 o MEUM OQ Figure l TAPE FORMAT 56 AN 1802 RAM SYSTEM by Bernie Murphy Oakville Ont If your COSMAC 1802 is suffering from lack of memory this roject may be the cure Prime design goals for a memory system are 1 lowest power consumption possible 2 static memory easy to use 3 minimum parts lke low cost I believe that by using 2114 static RAM chips 4K bits the above have been achieved At the time this article was written the cost for a prime 2114 was 6 75 U S This price is very favourable compared to 4 2102 chips costing 5 00 U S The circuit in figure 1 has been ru
77. ins to the RCA COSMAC 1802 uP system 2 The article is considered by this reviewer to be of general interest to the membership David M Allen Use a PROM for a Character Generator Vol 2 No 5 pe 17 May 1977 In a letter David discusses the use of the 1702A PROM as 8 by 8 dot matrix character generator using address lines AO Al and A2 for row select while lines through A7 are used for character select Although limited in speed he used the AM1702ADC to make a 26 line by 64 column CRT display David points out the existence of even faster PROM S guarantees their usefulness as character graphics generators Joe Weisbecker A Practical Low Cost Home School uP System Vol 2 No 5 pp 34 44 May 1977 doe discusses the approach to a minimum uP system called FRED developed around the COSMAC 1802 It contains 1 RAM Hex Key board cheap cassette and user TV set RF The philosophy of use is one of education games and true creative experimentation Joe estimates today s cost as less than 200 This lengthy article describes in some detail many aspects of this low cost system concept Many applications are given some soft ware of which have already been fully developed for the COSMAC microprocessor Edward McCormick Utilities amp music on the COSMAC Elf No 19 Vol 2 Issue 9 pp 30 33 Ed s article lists and explains software which reads and writes programs and data to and from a regular cassette r
78. interested to see if anyone else has played with this chip and possibly had similar difficulties Perhaps you could write a little blurb on the above problem in an upcoming IPSO FACTO That s all for now I look forward to receiving IPSO FACTO 6 Regards Clint Steinberg VE7CDE Dear Sir I would like to thank you for the back issues of IPSO FACTO I did not realize that there were many 1802 users and your existance has come as a pleasant surprise I have two microts running a Netronics Elf and RCA VIP I had originally purchased the Elf with the intention of expanding it but the board I received from Netronics had two shorts between memory lines and an intermittent break where the load line passed 7 LETTERS THE EDITOR CONT D through the board It took a few weeks to sort out the bad keys and find a 015 cap which was missing It also took them three months to send me the power supply I ordered with it I have yet to receive their newsletter The VIP has been different story It took about two hours to assemble and has worked perfectly I have had no problem expanding memory or finding the IC s for the 1 0 port I have been ordering parts to expand my system and I hope you will find the following of some interest I have ordered the UT4 from RCA to use along with the tiny BASIC I have It will plug directly into the Socket used by the ROM 566 supplied with the VIP and uses the same address The tiny BASIC is set u
79. it Synch pulses required by the tele vision monitor are also required but their generation is simplified by the use of LSI TV sych generator chip The 6 13635 Mhz crystal can be ordered from International Crystal in Oklahoma City paid 5 for it but that was nearly two years ago so it may be up some what It is important that the inverter IC used as part of the crystal Scillator be CMOS either 74004 or 4049 or proper oscillation BUILD 1K VIDEO RAM CONT D will not occur The labeled lines connect to the other drawings but not all of the lines are used The 74193 counters are quite hungry power eaters and if you can afford the higher price 7415193 or 740193 would be worthwhile Memory The memory is simple It s just 1 of RAM made by using the 2102 IC The data in lines of all 2102s connect to the main memory bus You should buffer them with 4050s not shown to prevent excess bus loading The address and the data out lines connect to selectors the next section Address Selection and Data Gating Normally the addresses produced by the timing circuit are applied to the memories to scan them When the CPU wants to access the display memory it must present its address to the memories and gate the data out onto the bus The 8122 data selectors are used to switch the address lines of the memories from the display timing circuit to the CPU You can find the data sheet for them in the National Semiconductor Data TTL B
80. location 8 and place the least significant byte of X in location 4B The clock should be accurate to about one part in 10 000 134 bytes F8 67 A5 F8 66 68 A2 3 85 6C 6 FA F 52 12 25 FA 52 12 19 37 1B 26 86 0 6D A2 65 Eh d2 Fh 52 60 F5 57 60 72 52 22 82 FF 67 32 FF 02 28 22 42 FD 10 32 28 80 AY 30 28 B1 F8 67 1 03 FC 30 21 6C 30 5A 2 1 GA dd 16 4 00 di GA 00 19 69 00 01 03 01 1 20 00 01 4 d 19 20 00 7 Hex Frequency Counter The first byte of the frequency will appear after the 9 14 comes on pressing the input key will show the second byte of the frequency followed immediately by turming the Q Lamp off one second cycle for the next frequency count and the cycle has been repeated For this application the input frequency source uses port 2 A 2 K ohm pull up resistor could he used for TTL compatibility For an 1802 clock frequency of 1 789773 MHz the counter will handle minimum pulse width of 626 microseconds at maximum frequency of 7990 Hz For other 1802 clock frequencies use 10 256 14 255 10 Convert X to the nearest whole hexadecimal integer and place the most significant byte of X in location 03 and the least significant byte of X in 08 59 bytes F8 QQ A1 B1 F8 2 56 B2 3D 7A 35 16 22 92 3A 19 82 32 29 3D 27 11 22 92 23 32 32 29 3D s
81. lso description is enclosed which should be detailed enough to allow it to be easily adapted to any COSMAC system with 1 of RAM and 61 video chip and some sort of keyboard and monitor to allow entry of any data to any address don t know your Tektron at all but what I read of the ELF convinces me it would run on one Writing the program was both challenging and fun and running it even more so We have spent hours just trying new patterns The generations come at 2 second intervals so its never boring I d like to see the program widely published and enjoyed I m pleased at the idea of people having fun with it on small simple COSMAC systems I hope you can publish it in the club newsletter Feel free to make lots of copies and pass them out at meetings or any other way I sent my dues to your membership man right away I m part icularly interested in the back issues describing the TVT 6 and keyboard interfaces haven t yet heard Let know how you and others make out with LIFE and if you discover or find published any new LIFE forms not described in the 1970 72 Sci articles I ll send to anyone who gets it running a few patterns not in Sci which my son and I have discovered which are long lived or otherwise interesting I tested the program in its 1 version with interrupt routine in RAM on my VIP and it ran fine Regards Ben Hutchinson 30 Partridge Rd Lexington Mass 02173 The game of LIFE was inve
82. meeting schedule will commence in the fall Date Tutorial Meetin Tutorial ept Sept 26 7 00 Oct 10 7 00 8 00 Oct 24 7 00 Nov 14 7 00 8 00 Nov 28 7 00 Dec 12 7 00 8 00 150 unless notice to the contrary all meetings will be heid in the Stelco Wilcox St Auditorium EDITOR S REMARKS June 1978 Looking back over the founding and development of the Association of Computer Experimenters and IPSO FACTO I must say I am amazed and pleased at what we have managed to do in less than one year We have gone from a group of a half dozen with brand new computer kits and some far out ideas to a group in excess of 500 from literally all parts of the world with a large number of well developed home computer systems We are linked together by one of the best computer club newsletters around supported by a wonderful group of contributors which is easily the envy of any other newsletter amateur or professional There are reportedly more than 400 computer clubs on the North American continent We may not have the largest one yet but I feel we provide a most important service to our members the communication of ideas and facts It is the intention of the new ACE Executive to continue and improve this service in the next year I am pleased with our new Executive I know most of them personnally and I am sure they will all do an excellent job REPRINT POLICY We have had several people inquire about IPSO reprint
83. n time only about half of the 1 memory is being displayed Which half is displayed depends upon the setting of a control line call these pages and the control line is the page select line my 1802 system the page select line is connected to the Q output It could just well be connected to an output port or not used at all if you only want one page capability The output of this display is standard NTSC ideo If you need RF for an unmodified TV there are several of these vailable the market I would recommend using video however as the required modification is not very complex There have been several articles in BYTE and KILOBAUD showing how this is done Finally the memory in this display can be used as ordinary memory if the display function is not needed How does this differ from TVT 6 The circuit for the TVT 6 is much simpler and cheaper than what I am offering The difference is that TVT 6 is perhaps half software and my display is all hardware I do not claim that my way is better that is a trade off that each user must make for himself This circuit is always operating and it includes its own memory use it a program need only store into the area set aside for it The Circuit Timing Generator The most complex part of the display is the timing generator It must produce a series of addresses to cause a scan through memory at a certain rate Pulses are also required by the character generator circu
84. nning successfully for 2 months I am currently running 1 MHZ clock and using 2K out of a possible 4K expansion above requires another decoder The circuit should run at 2MHZ without any problems Speeds above 2 MHZ will probably require buffers on the address lines as well as a faster chip than the 4042 which latches the high portion of the address on the address bus By adding a few more gates write protect and bank disable can easily be added Once these features are operating I will document them in another article The bus configuration in figure 1 is for the TEC 1802 bus with the CPU clock brought out on pin 25 In order that write protect works properly when using the M key sunction the 1802 CPU board requires that the MWR line that goes to 29 of the edge connector come from Vl4 pin 4 and not the pin 35 of the MPU By cutting the trace from pin 35 of the MPU to pin 29 of edge connector and placing a jumper from U7 pin 20 to pin 29 of the edge connector this can be accomplished Please note that the on board 256 bytes of RAM has to be removed if the full address space is desired cutting V5 on the T C 1802 CPU board and connecting the pin on this board to one of the lines 1 25K 2 25K or 3 25K configuration is possible If anyone has any questions or comments about my design please contact me Bernie Murphy 102 McCrany St Oakville Ont L6H 166 References User manual for the 001802
85. nted by mathematician John Horton Conway in 1970 Though not conceived as a computer game originally 1 MACHINE LANGUAGE GAME OF LIFE PROGRAM FOR COSMAC 1802 CONT D it quickly became popular as such Surely it is one of the more delight ful and absorbing of computer games especially with a CRT display Although it can be and is played with a keyboard printer terminal it is essentially graphical in nature rather than verbal or numeric and really needs none of the usual keyboard interchange The Klingons are coming Enter move All these things suggest that it might be ideally suited to a COSMAC based microcomputer equipped with an 1861 video interface chip and nothing more than a hexidecimal keyboard This turns out to be not only true but easier than you might think The accompanying program uses only 1024 bytes 4 pages of memory of which half is used for current and alternate display refresh for the standard 32 X 64 display format The program takes about 2 5 seconds per gener ation It was developed and run on an RCA COSMAC VIP but can be easily adapted to run on any of the ELF or similar small COSMAC systems so long as they have an 1861 1 or more of memory and some way to write arbitrary bytes to selected addresses anywhere in memory complete description of the Game of LIFE may be found in Scien tific American for October 1970 page 120 Important follow up art icles appeared as follows November 1970 January Fe
86. ook single line called BE bank enable operates this switch If BE is low then the memories are addressed by the CPU If BE is high then the display has control of the memories Two 4016 quad switches are used to gate the memory data out onto the bus Tri state buffers could be used here if you happen to have some Note how the 1802 MWR and MREAD signals connect to 1017 8122 The R W line on pin 12 of IC17 goes to the R W pin of the 2102s There are CMOS equivalences to the 8122 such as 4052 Character Generator Logic The final section of the display is the character generator circuit The heart of this is the 2513 character generator ROM I currently use an upper cases only versio but you can replace this with any type you need There are some with 128 symbols upper and lower case and the Greek symbols These fancy generators cost more The inputs to the character generator are connected to the outputs of the memory chips The output is then strobed into the 74165 shift register and clocked out bit by bit If bit 7 is 1 then the 7474 at the top of the drawing is set and the blink signal turns the path of the bits on and off about lhz Note the connections for Field Blank A and D refer to the timing circuit Signal D and the components on it are somewhat critical Those resisters while they look useless are quite important The transistor can be just about any general purpose signal transistor The connection of the M line and the N
87. p to use the ASCII R W routines provided in the 014 I will mount both ROMs and use DIP sw to select which system I want as a monitor have also ordered memory board from Quest with a TTY interface and S 100 memory interface hope this will be to kludge into my system have also ordered used KSR 33 for 300 and will let you know how it works I have been using a GE 51058 cassette recorder to record programs from the VIP and the following method seems to work every time Record Volume MAX Tone lowest position Load Volume 3 5 Tone highest position Also I am using a TV l I purchased from JADE which works fine with the VIP but does not work with the Elf I have been hooking it to the UHF antenna and tuning to the lowest UHF station I can This seems to give me a more stable picture and since it is used mostly for games I don t really care how sharp the image is I have written a few simple programs in CHIP 8 and adapted the PE music program to the ELF I am working on a 8 program which will allow me to use the VIP as a calculator So far it will add three decimal numbers and display four I will include a copy of it when I get at least four functions working We re waiting Richard T C Thank you Richard Blessing Dear Mr Crawford I am having trouble with the CPU 1802CD on my TEC 1802 The instructions 67 62 63 and 1N do not function properly Has anyone had any similar problems The ot
88. policy so here is what we have come up with our thanks to DDJ Articles herein that are copyrighted by individual authors or otherwise explicitly marked as having restricted reproduction rights may not be reprinted or copied without permission from the authors 11 other articles may be reprinted for any non commercial purpose provided a credit line is included The credit line should credit the author and should indicate that the material was reprinted from IPSO FACTO a publication of the Association of Computer Experimenters AUTHOR S ADDRESS POLICY promote communication of questions and ideas relating to particular articles we print we shall in the future print the mailing address of all authors of articles and letters unless the author specifically states otherwise We encourage anyone with questions or needing more information on an article to contact the author directly This will reduce the amount of letter re routing done by the IPSO FACTO Editor MEMBERSHIP RENEWALS Effective June lst 1978 renewals are required for all 1977 78 members in order to continue receiving IPSO FACTO in 1978 79 6 issues are planned Note that if we haven t received your renewal by mid August 1978 you won t be getting Issue 7 which is planned for the end of August Elsewhere in this issue you will find a renewal form and instructions Note that the annual fee for 78 79 is 10 00 NETRONICS AND THE VIPER This Editor recently rec
89. published in both Popular Electronics and Dr Dobb s TC I sent that article to PE on July 5 1977 August 18 I sent a letter asking about its status I heard absolutely nothing from PE so in September I sent the articles to DDJ Finally on November 21 PE sent me galley proofs PE never even let me know that they had received my article or inquiry When I finally heard from PE it was too late to do anything about th Situation Regards Mack Edward McCormick Tom Thanks for your rapid reply to my letter Since receiving your letter I have received the three back issues of IPSO FACTO so there is no need to send me them again Also my 2 friends have finally received their back issues This morning I received IPSO FACTO 5 boy is it fat It sure takes a long time for the issues to get to the West Coast though Presently I m making paper tape recorder so I can read Tiny Basic into my COSMAC I m really looking forward to getting Tiny up and running The paper tape reader will cost about 15 811 of that is for the photo transistors If it works OK perhaps I ll write it up for the newsletter Regarding my inquiry on the 1854 UART my problem can be stated quite simply The Uart will not transmit properly unless the TR bit in the control register is reset to In the RCA data book they say TR should be set to 1 for transmission It took me a couple of days to realize that the UART transmitted OK only if TR O Tom I would be
90. r Pressing the input switch loads the first byte Pressing the input switch again turns on the Q Lamp and reveals the contents of the accumulator Repeating this cycle will sum the next input to the contents of the accumulator F8 A2 F8 20 Al F8 51 9 7A 22 6C 64 22 37 10 12 El F4 73 11 64 21 7B 37 18 32 09 gg 00 4 Hex Multiplication Program performs single precision multiplication Press the input switch to load the first number and then the second Press the input switch again and the Q Lamp will come on with the answer The cycle is then repeated F 43 F8 A5 F8 45 9 7 EL 6C 64 24 37 10 12 E5 6C 64 25 3 18 A2 44 21 Al F 00 08 A7 81 F6 Al CF 30 30 83 56 82 F4 82 A2 27 87 24 37 7B 83 56 6 64 26 37 30 09 00 00 02 Note Programs 3 and 4 do not have overflow detection 50 1802 Programmer s Notebook Relocation Technique Any software written in 1802 machine language may be used on any other 1802 system orovided the source program is properly relocated a Memory Relocation The operand of each branch instruction must be changed to reflect the displacement the program has undergone Initial register values such as stack and subroutine addresses must also be changed b Register Assignment Some systems have several of the scratch pad registers dedicated to the operating system located in ROM and are therefore unavailable for use by
91. re working on a new language not BASIC It will include 4 Byte accuracy in all math calculations 26 variables and will utilize Reverse Polish notation At present it looks like it will require only l or 2 K of memory Thanks again for your response and look forward to receiving IPSO FACTO Gregg Germain Thanks for your letter Gregg Note the 2 TVT articles in this Issue Also watch for a third article in the next Issue We have to get the interface running yet We would greatly appreciate receiving more information on both your hardware and software Gregg Perhaps in the form of newsletter articles Keep in touch Tom Dear Tom Thanks for sending me the back issues of IPSO FACTO They have provided me with several hours of informative reading hadn t realized that you were so well organized I currently own a Super Elf made by Quest Electronics in California It recently won the Science Fair at my school I would like to sell it perhaps to a member of the club have enclosed information Can you send me a copy of the pinout of the Tektron 1802 Bus I would like to build a compatible system Done TC Is anyone up there considering a 24x80 video display am thinking about building one in the near future and would appreciate any ideas I m thinking more of a stand alone unit with integral memory and RS 232 data transfer rather than a system dependent unit as I would like to use it on the computer at school as w
92. red in parallel rather than in series as this will allow them to work on a low voltage loop supply I am using a simple 10 volt D C supply as shown in figure l Current to run the magnets in this configuration is roughly 60 M A This can be handled by any Plastic Tab type transistor with a dissipation of about 5 watts and a breakdown voltage more than 50 60 volts The Reverse biased diode from coll emitter is to suppress the spike produced by the magnets as the field collapses when they are de energized I have configured this cir cuit to be in the harking state machine locked up when no data present when Q is equal to which is the state that the 1802 Will be in after a Reset Therefore whatever program is running it is not necessary to initialize the Q line to lock up the TTY I have not encountered any problems in running the magnets directly i e no opto isolator between the CPU and ITY Note that most references to TTY in ham publications will show a high voltage in the vicinity of 120 volts D C loop supply This is not required in this case and would only complicate the switching design The speed of the Teletype machine that you have must be deter mined before the software delay loop is written This can be done by wiring the keyboard contacts into the loop and running the machine in the local mode If an oscilloscope is connected across the keyboard contacts and the space bar is depressed the single 1 data
93. rts again at the beginning Note that this program assumes 256 bytes of memory only 59 ADDRESS ae 8 00 5 1 70 09 00 3D 15 3D 10 30 25 70 31 08 20 DELAY2 DELAY3 DELAY DELAY5 WRONG PLAY1 PLAY2 PLO R1 SEX R1 LDI 70 PLO R3 SEX R3 BN 6 LDX PHI R2 DEC R2 GHI R2 BNZ DELAYL BNL WRONG LDX PHI R2 DEC R2 GHI R2 DELAY2 WRONG LDX PHI R2 DEC R2 GHI R2 BNZ DELAY3 BL WRONG LDX PHI R2 DEC R2 GHI BNZ DELAY WRONG LDI 70 PL OUT4 NOP 101 FF PHI Rl DEC Rl NOP NOP NOP GHI Rl BNZ DELAYS BR START LDI 08 PLO Rl LDI SONG PLO R2 LDI 20 PLO R3 REQ COMMENTS Ensure lock is closed X points at time delay constant Watch for button pushed YES get delay constant and delay for a second Look for a 1 YES delay a second Look for a on Yes delay a second Look for a nor Yes delay a secend Look for a 1 Open the lock Wait a couple of seconds then go close the lock Enter here if combina tion entered is wrong Point to Ln of chime tune R2 notes length of roe 47 02 PLAY3 LDN R2 Get song note 18 AL PLO RL 49 24 PLAY DEC R4 LA 23 DEC R3 Set and reset Q 43 93 GHI R3 at a frequency AG 32 56 BZ PLAY5 determined by value LE 84 GLO R4 of tune note LF 49 PLAYA 5 31 46
94. se unless using a different routine which does not increment them Address of word INC or DEC for or 1 words Display page pointer VIP interrupt routine loads it into RO l before starting DMA display refresh Used by VIP interrupt routine for scratch pad Address 8 if is not top edge word C 1900 if top edge Address A 8 if is not bottom edge 0 0 if bottom edge Single bit sl to point to bit being tested in A word Center 6 bits loop exited when pointer reaches Ol bit Address of A word on other next generation display page 15 1 WORD 1 Arg FIG 1 Array of memory bytes as displayed by 1861 showing RAM addresses relative to center word 80 40 20 10 08 0 02 O1 MSB LSB FIG 2 Designation of individual bits in a byte and the neighbours of the 40 bit DATA ADDRESS 03 0660 06 0675 The Pentomino 02 067D 07 0673 05 0678 05 0682 02 0673 01 067B Glider 07 0683 11 PL ir 0673 111211 11 Some LIFE Forms and how to enter them in memory 16 INITIALIZATION ROUTINE SETUP 60 RUN C8 TURN ON 1861 TV TEST 80 BIT MSB IF WORD OR LEFT EDGE ENTER 0 s IN PLACE OF NEIGHBOR WORDS SHIFT 3 TEST WORDS RIGHT 1 BIT CALL SUB 40 LS BYTE INCREMENT WORD ADDRESS FIGURE 3 A
95. ter was introduced by Joseph Weisbecker in the August 1976 issue of Popular Electronics magazine By following his plans a compact 1802 controlled microcomputer can be produced It has 256 bytes of memory located in 2 2101 256 x 4 RAM s second article in the following issue of the same magazine described how this memory could be made permanent by adding a 9v battery and replacing the 2 2101 RAM s with 2 CMOS For this purpose the pin compatible 5101 RAM s are excellent replacements Then a third article in the March 1977 issue of P E described how to build a 1K byte addition to the memory using 8 2102 1K x 1 RAM s With this addition the CMOS RAM memory keeps the address of 0000 and the address of the memory becomes 0400 O7FF 4042 IC is used to select the memory page After installing the battery and 1 memory systems there re mains unused 2 2101 3 of 4 NOR gates on the 4001 IC and 1 input output set on the 4042 IC The remainder of this article describes how to use these left overs along with an inverter 4049 to add another page of memory to the Elf 36 AN EXTRA PAGE OF ELF MEMORY CONT D Before starting it should be noted that Fig 1 on page 65 of the March 1977 has the pin assignments for and 110 reversed he first step of the conversion is to disconnect pin 14 of the 4042 from ground then disconnect pin 11 of the 4042 from pin 19 of the CMOS RAM s T
96. urn routine start address SCRT Call Routine start address Jump to Basic or Monitor address Stack location Interrupt service routine addr DMA storage initial value Go to Called subroutine leave R4 pointing to entry of Call subroutine Point to Stack Save D Save R6 on Stack Copy R3 into R6 to save return address Load the subroutine acaress into R3 Restore D Branch to 32 Exit point for call Return to main program leave R5 pointing to entry of Return subroutine Save D Copy R6 into R3 R6 contains return address 23 22 63 63 20 Ch 6B Ch 9F 9F SEX R2 INC R2 LDXA PLO R6 LDX PHI R6 GHI BR B3 53 BN3 55 INP 2 SHL SHL BNF 63 SHL BNF 63 LDI 20 SD R2 LDX R2 CALL RETURN NOP PLO RF XRI 20 BZ 96 GLO RF SHL SHL BNF 8 GLO RC XRI FF BZ 96 LDI 7A CALL PRINT BR 96 GLO RF CALL PRINT LDI OO PLO RC GLO RF RETURN GLO RC XRI OO BZ 81 LDI 60 GLO CALL PRINT LDI FF PLO RC BR 88 CALL PRINT 81 we we we 2 3 Point to stack Pop stack Restore the saved old R into R6 Restore D Branch to 44 exit point for return subroutine Input Output subroutines for Tiny Basic 1802 5 we 9 9 6 Wait til ASCII Key pressed Keyboard strobe to EF3 ASCII data to D m R2 Shift out 2 5
97. use the output routine to lose track of the shift condition unless taken care of by the output routine By setting location 0111 in Tiny to 02 as opposed to the 82 code in the original program the pads will come out as nulls The look up table should code ASCII nulls to a Figs character hex 37 I have set all unused ASCII code locations to the code for Baudot blank hex 01 It appears that Tiny outputs some control characters that are not mentioned in the text and which will confuse the output routine at times if this coding is not done 3 This software program uses several registers to store temp orary data during the I O routines have chosen to use registers not used by Tiny BASIC 1802 While the text that comes with Tiny states that Register Eo is not used by the interpreter I have been unable to have any luck using this register for a purpose such as storing the nature of the last character which requires that the register is left unaltered between I O calls It is therefore used for ASCII character storage through the I O routine If the program is loaded exactly as given it may be tested as follows Address Data 0000 00 Long jump to Initialization after initial ization program will jump to 0004 0003 XX Don t care 0004 ts OE 53 Call Ineee 0007 Ok Repeat This will print out the characters typed into the ASCII keyboard PARALLEL ASCII KEYBOARD INPUT I have used a standard ASCII KEYBOARD
98. with O2 B6 PHI 6 R6 as the program counter O3 87 PHI R7 0 F8 08 LDI 08 06 6 PLO R6 07 06 SEP R6 08 F8 26 LDI 26 Set R7 to point to table of 7 R7 initial values OB 4 amp 7 LDA R7 OC B5 PHI R5 Initialize R5 SCRT Return OD 47 LDA R7 routine pointer 5 PLO R5 OF 17 LDA R7 Initialize R4 SCRT Call 10 84 PHI routine pointer ll 47 LDA R7 12 A4 PLO R4 13 47 LDA R7 Initialize R3 System program 14 83 PHI R3 Counter 15 47 LDA R7 l6 PLO R3 OE17 A7 LDA R7 Initialize R2 System stack 18 B2 PHI R2 pointer 19 1 7 LDA 87 2 PLO R2 1B 40 45 lF 20 21 22 23 21 25 Table of Initial Register Values 26 28 2 2 2b 30 32 CALL gt 03 5 0004 0000 OFFA D3 2 32 LDA PHI LDA PLO LDA PHI LDA PLO SEX REQ SEP TAB 1 R3 SEP R3 SEX PHI GHI STXD GLO STXD GHI PHI GLO PLO LDA PHI LDA PLO GHI BR SEP PHI GHI PHI GLO PLO 43 6 9 59 we we we We we 20 we wo we Initialize Rl Interrupt Service pointer Initialize RO DMA pointer Set X Register to R2 Put serial output in Mark state Convention Mark equal Space equal 1 on Q line to 0004 At this location at the beginning of memory user can select either a long jump to Basic 0100 or to a Moniter or other machine language program SCRT Ret
99. y the 1861 and 1802 work together allows both display refresh and access to data for testing to go on separately and independently without of course affecting the display of the cur rent generation When all cells of the current generation have been tested and a new generation is ready in the alternate page the current and page addresses are simply swapped between the appropriate R registers so that the RAM page containing the new pat tern begins to refresh the display Besides the basic loop which decides and writes the new generation pattern and periodically swaps display pages the program contains an initialization routine and a routine to clear the first used display MACHINE LANGUAGE GAME OF LIFE PROGRAM FOR COSMAC 1802 CONT D page The only other functions needed are the interrupt servicing routine for display refresh and some way of conveniently entering l s in selected locations of the first display page such as from a hex keyboard In the VIP these last two tasks are easily done by routines contained in the ROM operating system For an ELF or similar machine all that is needed is to add in RAM the inter rupt service code similar to that on the 1861 data sheet or in the PIXIE articles July August 77 Popular Electronics plus some sort of keyboard monitor operating system such as or even ETOPS described in Pop Elec March 1977 or the ELF 1I monitor program March 1978 Pop Elec It will still all fit in
100. ynchroniza tion constant Note 3 in the listing at location 5D refers to the fact that the PLO 5 is used to zero the change in EF2 state counter It is not needed for a functioning program and has been included to allow the user to see the number of remaining transitions in the leading space The memory to cassette routine is somewhat intricate espec ially in the treatment of the leader generation and initialization Note 1 at location 4 warns the user that DF must be set on enter ing 1 to generate a leader or trailer This routine starts output with ninety hex so that a left shift will set DF To generate data starting at zero we could use the instructions LDI X 80 SL PLO 1 Several miscellaneous remarks One bit cycle 745 73868 machine cycles One 1200 Hz cycle 186 43467 cycles One 2400 Hz cycle 93 217335 machine cycles Ihe listing provided is a list of hand coded assembly we don t have an assembler yet and I hope there are no trans scription errors Please let me know what you think 62 89 8 02 04 85 06 88 a9 18 11 12 13 15 16 18 1A 1 1E 21 22 23 24 25 28 29 2B 2C 2E 2F 31 32 34 36 37 38 3A 3B 3C SE 42 _ 43 38 898 Al FE 3047 06 FDOS 3006 1 8 16 C4 3225 22 3816 3925 7A 26 3012 17 MORE TONE WLOOP WLA MARKL MARKH SPACEL SPACE
Download Pdf Manuals
Related Search
Related Contents
三二 ワーファフ British Telecom Freestyle 710 Twin 取扱説明書 一括ダウンロード(2.2MB) Steel Glide CPTC2708B1A1S Use and Care Manual Philips F2080/36/U Westinghouse 7787300 Instructions / Assembly NOTICE TECHNIQUE CENTRALE ALARME VOL Cave Coopérative les Vignerons de - Terre-net Huawei E5331 コンパクト水中ポンプ600取扱説明書 Copyright © All rights reserved.
Failed to retrieve file