SIG/M VOLUME 5 8080/8085, MEMORY, ICOM DISK CONTROLLER DIAGNOSTICS SIZE NAME COMMENTS -CATALOG.005 CONTENTS OF SIG/M VOL. 5 5.1 14K CPUDIAG.ASM CPU TEST DIAGNOSTICS FOR 8080 AND 8085 5.2 2K CPUDIAG.DOC CPU TEST DIAGNOSTICS FOR 8080 AND 8085 5.3 12K MEMDIAG.DOC MEMORY DIAGNOSTICS 5.4 34K MEMDIAG.ASM MEMORY DIAGNOSTICS 5.5 73K 3712DIAG.ASM ICOM SINGLE DENSITY DISK CONTROLLER DIAGNOSTIC 5.6 93K 3812DIAG.ASM ICOM DOUBLE DENSITY DISK CONTROLLER DIAGNOSTIC 5.7 2K 3X12DIAG.DOC ICOM DISK CONTROLLER DIAGNOSTICS 5.8 4K CP/M-NET.MSG PROPOSED NETWORKING OF USER GROUPS To Bruce Ratoff, Tom Churbuck, Keith Petersen Proposal For A Collaborate National CP/M User's Group June 26, 1980 I would like to propose a merging of the "SIG/M" CP/M User's Group now in it's formative stages with "CP/M-NET (tm)", for the purpose of public access (via modem) dissemination of CP/M compatble public domain software. Benefits to be derived to the "programming public at large" are: 1.0 Free access to "professional quality" software for the price of a telephone call. 2.0 A "try before you buy" access of "commercial software" 3.0 Software "critique's" of "commercial software" 4.0 "language access" availability as a tutorial aid to a better understanding of various languages (BASIC, FORTRAN, COBOL, PASCAL/UCSD, PASCAL/M, PASCAL/MT, PASCAL/Z, "C", etc.). 5.0 A program "forwarding" network for "mass dissemination" of software. 6.0 An "on going" dialogue of "here's how to do it" documentation, for implementation of software (e.g., how to get MP/M running on your system...,etc.). Believe me, alot of people out there are "baffled" at how to write a BIOS, or how to change I/O for various systems, etc.! These are just a view of my thoughts that have come to mind on this issue, and I am sure that you could add quite a bit to this... The time and ability is certainly "at hand", by evidence of Keith Petersen's system, Tom Churbuck's System, the Valley Computer Club system, my system, and other's...If we could standardize access methods, utility formats, etc., as "affiliate systems", we could offer quite a bit to the public "education" of the utilization of computers. I would be more than willing to be the "West Coast" affiliate system, and help in all details of this proposed project. Additionally, we might publish a quarterly "news letter", requiring possibly a $12 per year membership fee to cover expenses of system operation and maintenance. Of primary interest to me, is to make public domain software PUBLIC! Not under the control of profit making organization such as ŠLifeboat (read Tony Gold here...) that (in general) have little professional software to offer in their control of the CPMUG/Lifelines "racket", much less some of the really "crap" commercial software like "BSTAM"! (WOW, did I say that?!?). Also, I suspect that if "SIG/M" really gets "rolling", you will have your hands full with the logistics of distributing "physical diskettes" to the public...my proposal would certainly take care of any problems in that area. To conclude, give this some thought as what we "collectively" might do...leave any correspondence on this matter on my system or Tom Churbuck's system as an "open forum". Best Regards, Kelly Smith, CP/M-NET (tm) 3055 Waco Avenue Simi Valley, California, 93065 (805) 527-9321 (300 Baud Modem) (805) 527-0518 (Verbal) Microcosm Associates Disk Diagnostic for the Icom FD3712 Single Density Disk Controller and the Icom FD3812 Double Density Disk Controller Donated to the "SIG/M" CP/M User's Group by Kelly Smith This is an extensive "production test/diagnostic" for the Pertec/Icom Single and Double Density Disk Controller. The files 3712DIAG.ASM and 3812DIAG.ASM are "self documenting", with a "menu display" of test options at the first execution of either program. These programs were originaly written for the MITS Altair 8800b Computer, and therefor utilize the MITS console port address's of 10 and 11 hexadecimal. These address's may easily be modified by changing the console equates as required by you console I/O. In addition, the 3712DIAG.ASM file is compatible for testing the older Icom "Frugal Floppy" system. Primary differences between the FD3712 and FD3812 diagnostics are in "density select" options and diskette formating capabilities of the 3812DIAG.ASM file, which supports the IBM single density/single sided format, "1D" format, "2D" format, and "2D Extended (1024 bytes per sector, 8 sectors per track) format ("2D Extended" is hardware dependent on DMA transfer capability). This code was initially written by me about 3 years ago, when I first got into codeing for the 8080, and is therefor a bit "amateurish" in some areas...that "INIT" routine with all the "STA's" for example! But in any case, the code does work quite well for a first effort on my part... Kelly Smith, Microcosm Associates 3055 Waco Avenue Simi Valley, California (805) 527-9321 (Modem, CP/M-NET) (805) 527-0518 (Verbal) *************************************************************** OPERATORS MANUAL FOR THE MICROCOSM ASSOCIATES MEMORY DIAGNOSTIC, VERSION 1.0 *************************************************************** COPYRIGHT 1979,1980 BY MICROCOSM ASSOCIATES DONATED TO THE "SIG/M" CP/M USER'S GROUP, BY KELLY SMITH CP/M IS A REGISTERED TRADEMARK OF DIGITAL RESEARCH 1.0 DIAGNOSTIC TEST "START-UP" EXECUTION 1.1 THE TEST WILL INITIALLY "SIGN ON",WITH THE FOLLOWING MESSAGE DISPLAYED ON THE REMOTE CONSOLE: MICROCOSM ASSOCIATES MEMORY DIAGNOSTIC VER.1.0 (C) 1979 TOP OF MEMORY=NNNN MEMORY QUALIFICATION TEST IS IN PROGRESS ANY ERRORS OCCURING DURING THE "MEMORY QUALIFICATION TEST" WILL BE DISPLAYED AS FOLLOWS: ERROR AT ADDRESS=NNNN PATTERN STORED=NN PATTERN READ=NN BIT(S) IN ERROR=N,N,N,N,N,N,N,N THE DIAGNOSTIC PROGRAM WILL NOW PROCEED TO DISPLAY THE FOLLOWING MESSAGE ON THE REMOTE SYSTEM CONSOLE: MEMORY TEST IN AUTO MODE (Y OR N)? (REFERENCE SECTION 2.1 C FOR ADDITIONAL INFORMATION) 2.0 DIAGNOSTIC COMMAND MONITOR 2.1 WHEN THE "-" PROMPT CHARACTER IS DISPLAYED, THE FOLLOWING KEYBOARD ENTRIES MAY BE MADE FOR TEST/DIAGNOSTIC SELECTIONS. A. "G" CAUSES "GO ADDRESS=", ALLOWING EXECUTION OF CODE AT ANY ADDRESS IN ROM/RAM MEMORY. B. "M" CAUSES "MEMORY ADDRESS ", TO ALLOW DISPLAYING ANY ADDRESS IN ROM/RAM MEMORY. FOR EXAMPLE: -MEMORY ADDRESS=NNNN (CR) NNNN=NN (SP) NNN1=NN AA (WHERE "AA" IS AN OPERATOR ENTRY) NNN2=NN ^ (WHERE "^" IS AN OPERATOR ENTRY TO EXAMINE "PREVIOUS") NNN1=AA (SP) NNN2=BB E (WHERE "E" INDICATES "MEMORY ERROR" ON ENTRY) NNN3=NN (CR) - (WHERE "-" IS A RETURN TO THE MONITOR BY CARRIAGE-RETURN) C. "T" CAUSES "TEST MEMORY IN AUTO MODE (Y OR N)?" TO BE DISPLAYED ON THE REMOTE CONSOLE.ENTERING "Y" ON THE REMOTE CONSOLE KEYBOARD WILL CAUSE THE FOLLOWING DISPLAY TO APPEAR: NO MEMORY BLOCKS DROPPED TESTING MEMORY FROM 1000 TO 2000 PASS=0000 TOTAL ERRORS=0000 RANDOM PATTERNS TEST THE TEST WILL PROCEED TO TEST WITH "WRITE SATURATION TEST", "GALLOPING PATTERNS TEST","STATIC CHECK CYCLE","CHECKING DATA RETENTION","GALLOPING COLUMNS TEST", AND "WALKING PATTERNS TEST". THE TEST WILL THEN PROCEED TO THE NEXT 4K BYTE MEMORY BLOCK. A "N" RESPONSE TO "TEST MEMORY IN AUTO MODE (Y OR N)?" WILL CAUSE THE FOLLOWING DISPLAY TO APPEAR ON THE REMOTE CONSOLE: TEST "ALL","SELECT",OR "MONITOR" (A,S OR M)? ENTRY OF "S" ON THE KEYBOARD ALLOWS "SELECTION" OF TESTING MEMORY FROM ADDRESS 1000 HEX TO FFFF HEX,WITH THE FOLLOWING DISPLAY APPEARING ON THE REMOTE CONSOLE: (NOTE: A MINIMUM ADDRESS DIFFERENTIAL OF THREE ADDRESS'S MUST BE UTILIZED BY THE OPERATOR, AND MEMORY MAY NOT BE TESTED BELOW RAM MEMORY ADDRESS 1000 HEX. LOW MEMORY ADDRESS=NNNN (CR) HIGH MEMORY ADDRESS=NNNN (CR) TEST OPTIONS ARE: 01-GALLOPING PATTERNS TEST 02-GALLOPING COLUMNS TEST 03-WALKING PATTERNS TEST 04-RANDOM PATTERNS TEST 05-WRITE STAURATION TEST 06-STATIC CHECK CYCLE TEST ENTER TEST NUMBER(01,02,03,04,05 OR 06)=NN ENTER PATTERN (00-FF)=NN TEST IS IN PROGRESS PROGRAM TEST EXECUTION BEGINS AT THE TWO DIGIT ENTRY FOR "ENTER PATTERN (00-FF)=" BY DISPLAYING "TEST IS IN PROGRESS". ENTERING "A" FOR "ALL",AUTOMATICALLY BEGINS EXECUTION BY DISPLAYING "TEST OPTIONS ARE:",ASSUMING THAT THE TEST ADDRESS RANGE IS FROM 8000 HEX TO BFFF HEX. ENTERING "M" FOR "MONITOR",CAUSES EXITING TO THE COMMAND MONITOR (SEE SECTION 1.1 FOR DETAILED EXPLANATION OF OPERATION),AND WILL PROMPT WITH A "-" CHARACTER TO INDICATE MONITOR MODE. 3.0 RAM MEMORY TEST ERROR MESSAGES A. RANDOM PATTERNS MEMORY TEST MEMORY ERRORS OCCURING DURING THE RANDOM PATTERNS TEST WILL BE DISPLAYED ON THE REMOTE CONSOLE AS FOLLOWS: ERROR AT ADDRESS=NNNNN PATTERN STORED=NN PATTERN READ=NN BIT(S) IN ERROR=N,N,N,N,N,N,N,N NOTE, THAT ON TRANSIENT/DYNAMIC TYPE ERRORS, THE PATTERN STORED MAY MATCH THE PATTERN READ AND NO BITS WILL BE IN ERROR. THE ERROR DETECTION LOGIC OF THE TEST SOFTWARE IS SUCH THAT ANY IMMEDIATE MISMATCH IS DETECTED BUT THE ERROR CELL STATE IS NOT SAVED. SUBSEQUENT SOFTWARE PROGRAM DELAYS LATER, THE ERROR CELL ADDRESS CONTENT IS AGAIN EXAMINED FOR THE MISMATCH TO BE DISPLAYED, BUT THE CELL IS NOW CORRECT. THIS INDICATES THAT A TRANSIENT/DYNAMIC ERROR HAS OCCURRED. THE TEST SEQUENCE IS AS FOLLOWS: 1. RANDOM DATA PATTERNS ARE WRITTEN THRUOUT THE 4K BYTE CELL MEMORY BLOCK. 2. ALL 4K BYTE CELLS ARE READ. 3. ALL 4K BYTE CELLS ARE COMPLEMENTED. 4. ALL 4K BYTE CELLS ARE READ. 5. ALL 4K BYTE CELLS ARE ALTERNATELY WRITTEN WITH 55 HEX AND AA HEX. 6. ALL 4K BYTE CELLS ARE READ. 7. ALL 4K BYTE CELLS ARE COMPLEMENTED. 8. ALL 4K BYTE CELLS ARE READ. 9. ALL 4K BYTE CELLS ARE WRITTEN WITH ALL 1'S. 10. ALL 4K BYTE CELLS ARE READ. 11. ALL 4K BYTE CELLS ARE COMPLEMENTED. 12. ALL 4K BYTE CELLS ARE READ. B. WRITE SATURATION TEST MEMORY ERRORS OCCURING DURING THE WRITE SATURATION TEST WILL BE DISPLAYED ON THE REMOTE CONSOLE AS FOLLOWS: ERROR AT ADDRESS=NNNN READ BACK NN ,EXPECTED NN THE FAILURE TYPE REVEALED IS SLOW SENSE AMPLIFIER RECOVERY DUE TO SUSTAINED "CHARGING" OF 0'S OR 1'S ON THE SENSE AMPLIFIER CIRCUITRY. THE TEST SEQUENCE IS AS FOLLOWS: 1. WRITE A "BACKGROUND" PATTERN OF ALL 0'S IN A 4K BYTE BLOCK REPEATEDLY FOR 100 WRITE PASSES 2. WRITE ALL 1'S IN A 4K BYTE BLOCK FOR 1 WRITE PASS ONLY. 3. SEQUENTIALLY READ ALL BYTES IN THE 4K BYTE BLOCK. 4. WRITE A "BACKGROUND" PATTERN OF ALL 1'S IN A 4K BYTE BLOCK REPEATEDLY FOR 100 WRITE PASSES. 5. WRITE ALL 0'S IN A 4K BYTE BLOCK FOR 1 WRITE PASS ONLY. 6. SEQUENTIALLY READ ALL 4K BYTES IN THE 4K BYTE BLOCK. C. GALLOPING PATTERNS MEMORY TEST MEMORY ERRORS OCCURING DURING THE GALLOPING PATTERNS MEMORY WILL BE DISPLAYED ON THE REMOTE CONSOLE AS FOLLOWS: ERROR READING OTHER CELL TEST CELL=NNNN, OTHER CELL=NNNN PATTERN STORED=NN PATTERN READ=NN THE "OTHER" CELL (WRITTEN FROM A BACKGROUND PATTERN OF 0'S OR 1'S) HAS BEEN DISTRUBED BY WRITING INTO THE "TEST" CELL. ALTERNATELY,THIS MESSAGE MAY APPEAR: ERROR READING TEST CELL TEST CELL=NNNN, OTHER CELL=NNNN, PATTERN STORED=NN PATTERN READ =NN THE TEST CELL HAS BEEN DISTURBED BY WRITING INTO SOME "OTHER" CELL. THE FAILURE TYPE REVEALED IN EITHER ERROR MESSAGE INDICATES EITHER UNSATISFACTORY ADDRESS TRANSITIONS BETWEEN EACH CELL AND EVERY OTHER CELL, SLOW SENSE AMPLIFIER RECOVER, OR DESTRUCTION OF DATA DUE TO NOISE COUPLING BETWEEN CELLS WITHIN A COLUMN. THE TEST SEQUENCE IS AS FOLLOWS: 1. A "BACKGROUND" PATTERN OF ALL 1'S IS WRITTEN INTO A 256 BYTE PORTION OF A 4K BYTE BLOCK OF MEMORY. 2. THE COMPLIMENT OF THE TEST CELL IS WRITTEN INTO THE TEST CELL, AND ALTERNATELY THE TEST CELL IS READ AND EVERY OTHER CELL. 3. THE TEST CELL IS WRITTEN TO IT'S ORIGINAL STATE. 4. THE NEXT SEQUENTIAL CELL IS TESTED AS IN STEP 2 AND 3. 5. A "BACKGROUND" PATTERN OF ALL 0'S IS WRITTEN INTO THE SAME 256 BYTE PORTION OF THE 4K BYTE BLOCK OF MEMORY. 6. STEPS 2,3, AND 4 ARE REPEATED. 7. STEPS 1 THRU 6 ARE REPEATED FOR THE NEXT SEQUENTIAL 256 BYTES IN THE 4K BYTE BLOCK. D. STATIC CHECK CYCLE. UTILIZED IN THE MEMORY TEST AUTOMATIC MODE ONLY, A STATIC CHECK CYCLE WILL OCCUR AS FOLLOWS: ANY FURTHER MEMORY READ OR WRITE OPERATION IS TERMINATED FOR ONE MINUTE. AFTER THIS DELAY TIME, THE LAST STATE OF MEMORY TESTING PATTERNS FROM THE GALLOPING PATTERNS MEMORY TEST IS READ FOR THE 4K BYTE BLOCK TO TEST FOR POSSIBLE ERRORS DUE TO RETENTION LOSSES. THE FOLLOWING MESSAGE WILL APPEAR ON THE REMOTE CONSOLE: CHECKING DATA RETENTION ANY DATA RETENTION ERROR DETECTED WILL BE DISPLAYED ON THE REMOTE CONSOLE AS FOLLOWS: DATA RETENTION ERROR AT ADDRESS=NNNN EXPECTED "00" DATA, READ BACK NN E. GALLOPING COLUMNS MEMORY TEST ERROR MESSAGES ARE IDENTICAL TO THOSE DISPLAYED FOR THE GALLOPING PATTERNS MEMORY TEST. THE TEST SEQUENCE IS AS FOLLOWS: 1. A "BACKGROUND" PATTERN OF ALL 1'S IS WRITTEN INTO A 64 BYTE BYTE PORTION OF A 4K BYTE BLOCK OF MEMORY. 2. THE COMPLEMENT OF THE TEST CELL IS WRITTEN INTO THE TEST CELL, FOR THE CURRENT TEST COLUMN. 3. TEST CELL ROW'S ARE READ BY ALTERNATELY READING THE TEST CELL AND LOCATIONS +64 ADDRESS'S FROM THE TEST CELL (E.G. TEST CELL +64 (N), WHERE N=1,2,3,.... ,63). 4. READ THE TEST CELL, THEN WRITE THE TEST CELL'S COMPLEMENT INTO THE TEST CELL, SO THAT IT IS IN IT'S ORIGINAL "BACKGROUND" STATE. 5. READ TWO CELLS FOLLOWING THE TEST CELL FOR REFRESH CHECK. 6. REPEAT STEP 5 FOR ALL CELLS OF THE CURRENT TEST COLUMN, AND EVERY OTHER COLUMN (E.G. READ CELLS 3,6,9,....63; 2,4,9,...62; 1,4,7,.....61; ETC., ETC.) 7. REPEAT STEPS 2 THRU 6 FOR ALL COLUMNS. 8. WRITE A "BACKGROUND" PATTERN OF ALL 0'S FOR 64 BYTES IN THE 4K BYTE MEMORY BLOCK. 9. REPEAT STEPS 2 THRU 7. 10. REPEAT STEPS 1 THRU 9 FOR THE NEXT SEQUENTIAL 64 BYTES IN THE 4K BYTE MEMORY BLOCK. ALL FAILURE TYPE REVEALED INDICATES EITHER UNSATISFACTORY ADDRESS TRANSITIONS BETWEEN EVERY CELL AND THE POSITION OF THE CELL'S ROW, DESTRUCTION OF STORED DATA DUE TO NOISE COUPLING AMOUNG CELLS IN THE SAME COLUMN, OR REFRESH ERRORS. F. WALKING PATTERNS MEMORY TEST MEMORY ERRORS OCCURRING DURING THE WALKING PATTERNS MEMORY TEST WILL BE DISPLAYED ON THE REMOTE CONSOLE AS FOLLOWS: ERROR AT ADDRESS=NNNN READ BACK NN, EXPECTED NN LAST ADDRESS WRITTEN WAS NNNN, PATTERN WAS NN THE TEST SEQUENCE IS AS FOLLOWS: 1. WRITE A "BACKGROUND" PATTERN OF ALL 1'S FOR 256 BYTES IN A 4K BYTE MEMORY BLOCK. 2. WRITE THE COMPLEMENT OF THE TEST CELL INTO THE TEST CELL. 3. READ THE REMAINING 256 BYTES, IN THE 4K BYTES OF THE BLOCK. 4. READ THE TEST CELL. 5. WRITE THE COMPLEMENT OF THE TEST CELL BACK TO IT'S ORIGINAL "BACKGROUND" STATE. 6. REPEAT STEPS 2 THRU 5. 7. WRITE A "BACKGROUND" PATTERN OF ALL 0'S FOR 256 BYTES IN THE 4K BYTE MEMORY BLOCK. 8. REPEAT STEPS 2 THRU 6. 9. REPEAT STEPS 1 THRU 8 FOR THE NEXT SEQUENTIAL 256 BYTES IN THE 4K BYTE MEMORY BLOCK. THE FAILURE TYPES REVEALED ARE INTERNAL MULTIPLE ADDRESS SELECTION,DESTRUCTION OF STORED DATA DUE TO NOISE COUPLING WITHIN A COLUMN,AND SLOW SENSE AMPLIFIER RECOVERY. G. OPERATOR ERROR MESSAGES ANY NON-HEXIDECIMAL KEYBOARD ENTRIES ON THE REMOTE CONSOLE WILL BE PROMPTED WITH A "?" CHARACTER, AND A RETURN TO THE COMMAND MONITOR. ANY ATTEMPT TO TEST "OUT OF RANGE" OF ADDRESS SELECTIONS WILL PROMPT WITH: INVALID MEMORY ADDRESS TESTING OF MEMORY IS NOT ALLOWED BELOW ADDRESS 1000, OR ABOVE FFFF, ALSO THE LOW MEMORY ADDRESS MAY NOT BE GREATER THAN THE HIGH MEMORY ADDRESS, ANY ADDRESS RANGE FROM 1000 HEX TO FFFF HEX MAY BE TESTED .HOWEVER, A MINIMUM DIFFERENCE IN ADDRESS OF 3 IS REQUIRED DUE TO THE "PUSH/POP" METHOD OF MEMORY TEST BY THE RANDOM PATTERNS MEMORY TEST ("PUSH AND POP" INSTRUCTIONS ARE UTILIZED FOR MEMORY ACCESS'S BECAUSE THESE TWO INSTRUCTIONS PERFORM THE FASTEST ACCESS OF MEMORY).