View Single Post
  #15  
Old 03-30-2009, 03:40 AM
philrrtx philrrtx is offline
Junior Member
 
Join Date: Jan 2009
Location: Round Rock, TX
Posts: 11
Default Programs and things

Quote:
Originally Posted by marty View Post
Hi PHIL:
Could you please post the programs you are using here for the rest of us ????
Also, I have not had any problems with any of my 4k memory cards...
have you tried each card at all the addresses that you intend to use,,, maybe one or more is mapping to more than one address... THANK YOU Marty
The failing card is correctly detecting its starting address, which can be viewed with a scope at the test point just left of the address switches. I also can see the bus driver disable signal being negated, so it should be putting data on the bus, yet it looks like the bus is floating. We have decided not to worry about fixing it at this point. The 12K we have working is sufficient for our purposes.

The test programs for the 3P+S I/O board I have been using are in the documentation I found for it on Dave Dunfield's site. See http://www.classiccmp.org/dunfield/s100c/ptco/3pps.pdf

Here's the memory test program I wrote:

Code:
                     INSTRUCTION
LABEL	ADR	OCTAL		MNEMONIC	DESCRIPTION
	000	052 051 000	LHLD COUNT	Get number of locations to write
	003	353		XCHG		Move to DE registers
	004	052 053 000	LHLD START	Get starting address
LOOP	007	072 047 000	LDA BYTE1	Get first byte to write
	012	167		MOV M, A	Write in memory address
	013	226		SUB M		Read memory and subtract
	014	312 022 000	JZ CONT1	OK if zero
ERR1	017	303 017 000	JMP ERR1	Error if loops here
CONT1	022	072 050 000	LDA BYTE2	Get second byte to write
	025	167		MOV M, A	Write in memory address
	026	226		SUB M		Read memory and subtract
	027	312 035 000	JZ CONT2	OK if zero
ERR2	032	303 032 000	JMP ERR2	Error if loops here
CONT2	035	043		INX  H		Increment write address
	036	033		DCX D		Decrement count
	037	172		MOV A, D	Check if DE=0
	040	263		ORA E		       by ORing D with E
	041	302 007 000	JNZ LOOP	Go around again
GOOD	044	303 044 000	JMP GOOD	Good if loops here
BYTE1	047	252				First byte to write = 10 101 010
BYTE2	050	125				Second byte to write = 01 010 101
COUNT	051	323 037				Count = 16339
START	053	055 000				Start address


START must contain the first location past the program. COUNT must contain the total memory you have available minus the length of the program (remember, least significant byte first). The test is good if it loops at GOOD. An error has been detected if it loops at either ERR1 or ERR2.
Reply With Quote