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