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).