	NAM	NumGuess
*#===============
*#  Information about sub-routines for Input/Output available at:
*#  http://www.hartetechnologies.com/manuals/SWTPC/6800%20Computer%20System/System%20Documentation%20Notebook/MikbugEn100.pdf
*#===============
*#  Lots more information available at:
*#  http://www.swtpc.com/mholley/swtpc_6800.htm
*#===============
*#  Emulator software here:
*#  http://sourceforge.net/projects/exorsim/
*#  http://exorsim.sourceforge.net/
*#===============
OUTEEE	EQU	$E1D1	; Output string from STKTOP port until
*                       ;     we hit "eot" (0x0D) character.
STKTOP	EQU	$A04A	; STKTOP  (top of stack)
MCL	EQU	$E19D	; data string, cr,lf,puch,0,0,0
PDATA1	EQU	$E07E	; poll for incomming data. (similar to FIG-Forth)
INEEE	EQU	$E1AC	; move character into A register. (from indirect X -and wait for stop bit)
*
	ORG	$1000	; RAM Address passed to Boot-Loader
*
MAIN1	STX STKTOP 
	LDX #MCL
	LDAB #$06 
LOOP1	LDAA $00,X 
	JSR OUTEEE
	INX  
	DECB       
	BNE LOOP1  
	LDX STKTOP   
	RTS 
LOOP2	BSR MAIN1
	LDX #STR1
FETCH1  JSR PDATA1
OUPUT1  JSR INEEE
        CMPA #$00
        BEQ LOOP2
        CMPA #$3A
        BPL LOOP3
        CMPA #$30
        BMI LOOP3
        BSR MAIN1
        INX
        BRA FETCH1
LOOP3   BSR MAIN1
*-------------------
        STX STKTOP
        LDX #ERRSTR
        JSR PDATA1
        LDX $A04A
        BRA OUPUT1
*-------------------
*
*  The following appears to be scratchpad, or left over
*  code from another program...
*
*  Of note:  the first command was: S105 A048 0015 FD
*  If we want the output *.S19 to look like the memory-dump,
*  we will have to image this data exactly as it was.
*-------------------
DAT041	FCB	$DC
DAT042	FCB	$DF
DAT043	FCB	$76
DAT044	FCB	$F5
DAT045	FCB	$FF
DAT046	FCB	$FD
DAT047	FCB	$FE
DAT048	FCB	$93   ; Note:  S105 A048 0015 FD
DAT049	FCB	$FA
DAT04A	FCB	$DC
DAT04B	FCB	$EE
DAT04C	FCB	$F2
DAT04D	FCB	$FF
DAT04E	FCB	$F7
DAT04F	FCB	$62
*------------------
DAT050	FCB	$DE
DAT051	FCB	$7F
DAT052	FCB	$D9
DAT053	FCB	$9E
DAT054	FCB	$F7
DAT055	FCB	$7C
DAT056	FCB	$DE
DAT057	FCB	$F4
DAT058	FCB	$D7
DAT059	FCB	$F7
DAT05A	FCB	$FE
DAT05B	FCB	$F2
DAT05C	FCB	$CB
DAT05D	FCB	$7F
DAT05E	FCB	$74
DAT05F	FCB	$EE
*------------------
DAT060	FCB	$B6
DAT061	FCB	$D6
DAT062	FCB	$1F
DAT063	FCB	$FA
DAT064	FCB	$E3
DAT065	FCB	$EF
DAT066	FCB	$F5
DAT067	FCB	$FC
DAT068	FCB	$77
DAT069	FCB	$BD
DAT06A	FCB	$F7
DAT06B	FCB	$DE
DAT06C	FCB	$57
DAT06D	FCB	$E3
DAT06E	FCB	$FA
DAT06F	FCB	$FC
*-----------------
DAT070	FCB	$7F
DAT071	FCB	$3F
DAT072	FCB	$1E
DAT073	FCB	$9A
DAT074	FCB	$E2
DAT075	FCB	$7F
DAT076	FCB	$67
DAT077	FCB	$EE
DAT078	FCB	$BF
DAT079	FCB	$D6
DAT07A	FCB	$BD
DAT07B	FCB	$BE
DAT07C	FCB	$B6
DAT07D	FCB	$1B
DAT07E	FCB	$1B
DAT07F	FCB	$5C
*
*==========================
*== Begin Data Section
*==========================
*
STR1	FCC	'I am a computer. I am thinking of a number'	
	FCC	' from 0 to 9. Try to guess it.'
	FCB	$0D
	FCB	$04
*
STR2	FCC	'You guessed wrong. Try again.'
	FCB	$0D
	FCB	$04
*
STR3	FCC	'You guessed wrong again, DUMMY!!'
	FCC	' Try again.'
	FCB	$0D
	FCB	$04
*
STR4	FCC	"Boy! You really ain't too bright."
	FCC	" Oh well, I'll try to be patient."
	FCC	' Try again.'
	FCB	$0D
	FCB	$04
*
STR5	FCC	'Wrong again!'
	FCC	'!!!!'
	FCC	' That does it KNUCLHEAD.'
	FCC	" I'm tired of playing--let's quit."
	FCB	$0D
	FCB	$04
*
STR6	FCC	'Can't you read, YOYO? I said let's quit!.'
	FCB	$0D
	FCB	$04
*
STR7	FCB	$0D
	FCB	$04
*
STR8	FCB	$0D
	FCB	$04
*
STR9	FCB	$0D
	FCB	$04
*
STR10	FCB	$0D
	FCB	$04
*
ERRSTR	FCC	'I said a number from ZERO to NINE,'
	FCC	'DUMDUM.'
	FCC	"Don't try to use the whole character set!"
	FCC	'!!.'
	FCB	$0D
	FCB	$04
*
ENDSTR	FCB	$B9
*
	END
