Home

Issue 10 June 1980

image

Contents

1. the terminal waits for the leading edge of a start pulse then begins timing out the center positions of each of the remaining levels The time Spent for each bit must be 1 B seconds where B is the baud rate For 9600 baud that s 104 2 microseconds on each level In the 1802 each 2 cycle instruction takes 9 088 microseconds so 11 5 such instructions 10 2 cycle and 1 3 cycle instruction can be 02 10 31 executed for each level to get the timing right The software needed to write one character is given below qnd is called WRCHAR It is written on the assumption that it will be called by a SEP n where n is any register set to the address of WRCHAR However this can also be called by the standard subroutine call and return technique SCRT by replacing the final branch by RETN SEP5 It expects D to contain the character to be transmitted Note that the RCA SCRT does not preserve D It uses F as a temporary It assumes that when Q is SET the transmitted level to the terminal is HIGH N WRCHAR writes one character W1 to terminal REQ Works at 9600 baud BR W2 WRCHARRET W2 SEP R3 Fix this if NOP for timing another P was used for DEC RF the call GLO RF WRCHAR Any program GLO RF for timing register can be used BNZ W3 Character must be in D at NOP NOP NOP last pulse this point REQ PHI RF LDI 10 SEQ start goes out Wo through Q SMI 1 LDI 8 BNZ W6 Final stop pulses PLO RF bi
2. VOLUME 2 ISSUE 10 AN ARESCO PUBLICATION JUNE 1980 2 50 TABLE OF CONTENTS ED ETRORT Aisa UR RA 348 ween caw ies rm 02 10 02 MORE EDITOR S NOTES canton bed Ve ao dU dra eos 02610503 READER 1 0544 sedan ORT TET TEE 02 10 01 MACHINE LANGUAGE 1802 Memory Display Program Gerald Strope 02 10 09 9600 Baud I O with the VIP Bill Barrett 02 10 31 CHIP 8 Little LOODSeeaccksco espe EX DO SWAlta eva l0 MUSIC Six Songs for VIP Supersound John Hanner 02 10 21 HARDWARE A Hardware Breakpoint System Bill Barrett 02 10 26 MISCELLANEOUS Non Commercial Ad Corner UC NC AM o D ee 902 10415 New Product Announcement c nnn soosse 02 10 20 Programming Hinte nees e T E 00000 0002 10 25 Terry s NOUS C TT E aW ua dva 02204 4 ADVERTISEMENTS RO B 5 2 9 ee ee a Ws 4o qos CEN IE ERE 3 3999 A E L009 ju EEN eeeeeeees ees es 906 8 ac eww Ors Oe 30 02 10 00 ee Te A z CG ee t9w DOCH HO EEH OE BESTE CHO HH rE OE ee HERES CHHEHEOHEH EEE HE HEREC EER EHH EEEH OEE EDS 05 v P 069659 Qe bpav O0 0005 SHFOHHO HEH FE es tootes CELESTE ES 50 944v bgoo 990 o FUSED HH aere CHU EERE EEE SECEDE HOE 9059 oa ba a EA e ev5e 06000 009909 6 9290 50 99 72 0990905 SEH TOES SESH HH HEE EEE OER HOHE EE ottosen CHEE 59 00 09 4 00 Do s EELER LEET b 66 CHET HEHE CHORE D 59 0o o Stores 99 9p 99 905 SEHR EEO ERO EEE OOOH SD cs2bovttteso DTW E RER ERT 909699 055
3. D Notes 0680 007D 7E77 7A00 0000 0000 0000 0000 0000 end Boogie Woogie R 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP 550 instruction manual appendix B B 2 and B 3 Pin 8 Measure Time 2 at 0259 enter FF slow 4 4 time 3 enter the following Break codes 1300 0115 0270 O8BO FE12 O1BO 1401 BOFF 0000 A Measures 0300 0109 0109 1119 0109 2129 3131 3700 0000 B Measures 0380 0109 0109 1119 0109 2129 3131 3500 0000 A Notes 0400 0024 3028 342B 372D 392E 3A2D 392B 3728 0410 3429 352D 3930 3032 3233 3332 3230 302D 0420 2D26 3228 3429 352A 362B 3729 3528 3426 0430 3264 2668 2426 28E4 0000 0000 0000 0000 B Notes 0500 0024 2028 202B 202D 202E 202D 202B 2028 0510 2029 202D 2030 2032 2033 2032 2030 202D 0520 2026 2028 2029 202A 202B 2029 2028 2026 0530 2064 6068 60El 0000 0000 0000 0000 0000 D Measures 0600 8181 8181 8181 8181 8181 8787 8800 0000 D Notes 0680 OO3E 1B1B 3D1B 1B7F 7700 0000 0000 0000 EDITOR S NOTE Because we do not have a Supersound board here the above code has not been tested It was retyped with eagle eyes on the author s hand written copy and we can only cross our fingers and hope it s all correct If you detect any errors please let us know so we may include them in a future issue Thanks Tom e626009090009900097290900909099090009 099950009559 2590 5t08092900900 009000009092299009 90 09990900 900009090009809 0990 9996009096009090500900900990
4. mailed first class Non USA residents 20 10 issues mailed second class 30 10 issues mailed first class VISA MC personal checks cash money orders accepted as payment All funds should be in US dollars Checks drawn on foreign banks should include any exchange rate difference in currencies Advertising rates Non commercial ads by subscribers 10 3 lines of 60 characters each Non commercial ads by non sub Scribers 15 3 lines of 60 characters each For commercial ads please write for advertising rates Payment must accompany ad in any event staff Publisher Terry L Laudereau ARESCO Inc Editor Tom Swan Subscriptions Sandy Nolan VIP and COSMAC are registered trademarks of RCA Corporation The VIPER is not associated with RCA in any way and RCA is not responsible for its contents Readers should not correspond with RCA regarding VIPER material Please direct all inquiries to ARESCO P O Box 1142 Columbia MD 21044 Contributions Readers are encouraged to submit material of interest to VIF owners However it must be understood that the function of the VIPER is to duplicate the materials and to mail them out to other VIPER readers We cannot pay sigh for your efforts In time perhaps COSC HSE HE EH ea aH HEHE HH HEE H HEHEHE R EEE H HESS H SE OH DHE HER Ee HEE 9990996 0 0909 6 5 c 99099 9029 FEHHREHH HH HEHEHE HEHE EH SE RHETT ER Ee CHESTER ES HO EEE OE Hs CHEER 99 90 o 05 0 8 8 db
5. 1 R6 1 D R9 0 Go to 70 if D not O R3 0 C3 return location for main Go to 41 return to main X 2 turn on TV start of main mask off left half check if display at right side Go to Bh erase routine RC 0200 R8 1 R5 0 put low order M address in work register Go to 87 R8 1 M R5 put M R5 in work register And with FO mask off right half Shift right 4 times Put in R9 1 RA 1 RC 1 Co to C8 compare subroutine Get R8 and with OF mask out left half R9 T 2D RA 1 RC 1 Go to C8 RB 1 D RB 0 Imm or 01 Go to 7E if D 0 D RB 0 imm or 02 Go to 85 if D 0 D RB O imm or 03 Go to 85 if D 0 RB 0 00 reset B O to 00 D R6 0 imm or FO check for bottom of screen Go to D9 if D not O Go to B2 if EF3 not 1 R6 1 07 R6 0 FF R6 X Load 00 store and decrement D 6 0 go to BA if D not 0 Go to D9 D A 0 go to 92 if D not O wait for key Go to 9A RD 06E0 D 9 1 X D M RD ex or D RD 1 go to D7 is D O equal compare 02 10 12 Address D4 D D9 DC DE EO E2 E4 E6 NOTE Code 1D30CE 4DD4 F802AC 95B8 30 87 0030 0139 0222 032A O43E 0520 0624 0734 0826 0928 0A 2E 0B18 OC14 OD1C OE10 OF12 this listing has the following options set in it Comments RD 1 go to CE D M RD P R4 RC 0 02 R8 1 R5 1 Go to 87 compare again Compare Table ist byte compare 2nd byte pointer address of bit patter example the bit pattern for O is loca
6. 5 volt power supply and speaker prog ramming New low price 499 The original VIP en Completely assembled and tested All the features of the VP 111 plus A total of 2K Bytes static RAM Power supply 8 Bit input port 8 Bit output port O port connector System expansion connector Built in speaker Plastic cover Three comprehensive manuals e VIP Instruction Manual 20 video game listings schematics much more e VIP User s Guide operating instruc tions and CHIP 8 for the beginner e RCA 1802 User s Manual MPM 201B complete 1802 reference guide The VIP hobby computer for only 99 COSMAC VIP lets you add computer power a board at a time NM With easy to buy options the versatile RCA COSMAC VIP means even more excitement More challenges in graphics games and control functions For everyone from youngster to serious hobbyist Built around an RCA COSMAC micro processor the VIP is easy to program and operate Powerful CHIP 8 inter pretive language gets you into programming the first evening Complete documentation provided Send the coupon now Complete the coupon below and mail to RCA VIP Customer Service New Holland Avenue Lancaster PA 17604 Or cali toll free 800 233 0094 to place your Master Charge or VISA credit card order In Pennsylvania call 717 397 7661 extension 31 79 Please send me the RCA COSMAC VIP items indicated O
7. 8484 8484 8484 8181 8181 8181 878A D Notes 0680 003E 3D3D 3B3F 3F37 3F3F 703F 3F00 0000 end He s Got the Whole World in His Hands Pin 8 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP 550 instruction manual appendix B B 2 and B 3 Measure time 2 at 0259 enter FF slow 4 4 time 3 enter the following Break codes 0270 1301 BO14 O1BO FE12 O1BO 1501 BOFF 0000 A Measures 02 10 24 0300 0105 O80E 1218 1B21 252A 2E34 383E 4248 0310 4051 545A 5E64 676D 6F71 7200 0000 0000 B Measures 0380 0102 060A OE12 161A 1E22 262A 2E32 363A 0390 3F43 4748 4F53 575B 5F63 6700 0000 0000 A Notes O400 0060 7070 6DBO 6D69 3072 7030 302D 6F6F 0410 2B88 2F70 6F2D 2D2F BO6D 6930 7270 3030 0420 2D70 706F 6BA9 2030 302D 7070 2D89 3072 0430 7030 302D 6F6F 2B88 2F70 6F2D 2D2F 7070 0440 2D89 3072 7030 302D 7070 6F6B A920 3030 0450 2DBO 2D89 3072 7030 302D 6F6F 2B88 2F70 0460 6F2D 2D2F BO2D 8930 7270 3030 2DBO BOAF 0470 ABE9 C960 0000 0000 0000 0000 0000 0006 B Notes 0500 OOEO 6660 6160 6660 6160 6860 6160 6860 0510 6160 6660 6160 6660 6161 6860 6160 6661 0520 6660 6660 6160 6660 6160 6860 6160 6860 0530 6160 6660 6160 6660 6160 6860 6160 6661 0540 6166 6066 6061 6066 6061 6068 6061 6068 0550 6061 6066 6061 6066 6061 6060 6160 6160 0560 6160 6166 6061 6066 6166 6000 0000 0000 D Measures 0600 8181 8181 8181 8181 8181 8181 8181 8181 0610 8181 8181 8181 8182 847F 7F7F 7F7F 7F7F
8. 9 CoP He ee ee De AALER REO He EHTS ESOS HARE ESHEETS E ESSERE EHO OEE HSH HOO ES EE eer eseseneners SCH SCS HE Se Ee Ee eH HATH F ORES RE SHEHHE HESS ESET RE SE HEHE EHH ESE HE HOES osseous caesos SERCH ESESEREHECEEHES HEE STOO EE SESE HHEHHEH ESOS REL EseR OES 82 A7 e9999 99 9 902902906 50999c 9 940620 9809606 0052 92a88 5bo 960680904q 529295 WAASER t5tieittetissacssi tss tt1t t itoscecos 9900 599909020966060 92 6 99092 029960e 092290992202209 624 9 9 589 9 o292 6599000209905902902860992 2 9906202 252699609 62209209 2 2 989 90992c5 9 FF 92 FC co DC DC D4 92 DC T H P FD 17 D3 8E F8 3 2d ae 8D FF 7C 04 B7 05 DC DC B7 DC 09 01 g9 D6 Fl 00 8D FO Par 30 Start Weg 111 00 Microcomputer m Assembled and tested Features e RCA 1802 Microprocessor e 1K Bytes static RAM Expandable on board to 4K Expandable to 32K Bytes total e 512 Byte ROM operating system e CHIP 8 interpretive language or machine language programmable e Hexidecimal keypad Audio tone generator Single 5 volt operation Video output to monitor or modulator Cassette interface 100 Bytes sec c Instruction Manual with 5 video game listings schematics CHIP 8 much more Ideal for low cost control applications Expandable to full VIP capability with VP 114 Kit User need only connect cables included a
9. C6CE CACF C8C6 C CE 0510 C669 7260 6672 606E 7260 6672 6067 6B74 0520 646D 7466 6D75 666D 72CE CCC8 CAC6 C66E 0530 7260 CEOO 0000 0000 0000 0000 0000 0000 D Measures 0600 8181 8181 8181 8181 8181 8181 8181 8181 0610 8484 8484 8484 8484 8181 8181 8181 878A D Notes 0680 003E 3E3B 3F3D 3A3F 3F3D 3D3B 303F 3F3F end Washington and Lee Swing 2 Pin 8 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP 550 instruction manual appendix B B 2 and B 3 Measure Time 2 at 0259 enter FF slow 4 4 time 3 enter the following Break codes 0270 1301 BO14 O1EO FFOO 0000 0000 0000 0000 A Measures 0300 0105 0709 OC10 1214 171B 1D1F 2226 282A 0310 2E32 3436 393D 3F41 4448 Adc F52 5354 0320 5500 0000 0000 0000 0000 0000 0000 0000 02 10 22 B Measures 0380 0105 090D 1115 191D 2125 272A 2E32 3437 0390 3A3E 4246 AE 5052 5457 595B 5F63 676B 03A0 6E72 0000 0000 0000 0000 0000 0000 0000 A Notes O400 0060 6B6D 6FBO AFAD AF D 6CAB 606B 6D6F 0410 BOAF ADAB 6F6E AF60 6F70 71B2 BOAF AD D 0h20 6CAB 606B 6D6F B2B1 B2B3 7470 6F6D 6B6B 0430 6D6F BOAF ADAF 6D6C AB60 6B6D 6FBO AFBO O440 B171 72AD 606D 6C6D B2BO AFAD 706D AB70 0450 6DAB EDEF FODO 60FF 0000 0000 0000 0Ob0O B Notes 0500 0060 6564 6361 6068 6061 6068 6061 6068 0510 6061 6564 636D 6068 606D 606E 606F 6068 0520 606F 6869 6BAB A968 60A4 6360 686E 6F60 0530 6860 ABAA AB68 606D 70BO 6F6F 706F 6D60 0540 6D60 6860 6D60 6
10. COO OOo oooh a POCO eae OE HSH HOH HSE HHS EEE HEEHEHE SH EEHEEH HH SHOE EH CHEE EHEH ED HHHREHHESEH ERE es SHOSHEH ESHEETS EHS SEHHOHEH HHH HH HHTHHHER TERETE EEE ESE SEE EH REESE EROS EE EH HH HH HCO EEE HH EHH EEH EHH EEE OH OEHMEH HE OH D Here CHOSE EAH OEEK HHH HEATH EH EOS HEH SOSH RE TEE HE HEH OOOH SEES CEES HHO HEHEHE HEHEHE HEH SORES 2 90 4090900902069909609698 0000605090 920890092609204220 993096006000060009002990090949909008099 930292 90006009909209990 0909600 70 2 9 09v9 60606060 60920092009090990 29 209 a95909000 9904090609900009094 2900099900000a28200900900 000909092590909909694902 2090600990902090900000940060 099692022 099 98060099a029946909690060090690060069009009090099900000900009 609002022 09009992299980000000009 000992092909 Dear VIPERS This is the very last issue of the VIPER from Aresco As you will note elsewhere Don Hartley will be publishing the next volume I ll really miss you Through your phone calls and letters I ve come to know most of you reasonably well and it hurts to say good bye I ll send all your names to Don so he can let you know when he s ready for your renewals Please give him the same friendly support you ve given me the VIPER can t continue at all without you I m probably going to be totally blind in less than a year I have known only since my trip to California the trip that delayed the last issue Although I was able to publish last year it seems t
11. board with enough room for 9 16 pin IC s and 4 14 pin IC s Here s a list of the necessary IC s 4 740175 4063 Log 4081 4073 4013 1N914 silicon signal diode or equivalent ON ST it aie at e MERE rus Nee ee ues usi uus The 4063 is made by RCA but seems to be carried by only a few suppliers one such is Tri Tek 7808 N 27th Avenue Phoenix AZ 85021 A schematic of the board is given in figure 1 The circuit runs on the 5 supply of the VIP and draws very little current The whole system can run on a minimum memory Cosmac although with only 8 pages of memory your program can only fill a little less than 5 pages Here s how it works The four registers Q1 Q4 carry a sixteen bit memory address That address is loaded in two 8 bit portions through a pair of OUT 7 instructions Once the address is loaded the four comparators Q5 Q8 continuously compare that 16 bit number with the values on the MA bus Some additional logic makes sure that the only equality comparison that is effective is when an instruction address exactly matches the register value When that match is detected the INTERRUPT line to the 1802 microprocessor is pulled to ground causing an interrupt cycle At that point a software program given later goes into effect This program is similar to the one I reported in the VIPER Oct 1978 but with some upgrades This program saves all the registers 02 10 26 m E YoitIwy 140 WV3o4X0 ee RE e
12. e my Mexican connection And it s simply not possible to thank Rick and Terry enough for their unending dedication to this newsletter To authors we look forward to seeing more of your great work It s you not we who really deserve thanks from all of us If you have the time to type your manuscript we d appreciate the effort but there s nothing wrong with a hand u script Just try to write as clearly and as neatly as you can so we don t inadvertantly introduce any errors Of course this message isn t goodbye It s Hasta Julio See you then Tom swan Taxco MEXICO 02 10 02 A SAD NOTE FROM THE EDITOR Today it is April 15 1980 and I have just been made aware of ARESCO s decision not to continue publishing the VIPER Perhaps Terry will explain to you what has happened I do not know but the news is as much of a shock to me as I am sure it is to many of you Also today I learned of the erratic publishing schedule for the last two issues My arrangement with ARESCO was to provide camera ready copy by the 15th of each month a deadline I have been most careful to meet without fail Because of the time lag between my work done here in Mexico where we live and ARESCO s offices in Maryland I had no idea until now that you weren t receiving your issues on time Even so I wish to offer my apologies to all of you Hopefully the fatter issues you did receive made up for the missing publications If we had continued I think
13. of memory 256 bytes b It runs alone in machine language independent of any other program such as CHIP 8 c It can be loaded in any page of memory that is available There are three display options available Option 1 2 byte address 2 bytes of data Option 2 1 byte address 3 bytes of data Option 3 no address 4 bytes of data Option 1 is the most convenient for displaying CHIP 8 programs because instructions are written in a two byte format Option 2 allows the right half only of the address to display and displays 3 bytes of data to fit more memory positions on the screen Option 3 allows maximum data to be displayed I suggest you change address AF to hex CO to display four lines instead of five With this change exactly 16 bytes of data are displayed so every time the display is advanced the first byte displayed will be 00 10 20 30 etc This option is good for copying down a program after it is debugged The chart in figure 1 shows the control byte changes for the different options To use the program perform the following steps 1 Load the display program into the desired page The code is set to run at 0600 as printed 2 Alter memory locations 0000 0003 to CO XX OO XX page address where the display program is located Normally XX 06 3 Use the display program C key will cause the memory location to advance 4 When finished alter 0000 0003 back to original data Here are some additional notes on t
14. sufficient I sincerely hope I ean return all your sase s unused with the first issue Looking to the near future I expect to see more interest in VIPS now that RCA has announced a price of 99 for essenvially the same System that most of us paid 3 275 for ouch The announcement of VP 701 full BASIC with floating point is very exciting and lends cre dence to my opinion that VIP owners can do anything that the other guys are doing and for a lot less money s your new publisher I have several hints tricks and ideas to offer Examples include a really cheap printer amp interface to Tiny Basic some VTB programming ideas amp a portable carry case cabinet for your VIP that also holds a bunch of accessories and I O expansion I will contribute these and other ideas as time permits Initially I will be counting on you for nore of the fine articles and letters that have made VIPTR an indispensable part of VIP ing All material must be camera ronda to be printed as I have no text editing to begin with soon I hope I will use your sub money only for getting out the first few month s LI until this venture can support itself and pay for future refinements A larger subscriber base will enable and nasten improvements and forestall a rate increase I will enjoy working with Terry and Rick during the startup naso They did a fine job getting our newsletter started and I will be totally indebted to them and their support I welcome yo
15. to 00CO C8 00 38 34 48 CO C9 30 Loop back for B3 D4 Do routine CA 28 next key With these changes control L functions as key C and the second key is selected on the hex keyboard as before With the control key and keys H through O the rest of the functions are available R Winterton Sees oie see Qt t terr QE NEN S FN NEN Ree heiss es i oo Fir P Pee 6 0 9 9 99 P9949 e 06 E e n p V a pn rh Pp eK s VR PP P Pe t vs sre o es o 6b os vehe 6 0 vs NNN vp C Qs erecesesotesptecetteeseetosossssstattotlttitttsesitttesebteeeeeesseerees sosopssPoeseesssevesevvseoieesenrte sorevseciesswaecsevevosspeetuerte tae OR eee I LII DL IS ELO SORT RA EE eescteocssnotevesseqeonedossscetaceossececaveeesecscecsescaccececovescsosossscecesescesssesesttteteeet Q2OOOt00olt0222ttttteteseeeeveceeveeeeeececececeoscceecvesecoaecevecevetooso ose e Tee TTT ee SSES HTTTZtHEEEEEEGEEEE EE KEAAAAAKMKAAAKKMAAAAAAAAAAAAAMAMAAMELELMAELEKEELELAEHLELELELEELLCLUETECTEEEEEEEEhKAAKAAAAAAAAAAAAKAAKMAAAMAKMAAMAAAMAAAAALLALELLE D INNEN eeettt enc te s sos ttessos e s ttt essossoseosessveseqeeseeeeosecevenstos eocseseceeveetevocvesceqocoeeeoeeveccscosseceescessosscolossessoessssesetesto tte Qtt EAR e999209202c20992069 Dear VIPER Although late in responding I hope you can still use the information I would buy a light pen and I m interested in the stringy floppy Right now my ELF II is not a VIP but Soon it will be I really like the VIPER especially Tom Swan s articl
16. used in the bit writing loop so it can t easily be used for parity purposes Parity is really only necessary if you have a noisy channel between the VIP and the terminal A hard wired logic channel requires no such precautions Terminal VIP Handshaking From here on you will have to find out how your terminal expects to communicate with a computer system There are several different kinds of handshaking possibilities Some of them make use of additional RS232 connections such as the request to send pin 13 and the clear to send pin 44 My terminal an HP2621 accepts a wide variety of handshaking methods and is easily changed from one to another Yours may want just one way of communicating The simplest form of I O is probably line oriented ENQ ACK that s the one I chose for my 2621 My terminal has a built in buffer of 125 character maximum It can accept characters at full rate continuously if only the CRT display is on However my attached printer is rather slow so when using a printer the VIP must stop every So often and wait for the printer to catch up Here s how the system works Before the VIP sends a batch of characters less than the 125 character buffer capacity it sends a ENQ character When the terminal s buffer is empty the terminal sends an ACK character The VIP of course is waiting for that character When it comes 02 10 33 out the VIP starts sending characters to the terminal No more than 1
17. 0 900 990900929 Dear VIPER I discovered an interesting and baffling bug in my register and breakpoint program VIPER Oct 1978 that might also confuse its users It hadn t shown up until now since it appears only under rather special circumstances Essentially the system will break in rare instances at unspecified places in the program The circumstances are these 1 An IDL 00 exists in the program at some location P 2 A branch to location P 1 has just been executed 3 An interrupt caused by the 1861 TV interface has occurred just before the instruction at location Pri is fetched There is no way to prevent this kind of erroneous break from happening hence I have no fix to offer for the program The system depends on hardware interrupts generated by the TV interface as a means of capturing all the registers These interrupts occur at regular but long intervals When one occurs the interrupt routine inspects the location R P 1 If that is an IDL the _ program concludes the interrupt was caused by a breakpoint another use of IDL Usually that assumption is correct an IDL waits for an interrupt or DMA A DMA is prevented from occurring by Special instructions in the hardware breakpoint program so an interrupt only causes a breakpoint However a branch to an instruction just following an IDL can also look like a break since the instruction preceding it is 00 Such a break will only occur if the interrupt happe
18. 000002999906980909005902560902000909092229500060290 90099420094040999090002000000600000995 0696099099900 9099 9027 Dear VIP Owners I am negotiating with Terry to continue publication of VIPER uninter upted if at all possible We both consider it of utmost importance to VIP users that our only means of infornation exchange be kept alive and serving our needs The big computer hobby magazines rarely if ever acknowlege our existence I intend to zeep VIFER almost exactly the same for now Later some changes and or improvenents will be considered This is your magazine newsletter and I will depend heavily on your Support and suggestions to make this effort successful Will you help me make a smooth transition br renewing now for one year at the usual rate of 315 for 10 issues Tlease add 10 for airmail cut of USA 48 Your checks and money orders will be kept in a special account until I receive 500 renewals and or new subs I must have at least 85 of present subscriber response by June first to make the decision to print a July issue vol 3 1 and 100 will ensure a full year of publication I want to get that issue to the printer on June 15 and in the mail by June 25 so you will get the issue early in July If I do not get suff icient response all checks will be returned Please include a stamped addressed envelope sase with your check It costs about 80 00 to re turn 424 checks and a sase will insure immediate return if response is not
19. 06B O460 6C6D 6ECF 60A0 706F 6D6C 6B6C AD60 6B6C 0470 6D6F D060 A000 0000 and 0000 s to O4FF B Notes 0500 0070 606B 6064 606B 6070 606B 6072 606B 0510 6072 606B 6072 606B 6072 606B 6070 606B 0520 6070 606B 6064 606B 6070 606B 6072 606B 0530 6072 606B 6072 606B 6072 6078 6070 6B64 0540 60A9 7071 D260 AL6B 71D2 60A6 6D71 F266 0550 6066 60CB 60BO AB6B 60A4 ABBO AB70 606B 0560 6066 6068 6066 606B 6066 606B 6066 606B 0570 60FO 0000 and 0000 s to O5FF D Measures 0600 8181 8181 8181 8181 8F8F 8F8F 8F8F 8F8F 0610 8787 8787 8787 9393 8181 8181 8181 878B 0620 0000 and 0000 s to 067F D Notes 0680 003D 1B1F 1F1F 3F3D 3D3E 3A70 0000 003D 0690 3E3B 3F7F 0000 and 0000 s to O6FF 02 10 21 Edelweiss Pin 8 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP 550 instruction manual appendix B B 2 and B 3 Measure Time 2 at 0259 enter BF slow 3 4 time 3 enter the following Break codes 0270 1301 BO14 O1EO FE13 O4BO 1401 COFF 0000 A Measures 0300 0103 0406 0709 OCOD OE10 1113 1416 191A 0310 1820 2325 2628 2A2B 2C2E 2F31 3234 3738 B Measures 0380 0102 0304 0506 0708 090A OBOC ODOE OF10 0390 1114 171A 1D20 2326 292A 2B2C 2D2E 2F32 A Notes 0400 OOA6 69DO AE69 C7A6 6666 6769 CBCO9 A669 0410 DOAE 69C7 A669 696B 6DCE CE50 0020 2969 0420 6D6B 69A6 69CE A76E BO E CDC9 A669 DOAE 0430 69C7 A669 696B 6DCE AEFF 0000 0000 0000 B Notes 0500 OOCE CACF C8C 6 C8C1
20. 2 1 R6 1 07 1C F881B7 R7 1 81 display pattern pointer 1F F87AA3 R3 0 7A main 22 D3 P R3 23 7270 Restore D R2 1 restore X BR2 1 25 2278 R2 1 save X P in M at R2 27 2252 R2 1 save D in M at R2 29 CACACH No op 2C F807BO RO 1 07 0700 refresh location 2F F800A0 RO 0 00 32 80E2 D R0 0 X 2 34 E220A0 RO 1 R0 0 D 37 E220A0 3A E220A0 n n 3D 3C32 Co to refresh if EF1 0 3F 3023 Go to return 41 D3 P R3 42 A7 R7 0 D start of display subroutine 43 F805A9 R9 0 05 character byte counter 46 ly 56 M R6 M R7 character pattern refresh 48 8CFBO2 Get RC 0 ex OR with 02 4B 3250 Go to 50 if D 0 4D 30 5400 Go to 54 50 O6F90656 D M R6 or with M R6 06 put bar between address and data 54 F808A8 R8 0 08 refresh advance counter 57 281688 R8 1 R6 1 D R8 0 02 10 11 Address Code 2A 57 2989 3A46 8 FAOF FBOF 3A6D 16 F8C3A3 3041 F827A9 292689 3A70 F8C3A3 3041 E269 30B4 F800AC 85B8 3087 45B8 FAFO F6F6F6F6 B9 1A1C 30C8 98FAOF B92A1C 30C8 1B8B FBO1 327E OBFBO2 3285 OBFBOJ3 3285 F800AB 86FBFO 2AD9 3EB2 F807B6 F8FFA6 E6 F80073 B63AB 20D9 GA 3A92 309A F806BD F8EOAD 99EDF3 1D32D7 Comments Go to 57 if D not O R9 1 D R9 0 Go to 46 if D not O D R6 0 and with OF Ex or imm with OF Go to 6D if D not O R6 1 new line R3 0 C3 return location for mam Go to 41 return to main S 7 R9 0 27 counter to back up R6 to next character location R9
21. 2009000000990 090599955 2000000069000090090990089000060000090000900004900990009090990900000260004090423042200609 0059 Peete ee eeeeaeseeeGeeseeseseneeesseoeraeseseesssece WALL LITTLE LOOPS by Tom Swan STACK IT TO ME CHIP 8 is stackless Yes there is a stack for CHIP 8 but it is not accessible to your programs The CHIP 8 stack is used by the interpreter to store intermediate values needed later and to keep track of the paths channels twists and turns of your subroutine structure When all subroutines RETURN the stack provides a map of the way back You do not have to be aware of the stack or how it operates All is handled invisibly by the genius of the CHIP 8 interpreter As you become more interested in programming concepts the stack is a DATA STRUCTURE you must learn inside out Even if you have some stack handling experience especially if your stack use has been limited to 1802 machine language the following comments may be of use to you Unfortunately the stack procedures of the 1802 are unnecessarily confusing and do not inspire correct stack handling The comments from a reader in San Diego who asked not to be identified are quite correct There should be a Pre decrement for the STX resulting in a DSTX rather than STXD Good point A stack is a very Simple structure to understand The term LIFO for Last In First Out has been given to this common programming device as a description of the action of a stack Have you ever pl
22. 25 are sent DEE just one line then another ENQ is Sent etc While the VIP is sending characters it can be oblivious to anything returned from the terminal or it can notice whether a start pulse is on its receive line There s enough time to get into the receive Subroutine to look at the character if you want to do that I don t bother Eventually the VIP tires of sending information to the terminal and goes into a receive mode by calling RCHAR Here the VIP just waits until something appears on its EF4 line then picks it upe If it then goes into some long processing cycle it won t notice anything else sent to it until it s done That s usually OK You can probably arrange for the cursor on the terminal to blank out in the meantime to indicate that the VIP isn t listening for a while On my terminal the clear to send line serves that purpose when HIGH the terminal is in a send state with cursor and keyboard active and when LOW it is in a receive state COO COOH OH aeRO HH HR OHHH HH 0029999296009 090999299290909099 599 CEH REECE HOE HEHE HHH ORES Der EHEEH HEE THERESE EHH EHH HH EH HEHEHE HEH EE HOHE EEE OHS 9009e2009 96 009790902999959295 592 0060990620229029 E eeegeeeeesesneeers POO SOO He OE HOHE HEHE He OMe HH DESH EHH EEE HES REESE H HEHEHE EE OHHH SEHR EEE SEH HEH HHH EEE HS eege osooso ESSE EHMHE HHS OHSS HHHHEHEE ST HEHEHE EHH HES EHH FEDER HOHE TEESE HOH EEE MES EHH HOR EHH EH OH OHHO HEHEHE H AHH EH DO OEE
23. 5902980524020 209909900990420904 060909 0909999049909 2 42509790909292 5 0 905909009 SOOO OHHH EHH EERE EET OH HERE HE CET EE HOH EK SETHE RHE SHEE E THESE EER EEESAETES ESCA TEETER SET EEEE EE ESEH OTE SESH TES ESEES EE HEHE EET ERE SESE SHE SE SEH SEE HEE HEHE HEE SEES ORT EE EUR TEE EERE CED BETES ES EH HOH ENE COO O eR HEHEHE He PETE ECE OEE SHEE EEE ETH RSET EETE HEHEHE SECC ER EEHE EET EE SECO EE SEH EEE TE SEES ETE EH SHES HEHHASEE SHEET OEHEEEEHEEETEEE SEES EHEEE EEE EEE EETEEHSHEECTEE SHEERS TCED EH EHEC HES ESE EHEHHEEEE READER I O Dear VIPER Recently I presented a few ideas for expanding VIP TINY BASIC VTB Here are some more You always lose two lines on the CRT with READY and the prompt This is sort of a nuisance when writing and editing having only five lines to start with If your last PRINT statement is short example L C follow it with and READY will appear on the last printed line if there s room instead of on the next line This doesn t sound like much but it cuts re listing to get back the 4th line up from the bottom by about 50 My first program that ran more than 2K calculates the price of gold timely huh I whittled it down to fit I m strictly a non math type and I amazed myself by even being able to work out the formula This is my first program so far that actually computes anything Of course double precision floating point would be a lot better Es Now that my computer will compu
24. 860 6D60 6860 706F ADAB 0550 ADA9 A6A4 6360 AOA6 A6A7 A668 6068 686D 0560 6968 6063 6364 6768 6664 6361 60A6 6D68 0570 6160 FFOO 0000 0000 0000 0000 0000 0000 D Measures 0600 8181 8181 8181 8181 8181 8181 8181 8181 0610 8585 8585 8585 8585 8181 8181 8181 8589 D Notes 0680 003F 1E1E 383D 3D3E 3A70 3F3F 3F3F 3F3F end And the Band Played On Pin 8 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP 550 instruction manual appendix B B 2 and B 3 Measure time 2 at 0259 enter BF slow 3 4 time 3 enter the following Break codes 0270 1301 BO1 O1EO FE13 O4BO 1401 BOFE 1308 0280 BO1 4 O8BO FFOO 0000 0000 0000 0000 0000 A Measures 0300 0104 070B OEOF 1011 1417 1A1D 2021 2223 0310 2629 2C2F 3235 393A 3D40 4346 494A YBAC 0320 4FOO 0000 0000 0000 0000 0000 0000 0000 B Measures 0380 0104 070A ODOE OF10 1E1F 2021 2425 2627 0390 2829 2B2D 3031 3233 3536 373A 3D00 0000 A Notes O400 006B 6F6B 6A6F 6A68 6B20 28A6 282B CADO 0410 DO60 6066 6A6D 6A68 6668 6A6D 6A68 6668 0420 C6CF CF60 686A 6B6B 6B6A 6A6A 6969 6968 0430 8828 6868 6868 6D20 2FDO 7060 6868 6768 04 40 6B8A 2866 686A AB2D 2FC8 CACB 6B60 6060 0210 23 B Notes 0500 0068 6060 6360 6068 6F60 6F60 60CA C3CA 0510 6F63 606F 6060 6A60 606F 6060 AA63 C8C3 0520 C860 6360 C8CA CBCD CiAD 6BAA 646A 6060 0530 C1C2 C3A4 60CA CF68 6F6B 6860 6000 0000 D Measures 0600 8181 8181 8181 8181 8181 8181 8181 8181 0610 8484
25. 9600 BAUD I O WITH THE VIP by Bill Barrett Yes that s V eT The 1802 can interface with a CRT at SCH baud with a couple of simple software subroutines That s about 900 characters per second You ii need a couple of IC s two line Ee a line receiver One line driver connects to the Q output of the VIP Another should be connected to a pin of U24 the byte output latch The line receiver should go to pin X of the byte I O Interface On the terminal side there are only four RS232 connections to worry about These are Pin 12 BA data out goes to your line receiver This will carry characters from the terminal to the 1902 Pin 48 ground Nuff said Pin 42 BB data in this goes to the line driver connected to Q We will toggle Q to send a character to the terminal Pin 44 CB clear to send this goes to the other line driver This line should go high 3 volts to inform the terminal that the 1802 wants to send characters The two data lines will normally be LOW 3 volts when no information is being transmitted One de bit character is transmitted either way by sending binary levels Suppose the character is c7 c6 c5 cl c3 c2 c1 cO in binary where c7 is the most significant bit and cO the least Then the levels sent are 1 to indicate a start cO i e NOT cO if cO 1 we send O and vice versa ci c2 c7 O the first stop O the second stop A character like that can be sent at any time
26. 9900992 590900999 60 099924 9090099 99 HS Ere 969 e 005 OS U Qa v 00902707209 SE rs 06990 9 c sv 9o ve EHR Ee 99 SE nc DE 0e 5 CHORES O9 9e c 96 5008020999 OEE OEE EEO EE ED ossos ree 692250009029 qb 00026095 7 0009227 O9 092 05900002909959290000205240092909984 00G 055 9590025 O05 cs 09 9500 09092092 2999 SEs REELLE 0o B 9 0o es O9 Uso CO 8eo 050090009 6009ce52 cc52929940909 c scecsc S oon SUBSCRIPTION RATES ADVERTISING RATES amp OTHER INFORMATION The VIPER is published ten times each year by ARESCO at 6303 Golden Hook Columbia MD 21044 and mailed to subscribers on or around the 15th of each month except June amd December The single copy price is 2 per copy and the subscription price is 15 10 issues of the current volume Subscriptions do not carry over from one volume to the next and readers who want less than the full volume should send 2 for each issue desired Renewals are accepted during the last two months of the current volume year and the first issue of each volume is published in July The entire contents of the VIPER are copyrighted c 1979 by ARESCO Inc second class postage paid in Columbia MD 21045 USPS 520 550 Postmaster Send all address changes to ARESCO P O Box 1142 Columbia MD 21044 Subscriptions Subscription orders should be sent to P O Box 1142 Columbia MD 21044 not to the street address given above USA residents 20 10 issues mailed second class 25 10 issues
27. 99099900099990099 09909090000999099002099909099095999090900099000900999 e 0e90o400990900009 20090900990099892 9990900902 09290929009099090 9002 00990909 002992000909092520802 959099 900900909099 09009000 009090090000969900900900950290090999090900099999009009999 9090090009900999000909099090929 e960 9099999024090 9 2200099099009490922 400029090900459000 00 092999200400096000009000059009 400000022 9909009 09900990 4099990999990 9090000a20200099995090099090009 500990900009000999099002909909420 900090900090990990999029090999979 e9060699009099009944959090009 29000999 04009090590409000 99094990529690900290000090402922004900009092 7 0900099090904000909 9099599800 200490990990909009009999009090009000999090909900 9009099090000000909900090949090990 9000999 ea9 6040609 0 09 e 280440999492090499 9604090890 9a49494 00999204090 99900400004 4900 950499200090902 4000009000090 90954099 99400090990000090999204299909990400 00 99090409009099909904020092099 90029099990092009999909092099999 9 PROGRAMMING HINTS The other day I happened to wave a Simple Sound board in front of my monitor display To my surprise the display began to dance and sway as though I were waving a baton to direct the motion Of course the cause was the large magnet attached to the board s built in speaker This was good for a few laughs but I do not know if any harmful effects are possible on the insides of the video box Don t try this unless you know the correct
28. E HED HEE HEHEHE HHS HHS HEHES HEHE HEH EOE SESH RHREEH HEHEHE TSH EEH ESHER EH HEHEHE HHEH EHS HEE HEHEHE EEO EEE HEHEHE ESE HEE ETE HEHEHE sen ee EHEC EHS HERERO HH EHEC EH OHROHOERES POOH EE SHOE HEHEHE EHH SEH OH EHH EH OEHE DE HHSE HEH OHH HEE EEE TERE EE SEH EEESE 0 500900090000 9990200299099290090900990020900208 90 0990020 59925980620 22008860499209009989 9040609 9902009909950000900009909900900900020990999 Dear VIPER A few months ago I purchased my VIP with color and Simple Sound I now have TINY BASIC and the VP 611 keyboard I have also gone back to the dealer for volume 1 of the VIPER along with the tape and info PIPS FOR VIPS by Tom Swans I have just completed a modification to the Text Editor 21 program that allows my keyboard to work with this program As requested in the introduction to PIPS FOR VIPS here are the modifications 28 to 37 Wait for 39 to 98 Get 8 1 Bl to 03 for ASCII 29 2C keypress 3A FA And with 7F B5 OF character 2A 30 3B 7F Mask off MSB B6 D4 2B 28 3C B8 Put in R8 1 B7 02 2C 6B Input to 3D FF Compare to B8 C6 2D BB8R8 1 3E 20 20 B9 30 2E F8 E 3F 33 Jump to B3 BA 28 2F O4 m LO B3 if more than CO 98 Get R8 1 30 A8 Key 20 C1 FA Allow only 31 88 debounce ly1 F8 Initialize RC C2 07 O8 OF codes 32 3A 42 81 for hex c3 9 33 31 JE 43 BC Keyboard scan C4 08 8 34 F8 D F8 C5 B8 Do function OZ 1050 5 35 Oh 45 95 C6 D4 routine 46 AC 936 A8 C7 02 37 37 Ju 30 Jump
29. H SHEHEHH HE RHE EE EREECHEN NEEN TTT NET 9902 9 09 29 992 9 CRO ee mp memes HME REDE TEES OEE HELO FE SHHH EH ees HTS THESE HSE HE 0990920252 94 0992 909069 0o09 52 09259090606 46922009909999420 9909099299900 02905299990999982592 9 2 9 9 6996 emer eae HEHEHE HEE ERT ER HH EH TEETH E EH HH EHH HOHE ESSE EE MEOH EH ESHER SEER REETEHEH ESET MAOH ERE ESSE TSE SET ETE OETA eH OHH Dee HERES oseere PORE Meme RRO HEHEHE ES Bo aa H TE EHEE SESE TEE HE ESTE SHORES HEHE CHEESE HEHEHE HEHE EOE HH EOE OEE EAH EETHE TE ORESE ERE ER SRC AEH Le v200494a29 4 9999 69099 09c 640060600506999999t040029009900999949002 402299 9209 9904040124090 9 9909a8402200992 990022009232 599999 6005320000900990902090090099990990992050 SHHE OS OH HORE RETEr OBES as low as 65 02 10 08 1802 MEMORY DISPLAY PROGRAM by Gerald Strope I wrote this program to display the contents of memory mainly to verify newly entered programs This is very important in a microprocessor without memory protect because one wrong instruction can cause many other memory positions to be altered causing the program to enter self destruct mode The Cosmae VIP has the capability to display memory one byte at a time but this is rather tedious when verifying up to 2K of memory This program was developed on a 2K Cosmac VIP but with a few modifications will run on the ELF 2 Here are some of its strong points a It is contained in one page
30. IPIIRAMMMLIINILUNIIIIIIIII II ftfttteeteee n nne ttt nn Peectsssesseosesesecssoossesvevenusoosonesqessesasceevessestesesstositstissesteteetta eee P RDRRRDRDRTRRGEOIIILIIIIIMDIMIIINIINDINNIIIINUDINIIIIll II If IIlI t fffififG j 8 ll l4 gc 02280 9002202 ESS HALLER d AA FO EOL ELL CLO SPORES Akte soot 6600 DEOOSEREEES EO OER EEE EEOOE sat t RRE EEGEN Dear VIPER My trek through your PIPS FOR VIPS packages continues l am one of those ELF owners who is keying in all those pages of code As a result I am likely to run into any bugs in your object code Here are the latest In VIP OKER PIPS III on page 57 the CHIP 8 instruction at 05DE Should be changed from ABCO to A8CO which will correctly point to the FOLDS character string 02 10 04 Also in this same program I found and bypassed a questionable piece of code on page 87 The code at OC9C reads O1A Pio Please explain what these two CHIF 8 instructions do I changed them to 8100 1CAO Vi VO GOTO CAO and the program works fine Also in PIPS I there is a 2 page Editor machine language program used to display CHIP 8 code Could you verify the object code against a version you know works Thanks Chuck Reid Dear Chuck Thank you for the corrections As many times as I have typed or written B s for 8 s and vice versa I m ready to go back to octal or use the original hex digits U V W X Y and Z The MLS you bypassed takes the place of the BMMM instruction in the CHIP 8 Interp
31. UAGE CHIP 8 as printed in the VIP programming manual Load into 0000 01FF NOTES ON LOADING Remember to load the MLS at O400 This is J included here but was documented in last month s column When you are finished loading record five pages from 0000 OA FF and flip to run USING Press any key less than hex A to PUSH that value onto the stack Push any key greater than 9 to POP one value from the stack After each operation the stack is shown with the top of the stack to the left Note that underflow occurs on POPing an empty stack not on removing the last value sMAIN LOOP 0200 BEGIN 6A00 VA Initialize stack pointer to zero 02 6BOC VB C Initialize maximum stack size O4 S1 FOOA KEY Get hexpad input in Vf 06 6109 V1 9 Test if Vf is greater than 08 0105 V1 V0 9 by subtracting from 9 02 10 16 020A 3FO00 V1 lt V If negative result then V 9 OC 1216 S2 Else V lt 9 GO INSERT OE 2232 POP POP an item off stack into Vf 0210 3FO00 3 SK OK If flag not set then skip 12 22AC PUNDR Else print underflow message 14 121C S3 Skip the next section always 16 S2 2220 PUSH PUSH Vf onto stack 18 J3FO00 SK OK If flag not set then skip 1A 2298 POVER Else print overflow message 10 31 22EA STACK Show contents of stack 1E 1204 1 Go do it again sEND MAIN LOOP CHIP 8 SUBROUTINE PUSH V ONTO STACK 0220 PUSH 6F01 VF 1 Preset flag to indicate possible overf
32. UNDER POVER and PFLO return here OO s 2250 ONECH CE A eU V2 1 s 02DO 12C2 PFLO1 CHAR STRINGS O2D2 OVER 0407 0205 0000 Uses a special non ASCII D8 UNDER 0603 0102 0500 code for this program only DE FLO 0809 0400 INIT LINE O2E2 ILINE 2244 SCRLC Do sub Scroll up one line E4 6C00 VC g Set X coordinate left E6 6D38 VD 238 Set Y coordinate 38 bottom E8 OOEE RETN Return from subroutine SHOW STACK EA STACK 22E2 ILINE Reset VC VD and scroll up EC GEAO VE VA Save stack pointer in VE EE 2232 POP Pop an item from the stack O2F0 3FOO SK OK If flag not set then skip F2 12FC STAC2 Else done Go reset and exit GH OW ONE NUMBER F4 F029 SET I I addresses ROM bits for V value F6 DCD5 SHOW Display the LSD of V F8 7005 VC 5 Add 5 to X coordinate FA 12EE STAC1 Go loop until done RESET STACK FC STAC2 8AEO VA VE Restore VA from saved value in VE FE OOEE RETN Return stack shown on display MACHINE LANGUAGE SCROLL SUB O400 9B BE BF F8 00 AE F8 08 AF 4F SE 1E 8F 3A O9 F8 0410 00 5E 1E 8E 3A OF D4 OO OO OO OO OO OO OO OO OO ANSWERS TO LAST MONTH S LITTLE LOOPS 1 The best place to enter a timing loop slowing the CHIP 8 prime number program to a respectable rate is not in the SHOW PRIME SHOPR sub The purpose of this question was to inspire you to dig into the listing At address 0264 and only there we can be sure that V4 is prime Entering a l
33. VO 58 A262 CHTAB Set I to base address of character table 5A FO1E I VO Add VO to I to find right character 5C DCD5 SHOW Print the character with code V 5E 7005 3 VC 5 Advance X coordinate for next printing 0260 OOEE RET Return from subroutine d 0262 CHTAB FO 50 50 50 FO OO Index 1 Char D 68 FO 80 EO 80 FO 00 2 E 6E 90 DO BO 90 90 00 3 N 74 FO 90 90 90 FO 00 4f Q 7A FO 90 FO AO 90 00 5 R 80 90 90 90 90 FO 00 6f U 86 90 90 90 FO 60 00 7 V 8C FO 80 EO 80 8000 8 F 92 80 80 80 80 Fo o0 9 L PRINT OVER 0298 POVER 22E2 ILINE Reset VC VD and scroll up 9A POVE1 6200 s Set V2 for indexing string 9C A2D2 OVER Set I to first byte of string 9E F21E I V2 Add index V2 to I 02A0 F065 GET Get a byte of the string A2 4000 SKZ0 If not g end of string then skip A4 12C0 PFLO Else go print FLO A6 2250 ONECH Do sub to print one character A8 7201 V2 1 Add one to V2 index AA 129C POVE1 Go loop until done PRINT UNDER AC PUNDR 22E2 ILINE See notes for POVER sub AE PUND1 6200 V2 00 02B0 A2D8 UNDER B2 F21E I V2 BY F065 GET B6 4000 SKfO B8 12C0 PFLO BA 2250 ONECH BC 7201 V2 1 BE 12B0 PUND1 PRINT FLO O2CO PFLO 6200 V2 g See notes for POVER sub C2 PFLO1 A2DE FLO Ch F21E I1 V2 C6 F065 3 GET 02 10 18 02C8 4000 3SK40 B CA OOEE RETN P
34. VP 111 New low cost Microcomputer See description above O VP 114 Expansion Kit for VP 111 1ncludes 3K RAM I O Port and connectors 76 VIP The original VIP Microcomputer See description above 1 RAM On Board Expansion Kit Four 2114 RAM IC s Expands VP 711 memory to 4K bytes VIP Color Board Converts VIP to color Four background and eight D VP 711 C VP 44 C VP 590 foreground coles 69 Q VP 595 VIP Simple Sound Board Provides 256 programmable frequencies For simple music or sound effects Includes speaker ssee 30 O VP 550 VIP Super Sound Board Turns your VIP into a music synthesizer Two independent sound channels On board tempo control Outputs to audiO SySteliz ia essei eoo Exerc ov 4 Channel Super Sound Includes VP 576 expander demo cassette and manual Requires VP 550 and SK EE IN VIP Memory Expansion Board Plug in 4K RAM memory 95 VIP Auxiliary Keypad Adds two player interactive capability 16 key keypad with cable Connects to sockets on VP 590 or VP 585 VIP Keypad Interface Board Inter faces two VP 580 Auxiliary Keypads to VIP ecceeceeees 15 C VP 551 74 C VP 570 2 Z7P 580 D VP 585 O VP 560 VIP EPROM Board Interfaces two 2716 EPROMS to VIP 6 34 VIP EPROM Programmer Board Programs 2716 EPROMs With software c
35. answer Then I began thinking A magnet that powerful could affect information recorded on cassettes This is a serious danger If you have a Simple Sound board don t ever even by accident set it down on recorded cassette You could lose the whole tape DnX oA e LEE EDDIE 4244 4 4 44240999 90 090020009 000209002020222002009 122229222222 2222 2 2 222 4 0222222504404 0044040404454 94 4 9 2 1 HJ HHH HEESCHT EECHER HEH HECK He A HARDWARE BREAKPOINT SYSTEM FOR THE COSMAC VIP by Bill Barrett Haven t you wanted to try your hand at writing machine language programs on your VIP but were frustrated at being unable to figure out why they didn t work One tiny mistake and the kit just sits there with a blank screen Of course you can go into the operating System and poke through the memory locations that hold some of the registers then try to figure out what went wrong but after some of that you are probably ready to be picked up by the men in white jackets with a butterfly net Now there s a better way For about 20 in integrated circuits and a PC board that you can wire yourself or order from me you can make a hardware breakpoint board That will give you an immensely powerful tool for finding out just what is going on in the program you wrote You can even Single step through each of the machine instructions until you see where the trouble begins The board You will need a 44 pin
36. ayed that children s game where everyone piles their hands on top of everyone else s That s a stack except that bringing new hands from the bottom of the pile would be illegal in a computer Stack If no one cheats the only way to get to the fourth hand is to remove one by one all the hands above it The last hand on the pile in the stack must be the first one to be removed The sample program written in CHIP 8 is intended to demonstrate stack input and output When an item is inserted into the stack programmers say the item is PUSHed onto the stack Taking an item off the stack is jargonized into POPing the stack PUSH and POP should become familiar terms to you They are not descriptions of the sounds made by a certain breakfast cereal The two subroutines PUSH and POP may be used in your own programs to implement a CHIP 8 stack Happily no jumps were needed by either routine so they may be relocated without rewriting any of the instructions Before calling either subroutine you need to initialize two variables somewhere in your program VA must be initialized to f and VB to the maximum number of items you will allow in the stack VB may be any value from to FF but will usually be set to 10 or 20 hex for a stack depth of 16 or 32 bytes VB is set to OC 12 decimal in the sample program to avoid printing too many numbers on one line CALLING PUSH Now that you have initialized the stack you may PUSH a value onto th
37. bler which requires a lot of tape handling Tom COO CHM Soe EH HEH HHT HOOT E FE Hee EHEHH REELED nenne e e esoooo Oe ee e 860999809060609 2 6099990060 90999424 900909092a4094952062 59906009 6422 9 Ce Oe 00099 49 e 9099 2909248 00096099496999728 CORPO MEE ers eeOeHED OHTA Er Fe OHHH HHT HTS EA OTOH ET ES EEE He ASCII encoded keyboards The RCA VP 601 keyboard has a 58 key typewriter format for alphanumeric entry The VP 611 15 additional offers the same type writer format plus an additional 16 key calculator type keypad Both keyboards feature modern flexible membrane key switches with contact life rated at greater than 5 million operations plus two key rollover circuitry A finger positioning overlay combined with light positive activation key pressure gives good operator feel and an on board tone generator gives aural key press feedback The unitized keyboard surface is spilloroof and dustproof This plus the high noise immunity of CMOS circuitry makes the VP 601 and VP 61 1 particularly suited for use in hostile environments The keyboards operate from a single 5 volt DC power supply and the buffered output is TTL compatible For more information contact RCA Customer Service New Holland Avenue Lancaster PA 17604 Or call our toll free number 800 233 0094 Optional user price Dealer and OEM prices available POR ee meme meee OOH HEH HO Ee BH OEE HHH EHH TEHEEH HH SHH EEHHEH HES HE H
38. c eee eee eee eee VIP Expansion Board Provides 4 buffered and one unbuffered EXPANSION sockets eee eee eee VIP Two Board Expander Allows use of 2 Accessory Boards in either I O or Expansion Socket ASCII Keyboard 128 character ASCII Encoded alphanumeric keyboard eee a ee bte e a e 65 D VP 565 D VP 575 O VP 576 O VP 601 Enclosed is Add your state and local taxes O VP 611 ASCII Numeric Keyboard Same as VP 601 plus 16 key numeric KEE geeiert geet 80 O VP 620 Cable Connects ASCII keyboards IO TEE 20 O VP 700 VIP Tiny BASIC ROM Board BASIC code stored in 4K of ROM 3 O VP 710 VIP Game Manual Listing for 16 exciting garmiBS s s sss ves o nere bs C VP 720 VIP Game Manual 1l More exciting games Available 2nd qtr BO 10 C MPM CDP1802 User Manual Included 201B with VP 711 eene e Please send more information for items checked plus shipping amp handling charge of 3 00 Total enclosed enclose O check or O money order or charge my O VISA Bank Americard O Master Charge Credit card account No Master Charge Interbank No Signature required for credit card orders Name please type or print Street address State amp Zip Expiration date _ City Telephone Make checks payable to RCA Corp Prices and specifications are subject to change without notice 02 10 30
39. ddress below and any interested people may write to me directly To me the VIP was just beginning to get off the ground Some of you have probably seen RCA s new advertising campaign and new 99 version of the VIP My 1802 manual will be coming from Hayden Books soon and I really hate to think we will all lose touch However if this is goodbye let me thank you all for your letters your criticisms they were all offered and received to be constructive in nature and your compliments I am especially sorry that much of the fine material sitting in the drawer will never be printed And thank you for the opportunity to at least get my feet wet as your editor It was good while it lasted and was an experience I will not soon forget Good luck to all of you Tom Swan Apartado 38 Taxco Gro MEXICO COO emo eH aEEH HOHE EH SESH OE SEETHER E HEHEHE EE ESOT HEHE ESOS OTE THESE EEE EEE EO SEO TEE EE ESE EE TEREST ERE HESESCHE SEH HEHEHE HEHEHE EEE ESSE EE HES HEHE SHEE EH SHEE EHH EOTE SS OEE HEHEHE OE ETH EH EEE CEET SOE HESHED OHO CHER HERE HEHE CHM a OHO Hee HHH HHH HEH RET HEHEREH HH EH EHH EEE EE SEPT O HEHEHE SORE HEHEHE EEE EE SHEET EOE EE SESE EE SEE HRESHET EE HHOSEH EH SESE SESE EE EE HEHEHE EEHE HEHE SHES EH SEH EE HERE ES EOS EEE EEE HES EEE HED HES ES HEHEHE SESE SEL OES SERE OTE OHEE Cee emma SEE Doo a ELE HEHEHE LOTR SHR ESE TE DEERE HEE HEHE E TEER OEE EERE EE HERE SESE SH CESE 099490922 024009997909 9 20990 68994 44 0992 992
40. e Vv 72 OGU do uvw3ceul Gayvalsios V ki STA sweazsAs Je3nduoo UGCABIIM jd aJge u e4vmpaon e dl O KR x 2 vla welu zx is5ixi O OO0O0CcocO A 4 p 441 O Sa L 3 S p 1 5 24ppPV QN o2 lo 201b 60 iN ef 17 P q0lQ e 0y 3 O LING O 959 O ssny O SI O Km ON 5 ffi Hj Ki Si 23 Y z D omg e ea v a 2 ZJetTddns eTqetTez e wory ATer1eredas wou SUTAJepto ysessns I saoge pe STT S 2I y PNTO UT LON S9Op 4I 9IqnoJ3 Jo esto UT suor4ond4sur OTZSOUseTP pue eJeEMYgjos eu FO JSUI4STT eodnos eje duoo e suor43onJg4sur Krquesse ejerduoo epniour suorjona4sur out 4UueprseJ TUJOJITE ege nok Jf xeq seies Z T 9 ppy Sur pueu pue o7e sod sSurpnrour c 94809 4TH au 62TS6 vo esop uec oAy ep H HOTT NOAVTIIM Wort suoIjonJg4sur ej3e duoo pue TEMJFOS snq p eua UIT ade e339SsS 9 e pageoq q41n9419 pea3e d pTo2 AqtTenb ysty e suTUTe U0 re Zopi0o ued nog Schematic Figure 1 02 10 27 displays them on the TV screen permits you to set a breakpoint at a different location single step for a while view memory or change memory You can also change almost any of the registers by changing their memory image The program operations are shown in figure 2 To use the system you must have the debug software program loaded in pages N 2 and N 1 where page N is the top page of your memory For example for an 8 page minimum sys
41. e c pP etate EE eec avons c etatem er ture EI E esl Mese erue SS SUG CU i t re irse Ure Sees ee ee eee E LS Es E asses s ese had qe Reed tae us Melsuersrelesqerde seca mel esses EE EES EE E EE e emt Meescce T EE preces se iei ea ecu EE ent Dee ete ctllt epo teleNse SE corse es secet dels DR Seattle Petitur tteteeeees seda ese sd tede e ses edades e die Kee aer EE EE EE E R E EE mcus sue ep pelea cs Wane sole she E esse tt ee Ere een een ease seme e 02 10 20 SIX SONGS FOR VIP SUPERSOUND by John C Hanner The Alley Cat Song Pin 8 1 Enter 7 pages Pin 8 program list with test song From RCA VIP Supersound System VP550 instruction manual appendix B B 2 and B 3 2 Measure Time Check 0259 should be FF slow 4 4 time end Break codes 3 Make the following changes 0270 1201 BO14 O1EO FE11 O1FO 1401 BOFE 1308 0280 BO14 O1BO FFOO O2FO 0404 0909 OFOF O404 0909 OFOF 0909 OFOF A Measures 0300 0105 090D 101 181C 1F23 272B 2E32 363A 0310 3E41 4447 Ahn 4F53 575B 5F63 666A 6E72 0320 0000 and 0000 s to 037F B Measures 0380 0105 O90D 1115 191D 2125 292D 3135 393D 0390 4144 4649 4BYE 4F53 5559 5D61 6569 6D71 0340 0000 and 0000 s to O3FF 7 A Notes 0 400 0070 6F6D 6C6B 6CAD 606B 6C6D 6ECF 60A0 0410 706F 6D6C 6B6C AD60 6B6C 6D6F DO60 A070 0420 6F6D 6C6B 6CAD 606B 6C6D 6ECF 60A0 706F 0430 6D6C 6B6C AD60 6B6C 6D6F D060 6070 72B2 0440 60A0 6070 72B2 60A0 6070 72B2 60A0 A072 0450 706F 6D6B 6AA9 6070 6F6D 6C6B 6CAD 6
42. e stack by first setting Vg equal to that value then 02 10 14 executing 2XXX where the X s are replaced with the address of the PUSH sub Immediately on returning from the sub check the value of VF If VF g then Vg was successfully PUSHed onto the stack If VF 1 on return then the stack was full and Vf was not PUSHed Vg is not changed Note that this overflow condition does not prevent you from taking items off the stack to open up some room some textbooks treat overflow as a fatal condition that is the program Stops This does not have to be the case with these CHIP 8 subs The stack pointer will always be correct CALLING POP To remove the topmost item from the stack simply execute 2XXX with the X s set to the address of the POP sub If VF on return then V was set to the value of the top item of the stack If VF 1 however then the stack was already empty Again your program may continue without concern for this underflow condition It simply indicates an empty stack not a damaged one When an item is POPed from the stack you should consider that item to be gone from the stack even though the value may still be in memory at I VA 1 The sample program takes advantage of this fact to print out the stack it just saves the stack pointer pops the stack to underflow while printing each digit then restores VA Normally this is not good stack handling however In the sample program 0600 is used as the base addr
43. ent a software stack You do not have to be aware of the stack pointer it will take care of itself Stacks have uses in arithmetic expression processing games graphics and even interpreter design We ll look into these possibilities in future issues Until July have fun Anyone who tries to index Me is in big trouble though 02 10 15 PROJECTS 1 The children s hand game mentioned earlier forbids taking hands from the bottom of the pile If that rule is left in what data Structure is then represented by the pile of hands Try to implement that structure in CHIP 8 2 What s a simple way to use an entire memory page for the stack 3 The sample program contains a skeleton of a CHIP 8 character set display Unfortunately as presented the idea is rather clumsy Can you think of a better character set display using basically the same idea but avoiding conflicts with the I pointer The answer is contemplated as a possible article for a later issue and response is welcome Could a stack be used STACK SAMPLE PROGRAM VARIABLE ASSIGNMENT V General parameter passing V1 General used in ONECHR sub and Main Loop V2 Next character index for printing strings words V3 V9 Not used VA Stack pointer VA empty VA VB full VB Maximum depth f items allowed in stack VC X coordinate for display VD Y coordinate for display VE Holds VA during output of stack VF Flag variable General use LANG
44. es Kendall Stambaugh EDITOR S NOTE Thanks for writing Kendall To other readers who have expressed an interest in the light pen look for applications notes in next year s volume of VIPER I ve got mine working Soon as I get a program together I plan to write it up Tom 5d A a a a oo essct tostetsovsctetooostobose 0t9eto oessosososecooose r sestosccottbosoessocotosoecost5sovoocscsoeocoocvsoceeistcosvsoscoct tocvsoeeveoeoececetoveooevose veoec ee tee tsooot es horoecvtssoo sss meer sere set esoeso osos er eeE DEE E EE DDO DEH FH OOEES HUET EE EES HEE FEES BESET O EOE SOHO EE EE EH EH EET ES HED ETOO TEE OE TERE EERO HO THERE SOSH HEE COED EEO OD OE EOreEseeronreecocre Cee meme m errr er sees EFOSC ER ae OHH OED CHOOT ERE OER OH COREE TS ee90e0200v00000 009260959959059094040002990 0000090999009999600909990 9 e902994008090090 9099 900000040900909 9900909909000099090099900999 060 9990e 5090009009290 600909022 o 009099900906090029009 00 9009092940009 600 000809 0909 40820 7 0000949 v 9 9900002099900995 9 09906094 906996005062599920909 e 009909999909999909 ee090 69900 00600060906920 2500009 6206 c0009 90090909062002920 900089 560009 00290a094995 9920092920090990 9 292999009 9099990 9229029 2 09900 09950299999 206029929 09 9 9069500 006099902999 52 0 0009000 06006000000405G809090900092060006090060909000900000909060690002 2 9 0900080 09009060990 0209000090 02090 6009900009496009902909909
45. ess for the Stack This may be changed by setting the I pointer at 0228 and 0238 to different address The base address in this case 0600 will never be used to store values in the stack In other words the stack always contains a wasted byte at the bottom It is important that you do not modify the subs to avoid this insignificant waste In a program that uses several stacks this byte may be used to store the stack pointer for that stack Thus any number of stacks may coexist in memory using only a single stack pointer Wa CHIP 8 variable Each stack would contain its own stack pointer always located at the base of the stack E Because of the way I may be indexed the CHIP 8 stack will start at BASE 1 and grow to BASE 2 BASE 3 VB before overflow occurs Most processors run the stack the other way subtracting one from the BASE address before PUSHing Except for the 1802 which PUSHes then subtracts one Oh dear Don t forget which direction your Stack is headed Finally VB may be freed for other uses by using a permanent maximum value for the stack depth The instruction at 0222 could be changed to 4AXX where XX the number of items allowed in the Stack For a program with a single stack this would be a useful modification For a multi stack program perhaps with memory assigned dynamically as needed VB will be needed to control stack Slzes Like textbook Chess openings these subroutines represent the way to implem
46. evessseeturs EA AAA ee ee a ee enee e eat oO 2 2 Cea ecu e QUE E 9 4 0800 US 0 49090 999 044 044 9 amp 9 4 0 404 04 VOY EEN W808 0 4 018 060994040604 94 99 0205078 EE 6 c2 79a cad Os ee CT ee T D i eee eee eet ee SCHELLER NEW PRODUCT ANNOUNCEMENT POWER LINE INTERRUPTER Electronic Specialists Inc 139 95 124 95 171 South Main Street d Natick Mass 01760 617 655 1532 Electronic Specialists has introduced the Power Line Interrupter ohould AC line voltage be disrupted or exceed user selectable limits the Power Line Interrupter disconnects the power Front panel controls provide under over voltage interrupt level Selection and power reset Other features include integral Spike surge suppression and response delay to prevent false interrupts Intended for specialized MicroComputer applications where equipment is subject to periods of unattended operation the Power Line Interrupter is designed to provide safety and protection Connected to the AC line with a standard 3 prong plug the Power Line Interrupter can accommodate a 15 amp resistive load or a 10 amp inductive load Model PI 15 0 U Over and Under Voltage 139 95 Model PI 15 U Under Voltage only 124 95 For more information write to Frank Stifter at the above address wee ar ure e ther taria esos oS eee E eae E OS we wae Fee Fee OF se Hie COG eG ecstuo esentssosesessateneceteevasseesv vevvecevetetescexeeesetsuteseecestatvs ws sre tr dee MICE ee me
47. ges to the debug program are needed for different memory sizes However it must be loaded at N 2 as explained above and the VIP operating system must be in place the debug display uses some of the OS features If you never invoke the first breakpoint through the initial C00500 the debug board cannot interrupt the VIP even though you happen to hit an instruction whose address matches the board s address register The board is deactivated on RESET and remains that way until an OUT 7 is executed You must be careful to plant a breakpoint on the first byte of an instruction not its second or third byte That s the only address the debug board will pay attention to When a breakpoint is hit the TV screen will display these registers K P D Q DF Q DF RO R1 R2 R3 R4 R5 R6 R7 02 10 28 0500 0508 0510 0518 0520 0528 0530 0538 0540 0548 0550 0558 0560 0568 0570 0578 0580 0588 0590 0598 05A0 Touch key 1 and you will see the rest of the registers R8 R9 RA RB RC RD RE RF Key 1 will cycle back and forth between these displays Now Suppose you have set a breakpoint on an instruction at location L When the display appears that instruction will have been executed and the program counter R P will be pointing to the next one to be executed If you hit key B the debug software will automatically set a breakpoint at location R P and resume one more instruction will be executed and the display will
48. he use of this program Watch out when using it in page 06 of memory CHIP 8 uses the next to last page as a work area so if CHIP 8 is executed the display program will be altered Also the C key advances the display only because that was the last character set in the keyboard latch by 02 10 09 the operating system If you enter this program from another editor or some other means the last key you used before entering this program will be the advance key I intentionally did not set any Specific character into the keyboard latch to save program space You may wonder what that funny line is at the bottom of the screen I didn t have room for the interrupt stack in one page of memory so I used some of the display memory to hold it It is quite instructive to see the stack in operation I didn t realize it worked quite that way until I saw it in operation I hope you find this program as useful as I have MODIFICATIONS FOR ELF 2 USERS Ihe program uses the character patterns stored in the Cosmac VIP ROM Figure 2 is a listing of this pattern To run on the ELF 2 Store this pattern using the same low order address Set the high order address to the desired page For example store the display program in page 05 and the pattern in page 06 One word of caution here page 07 is set up as refresh memory Do not try to load the pattern in the same page as refresh memory Refer to figure 1 for information to relocate the refresh page Also you mu
49. immediately come back If you hit key F the current breakpoint position is unchanged and the program will resume until the instruction at location L is again executed A new breakpoint location can be set using key C The contents of memory can be viewed by using key A and changed by using key O refer to figure 2 for the method The contents of any of the registers except R1 and R2 can be changed by finding their stored location in memory Here s how Note the value of R 2 displayed on the screen let it be N Then count backward starting with N 1 for the X P byte N 2 for the D byte etc until you come to the register bytes you want Then use key O with that address to change the register s value When you return R1 to the screen display with key 1 you will see the new values and R2 cannot be changed in this way you can change their stored values but it won t make any difference when you resume the program The debug program Here s the two page debug program that makes it all work 24 Al 71 21 601 82 A0 92 0508 12 12 CO 06 21 42 70 22 0670 E7 67 27 27 FC 10 50 30 32 FF 11 30 OS5F8 7A 88 32 CD 7B 28 30 CD 9600 D6 30 21 F NAAM AAA E LR ERT RER TENNIS ECHTEN WAAR RE LE S OH RHE HHO H TORE DE SEH ERECTED ESE EE ES EEE EH ESE EOC E HEHE EE Cee er eeeseeeenee SPH A Rear ee anew eee eH eee ee Dawes EHH HEH OH HEHE DERE TOME HEE ee HK ETC NERT ER HERES 909229e 92n994290 460229992292 999099799 22 2929099909
50. low 22 9ABO SK Z If VAZVB then skip No overflow this time 24 OOEE RET Return with flag set 1 Stack is full 26 7A01 VA t1 Add one to stack pointer preparing to insert 28 A600 BASE Set I to the base address of the stack 2A FALE I VA then add VA to find the top 2C F055 PUSH Insert V value into stack at X VA 2E 6F00 VF f Set flag f marking successful PUSH 0230 OOEE RET Return from subroutine CHIP 8 SUBROUTINE POP STACK INTO Vf 32 POP 6F01 VF 1 Preset flag to indicate possible underflow 34 l AO00 SKZO0 Skip as long as VA 0 Stack is not empty 36 OOEE RET Return with flag set 1 Stack is empty 38 A600 BASE Set I to the base address of the stack 3A FA1E I VA_ then add VA to find the top 3C FO65 POP Retrieve the value from the stack Put into Vg 3E 7AFF VA 1 Subtract one from the stack pointer 0240 6FOO VF Set flag f marking successful POP 42 OOEE RET Return from subroutine SCROLL CONTROLLER 44 SCRLC 6F08 46 SCRL1 0400 sVF 8 See last month for scrolling details sSCROL This sub needs the SCROLL MLS 0 00 48 7FFF VF 1 hA 3FO0 3SK 0 4C 1246 SCRL1 HE OOEE RET 02 10 17 ONECHR SUBROUTINE 0250 ONECH 70FF VO 1 Adjust Vf 1st character at index f 52 810E SHL Shift V left to multiply 2 Save in V1 54 801E SHL Shift V1 left to multiply 2 Save 1 in VO S 8014 ADD Add VO V1 for VO 6 total Save in
51. ns to fall just after the branch after R P has been changed but before the next instruction is fetched There is no way to determine whether such a break is valid or not after the fact The bright side of all this is that the breakpoint system won t miss a planted breakpoint if the rules are followed It just might come up with a breakpoint that you didn t set Bill Barrett vhessessssototesesosseqeecseveevecesesooseeseecooecvesseccsososcossssvecveoveseesosssocoosoosvesssssossctomosoossesstsseseovotoeceseeveeeeseoeeseveceeovesseosscstooscec soseopoesvooeeecscectececco9osoop 60609999209090009006090622586999095G09909090099 69092209099099060 69900990090960225806230 00090909600829990 650999 099 9090290226 59099099999090 9069999990990 0029090909990950992009209 08099090990902 099990992 5992209992259060060 20909090990 90020260906 9 FESS feeetrecrreetiebresettscoeres ace ahha al eee ceat 8 Gia Ore Oe waco vale eec seas ccecea en esses scmerseneeeaessestevaees eras ses veaesosvasecaeecuseneceeutavescdesecetessesesecastsese e usse ieu s S E EST ee e M IT PP PP TE 5499809809840906999906450992 4508949069895292094444999959 6 095889089509 660569990598856896009909 900 952 09699990 66929 090609909926 99 4600999094999 99400099920u99800090990409045 40999 505244 50096049494909450065449 59n44099 959560 669909929000000099999900009490090 9900909009905990009009909209059 0900029909009000200009999090099020094990 00909900900 00
52. o me to be unethical to try for another year when I may not be able to see at all by January Many of you have called and asked why I haven t sent renewal notices you ve sent letters referring me to agencies and pro ducts which may prove to be of immense value Your affection has helped a great deal and I love you all for it Some of you still didn t know that I m a woman after two years of VIPER I really enjoyed your astonishment So good bye friends Give Don all the help you can because you have made VIPER what it is people sharing with other people Regards 02 10 34
53. o5 t 596909 SHH HE eee OE ee BEER ee CHEE COMMS SHEE t5issottoszta 9 ET HOHE SHEE EHH EEO HR asss oe ERse es SHE EEES 05390900 seenen CHEST H HTH EEE H HET HH sees HOH OE Ee sett EE OEE HOR Ee EE ER 99 90 v CH HSE ETE HEH e 99 99 4 Renee EE ER ae OEE De 992809 COOH HHH OHHH DH eH E HH ESSERE EHH HOH HEE OEE 952922590990 9 099909299 2 90 089 CHEE HOH BERS SEE H ETE ES SEH SEER RD HOE HEHEHE Se 9069096029999 5259299 gees SHOE Re 906 009 REM 09 ERH TEES 95992929 VERDE EES EME EBS ORE es eren SCPC HOHE Pewee ee aE HEHE HEHEHE EHS EEE HEHE HEHE HES EE EE CHEESES BEET HEH ES CLES EHEAHES 0290909209094 HEE SE SEH ESTEE HEHEHE CHEHESE RES OEE AHE Ho 06 90 9902 CELE HHE TEE ES 99909509 Reo Hee Hee DS OEE Ss BHOOEE POSSESS He DEBE ROH ee SHEE HEH EES SEES EHS ES TEETH FORO EH HEE 990029 099000925 vetot Dotore CESSES SEH AEH ASEH OE SHEETS EHEOR ES CHESDECHEEHS SHES SHES SHORTS 6990099 CHE OSOCEE HESS 9595609 HEH EEO ES OHHE Se 90999069 02 10 01 S EDITORIAL The big old ciruela tree in front of our place is turning a young green the leaves just barely covering its scraggy winter bareness Black birds I think they are mockingbirds sail back and forth carrying nest building supplies By the time we begin Volume 3 of the VIPER that tree will be a dark green dabbed and dotted with yellow red fruit The baby birds will just be learning to fly and to hide in the lush trees when the rains come That will be a time to look ahead to the fut
54. oop at that point will delay showing each prime number by as much as you want The following will do the job 02 10 19 0264 1270 Jump to patch at 0270 0270 6F60 Set VF constant timing value 72 LOOP 7FFF Subtract one from V by adding hex FF 74 3FOO When VF 00 skip the next instruction 76 1272 Go to loop waiting a fixed amount of time 78 123A Go show the prime number NOTE I purposely did not use the regular timing loop that works by Setting and testing the internal CHIP 8 timer There s more than one way to skin a scorpian What 2 Simple To change the amount of scroll just change the number of times the MLS is called This is easily accomplished by setting a new loop value into VF with the byte at location 0337 Try a value of 06 or an even larger value like 10 or higher and watch the effect Less than 6 may produce some odd happenings Also unless the top line is totally scrolled away confusing bits of its lower parts may remain on display e 9 006950 HD oe 5 0 EHH ERT HORE LEH SH HE SOSH OEM HOH EEE HEE HEED OEE EHO CES See SEE TE SU En E OFS EEE A ACRI Y CEST EET EE te ene ECKER ENS 8 OES OEE RR AA EE OHO OO ECKE AA ih i SS Coeosecoere Bae eee eee EE eee ee eS CR RS SS 8 9 9 0 9 EE 016 0 8800 a 9 00 09 9 0 0 9 6 09 9 0 4 0 9 9 G9 010 0 0 09 816 9 0 9 i09 08 o3 Vio Va pa Sa o 0 Me ET S BM e evveseatauvovotiecetustseee e T ee Rica At a a ce dal at boieestoeesosvessecoccovs sse tsv
55. reter It s not needed for bets less than 10 The routine serves to combine V1 into Vf allowing successive decimal keypresses to go into a single variable Here S the little MLS you skipped O1A4 E6 45 A6 45 A7 06 FE 56 FE FE Pl E O1B0 Fl 56 D 2 ue e This is relocatable i e uses no branches so it may go anywhere The FXFY following the call to the sub serves to identify X and Y as the active CHIP 8 variables As far as I know the object code for the editor is correct as printed It does make use of VIP operating system routines however which may not be available on your ELF Are there any ELF owners out there who know the answer Thanks for writing Tom e0650069025 09009960060800009 92 09060 00929000 90 9 09 0 0999950 80090900060900 902700998096009 OHETH TEE OHE HH SH HHH AEH SE OEHREE SES EREE OHHH HE HEHE EHTHE HEE HEHEHE HEH HEHEHE HE ES EHC RE EHH EHH EEE TEES SOLO REDE EER ORE EEE SEO ROE DOE HOH OD CHS ETOH OOH Eee HE HH OHHH EH HEH OHHH HEOE TE H EHH EEE HEHEHE EHSEOHOH HEE HEH HEH HOES HEE H HOD EHH HEHEHE HESS SH HEHEHE HET EHO HOH ETOH 9 t5 EES SEER HEH EOTE REE HEHEHE EOE OCHRE EH HOH OEE HOE REDE HEHE ae EE e SHEER enee ee CHOSE H FEE H HH HEH HEHEHE HES OHHH HSE EHH SHEE EE HEHHE HEHEHE OH EOE EEE SHOE EEO TEHE EH SHOE HHH EH ESHE SHEE HEH EE HD HEHEHH SHEERS SHES HSE EEE H EH HEE HEHEHE SH ESE HHH EEE EOE EERE EHH SEH ESHER OHH OE HOODEO EERE HHT OH OCH OH EH CREE EOE HS COOH CHEE EH EEE H HHH HEE HHEREHEHHEEHH
56. st change the following address location amp Address from to 1D 81 XX XX page bit pattern is in B2 3E 3F allows input key to advance program Control Byte Chart Figure 1 Address 2 data byte 3 data byte 4 data byte Location format format format 9F 7E 85 85 B1 D9 e UTEM 85 C2 D9 7E 85 Address Location AF F0 Display 5 lines AF CO Display 4 lines 08 XX XX page program is loaded in C9 XX XX page program is loaded in OD XX XX page program will start displaying at 19 m 2D XX XX page to be used as refresh memory B5 SC B Character Bit Patterns Figure 2 10 FO80F080 E 20 FO80F0O10 30 F0909090 14 FO808080 24 FOBOFO90 34 FO101010 18 F0507050 28 FO90FO010 38 10602020 1C F0505050 2C FO10FO090 3C 2070A0A0 Lo FO2020 02 10 10 Register Allocation RO Refresh R1 Interrupt R2 Stack R3 Main R4 Display subroutine call R5 Memory being displayed location R6 Display location R7 Pointer to bit pattern R8 Work register 8 0 counter 8 1 character R9 Work register 9 0 counter 9 1 character RA Left half right half flip flop RB Counter ist 2nd 3rd 4th decision block RC Counter divider bar positioning Program Listing Address Code Comments 00 F800AA RA 0 R5 0 R6 0 03 A5A6ABBB RB O RB 1 00 07 F806B1 R1io1 R3 1 R4 1 06 0A B3BL OC F806B5 R5 1 06 page to be displayed OF F825A1 R1 0 25 interrupt 12 F8FFA2 R2 0 FF stack 15 F842A4 R4 0 42 display subroutine 18 F807B2B6 R
57. t counter BR WRCHARRET NOP NOP NOP 7 5 instruction times W3 GHI RF SHR bit to DF PHI RF BDF W1 SEQ BR W2 Reading a Character One character is read from the terminal by calling subroutine READCHAR given below This can be called whenever input from the terminal is expected by the VIP It hangs on the BN4 instruction at L1 until the first HIGH is sensed on the data out line from the terminal then starts its timing countdown picking up bits and packing them into a byte At the end it waits out two periods then returns with the received byte in the D register This assumes that a HIGH level from the terminal results in line E4 going HIGH Again this subroutine can be called through SCRT or through a SEP Ne It uses register F as a Ke 02 10 32 READCHAR reads one character from terminal LDI o E Operates at 9600 baud BR LA READCHARRET La o SEP R3 SHR READCHAR PC 5 3 GHI RF L1 oHRC BNh Li Wait for space PHI RF LDI 8 DEC RF PLO RF GLO RF LDI 6 BNZ L5 L3 L6 SMI 1 BY L6 Wait for final mark BNZ L3 Wait for middle of GHI F Returned in D and in Second pulse F HIGH L5 BR READCHARRET NOP For timing L7 Bh L2 LDI 1 BR LA Parity If you have to supply a parity bit as part of the information I suggest setting that up before calling WRCHAR There isn t much surplus time to compute parity on the fly Also DF is
58. te and do all those other wonderful things I could use a printer Apparently two or three VIPs have printers connected But they all seem to use 1802 machine code I have found a pseudo LPRINT that works with VTB and a strobe too It also make a nifty DEC HEX converter if you have a HEX display on the output port I m working out the details of a printer conversion but I don t have a printer yet They are all too expen ive I m working on an idea that uses the old W U Deskfax units at surplus fleamarkets for 15 or 20 to build a printer plotter Some mechanical changes will be necessary A UART could serialize VIP s parallel output The fax is a serial input device using a charged wire stylus to mark electro sensitive paper You move the paper and or the stylus and zap the paper to make a mark Timing does the rest I have 3 or 4 extra fax units and about 27 000 sheets of paper for them Roll paper can be used in other machines Fax paper is not the same as thermal paper but that may work too Alphanumerics and graphics in any format can have much better resolution with this than VIP s 1861 TV interface Would anyone care to try this My address is included S those who do Don L Hartley Rt A Box 168D Yellville Ark 72687 avessesecsesesedtbevsoseceeessoseeceeeooetessesvesteepeereseesoetoovesssteteee geesssstesesosestasssessessstooeeesstssoesossacsoseovsevesesssveeesstesevsasvanvtvi sesesensanssesewtesserstessetes e RADAR PRPRRRPRPAIIL
59. ted at address 30 If you desire other options refer to figure 1 2 address bytes 2 data bytes format To be loaded in page 06 Display height 5 lines 1 2o d Program will start displaying at 0600 D Refresh memory CoH OHH RHR oe 590900 99 o tt evbovvitvit0tostsovsvsnbo bt tssopsoisisiemnvissossttiee mosvv ett tttv e Ce OOH HEH HHH eee 0099 HHH HEHEHE SEH HHH Hee HHH OHHH EE HOE EH EERE HH HEE HEE H HP EH OOOO RHO Ra pe o TOPO H HHH Hee wee Ee DH OTH HHH EHH THe HHO HH OHHH ETOH EOE HEE EEE HOE e e ae earen enee SOHO HSH Hema ae eee CH HEH HTH EHH EHH HEHE HEH EER HHO HHO HOO H MEER HOOD CHO HHH HEE He SOOTHE 90609 09060006020220900 002909 060996006009092599950990009299 9 page 07 NON COMMERCIAL AD CORNER Joseph F Oberhauser has a slew I can think of no other word of VIP equipment for sale and more VIP cassette printer keyboard send inquiries to us and we ll pass them on to Joe This brings up an important point as I suspect Joe would not mind receiving direct replies But if you want us to print your address in the newsletter you must specifically give ARESCO and or the VIPER permission to do so We have been strict about this policy out of respect for those who do not have the time energy or sometimes the money to reply to all the mail that can result from publishing their address Only if you write you have my permission to publish my address or words similar to
60. tem load the program at 0500 for 2 pages It needs stack controlled by register R 2 and that will start at the top of page N 3 Page N is used for the TV display shared with the VIP operating system Finally you need to write C00500 in location O That transfers control to an initialization section of the debug software It will set up the stack and interrupt register set a breakpoint at location 0003 then return to 3 A breakpoint there will immediately occur so that you can set a breakpoint somewhere else single step or whatever The registers will be set as follows X 2 P 3 G 0 IE 1 R1 055B the interrupt entry location R2 O4FF the stack top R3 program counter RB HIGH memory top page i e 07 for an 8 page system The TV interface circuit is OFF The other registers are undefined These conditions are somewhat different than those after the operating System starts a program but I find them more convenient for program development The system depends on IE 1 R1 holding 055B and R2 pointing to a valid stack The TV interface should also be OFF since otherwise it will cause interrupts Of course your program should not alter the instructions in the debug software pages If any of this goes wrong the debug system will fail 7 The debug program does not alter itself so it could be embedded in a ROM or in write protected memory That goes a long way toward averting special problems with cantankerous programs No chan
61. the VIPER would have entered its best period Already we were receiving some fine articles and I feel the content of the newsletter was growing more professional all the time Before I began to edit each issue I was mostly concerned with my own material though along with the resti of you I devoured each issue as soon as it arrived Afterwards and from reading many of your comments I began to see how the VIPER could better serve all of you One thing I do agree that was wrong was to publish material needing the routines from PIPS to run Seriously we were not trying to coerce anyone to buy the books The articles came so we published them Still you are correct readers Programs published here should run without having to buy a book from someone else There s nothing wrong with writing books and I plan to write some more But if we had gone on to next year I would have followed a policy that most of the material be for everyone By the way 180 pages of PIPS IV was ready to be released when ARESCO made their announcement to me The subject is Graphics and Animations for the VIP and most Elf owners will find routines that don t require the VIP operating system or hardware to run If anyone is interested I suppose I m in search of a publisher That brings up another and final point Should anyone be interested in continuing the VIPER I am willing to help either as editor or as a contributor For that reason I ve decided to include my a
62. those will we print your address in the newsletter Thanks Tom POH Pe mem OEE Teo EHH HE HHH HERE EHH HHO HHT EOE RE REE HEHE EE HHH TORE HES EHR ee H HHH HH DOH EH ov SESE SS HH REO EH EEE HEE Hs 999v 05099092 09999 9999909090292990909699992 5209 59090990909909992990092999090990904 9 9 92906929999 092 99 POH eee ema ete sete e RHE RH ER HSH ATES HEHE EHO SoH HH HEHEHE HEE HEH EHH ERE EE RE DOE R OED HE HEHEHE SESE HSH HEEEH ETOH HS s SHHH HS HHO HES HEHEHE SEH EHS HEHEHE HE SEER HSER EHH REESE HEE ESE EH SHED THEE EHEH EEE HOM EOEH EKER EEE OE EED ee 90990999 ee ee ee ee ee ee ee ee ee ee a ee 2 ed SHH SHEE ERO DEE HERE SE EHEEER ERS EHEE HEH ORES EHTS ERE ECS EHH HESEHSES ERE RTE RES H HH DREHOH ES SEETHER SH HERE HEE SHEESH EH EHSH CEES EEEE SOSH HEHEHE OE EH SHEETS EHES EEE EES EOE HE HOSES H ESET SEHE EEE HEEH HRS HEFEREREED SCH FH SHHHH SH SESE EHH SH HH SHEESH HHHHESHESEHRHH SETHE SEHEHE SEE DHOOCES SHEESH TEETH SHH HSH OH TS COREE SEHHEHR SESH ASS Ee 0969980 9009600 092906 690609900909000000902002292000929 00902029209000990998900 90 909000002999923059900929092929299 02 e LU 1 QUE RN NU NR POLARIS e e Tm PUR UNTRAS WOO I EE 0 P 9 879 194740 0 0 86 4 070 019 B 9 EROS 90 0 R b 9 9 0 6 2 09 58 6 50 6S 99 0 96 9 0 4 00 0 0 9 9 0 VO Go ca EEE e 076 4 9 EE eb WAAT ET erctetotbce te tetteveeeveeseetot t 0000 090 0 5990 0240900909590095090008009999000940 0590 4990090099990009090090090 020090900090929099 pettott tete e0 000
63. ur comments Address correspondence to Don Hartley EE Rt A Box 168D Yellville ET eoo ue Sincerely 9 699 SETH HEHEHE SORE ER RHE KR He He EEE OREM EH He 906999 Hee HHH EHH E SESE EEE EE HOES EHH EES ESSE ESE RHEL HE THEHS ESE ODES HEHE SESE DETERS EEEE SESE EHO EHH OH Es SHE ne COMES 09999 9 o5299090 09909095092999G682 599090999292999 WAASER eee EHH Ee HH ERE EE EEE REESE RETESET EEE ERE EEE HH ESOS EEE SE ERE SSE SE ETERS ER SH HEERHE EHS EEE HEE e ee CHORD OH t 9 9924 009 60922Q960229999 209279990694v SHOR ROH ee EOE RHR E THEE HH HEHEHE EHH OHHH SHEE E SEH eBEEHH HEH SOHO SHEO EES EHH EEE DOSE EERE HES SESH ESE egen EESEEHF OSE HESE SES EES SEE TEESE ES SHEE EHOHEEHHOE REE ETE Eee 9094099 es enee HEHEHE SOES OSE EO ETO RE SEH EE LEDS HEROS Dear VIPER I have found PIPS FOR VIPS volume 2 puzzling I am interested in using the revised Editor program for an ASCII keyboard Does the PIPS FOR VIPS tape contain the edit program Also I found it helpful as a precaution to break the tabs on the back of cassettes This prevents recording anything over the programs Marvin J Bleiberg Dear Marvin The editor you mention is included on volume 1 of the PIPS series However any text editor could be used to prepare source code for Volume II s CHIP 8 Assembler The code must follow the format explained in the book Thanks for the tip on the cassettes This is very important especially when using the assem
64. ure and ten more issues packed with VIP information games programs and a little more of our usual craziness I m looking forward to it Hope you are too At about the same time I expect Hayden Book Company to be bringing out my COSMAC 1802 programming manual Rather than spill the beans before they were in the pot I decided to delay any word about the project until I was sure it would be published Naturally I wanted all of you to be the first to know It s a book for those who want to learn machine language programming but don t know where to start plus it s a complete manual on 1802 programming concepts and features There s a small subroutine library and a mini 1802 assembler disassembler with which by the way I wrote and tested most of the code in PIPS FOR VIPS IV Enough proud father boasting I ll let you know more as soon as they tell me Some expected additions for the next volume of VIPER include arrows brackets and greater than less than symbols for the typewriter ncribbling these in by hand is such a chore I sent off for the extra keys a few weeks ago This may seem to be a trivial point but if I forget to fill in a less than symbol by hand the result makes no sense Plus the type will look better While I m on the subject we all owe thanks to my wife Anne for typing every word in these pages She s one of those behind the scenes people who deserve some recognition once and a while Also Sandy in ARESCO s offices i

Download Pdf Manuals

image

Related Search

Related Contents

Bahreïn  バランスボードパンフレット  Russell Hobbs 18680 iron  Belkin 7" Laptop Neoprene Sleeve, black  Toastmaster 1739 User's Manual  1495457_omote  詳しくはこちらの資料を必ずご覧ください。  取扱説明書 - My Yupiteru  HTC Wildfire Grey  Rugged Panel PC AcuPanel 17v2 User Manual  

Copyright © All rights reserved.
Failed to retrieve file