Home

September 1981

image

Contents

1. 5 9 gt y xo DO q a5 das Le Fa 0 m gt lu olun xun ua qo ao atu x ul Q muzd x ra 3 D gt mt jie ow ae om o s E ubed c F 0 e meme z r z O FOMOH OO Orania D 2 2 22 m OOGoOOGQOuOoOoO iu D Q y p Z 0 0 0 0 02 0 ed er hr Br 49 2 62 9 2 63 cere HEEE 0 gt gt gt gt v sr s a 5 If you want millions to know what you re doing buy a page in Byte However if you need help designing a commercial product can provide help on a consulting basis need to find a source of e want to sell that new BB peripheral we ve all been waiting for Well then how about an ad in Micro C Space Ads People laugh when we tell them what our space rates are They stop laughing when they realize that a 1 3 page ad costs about as much asa sack of groce ries If you are interested in one of our grocery ads or in something larger or smaller call or write We ll send a rate card and com plete details The advertising deadline is October 15 for issue no 3 and December 15 for issue no 4 Want Ads For a modest 20 cents per word you could become famous on a budget Please include payment with ad Where else could you say WORLD S GREATEST PROGRAMMER 503 645 3253 for only 80 cents So write it d
2. 39 00 44 00 A simple ut full function screen text editor plus a text format ter all written in Small C by Edward Ream This package in cludes the editor and formatter COM files setup for the Big Board Small C itself and source code for all With the docu mentation this is over 400K on a flippy disk Edward is selling this package for 50 you can buy it from us for 39 and Ed gets aroyalty Where else can you getan editor a formatter a C compiler and source for all for under 40 US CAN MEX Other Foreign FORTH IN ROM 65 00 70 00 in fast ROM 80 00 585 00 Now what you ve all been waiting for FORTH in ROM This is standard FIG FORTH in three 2716 s FIG FORTH is standalone FORTH so you don t use CP M at all If you have disks FIG FORTH handles the disk I O If not you can still enjoy a most fascinating language A simple FORTH line edi tor and a decompiler are available on disk FORTH editor amp decompiler disk 15 00 20 00 TINY BASIC IN ROM 35 00 40 00 This two ROM set takes control of the system just like FORTH does handling its own I O loading Basic programs and object code routines on and off the disk or out of the third ROM This little Basic is great for controller and utility applications MORE ROMS Fast monitor ROMs for speed freaks and our famous better than Texas character ROM for screen freaks Fast Monitor ROM 25 00 V
3. D 5 ESCAPE 5 STUFF 2 I BAKSPC ORSPC H ap ws sl eg D B DEFW DEFW DEFW DEFW DEFW DEFW DEFW EQU LD LD RET RET LD AND RET DEC RET LD AND EP RET INC RET LD LD AND ADD CP RET LD AND LD D we ae m r r 3 RETURN L CLRSCN ADD RET IN SET QUT RES QUT RET LD AND LD RET LD RETURN CLREOS CLREOL CLRSCN ESCAPE HOMEUP STUFF CTLTAB A 1 DE A DE A L 01111111B 2 HL A L 01111111B 79 NC HL DE 8 A L 01111000B A E 80 NC AL v 11111000B L A HL DE A BITDAT S A BITDAT A S A B TDAT A AL 10000000B L A HL CRTMEM QJ Micro Cornucopia Number 2 September 1981 IS CR CLEAR TO END QF SCREEN IS CLEAR TO END OF LINE IS CLEAR SCREEN IS ESCAPE IS HOME UP IS DISPLAY CONTROL CHARS 3 CTL M CTL O CTL X CTL t 3 CTL sCTL _ SET LEAD IN SEQUENCE STATE FOR XY CURSOR POSITIONING MODE SET LEAD IN SEQUENCE STATE sFOR CONTROL CHAR OUTPUT MODE CHECK FOR LEFT MARGIN sABORT IF IN LEFTMOST COLUMN BACK UP CURSOR POINTER CHECK FOR RIGHTMOST COLUNM 3DO NOTHING IF ALREADY THERE sELSE ADVANCE CURSOR POINTER TABS ARE EVERY 8 COLUMNS GET COLUMN COMPONENT OF PREVIOUS TAB POSITION EXIT IF NEXT TAB COLUMN WDULD s BE PAST THE RIGHT MARGIN ELSE INCREMENT THE CURSOR s POINTER FOR REAL TOGGLE BIT 5 OF SYSTEM PI
4. ES 110130 O1000C 3620 EDBO E1 SE17 3277FF D314 c9 ES 7D E67F 50 91 47 CD66F El Co EDOSF6 EB 3A77FF 4F 7D 17 7C 17 EsiF B9 2808 CD37F6 CD60F6 18EF E1 Co 1180FF 19 7C DO 2638 c9 118000 19 7C FESC DB 2630 CS 7D 17 7C 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 Cow a ae ae PUSH AND LD LD SUB LD CALL PDP RET CALL PUSH LD LD RLA RLA AND CP JR CALL CALL JR POP RET LD ADD LD CP RET LD RET LD RLA LD HL DE CRTMEM 1 BC 244128 HL FILL CRT MEMORY WITH SPACES HL PO NT TO HOME CURSOR POSITION A 23 BASE A MAKE BASE LINE BE 23 AND SCROLL A STORE IN SCROLL REGISTER HL SAVE CURSOR POINTER A L 01111111B GET COLUMN COMPONENT OF C A s CURSOR POINTER INTO C A 80 sCALCULATE HOW MANY CHARS s REMAIN ON CURRENT LINE B A ELR sCLEAR REST OF LINE 9 HL HL CLREOL CLEAR REMAINDER OF CURRENT ROW HL A BASE C sCOFY BASE SCREEN ROW TO C AJL o H ROWK amp COMPONENT OF HL INTO A 00011111B C SEE IF HL IS AT BOTTOM
5. 15 12 1 RFSH q gt B Din he ME Eek 74164 emmma HEAVY LINES INDICATE Qa Qa Gc Qp Ge Ge Q NEW CONNECTIONS 30 4l s e tol ul ial DOTTED LINES INDICATE kk CAS 3 OLD CONNECTIONS Muxc 3 4 MHz Modification Version 2 Jim said the ready to run version has BIOS shifted down 200H be cause they thought they needed room to store 256 bytes a double density sector in high memory Then the data could be moved into low memory in 128 byte chunks and accessed Jim isn t sure whether there is going to be a use for this space but he is concerned that we maintain consistancy According to Jim it s easy to make the EA00 BIOS into an E800 BIOS Original RES MSIZE 20 1024 New RES MSIZE 20 1024 200 Now reassemble the mess and you too can ORG at E800 By the way a pretty reliable way to tell which version you have is to look at the ID that s displayed when you boot CP M If it just says 60k CP M version 2 2 then you proba bly ORG at EA00 If the prompt in cludes the words BIG BOARD then you already ORG at E800 The separate BIOS and monitor etc disk Jim is shipping with orders now ORGs at E800 If you would like the latest version rather than reas sembling BIOS with the modifica tion above send Jim a disk and 3 00 for shipping 4 MHz Again This is an updated version of the 4 MHz mod printed in issue no 1 This version reportedly does not
6. DISK OPERATION RE TRY COUNT 1710 IOPTR DEFS 2 DISK I Q BUFFER POINTER 1711 1712 1713 1714 CRT OUTPUT DRIVER VARIABLES 1715 1716 CURSOR DEFS 2 s CURSOR POINTER 1717 CHRSAV DEFS 1 sCHAR OVERLAYED BY CURSOR 1718 CSRCHR DEFS 1 CHAR USED FOR A CURSOR 1719 BASE DEFS 1 CURRENT CONTENTS OF SCROLL REGISTER 1720 LEADIN DEFS 1 STATE OF LEAD IN SEQUENCE HANDLER 1721 1722 1725 NULL PAD COUNT FOR SERIAL OUTPUT DELAY 1724 1725 NULLS DEFS 1 OF NULLS SENT AFTER CONTROL CHARS 1726 1727 1728 LISTHEAD POINTER FOR DYNAMIC MEMORY ALLOCATION SCHEME 1729 1730 FREPTR DEFS 2 1731 1732 1733 CONSOLE MONITOR PROGRAM VARIABLES 1734 1735 PARAM1 DEES 2 STORAGE FOR NUMBERS READ 1736 PARAM2 DEFS 2 FROM LINE INPUT BUFFER 1737 PARAMS DEFS 2 BY PARAMS SUBROUTINE 1738 PARAMA DEFS 2 1739 ESCFLG DEFS 1 CONSOLE ESCAPE FLAG 1740 COFLAG DEFS 1 sCONSOLE OUTPUT TOGGLE 1741 LAST DEFS 2 sLAST ADDRESS USED RY MEMDMFP 1742 LINBUF DEFS 64 s CONSOLE LINE INFUT BUFFER 1743 1744 1745 1746 1747 END end MICRO CORNUCOPIA Journal of the Big Board Users Group 11740 NW WEST ROAD PORTLAND OREGON 97229 f SUBSCRIPTION FORM 4 It s OK to brag OI own a big board Hooray O I don t own a Big Board but am very interested There s hope How are you using the Big Board Home System O Business System O yuu working on Software Development
7. A SCROLL A HL A L 10000000B L A 80 HL HL CLR C SETROW DE HL HL DE HL 1 NZ M2TST CS NZ 2 DE 2 NZ M3TST A 3 DE A A BASE C 24 NC SETR2 24 EXTRACT ROW COMPONENT OF HL COPY ROW TO C FOR SCROLL TEST MOVE CURSOR TO NEXT ROW DOWN sTEST IF CURSOR ON BOTTOM ROW 0F SCREEN BEFORE MOVING DOWN EXIT IF NOT AT BOTTOM ELSE PREP TO SCROLL SCREEN UF FILL NEW BOTTOM LINE WTH SPACES GET ROW PART OF HL INTO A sSTORE NEW BASE LINES SCROLL UP NEW BLANK BOTTM LINE POINT HL TO 1ST COLUMN OF ROW STORE ASCII SPACES AT ADDR IN HL sAND INCREMENT HL REPEAT NUMBER OF TIMES IN R FAKE DUT CURSOR ADDR ROUTINE TO DO HOMEUP ALMOST FOR FREE sUNCONDITIONALLY RESET LEAD IN STATE TO ZERO BEFORE GOING ON SECOND CHAR OF SEQUENCE sABORT SEQUENCE IF NOT ei MAKE LEADIN 2 NEXT TIME MAKE LEADIN 3 NEXT TIME sARRIVE HERE ON THIRD CHAR s OF ESC ROW COL SEQUENCE VERIFY ROW BETWEEN O AND 23 CRTMEM SHR 7 MERGE IN MSB S OF CRT MEMORY H A LO H L 3 2 4 5 continued next page Micro Cornucopia Number 2 September 1981 PFM Monitor Listing continues F6A1 F682 F6A4 F6AG F A8 F AA FAC FAD FORO 20010 70010 50011 50012 30013 20086 0048 2001C 00 0 000 20004 200C9 70066 F6B1 F6B2 F B4 Fe6B5 F6B8 FABA FBE FORD FeBE Fe
8. AND RET LD RET CALL JR LD QUT IN AND RET CP JR CALL LD INC JR PUSH XOR CALL POF DEC JR RET PUSH IN SPSAVE SF SAVE USER STACK POINTER AND SP TMPSTK 32 3 SWITCH TO LOCAL STACK AF j SIOIN2 CLEAR BAD CHARACTER FROM SIO A 6 64 SIOXMT OUTPUT A CTL G AS A WARNING AF SP SPSAVE HL I 0 ROUTINES FOR SIO CHANEL B A 51 GET SIO STATUS REGISTER 00000001B 2 ACC O IF NO DATA AVAILABLE A 255 SIOST TEST CONSOLE STATUS Z SIOIN LOOP UNTIL DATA IS RECEIVED A 00110000B RESET STATUS BITS IN SIO FO SIOCPB A PARITY OVERRUN FRAMING ERRORS A 51 THEN GET THE INPUT CHARACTER O1111111B sTEST FOR CONTROL CHARACTERS NC SIOXMT JUMP IF PRINTABLE CHARACTER SIOXMT sELSE SEND CONTROL CHARACTER A NULLS AND THEN SEND NULLS AS PADDING a GET NULL PAD COUNT AND FIX SQ FAD1 THAT COUNT O SENDS NO NULLS AF A lt SIOXMT AF A NZ PAD QUTPUT A NULL TO THE 510 LODP SENDING NULLS TO SIO AF A GIOCPE F46D F470 F471 F474 F475 F476 F478 F479 F47C F47D F47E F47F F480 F483 F484 F485 F487 F489 F48B FABC F490 F493 F494 F495 F496 F497 F499 F490 F49D F49F F4A3 F4Ab F467 FAAB F4A9 F4AA F48D FAAF F463 F467 FABB FAB FABA F4EC F4BE ha l ka Micro Cornucopia Number 2 September 1981 2130FF 35 2132FF 7E 3c EGOF 77 2120FF 85 oF 7E c9 216C
9. 000 orders in hand the day they shipped the first 820 and they expect to recoup all their startup costs by the end of this calender year What a market for software and hardware developed around the Big Board I ll say more about the 820 as information comes in I d give my eye teeth to see a schematic and service manual for the 820 Picnic We had a Saturday noon picnic to celebrate our first issue It turned out that the Saturday we picked con flicted with every party birthday outing etc for three states around But Sandy and I and those who came had six hours of very interesting and mellow conver sation The knowledge resources and excitement among the local group members are terrific I only wish all of you could have joined us The First Issue Despite the speed of the U S Snail a number of readers have actually received issue no 1 The responses from these lucky folks have made the daily trip out to our mailbox most enjoyable The com ments have included surprised happy delighted Though Micro C is a long way from being a success financially feedback like this tells us that it is success fulin other ways We like doing it and we really appres ciate your response Sometimes a dream generates momentum of its own This one has f 2 fep Thanks David Thompson Editor amp Publisher Letters Dear Sir July came and July went by and my mailbox has completely rusted out d
10. A L FSD2 CDD8F3 0810 PUT2HS CALL PUT2HX F3D5 C302F4 811 JP SPACE 0812 0813 FSD8 ES 0814 PUT2HX PUSH AF FSD9 1F 0815 RRA FSDA 1F OB14 RRA FSDB 1F 0817 RRA FSDC 1F 0818 RRA F3DD 1 0819 CALL PUTNIE FZEO EI 0820 POP AF 1 E60F 0821 PUTNIE AND 00001111B Micro Cornucopia Number 2 September 1981 FSF1 F3F2 F3F3 4 F3F6 F3F7 F3FA F3FC F3FF F402 F404 F407 F40A FAOB FAOE FAOF F411 F412 F414 F415 F418 41 F41D F420 F422 F424 F427 F429 F42C F42F F430 c9 7E 23 FEO4 cs CDISF4 18F6 CDECFS ODOAQ4 SE20 C315F4 CDO9FO FS CDOCFO CDOCFO CDO6FO 280F CDO9FO FEOD 2805 CDO9FO 1803 3284FF SABAFF B7 Ca 0841 0842 0843 0844 0845 0846 0847 0848 0849 6850 oB51 852 8 3 0854 OBSS 0856 57 0858 0859 0860 881 0862 0863 0864 0865 0866 0867 OBAS 0869 0870 0871 0872 0873 0874 0875 0876 0877 0878 0879 OB8BO 0881 0882 0883 0884 0885 0886 0887 OBBB 0889 0890 OBF1 0892 0895 0894 0895 0876 0897 RET FMSG LD A HL INC HL EP EOT RET 2 CALL OUTPUT JR 5 CRLFS OUTPUTS A RETURN LINEFEED SPACE 370 THE CONSOLE DEVICE H CRLFS CALL PNEXT DEFB CR LF EOT SPACE LD A JP OUTPUT sECHO INPUTS ONE CHARACTER FROM THE CONSOLE DEVICE PRINTS IT ON THE CONSOLE OUTPUT AND sTHEN RETURNS IT IN REGISTER A WITH BIT 7 RESET 3 PRINTS THE CHARACTER IN R
11. I ADDRESS u ee I GCIDY o 0 25 222 35 7 21 1 O Renewal MICRO CORNUCOPIA 11740 N W West Rd Portland Oregon 97229 J aA am an Um Gm s emm GA m qm Q s mm q ow q G u re ORDER PRM r US CAN MEX Other Foreign USER S DISK 1 15 00 20 00 Over 200K of software especially for the Big Board Including 1 Two fast disk copiers 2 The manual for Small C 3 A Z80 assembler 4 Two disk formatters 5 Othello 6 A serial print routine 7 Modem software 8 Documentation for all the above See issue 3 page 15 for more information about the disk Also see Using Modem7 in the same issue for information about configuring the modem software USER S DISK 2 PA 15 00 20 00 Especially for folks with single drive systems and those who want to try their hand at extending an assembler Also a new CBIOS with parallel printer interface Returns to default drive on reboot stifles head banging supports CP M 2 2 and 1 4 Step by step instructions for the simple incorporation into your CP M using only DDT and SYSGEN CBIOS source also included Including 1 Two single disk copy programs both with source 2 The source of the Crowe Assembler 3 New Crowe com file with larger symbol table 4 New CBIOS for CP M 1 4 and 2 2 amp boot 5 Disk mapper with source 6 Documentation for all the above Screen Editor in Small C
12. O OEM Education O What kind of exciting adventure misadventure are EXPERTISE INTEREST Guru 5 Novice 0 Fanatic 5 None 0 I Software Systems L Software Applications L m E Languages 1 m j o g 3 m Hardvvare L LI Are you willing to be a resource in the areas where What are your hardware software needs now your expertise is 4 or 5 love to O probably O maybe In the near future no l Other What kinds of information do you need right now If you get the idea that this document is as interested in enlisting your aid and ideas as it is in getting a sub scription you re right Lots of people are willing to subscribe lots of people have ideas and we d like to encourage lots of people especially you to take an 1 hour or two and put ideas and needs and accomplish ments down on paper or disk Then we can pass them along to others and that s what this journal is all about Send me six issues 1 yr of MICRO CORNUCOPIA I understand that I can cancel at any time and receive a refund for the balance of the subscription Issue 1 was published in August 1981 U S Canada amp Mexico Other Foreign 1 16 00 1 20 00 U S funds O 26 00 U S funds 1 20 00 1st class mail C Back issues Specify 25 Back issues Specify 2550 Back issues Specify 2550 3 00 each U S funds 3 00 each U S funds 3 00 each I NAME _ PHONE 2 _ oo
13. ROW COL SEQUENCE sMAKE SURE COL BETWEEN amp 79 sMERGE IN COL WITH L DISPLAY THE CONTROL CHAR PASSED IN C x x x x x x sEQUATES FOR DISK CONTROLLER PORTS AND COMMAND CODES STATUS REGISTER COMMAND REGISTER TRACK REGISTER SECTOR REGISTER DATA REGISTER s READ COMMAND s WRITE COMMAND SEEK COMMAND 3FORCE INTR COMMAND s RESTORE COMMAND 3RD WRT HEAD LOAD ENABLE SUBROUTINE RETURN INSTR OPCODE 3 THE NON MASKABLE INTERRUPT IS sUSED FOR DATA SYNC BETWEEN THE 2 80 AND 1771 GET UNITA PASSED IN C AND s CHECK FOR MAXIMUM VALID sERROR IF NUMBER gt 3 sMAKE SURE DISKS ARE TURNED ON SAVE CURRENT DRIVE SELECT DATA MERSE IN NEW DRIVE UNIT IN C JIN PLACE OF THE CURRENT ONE TO SELECT THE NEW DISK DRIVE TEST NEW DRIVE S READY STATUS F71F F722 F723 F725 F726 F728 F72A F72D 72 750 F733 F736 F737 F738 F739 F73A F73C F73D F740 F741 F743 F746 F747 F749 F74C F74F F751 F754 F756 F759 F758 F75D F760 F762 F764 F765 F767 F76A F76D F76F F771 F772 F774 F777 F77A F77C F77F F780 F781 F782 F785 F786 F788 F789 F7BA F78D F78E F791 CDABF7 co CB77 ca 06A8 1806 CDABF7 co 0688 2271FF 216EFF 71 23 70 23 3602 F3 214600 56 sac 216BFF 46 OE13 2A71FF SAGEFF D312 CDAEF7 SA6FFF 2002 F604 CDASF7 CB6F 200D 76 EDA2 C264F7 CD9CF7 E69C 180B 76 EDAS C271F7 CD9CF7 E6BC 216600 72 FB C8
14. and load your HEX file into memory Typically this is done as follows gt A DDT NAME HEX This will load your program into memory at the desired location ex ample EA00H The program will not execute pom DDT will print out starting and ending addresses NEXT PC n FAxx FA00 4 Using DDT move the program from upper memory to 0100H MFA00 FAxx 0100 5 Transfer control back to PFM by typing G0 6 Save the program using the SAVE command SAVE1NAME COM You must save the program in 256 byte blocks Using 1 will save 256 bytes 2 would save 512 bytes etc 7 The program is now ready for execution as a COM file The above procedure may seem long and rather involved but after you have done it a few times you will find it very quick and simple 8 Micro Cornucopia Number 2 September 1981 55 Li LI z Am x o z mew q LU ont m z uu ID lt lt a gt r m ui asd 042 2 m 2 2 x I I x 2 Quo o o D ic CO aa o st e 2 III e 3 n Ll Li TAC u xu q lt I ooo a HO gt me D 4 DO Ow 222 2 arama 2 3 O C gt lt gt lt quaque m z Li ul LU Q tu rac D F J 9 Z ra me gt 02 ur 0 0 2 Qo itt z ee om om s om se L L WJ se D C qu NS 000 4 t Dr DD O C4 C4 C4 C4 CJ C4 C4 GN t b 5 t5 1 to t5 15 5 5 lt t m 0 O0 00 G CO 03
15. checks to see if an input character is availa ble If none is available the HL is set to zero If a character is available it is stored in HL before a return is executed In the demonstration program a returned character is echoed on the console If the character is C the demonstration stops Something New DataCast 345 Swett Road Woodside CA 94062 I just received issue no 1 of Data Cast and I m impressed very im pressed This is a bimonthly maga zine for major micro systems and telecommunications Major micro systems means CP M in a business or OEM environment and telecom munications means networking Jim Warren guiding force behind the West Coast Computer Faire is behind this magazine and I suspect it will be around for a long while Subscriptions are 18 per year 6 is sues He is starting with a staff of 19 if you include the mascot Sir Lick A Lot and it shows The first issue is Micro Cornucovia Number 2 September 1981 More Power Supplies By David Thompson I just received a catalog from ACDC Electronics and they list a power supply that should power the Big Board and a couple of drives Like the Power One you still have to fi nagle 12V but that isn t hard see _Issue no 1 Model ETV801 provides 5V at 9 amps 12V at 0 8 amps 24V at 4 5 amps peak Price is 132 list single They don t mention how they handle over current protection
16. re quire special ram Jim says he has 300ns 4116 working consistently us ing this mod The only difference be tween this one and the previous one is that the CAS and MUXC lines are each moved left one pin on U76 shift register so that they change states 50ns earlier This change means that the system meets the precharge requirements for the slower RAM 4 MHz Mod Version 2 I Cut the trace bottom of the board to U76 pin 4 2 Connect the cut trace MUXC to U76 pin 3 3 Cut the trace bottom of the board to U76 pin 5 4 Connect the cut trace CAS to U76 pin 4 5 Remove U96 6 Connect U97 pin 4 to U96 pin 4 7 Don t replace U96 continued next page Micro Cornucopia Number 2 September 1981 CP M patch for serial printer port This CP M modification redirects the list device output to serial port B The default data rate is 300 baud This patch does not force the Big Board to poll any of the handshake lines on port B Thus it has no way of knowing if the printer buffer is full May or may not be a problem This modification is for those who ORG at E800 Enter the characters inside the quotation marks lt CR gt carriage return The patch 1 Power up the Big Board BB 2 Place a CP M disk with SYSGEN onit in drive A 3 Boot CP M 4 Enter SYSGEN lt CR gt Displays SYSGEN VER 2 0 Displays SOURCE DRIVE NAME 5 Enter A Displays SOURCE ON A THEN T
17. viewers We would very much like to review your Big Board compatible products for Micro C Please send material to Review Editor Micro Cornucopia WRITER S GUIDELINES All items should be typed double spaced on white paper or better yet on disk Your disk will be returned promptly Payment is in contribu tor s copies LETTERS TO THE EDITOR Please sound off CP M is a trademark of Digital Research Inc Copyright 1981 by Micro Cornucopia All rights reserved MICRO CORNUCOPIA Sept 1981 The Journal of the Big Board Users No 2 p SC 1292 2 There once was a Big Board so brisk It could eat all the bits off a disk It chewed up the bits then spit out the pits which made feeding it software a risk Here We Go Again Exclusive What happens when a Xerox copies a Big Board Why you get a Worm of course That s right The Xerox 820 is just a Big Board in disguise My informed sources say that last fall Xerox bought non exclusive rights to manufacture a system based on the Big Board Xerox re laid out the board 4 layers so that it would fit in the cabinet they dedicated the SIO port B as a printer port and they set up the disk interface 1771 to handle either 5 or 8 inch Otherwise it appears to be all Big Board right down to the 2 5 MHz clock The system PIO does the same things on both systems bit for bit according to Xerox s docu mentation Xerox had 50
18. 1 u LL u Li LL LL iL LL i L aba Uu sA COUNT OF NUMBERS ENTERED sRETURN IF IT OVERFLOWS 16 BITS APPEND NEW LOW ORDER DIGIT JAND GET RESULT BACK INTO DE GET A CHAR FROM LINE INPUT s BUFFER 9 IY AND BUMP IY CONVERT ASCII TO NUMERIC 39 CB3F 0762 SRL A F39D 3C 0763 INC 3 C9 0764 RET 0765 0766 GETHEX CONVERTS ASCII TO BINARY AND DOES 0767 HIGH LIMIT CHECKS TO LESS THAN 17 BITS 0768 CARRY SET ON ILLEGAL CONVERSION RESULT 0769 TERMINATING CHARACTER RETURNS IN A 0770 HL RETURNS WITH 16 B T BINARY INTEGER O771 3 F39F 210000 0772 GETHEX LD HL F3A2 1908 0773 JR NUM3 5 0774 F3A4 0604 0775 GNUMi LD 4 F3A6 29 0776 GNUM2 ADD HL HL MULTIPLY RESULT BY 16 F3A7 0777 RET FSAB 10FC 0778 DJNZ BNUM2 5 FSAA SE 0779 LD E A 1600 0780 LD DO FSAD 19 0781 ADD HL DE FSAE DB 0782 RET c RETURN IF OVERFLOW FSAF FD7EOO 0783 GNUM3 LD A 1Y40 2 2 FD23 0784 INC IY F3B4 AF 0785 LD c FSBS CDBDFS 0786 CALL ASCHEX F3B JOEA 0787 JR NC GNUM1 FSBA 79 0788 LD A C FSBB B7 0789 OR A F3BC C9 0790 RET O791 0792 3 FSBD D630 0795 ASCHEX SUB 0 FSBF D8 0794 c FSCO FEOA 0795 CF 10 3 3F 0796 CCF F3C3 DO 0797 RET NC F3C4 D607 0798 SUB 7 F3C6 FEOA 0799 CP 10 F3C D8 0800 RET 3 9 FE10 0801 16 FSCB SF 0802 CCF FSCC C9 8 3 RET 0804 0805 OBOA FSCD 7C 0807 PUTAHS LD A H CDD8F3 ogos CALL PUT2HX 301 70 0809 LD
19. 1135 1136 1137 1138 1139 1140 1141 1142 1145 1144 1145 1146 1147 1148 1149 1150 AND JR POF OUT RET 000001008 Z S10X1 AF SIODPB A s OUTPUT DATA TO 510 TEST TBE STATUS BIT INCLUDE CRTOUT ASM 2 4 4 1 4 RARER ERK ERE 7 1 1 oc c 4 1 1 1 1 7 A 4 k LU Russell Smith kxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkikkkkkkkkkkkkkkkk 5 CRTBAS CRT TOP s EQU EQU H CRTOUT PUSH PUSH PUSH RES LD DI LD LD IN SET OUT LD LD LD LD AND OR LD LD CALL at ae LD LD CP SET JR LD CRT2 LD LD LD IN 3 CRT OUTPUT DRIVER x 18 August 1980 x x x CRTMEM SHR 8 START PAGES OF SK CRT SPACE 5072 5 END PAGE OF CRT SPACE HL DE BC 7 4 C A e KEEP WOLVES AWAY FOR A WHILE SPSAVE SP SP TMPSTK 32 POINT SP TO TOP LOCAL STACK A BITDAT 7 A BITDAT A sSELECT ROM CRT MEMORY BANK FIRST REMOVE THE OLD CURSOR CHARACTER FROM THE SCREEN HL CHRSAV B HL HL CURSOR sLOAD HL WITH CURSOR POINTER AH GET CHAR OVERLAYED BY CURSOR 00001111B INSURANCE THAT HL CAN T CRTBAS EVER POINT OUTSIDE CRT MEMORY HL RMV CURSOR BY RESTORING CHAR PROCESS CHARACTER PASSED IN C QUTCH NOW STORE A NEW CURSOR CHARACTER AT THE CURSOR LOCATION A HL GET CHAR AT NEW CURSOR LOCA
20. 2170FF 55 2002 B7 c9 216DFF 4E CDFBF6 1829 1524 1525 1526 1527 1528 1529 1550 1551 1532 1535 1554 1555 1556 1557 1558 1559 1540 1541 1542 1545 1544 1545 1546 1547 1548 1549 1550 1551 1552 1555 1554 1555 1556 1557 1558 1559 1560 1561 1562 1565 1564 1565 1566 1567 1568 1569 1570 1571 1572 1575 1574 1575 1576 1577 1578 1579 1580 1581 1582 1585 1584 1585 1586 1587 WRITE READ RDWRT RWis RW2 RLOOP WLOOP RUS 4 CALL RET BIT RET LD JR CALL RET DEC JR OR RET LD LD CALL JR READY NZ 6 0 NZ B WRTCMD RDWRT READY NZ RDCMD IOPTR HL HL SECTOR HL C HL HL B HL HL 2 NMIVEC D HL HL RET HL RECLEN B HL C DATREG HL IOPTR A SECTOR SECREG A FORCE S A l A NZ RW2 HLOAD CMDOUT S A NZ WLOOP NZ RLOOP BUSY 10011100B RW3 NZ WLOOP BUSY 10111100B HL NMIVEC HL D 2 HL RETRY HL NZ RW4 A HL TRACK C HL SEEK RW1 sCLEAR THE DISK CONTROLLER EXIT IF DRIVE NOT READY EXIT IF DISK WRITE PROTECTED sCLEAR DISK CONTROLLER EXIT IF DRIVE NOT READY sSTORE DISK 1 0 DATA POINTER sSTORE SECTOR FOR READ WRITE sSAVE READ WRITE COMMAND BYTE sSET DISK RE TRY COUNT ND INTERRUPTS DURING DISK I O sSAVE BYTE AT NMI VECTOR LOCAT sIN D FOR DURATION OF READ WRIT LOOP AND REPLACE IT WITH A RET 3 B NUM
21. 4 d 200 990 SESS dA ilmi September 1981 TABLE OF CONTENTS Supporting ENEE 2 Parallel Print Driver amp Listing 3 Disk Drive Motor Conttol i deseo Eos esee RE RM eA 5 Jumpering the Wild Shugart 6 More Power Supplies RACK Desde 7 Direct Input Routine amp Listing eo xe ayna TIPPS 7 Program SECH Above PFM amp Listing 8 A De so REGULAR FEATURES GE Editorial es z a S BE EE 2 Z Notes from Garland 4 Something Nevv 7 Nm N HNINLINNMILI MICRO CORNUCOPIA 11740 N W West Road Portland Oregon 97229 503 645 3253 Editor amp Publisher David J Thompson Technical Editor Ruth Fredine Burt Graphic Design Sandra Thompson Typography Patti Morris amp Martin White Irish Setter Cover Illustration Gerald Torrey MICRO CORNUCOPIA is pub lished six times a year by Micro Cor nucopia of Oregon 11740 N W West Road Portland Oregon 97229 SUBSCRIPTION RATES 1 yr 6 issues 1 yr Canada 1 yr other foreign 12 00 15 00 20 00 All subscription orders payable in United States funds only please ADVERTISING RATES Available on request CHANGE OF ADDRESS Please send old label and new address SOFTWARE HARDWARE AND BOOK VENDORS Micro Cornu copia is establishing a group of re
22. 44 0945 0946 0947 0948 0949 0950 0951 0952 0955 0954 0955 kkkkkkkkkkkkkkkkkkikkkkkkkkkkkkkkkkkXkkkkkkkkkkkkkkkkkkkkk sk x x INTERRUPT SERVICE ROUTINES FOR KEYBOARD x INPUT AND REAL TIME CLOCK FUNCTIONS x k 3 Aug 80 x D x esses se F FFF FSF OAA OA 5593505553536 K BDST wa lt BDIN U ap a ep as TASH STASH2 STASH3 LD OR RET RET CALL PUSH CALL POP RET LD CP INC RET A FIFCNT GET INPUT FIFO BYTECOUNT a TEST IF EQUAL ZERO z sEXIT WITH A O IF QUEUE EMPTY A 255 sELSE A 255 INDICATES DATA RDY KBDST Z KBDIN LOOP UNTIL KEYBOARD INPUT RDY HL REMOVE sGET CHARACTER FROM INFUT QUEUE HL HL LOCK POINT TO SHIFT LOCK VARIABLES HL TEST IF A SHIFT LOCK CHARACTER HL 3 THEN POINT TO LOCK FLAG NZ STASH2 JUMP IF NOT SHIFT CHARACTER HL ELSE COMPLIMENT THE SHIFT LOCK sAND EXIT NOW O HL TEST THE SHIFT LOCK FLAG Z STASH3 JUMP IF SHIFT LOCK NOT SET 40H ELSE CHECK FOR SHIFTABLE CHAR C STASHS AND JUMP IF NOT OR GREATER 7FH THAN r AND LESS THAN RUBOUT NC STASHS 00100000B ELSE TOGGLE BIT 5 OF THE CHAR C A HL FIFCNT BUMP INPUT FIFO CHAR COUNT A HL A 16 NC EXIT NOW IF FIFO IS FULL HL A 15 INCREMENT FIFO COUNT HL FIFIN POINT HL TO FIFO INPUT OFFSET INDEX HL C STORE CHARACTER IN FIFO 3 HL FAC1 FACA 4 5 4 7 F4C8 F4Cc FACH FA
23. 473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 4507 4508 1509 1510 1511 1512 1513 1514 1515 1516 1917 4 48 1519 1520 1521 1522 1523 SEL2 SEL3 Tae we ag RESTOR EEK JR LD OUT LD RET LD LD LD CF INC ADD LD IN LD LD LD ADD LD LD CP JR OUT XOR RET CALL RET XOR LD LD CALL XOR AND RET CALL RET LD CP RET LD QUT LD CALL AND RET CALL RET LD OUT LD CALL AND RET Z SEL2 A B BITDAT A JAND CONTINUE IF ITS READY ELSE PUT BACK OLD DRIVE SELECT A 10000000B AND RETURN DRIVE NOT READY HL UNIT A HL HL C 255 2 SEL3 HL AL L A A TRKREG HL A HL TRKTAB AL A C L A A HL 255 Z HOME TRKREG A A READY NZ A TRACK A B RSTCMD STEP 00000100B 10011100B TRACK A DATREG A B SKCMD STEP 10011000B 2 RESTOR NZ A C DATREG A B SKCMD STEP 42001 1000 Micro Cornucopia Number 2 September 1981 POINT HL TO DRIVE SELECT DATA sLOAD A WITH CURRENT UNITS SOND STORE NEW UNIT FROM C TEST IF NO DRIVE SELECTED YET amp SKIP NEXT SEGMENT IF SO PD NT TO HEAD POSITION TABLE JAND ADD IN NEW UNIT AS INDEX sGET CURRENT HEAD POSITION sAND STORE IN TABLE 3 HL INDEX INTO TABLE TO GET sHEAD POSITION OF NEW DRI
24. 6 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 5 B C P R F T T T W W ae oss we as ae e TEP USY MDOUT AUSE EADY ORCE URNON URN2 URNS URN4 AIT AIT2 OMEND LD AND OR CALL BIT JR RET QUT CALL EX RET CALL LD CALL IN BIT RET DEFW ORG A SPEED 60000011B B CMDOUT A STSREG QA s NZ CMDREG PAUSE SP HL SP HL TURNON A FINCMD CMDOUT A STSREG 7 A A 30 MOTOR A PAUSE A BITDAT 2 7 10111011B BITDAT A BC B O WAIT 2 TURN3 TURN2 B 9 WAIT TURN4 BC A CTC3 C A A CTC3 C Z WAIT2 FORCE o RAM INCLUDE MEMORY ASM GET STEP SPEED VARIABLE MERGE WTH SEEK HOME COMND IN E QUTPUT COMMAND AND DELAY sTEST BUSY BIT FROM s 1771 AND LOOP TILL O 0UTPUT A COMMAND TO THE 1771 sWASTE 44 MICROSECONDS KEEP THOSE DISKS SPINING FOLKS sISSUE FORCE INTERRUPT COMMAND sREAD STATUS REGISTER CONTENTS TEST DRIVE NOT READY BIT RE LOAD MOTOR TURN OFF TIMER TEST IF MOTORS HAVE STOPPED AND EXIT IF STILL TURNED ON ELSE RE ENABLE DRIVE SELECTS AND ACTIVATE THE MOTO
25. CF F4D3 F4D6 F4D7 F4DA F4DC FADF F4E0 F4E4 FAEB F4E7 F4E8 F4EA FAEC F4ED F4EF F4FO FAFS RAFB F4F7 F4F9 FAFE FAFD FAFE 500 502 505 F508 F509 FSOB F50C 500 510 F511 F512 F514 F515 F316 CDE7F4 Fi e Di ED7B35FF FB EDAD ED7335FF 3157FF FS CDFSF4 SEO7 15 F1 ED7BSSFF FB EDAD E CDE8F4 28FB 50 D307 DBOS Es7F c9 FE20 3013 CDISFS Sa79FF SC 1806 FS AF CDISFS F1 3D 20F7 9 FS DRO7 1021 1022 1023 1024 1028 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1960 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 DSPTCH ep cas sARRIVE HERE IF RECEIVE INTERRUPT FROM FRAMING CALL POP PDP PDP PDP LD EI RETI AF CALLHL CALL SUBROUTINE ADDRESSED BY H BC DE HL SP SPSAVE RE ENABLE INTERRUPTS amp RETURN RX ERROR INTERRUPT SERVICE ROUTINE FOR SIO OVERRUN SAND PARITY ERRORS PARITY CAN BE DISABLED H SIOERR ALLHL POLLED as ag we as as Clan a SIOST SIOIN SIOIN2 U we a IOOUT PAD PADI 3 SIOXMT 510 1 LD LD PUSH CALL LD CALL POF LD EI RETI JP MODE IN
26. Co 79 D620 D 50 SOFC C650 BS F c9 CD72F5 c9 79 FEO4 D CDBSF7 DB1C 47 E6F8 Bi D31C CDAEF7 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 SETCOL SETC2 M4TST ar 3x k sx 3x x k D H D H 3 STSREG CMDREG TRKREG SECREG DATREG H RDCMD WRTCMD SKCMD FINCMD RSTCMD HLOAD 5 RET NMIVEC 8 s SELECT LD SUB SUB JR ADD OR LD RET CALL RET A C 3 go NC SETC2 A B L LA DISPLA INCLUDE DISKIO ASM XXXXkkkkkkkkkkkkkkkkkkkkkkXkkkkkkkkkkkikkkkkkkkkkkkkkkkkkk DISK INPUT OUTPUT DRIVER SUBROUTINE PACKAGE FOR WESTERN DIGITAL 1771 DISK CONTROLLER bullet proof error recovery added 12 APR 80 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU LD CP RET CALL LD AND OR OUT CALL eto X 222252529255 25555 5555555559923 14 95955 555359508 8 WD1771 0 WD1771 0 WD1771 1 WD1771 2 WD1771 3 10001000B 10101000B 00011100B 11010000R 00001100B 00000100B OC9H QO66H C 4 NC TURNON A BITDAT B A 11111000B BITDAT A FORCE sARRIVE HERE ON FOURTH CHAR QF ESC
27. EGISTER A ON THE CONSOLE OUTPUT DEVICE AND THEN DOES A CHECK FOR CONSOLE INFUT TO FREEZE OR ABORT OUTPUT ECHO CALL CONIN INPUT A CHARACTER AND ECHO IT PUSH AF CALL CONOUT POF AF cP 2 ai RET C SUB 32 CONVERT UPPER CASE TO LOWER RET OUTPUT CALL CONOUT CALL CONST 5 IF CONSOLE INPUT PENDING JR Z 0UTP2 CALL CONIN CP CR SEE IF CR WAS TYPED JR 2 DUTF1 5 CALL CONIN WAIT FOR ANOTHER INPUT CHAR JR QUTP2 THEN RET TO CALLING ROUTINE OUTPi LD ESEFLG A SET ESC FLAG TO NON ZERO VALUE DUTF2 LD A ESCFLG OR A RETURN CURRENT STATUS OF ESC RET s FLAG TO CALLING ROUTINE AS ee INCLUDE INTSRV ASM continued next page Micro Cornucopia Number 2 September 1981 PFM Monitor Listing continued F431 F434 F435 F436 F438 F439 42 F43E FASF F442 F443 F444 F447 F448 F449 F446 F44C F44D FAAF FAS1 F453 F455 F457 F459 F458 F45C FASF F460 F461 F463 F444 F465 F468 FA46R F46C R7 ca SEFF c9 CDS1F4 ZBFE ES CD6DF4 E1 t9 2133FF BE 23 2002 34 C9 CE46 280A FE40 3806 FETF 3002 EE20 4F 2130FF TE SC FE10 DO 77 2151FF CD74F4 71 Co 0898 0899 0900 0901 0902 0905 0904 0906 0907 0908 0909 0910 0911 0912 0913 0914 0915 0916 0917 0918 0919 0920 0921 0922 0925 0924 0925 0926 0927 0928 0929 0930 0951 0952 0955 0954 0935 0956 0937 0928 0939 0940 0941 0942 0943 09
28. FF 35 DBiC F644 D31C Ce ED7ZSSSFF S157FF ES DS cs FS 1 2F ZAS FF 1822 ED7335FF SLS7FF ES DS CS FS 2A57FF 1812 ED7335FF S157FF ES DS cs FS DROS ES7F ZASBFF 0957 0958 0959 9960 81 0962 0963 0964 0965 0966 0967 0968 0969 0970 0971 0972 0973 0974 0975 0976 0977 0978 0979 0980 0981 0982 0983 0984 0985 0986 987 0988 0989 0990 0991 0992 0995 0994 0995 0996 0997 0998 0999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 REMOVE LD I DEC LD INDEX LD INC AND LD D 3 H a 3 DSKTMR LD DEC RET IN OR OUT RET 5 i KEYSRV LD LD PUSH PUSH PUSH PUSH IN CPL LD JR sl ws cas x IMER LD LD PUSH PUSH PUSH PUSH LD JR HL FIFCNT HL HL FIFOUT A HL 000011118 HL A 3 HL FIFO a L L A A HL HL TO FIFO OUTPUT OFFSET s INCREMENT FIFO POINTER MODULO 16 AND REPLACE INDEX INTO FIFO BY OFFSET IN A SOFTWARE DISK MOTOR TURN OFF TIMER ROUTINE 3DECREMENT DISK TURN OFF TIMER HL MOTOR HL NZ EXIT IF NOT TIMED OUT YET A BITDAT 01000100B DISABLE ALL DRIVE SELECTS AND BITDAT A TURN OFF THE SPINDLE MOTORS INTERRUPT SERVICE ROUTINE FOR PARALLEL KEYBOARD SPSAVE SP SAVE USR STACK POINT AND SP TMPSTK 32 SWITCH TO LOCAL STACK AF sSAVE MACHINE S
29. LD LD CALL POF RET PUSH RET DEER DEFER DEFE DEFE DEFER DEFB DEFB DEFE DEFE DEFE DEFE DEFR DEFB DEFW DEFW DEFW DEFW DEFW DEFW 7 4 SWITCH BACK LOWER 14K OF RAM BITDAT A INTERRUPTS ARE SAFE AGAIN BC DE HL DE LEADIN A DE A NZ MULTI 3JUMP IF IN A LEAD IN SEQUENCE A C ELSE PROCESS CHARACTER IN C GET LEAD IN SEQUENCE STATE C CONTRL JUMP IF A CONTROL CHARACTER HL C sELSE STORE DISPLAYABLE CHAR HL AND ADV POINTER TO NEXT COLUMN A L 01111111B EXTRACT COLUMN FROM HL 8o I sEXIT IF NOT PAST COLUMN 79 RETURN sELSE DO AUTOMATIC lt CR gt LFEED AND LINEFEED HL HL CTLTAR SEARCH FOR CONTROL CHARACTER BC CTLSIZ S HANDLINSG SUBROUTINE IN TABLE SEARCH HL NZ sEXIT IF NOT IMPLEMENTED BC SNEAKY JUMF TO PRESERVE REGISTERS c 7 64 2 64 gt X 64 0 64 M 64 L 64 64 64 517 64 H 64 57 64 BELL CTL G IS THE BELL BAKSPC sCTL H 15 CURSOR LEFT TAB CTL I IS TAB LFEED sCTL J 15 CURSOR DOWN UFCSR CTL K IS CURSOR UP sSCTL L IS CURSOR RIGHT FORSFC FSEF FSFS FSFS FSF8 FSFA FSFB FSFD F600 F602 F603 F604 F605 F607 F608 FOR F6OF F610 F il F614 F615 F618 F619 F61B F51C F61D F 1F 8 F620 F622 F625 F628 F32A 62 F620 F62F F430 F631 F633 F634 F636 F637 FAZA F SB F SE F 3F F641 F642 F643 F644
30. NVEC DEFS 4 3SPACE FOR 2 VECTORS FOR GENERAL PIO 5 KEYBOARD DATA INPUT FIFO VARIABLES FIFO DEFS 16 CONSOLE INPUT FIFO FIFCNT DEFS 1 FIFO DATA COUNTER FIFIN DEFS 1 sFIFI INFUT POINTER FIFOUT DEFS 1 FIFO OUTPUT POINTER LOCK DEFS 2 SHIFT LOCK CHAR FLAG BYTE H STACK POINTER SAVE AND LOCAL STACK FOR INTERRUPT ROUTINES SPSAVE DEFS 2 USER STACK POINTER SAVE AREA TMPSTK DEFS 32 3LOCAL STACK FOR INTERRUPTS SOFTUARE VECTORS FOR INTERRUPT SERVICE ROUTINES TIKVEC DEFS 2 31 SEC INTERRUPT ROUTINE VECTOR PINVEC DEFS 2 sPARALLEL CONSOLE INPUT VECTOR SINVEC DEFS 2 SERIAL CONSOLE INFUT VECTOR sCLOCK TIMER INTERRUPT VARIABLES TIKCNT DEFS 2 sBINARY CLOCK TICK COUNTER DAY DEFS 1 CALENDAR DAY MONTH DEFS i MONTH YEAR DEFS 1 YEAR HRS DEFS i CLOCK HOURS REGISTER MINS DEFS 1 3 MINUTES RETISTER SECS DEFS 1 SECONDS REGISTER 3 DISK I O DRIVER VARIABLES UNIT DEFS 1 CURRENTLY SELECTED DISK TRKTAB DEFS 4 4 DRIVE HEAD POSITION TABLE SPEED DEFS 1 SEEK SPEED FOR 1771 COMMANDS RECLEN DEFS 1 SECTOR RECORD LENGTH VARIABLE MOTOR DEFS 1 DRIVE MOTOR TURN OFF TIMER TRACK DEFS 1 SECTOR DEFS 1 FFAF gt FF70 FF71 2FF73 FF7S gt FF76 gt FF77 7 gt FF79 FF7A FF7C gt FF7E gt FF80 82 2FF84 gt FF85 FF86 FF88 ERRORS 0000 COMMAND BYTE FOR READS WRITES 1708 CMDTYP DEFS 1 1709 RETRY DEFS 1
31. O TO TRIGGER BELL HARDWARE TO SQUND MOVE CURSOR POINTER BACK s TO START DF LINE continued on top of page 12 Fe45 F646 F648 F649 FAC F64F F50 F65i F652 F655 F6S6 F657 F659 FoSC FasE F SF F660 1 F663 F664 F466 s F668 F469 F66B F66E F670 F 71 F673 F674 F676 F678 F679 F678 F67C F67E F67F F 80 F682 F664 F686 F687 FABA F68F F691 F693 F695 F696 F698 F69a F69C 690 F69F 17 E61F 4F CD37F6 SA77FF B9 Co ES CD60F6 29 7C E61F 3277FF D314 Ei C 7D E680 GE 0650 3620 23 10FB c9 OE20 1817 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1256 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1598 1399 1400 1401 LRL IN CLR HOMEUF MULTI SETXY M2TST SETROW SETR2 M3TST RLA AND LD CALL LD CP RET PUSH CALL ADD LD AND LD OUT POP RET LD AND LD LD INC DJNZ RET LD JR EX LD EX CF JR LD CP RET LD RET CP LD LD LD ADD SUB SUB JR ADD OR LD LD SRL RR RET JR 00011111B C A DNCSR A BASE C NZ HL CLRLIN HL HL AH 00011111B BASE
32. R RELAY SET READY LOOP MAX TIMEDUT WAIT 1 93 SECOND amp TEST READY EXIT LOOP IF DRIVE READY ELGE TRY AGAIN UP TO 256 TIMES sGIVE ABT 1 10 SEC MORE DELAY 6ET CURRENT CTC3 COUNT VALUE 5 IF CTCS CHANGED BY 1 COUNT 6ND LOOP UNTIL IT CHANGES THEN TEST DRIVE READY STATUS TAIL OF FREE MEM LINKED LIST continued next page el o 2FFOO FFOO 5FF10 gt FF18 5 FF1C 2FF20 FF30 gt FF31 FFS2 FFSS 2FFS3S gt FF37 gt FF57 2FFS59 2FFSB 2FFSD FFSF gt FF6O gt FF 1 gt FF62 gt FF63 gt FF64 gt FF 5 FF66 gt FF gt FFOR gt FF C gt FF D FF6E Micro Cornucopia Number 2 September 1981 P FM Monitor Listing continued 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 XXXKXXXXXXXXKXKXXXXXXXKXXXXXXXXXXXXXXXXXKXXXXXXXXXXXXXXXXKX 3 x k STORAGE ALLOCATION FOR 256 BYTE SCRATCH RAM x 3 kkkkkkkkkkkikkkkkkkkkkkkkkkkkkikkkkkkkXkkkkkkkkkkkkkkkkkkk H VECTAB EQU INTERRUPT VECTOR TABLE STARTS SIOVEC DEFS 16 SPACE FOR 8 VECTORS FOR SIO CTCVEC DEFS 8 SPACE FOR 4 VECTORS FOR CTC SYSVEC DEFS 4 SPACE FOR 2 VECTORS FOR SYSTEM PIO GE
33. RER OF BYTES SECTOR 3 C 1771 DATA REGISTER FORT sHL DISK R W DATA FOINTER sGET SECTOR NUMBER SECTOR TO 1771 ISSUE FORCE INTERRUPT COMMAND sTO TEST HEAD LOAD STATUS GET READ OR WRITE COMMAND BYTE sJUMP IF HEAD IS ALREADY LOADED sELSE MERGE IN HLD BIT sSTART 1771 DOING IT S THING TEST IF COMMAND IS A R OR SOND JUMP TO THE CORRECT LOOP LOOP UNTIL 1771 COMES UN BUSY MASK OFF TO READY NOT FOUND CRC SOND LOST DATA STATUS BITS sMASK OFF AS ABOVE WRT FAULT sRESTORE BYTE 9 NMI VECTOR RETURN IF NO DISK I O ERRORS s DECREMENT RE TRY COUNT AND s EXECUTE COMAND AGAIN IF NOT 0 sELSE RETURN 1771 ERROR STATUS GET TRACK FOR THIS OPERATION sTRY TO RE CAILBRATE THE HEAD BEFGRE READ OR WRITE AGAIN F C3 F cs FC FCB FACA F4CB FeCE FCF FDO F6D2 04 605 FADA F6D7 609 F4DD FeEo FoEi FOES FeE5 F6E7 FES 9 FEC FED FEE FoF i FGFS F6F6 FOFA FeFB FAFE FeFF F700 F702 F703 F706 F708 F70A F70D F70F F710 F713 F714 F715 F717 F719 F71C F71E 2806 78 D31C SEBO Cc 2165FF 7E 71 FEFF 2806 25 85 DB11 77 2166FF 7D 81 F 7E FEFF 2804 D311 AF c9 CDABF7 co AF S26DFF 060C CD93F7 EEO4 E69C C CDABF7 co 79 FE4D po S26DFF D313 810 CD93F7 E698 C8 CDF1F6 Co 79 D313 O61C CD93F7 E698 c 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1
34. ROW OF SCREEN Z CLRS2 LEAVE CLEAR LOOP IF 50 DNCSR sELSE POINT HL TO NEXT ROW DOWN CLRLIN sAND FILL THAT LINE WITH SPACES CLRS1 HL 3RESTR ORIGINAL CURSOR POINTER DE 128 sSUBTRACT 1 FROM ROW COMPONENT HL DE s OF CURSOR POINTER IN HL CRTBAS CHECK FOR UNDERFLOW OF FOINTER NC H CRTTOP 1 WRAP CURSOR AROUND MODULO 3K ADD 1 TO ROWH COMPONENT DE 128 HL DE s OF CURSOR POINTER IN HL er TOE sCHECK FOR OVERFLOW OF POINTER H CRTBAS sRESET POINTER MODULO 128x24 A L FSAB FSAA FSAC FSAE FSBO FSR2 FSB4 FSB6 FSB8 FSB9 FSBA FSBC FSED FSBE FSBF FSC1 FSC2 FSCS FSC4 FSCS FSC7 F5C9 FSCA FSCB FSCC FSCF FSDO FSD2 505 FSDS FSD6 FSD7 FSD9 FSDA FSDE FSDC FSDE FSEO FEE2 FSE4 F5E6 FSE7 FSE8 FSEA FSER FSEC E7FS 1166 O3FS6 ECFS 6CF BAFS 01 12 c9 SEO4 12 c9 7D E67F cs 2B C 7D E67F FEAF DO 23 c9 110800 7D E678 83 FESO Do 7D EsF8 oF 19 1 D31C CRAF D31C C 7D E680 oF 210030 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 CTLSIZ
35. Routine By Andrew P Beck Assembly Listing AB Computer Products PO Box 571 Jackson NJ 08527 SAVE ADDRESS OF HL FBOO ES SUBR PUSH HL F801 CDOSFO CALL KBDST GET KED STATUS F804 B7 OR A sIF A 0 DATA AVAILABLE 2805 CAGEFS JP Z ISDATA JP TO DATA SAVE ROUTINE FBOB E1 POP HL GET ADDRESS BACK 09 3C INC A A FF IS NO DATA MAKE IT FBOA 77 LD HL A sSTORE O IN HL FOR 23 INC HL DO BOTH BYTES FBOC 27 LD HL A FBOD Ce RET RETURN WITH HL O FBOE CDO9FO ISDATA CALL KED N GET INPUT CHAR INTO A F811 E1 POP HL sGET ADDRESS OF HL BACK F812 77 LD HL A STORE DATA LOW ORDER F813 23 INC HL F814 3600 LD HL 0 H GH ORDER FB16 C9 RET RETURN TO BASIC Foke the above program into F800 500 SUBR HF800 510 DATA amp HES 2 amp HO6 amp HFO amp HB7 amp HCA amp HOE 2 320 DATA amp HE1 H3C amp H77 9 amp H23 9 amp H77 amp HC9 amp HCD 2 09 amp HFO 30 DATA amp HE1 amp H77 amp H23 amp HS6 amp HOO amp HC9 540 FOR 1 0 TO 22 550 READ INST 560 POKE SUBR I INST 270 NEXT Demonstration routine 380 HL4 O 390 CALL SUBR 600 IF H Zeep GOTO 590 610 IF HLZ 3 THEN STOP 620 PRINT HLX 3 620 GOTO 590 This routine makes it possible to do direct input with Microsoft basic First a machine language subrou tine is poked into an unused area of the system monitor This subroutine calls the monitor subroutine and the monitor
36. T CHRSAV A SAVE FOR NEXT TIME CRTOUT IS CALLED TEST IF CHARACTER IS A SPACE 7 THEN TURN ON BIT 7 TO ENABLE BLINK NZ CRT2 JUMP IF CHARACTER IS NON BLANK A CSREHR ELSE GET CHAR USED FOR CURSOR HL A STORE CHAR IN A AS CURSOR MARK CURSOR HL SAVE HL AS CURSOR POINTER SP SPSAVE A BITDAT continued next page Micro Cornucopia Number 2 September 1981 DEM Monitor Listing continued FSSC FSSE F560 F561 F562 F563 F564 F565 F568 F569 FS6A FS6D FS6E F570 F572 F573 F574 F575 F577 F579 FS7A FS7D F580 F581 F582 F585 F588 FUBB FS8C FS8D FSB8E FS8F F590 F591 F592 F593 F594 F595 F596 F597 F598 F599 FS9A 59 FS9C FS9E FSAO FSA2 FSA4 D31C FR Ci D1 El CS 11 78FF 14 R7 C270F6 79 FEZ0 5806 71 25 70 ES7F FESO DB CDE7FS CD42F6 c9 ES 218FF5 010000 CD460F3 E1 Co cs C9 iF 1E 1B DCFS BEFS CCFS 42F6 2CF6 C4F5 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 RES QUT EI POP POP POP RET LD LD OR JF LD CF JR LD INC LD AND RET CALL CALL RET FUSH
37. TATE A KBDDAT READ KEYBOARD INPUT PORT HL PINVEC GET KBD INTERRUPT RTN VECTOR DSPTCH AND JUMP TO DISPATCH POINT INTERRUPT SERVICE ROUTINE FOR ONE SECOND TIMER SPSAVE SP SAVE USR STACK POINTER AND SP TMPSTK 32 SWITCH TO LOCAL STACK HL DE BC AF HL TIKVEC GET CLOCK INTERRUPT RTN VECTOR DSPTCH s AND JUMP TO DISPATCH POINT po SERIAL INPUT INTERRUPT SERVICE ROUTINE FOR SIO 5 5 IOINT LD LD PUSH PUSH PUSH PUSH IN AND LD SPSAVE SP SP TMPSTK 32 HL DE BC AF SAVE MACHINE STATE A SIODPB sREAD SIO DATA INPUT PORT 01111111B HL SINVEC GET SERIAL INPUT RTN VECTOR SAVE USER STACK POINTER AND SWITCH TO LOCAL STACK continued on top of page 10 F518 F514 FBiC F51D FBiF 50030 2003C F520 F521 FS22 F523 FS25 FS26 F527 52 FB2E F530 F532 F534 F537 F538 55 FSC FESE F540 F541 F542 F545 F546 3 F549 F546 F54D FS4F F552 F553 F556 FSSA E604 28FA F1 D305 F3 ED7335FF 3157FF DB1C CBFF D31C 2175FF 46 Z2A7SFF 7C EG6OF Faso 67 70 CD45F5 7E 3275FF FE20 CBFF 2003 SA76FF 77 2273FF ED7BSSFF DB1C 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1105 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134
38. VE TEST IF NEW DRIVE WAS EVER SELECTED AND DO A HOME IF NOT 3 OUTPUT DR VE S CURRENT HEAD POSITION TO THE TRACK REGISTER s CLEAR DISK CONTROLLER sEXIT IF DRIVE NOT READY sSET TRACK IN MEM TO ZERO LOAD B WITH A RESTORE COMMAND EXECUTE HEAD MOVING OPERATION GET TRUE TRACK O STATUS sMASK TO ERROR BITS RETURN 1771 STATUS IN A CLEAR DISK CONTROLLER sEXIT IF DRIVE NOT READY GET TRACK DATA FROM C AND CHECK FOR MAXIMUM VALID FORGET IT IF gt 76 sELSE STORE TRACK FOR SEEK sOUTPUT TRACK TO 1771 LOAD B WITH A SEEK COMMAND AND 360 SEEK WITH PROPER STEP RATE MASK TO READY SEEK amp CRC ERROR BITS AND RETURN IF ALL GOOD sELSE TRY TO RE CAILBRATE HEAD sERROR IF WE CAN T FIND TRACK Q s OUTPUT TRACK TO 1771 TRY TO SEEK THE TRACK AGAIN sRETURN FINAL SEEK STATUS IN A continued on top of page 14 F793 F796 F798 F799 F79C F79E F7AO F7AZ F7AS F7AS F7A8 F7A9 F7AA F7AB F7AE F7EO F7BS 7 5 7 7 F7B8 F7BA F7BD F7CO F7C2 F7C4 F7C5 F7C7 F7C9 F7CA F7CC F7CF F7D1 F7D3 705 F7DB F7DA F7DB F7DC F7DE F7DF F7E1 F7E2 F7E4 F7E6 gt FFOO SAGAFF E603 CDA3F7 DB10 CB47 20FA c9 D310 CDABF7 ES ES c CDEBF7 SEDO CDASF7 DE10 CB7F 9 S26CFF CDABF7 DBiC 57 cs 31 cs 0600 CDDCF7 2802 10F9 0609 CDDCF7 1OFH C1 CS 2000 1588 1589 1590 1591 1592 1593 1594 1595 159
39. YPE RETURN 6 Enter lt CR gt Displays FUNCTION COMPLETE 7 Hit the BB RESET switch CR NOTE You now have an image of Boot CP M and Bios in RAM starting at 0900H 8 Remove the source disk from drive A 9 Enter M22C7 CR Displays 22C7 00 10 Enter 79 11 Enter C3 12 Enter 18 13 Enter FO 14 Hit spacebar to return to PFM 15 Enter M1F90 lt CR gt 16 Enter 47 17 Enter EB 18 Hit spacebar to return to PFM 19 Place blank disk in drive A 20 Enter G100 l Displays SYSGEN VER 2 0 21 Enter lt CR gt Displays DESTINATION DRIVE 22 Enter A Displays DESTINATION ONA 23 Enter lt CR gt Displays FUNCTION COMPLETE 24 Enter lt CR gt The disk now contains a CP M system that supports CONTROL P and PIP LST for listings As mentioned above the output is on serial port B and is 300 baud Editor s note To change the baud rate create F COM as follows Enter DDT lt CR gt Enter A100 lt CR gt Enter MVI A XX lt CR gt Enter OUT lt CR gt Enter JMP 0 lt CR gt Enter lt CR gt Enter G00 CR Enter SAVE 1 F COM lt CR gt Geer Se This routine sends a single byte XX to the channel B baud rate gen erator am working at 9600 baud so I replace XX with OE See the Big Board Theory of Opera
40. ated to any other use PFM version 3 3 uses upper memory starting at F000H through F7E6H The RAM area FF00H through FFC8H is used for data storage This leaves the memory from F7E7H through FEFFH and FFC9H through FFFFH available for your use Not all of this space is really available since future releases of PFM could use some of this space I recommend that you limit your programs to the following areas through FEFFH and FFEOH through FFFFH Moving the program up In order for your routine to start out as a normal COM file but wind up in upper memory it has to do a SCH shuffle When the COM file is executed it is loaded into memory starting at 0100H 2 Execution starts at 0100H 3 The first few statements starting at 0100H must copy the routine into upper memory 4 An initialization routine may then be executed 5 Controlis then transferred to the routine or back to PFM In order to accomplish all of the above it is necessary to do the fol lowing 1 Write your assembly language routine as follows a The origin is set at the desired point where your routine is to reside b Your program must start with a short move routine 6435 Northwood Dallas TX 75225 c An initialize routine usually follows that patches hooks your routine into the monitor or PFM d Your routine follows e The last statement defines the length of the program Assemble your program Execute DDT
41. ble so that all subsequent calls for list output bypass the initialization routine As each character is output to port B a flag byte is set indicating that the printer is busy When the printer is again ready the PIO does an inter rupt The sole purpose of the inter rupt service routine is to reset the printer busy flag The character output routine tests the flag byte and loops until it is reset When the flag is reset a character is sent and the flag is again set SETPTR READ WRITE z 3 D z i x a z Uu 2 m D o lu S Da kel gt e ka 2 D craw a z 2 D uU a Lu O lt x D q O Uu 2 LE kb 22 ee Z z m LOO tz lt ac 2 K ul EZ uu 2 lu 0 11 a gt D Ok Ez gt W 2 2 E ftd ra gt O OQ Hr ace m o H gt gt 22 mW a m x u Qc Lu Lu 00 lu x M Ca iuc N Out oO ur 1 m 1 EB za m Quizz zuu uq O ul zd om ta om L m en s za nm am nm ae om mn on 2 I Eo e e D zZII lt 0 z m SP e z lt ra rn ra Oak oiu L sat GE JC Ok O DI bel D lb al TK I r r si O ba m m m L o o L gt 2 wee ere wir JO JD Per lt lt lt SE er E dr kk LR n L iL m sl D JD JD D JJ AA 44 JP JP JP rm x p SI ror mo OFO
42. but they do indicate that they only have over voltage protection on the 5V line unless you specify the 1 option They don t say how much extra you pay for the option ACDC Electronics 401 Jones Rd Oceanside CA 92054 Power Mate also has an open frame linear with the same specifica tionsas the ACDC modelabove but the PowerMate model ED 132AV lists for 120 single Power Mate 514 S River St Hackensack NJ 07601 64 pages and about 60 pages of that is copy Some first issue articles What is Telidon and Why is AT amp T Adopting It Overview of Home Information Services A Seminar for Independent CP M Software Vendors Software Documentation Protocols An Index to CP M Software and Vendors Other Interesting Periodicals Dr Dobb s Journal PO Box E Menlo Park CA 94025 Lifelines 1651 Third Ave New York NY 10028 Please let us know about your fa vorite magazines Program 25 Above PFM By Don Retzlaff There are numerous times when you want to write a small assembly language program to use as a printer driver or other routine These small utilities need to reside in high mem ory so they can operate at the same time as routines which reside in the normal transient program area starting at 0100H Since programs are loaded start ing at 0100H these utilities must load themselves into high memory There is a considerable amount of memory available above PFM that is not dedic
43. ersion 2 2 Character ROM 25 00 Send Big Board number with monitor ROM orders Monitor amp char ROMs 5 00 each if you send a fast ROM and a stamped self addressed return envelope 30 00 30 00 BACK ISSUES each 3 00 5 00 Because of the demand from new subscribers bless their hearts we are keeping back issues in print ISSUE 3 ISSUE 1 ISSUE 2 Power Supply Parallel Print Four MHz Mods RAM Protection Drive Motor Cont Configuring Modem 7 Video Wiggle Shugart Jumpers Safer Formatter 1 2PFM PRN 1 2PFM PRN Reverse Video Cursor Plus More 16 pgs Plus More di Pes Plus More 16 pgs ISSUE 4 ISSUE 5 Keyboard Translation Word Processing at Micro C More 4 MHz Mods Two Great Spells Modems Lync amp SIOs Two Text Editors Undoing the CP M ERASE Scribble a Formatter Plus More 20 pgs Plus More 20 pgs FREE Your of either user s disk or the deluxe character ROM free if you send an article or software and a ROM or extra disk QUANTITY DESCRIPTION PRICE EACH TOTAL Prices include media package amp Ist class postage air mail for Other Foreign NAME ADDRESS CITY STATE MICRO CORNUCOPIA 11740 N VV West Rd Portland Oregon 97229 ENCLOSED U S funds only please Make checks payable to ZIP MICRO CORNUCOPIA
44. had to buy about 80 00 worth of parts beyond what I had around I have it up and running CP M and am currently working on packaging it in a ter minal type case with a Ball Brothers CRT The unit is going to be used for text processing and formatting for a friend s photo typesetter My other computer is an LSI 11 and I also use continued next column By David Thompson Throughout these early months of Micro Cornucopia I have been look ing at commercial and public ver sions of various languages with the hope of finding a semiofficial lan guage for this group A common high level language would mean we could pass around source code in something other than assembler But the language would need to be powerful enough for sub stantial commercial applications and inexpensive enough that most of the people in the group could afford it Letters continued my H19 with the DEC 20 at work I think the Big Board is an excellent value and very useful I agree that Frank Gentges idea about the parallel ports is excellent That would take care of most of the board s limitatons I think your pub lication has already been worth the price and I suspect that an active users group with a publication will enhance the usefulness of the hard ware significantly Doug Faunt PO Box 11142A Palo Alto CA 94306 Dear David CONGRATULATIONS FAN TASTIC You really made it It looks great and reads great You are certainly
45. ientific community I ve heard that BDSC is a compe tent enough subset to be an option for someone writing commercial ap plications It has its own users group and publication All this for 145 such a deal Lifeboat is offering dis counts on quantity purchases of BDSC CWIC is an expanded version of Small C with lots of nice utilities but I don t know if it is ready to do com mercial work However it still looks like quite a bargain at 75 Tiny C is the only interpreter in the bunch It also comes in compiler form for about 300 The only thing I have heard about Tiny C is that it has an excellent manual and I heard that fourth or fifth hand Supersoft s C is new on the mar ket The ads say that they support most of version 7 Unix If that in cludes floating point and pointer arithmetic then it would be a very credible piece of of software assum ing they have taken time to exorcise bugs The standard text on C is The C Programming Language by Kernighan and Ritchie Prentice Hall a 0000000000 Micro Cornucopia Number 2 September 1981 Parallel Print Driver By John P Jones 5826 Southwest Ave St Louis MO 63139 This is a simple parallel printer driver that can be incorporated into any CP M BIOS On first entry the program initial izes PIO port B and the interrupt vector register The program also modifies the BIOS jump ta
46. ies with the drives DC supply I tried mechanical relays at first but even the type made to be driven by TTL have problems Whenever you use mechanical switches to start and stop motors you get interesting transients on the AC line Interest ing transients occasionally cause CPUs to go off picking daisies I am now using an ITT solid state relay P6 3DCC 120R5 It has a P6 package a 3VDC 3D input a 120VAC output with random switching point 120R and it han dles up to 5 amps It is also small quiet and hasn t yet sent the system packing Jumpering The Wild Shugart By David Thompson Shugart set a new standard for ob scurity when they came out with their SA 801 user s manual It s not that they don t tell you how to jumper their drives the only problem is figuring out what they told you Once you figure it out don t go back and look at the man ual you ll just get confused again So on that note here s what I fig ured out For drive A jumper only the fol lowing DC C DS1 Drive Select 1 T2 T3 T4 T5 T6 HL A B T1 800 Y For drive B change DS1 to DS2 For drive C change DS1 to DS3 and so on For the last 9 months or so Shu gart has been shipping drives with a new circuit board The new board is completely interchangeable with the old one but the new one does not use the 5 15V pin on the DC sup ply jack J5 The pin is there but is not connected to anythi
47. ng because the new board does not need 5V One way to tell whether you have a new or old style drive is to check the bottom left hand corner on the circuit board The old drive has a 5V regulator there On the new one that corner is pretty empty Also the resistance from the 5V pin to ground is infinite on the new boards I had one of the new boards but the old documentation so I spent a couple of interesting evenings try ing to make sure the 12V I was sup plying would be properly turned in to 5V on the board Oh well if everyones documentation were perfect there probably wouldn t be so much need for user groups Note The following information is from Bill Klevesahl Shugart s product manager for the SA 800 series Test points for both boards 1 2 Amplified read signal 5 6 7 Ground 10 Index 11 Head Load 12 Index and Sector Pulses 16 4 Read Data 25 Write Protect 26 Detect Track 0 27 Step Pulse Test points on the old board only 3 4 Differential Read Signal this signal is now hidden inside the new LSI read chip 21 24 Data Separator Timing there is no longer a pot to adjust this Test points on the new board only 8 Data Window for checking FM data separation Optional features on the new board Add trace option TS enables true FM data separation maintaining synchronization during address marks Add trace option NFO prevents the head from being forced o
48. ni torin RAM so it could try to clear the screen Jim is going to put together infor mation about what they look for when they troubleshoot boards Hopefully I will have that in time for the next issue Don t forget the 90 day guarantee which completely covers defective parts and boards Plus he has been doing out of warranty or pilot error repairs very reasonably Most of the time these charges have been be tween 25 and 50 The maximum so far has been 75 the board had to be almost completely resoldered among other things That s pretty hard to beat Two CP Ms I have noticed that some software which runs on one Big Board system will not necessarily run on another I also noticed that there are two differ ent IDs when CP M boots I called Jim about this and he said that those folks who used the BIOS he sent out with the boards and who did their own incorporation into CP M have a version which origins the BIOS at All the folks who bought CP M already modified for the Big Board have a BIOS starting at E800 The difference has led to some problems with software which de pends on having BIOS in a certain place 13 i 33PF 220 R38 R37 R40 42 er 3N2407 OPCKB 74Us2qoR6 709 q Ga Oc Gp V A 5 4 511 4muz 4 V Vi 20MHz Clo CHO 10097 T PLS AIS MSS 724007 2MHa 4 MSM SMS 44 N 1 25 MHz 4 at con ar N o Oo MREQB UGG gt o 74 04 A
49. o D m CD D 0 CO D ooOooooooooooooooooo b i o o u o lt t ke UM ON Wh t5 Mawr ONONO WoO lu Tac t Oa ooo Qao i lu ul Li ooo lul I2 1 m mt O t5 5 LL L L i dh dh AN 2 mi iz gk Be x P Un ato Y u 26 Li F E 2 Z u u lt Z u Z uz o OL ei su DO dr xd a rz u XY u Hu cx uar 202 Q m Gi c m n OFS lt gt roc oo u sz OU Kl A u F O 20 JE F F F rr Wwe Diter u OF o a hi Ocu OC Dr Na wa m d c AXI K u U li x 45 SZ K I I OF EZ uod q E E WH x lt EZ A O Q rx ac lt 2 Z Du ax era u d lt g Gua 02 x ua o 2204 Coup O K em z Gu Z Q F li u aq e ude Wort uo aco O u om wm ST GA mm o ew Lea sv del E E En Ar 4 e Kal gt 14 aA q q bD li doo i dc I 0444 lt e gt x gt x Xe Q NOWO X x Mm L e 5 ZUD DOCLHCHCCQM MN Z lt e yaxi G A jmd uaaqaouoaaaoanatgcamcaotin Choanrs3 CIgononogng Tusi ra a D a D NOR D O 9 At OO ei tte lt f lt U in UJ in U U U U 10 10 0 0 RAR REAR ARAR ER ococoococococoooo u be Q H 20 D 0 I O O O Q NOKRKRANWNWS a m Q R 1 ul O LL DUODUDVAAAARALNLANLMOR m 3 4 udi ler o 00 RKRRUDUOQ0O0U U 0 0 0 MNMYMMMMM MYM 12 T0 5 5 5
50. own just the way you d like to see it Dnt abbrev the pr thng to deth List the price if possible and any expected shipping delay Write or call the editorial office for information OPNFRT EQU D 3 D H INTERRUPT PENDING INTPND PRTCHR LD A lt lt a a lt 4 x u z tu 2 gt m m t q m n x a a lt D a Li o m D a tc lt z ul Btu zur N ag lt ou 1 e Z lt lt r ZC 2 z 6 uj 22 O ra eo ul a O0 tr x z gt O za tu Z x Z gt LL Li Lu ul z rN 9 5 m em SC b ge ov nm lt lt D ma q To O La a Li L Q u Da z kel amp lt Z lt a n I D lt 20 2 N ra r Bad wt q q u Iq m z aber L eroanaady ul 2Omno o ru Doze 100 Il 0 c a 2 2 n Fi 0 z m ap Fi OL end Micro Cornucopia Number 2 September 1981 Notes From Garland Texas By David Thompson Clearing up the screen The clear to end of screen com mand is CONTROL Q not CON TROL W as indicated in the docu mentation Bringing up stubborn boards A number of people have been contacting Jim and me about prob lems they are having bringing up boards One of the most common symptoms is a pattern of two charac ters on the screen or a screenful of random garbage Either way it basi cally means that the board probably didn t finish loading the PFM mo
51. tion for other baud rates Once you have completed the baud rate program simply enter F lt CR gt from the CP M prompt to set the baud rate No UPS to a PO Box Jim Tanner lists his mailing ad dress as a PO Box but he also has a street address that works for both the post office and United Parcel Service The ZIP is different Jim Tanner Digital Research Computers 2702 Industrial Lane Suite J2 Garland Texas 75041 Phone 214 271 3538 Micro Cornucopia Number 2 September 1981 Disk Drive Motor Control By David Thompson DISK MOTOR S SOLID STATE RELAY Disk AC Control Circuit If you re tired of listening to your disk drives grind on hour after hour here s relief The board must have the timer op tion installed and you must jumper pin 3 to pin 4 and pin 7 to pin 8 on JB2 This supplies the one second in terrupt to the Z80 If the Z80 counts all the way to 30 after the most recent disk access then it sends a command to the system PIO to drive the output of U112 pin 2 low Terminal 7 on the Big Board power connector is tied to U112 pin 2 This terminal is high about 4V when the system is doing a disk access and goes low if there hasn t been an ac cess for 30 seconds Simply connect the input of an op tically isolated solid state relay be tween terminal 7 and ground Then connect the output in series with the AC to the disk drive motors But do not connect in ser
52. to be congratulated for un dertaking such a task that should be helpful to so many I hate to mention that Momma and I are just back from five weeks vacation in the Smokey Mountains in Tennessee I am about ready to get my feet on the ground again I hope that I can get back on track to help keep the pipe full of articles for future issues Don Retzlaff 6435 Northwood Dallas TX 75225 Editor s note What can I say Thanks again Don with out you and John Jones and Andrew Beck and the rest of you who are writing up things for future issues this wouldn t be possible As for the five whole weeks in the Smokey Mountains that s just not fair Supporting A Language Plus it would need to produce fast and compact object code encourage readable source code and promote structured programming Whew Iam looking seriously at three lan guages Forth Pascal and C Of these three C is presently leading One reason is that all the versions I have seen have been upwardly com patible with Bell Lab s C Versions of C that I m aware of Small C Public Small C Public Tiny C 100 CWIC 75 BDSC 145 Supersoft C 200 Whitesmith s C 600 The prices are approximate Whitesmith s C is a full blown ver sion of the language In fact sources tell me that it was created by three fellows who worked on C for Bell Labs They left Bell in order to de velop and market C for the business and sc
53. ue to all that drooling Silly me When I read Issue No 1 will hit the streets during July I as sumed it was July 1981 But now I realize you meant July 1982 I d bet ter get a stainless steel mailbox or maybe not bother to wait because the magazine will never get here Maybe it went the way of Mitt s Newsletter the Digital Group Newsletter and Processor Technol ogy s Access I hope not Joe Kish 758 Yucca Ridge Lane San Marcos CA 92069 Editor s note I called Joe after all it was the least I could do for his mailbox And besides I think it s a great letter He did finally receive issue no 1 Sandy and 1 made a desperate last ditch effort to get all 500 first issues collated bound labeled sorted and bundled in one af ternoon so we could get the first issue in the mail on July31 We missed the 8 PM deadline at the post office by 15 minutes So the magazine was mailed Monday morning August 3rd So much for hitting the streets in July Someday maybe I ll write a book about starting a users group magazine I could al most write the book about the first issue and Murphy would certainly be a leading figure For those of you who don t know Murphy he is the one credited with the first voyage of the Titanic Quote from Murphy If there is no way your plan can fail you simply don t have all the information Dear Editor I bought a bare board version and built it up from scratch I
54. ut past track 0 The formatting program listed in issue 1 contains drive amp bug a problem accessing a disk in drive HB the disk If the program has it reformats in the default A Issue will include a revised format program Micro Cornucopia Number 2 September 1981 Coming Up Articles you ll be seeing in the future Reverse video cursor e 5inch disk interface Real time clock routine Converting a TV into a real video monitor More on the PFM monitor e Review of 3 assembly language texts Bios modifications Articles we d love to see Trials and tribulations of bring ing up a Big Board e How you ve improved the PFM monitor l e Hard disk interface Filling out the second bank with system RAM DMA interface Double density disk interface graphics display A speech generator Asimple ROM burner e Interfacing with particular printers etc An in depth series on CP M e Reviews of FIG Forth and Forth 79 Reviews of BDSC White smith s C CW C and Super soft s C Computer consulting using a Big Board e Reviews on peripherals key board video monitor power supply cabinet disks etc e Other software reviews Even if you are just borrowing a copy to evaluate please let us know how you like it Book reviews If you are immersed in any of these projects please share your experience with all of us Direct Input

Download Pdf Manuals

image

Related Search

Related Contents

JVC KD-LX555R User's Manual  TrekMill Manual  Samsung Galaxy Note (10.1) User Manual  簡易取扱説明書    American Standard T064.740.295 Installation Guide  1 2 3 10 11 13 14 20 A F OP5, OP15 Operator Panel  Guia de Início Rápido - produktinfo.conrad.com  MANUAL DE INSTRUCCIONES DE LA RL 1050  iPhone iOS 7  

Copyright © All rights reserved.
Failed to retrieve file