
;;; gcc for m6809 : Apr  3 2025 06:14:16
;;; 4.6.4 (gcc6809lw pl9)
;;; ABI version 1
;;; -mint16
	.module	forth.c

	.area	.text
_PutRawByte:
	pshs	y,u
	ldx	_cursor
	stb	,x+
	stx	_cursor
	bra	L2
L6:
	ldu	#15872
L3:
	leay	32,u
	ldd	,y
	std	,u++
	cmpu	#16288	;cmphi:
	bne	L3
L4:
	ldy	#8224
	sty	,u++
	cmpu	#16320	;cmphi:
	bne	L4
	leax	-32,x
L2:
	cmpx	#16319	;cmphi:
	bhi	L6
	stx	_cursor
	ldb	#-1
	stb	,x
	ldx	#0
L5:
	stx	16382
	leax	1,x
	cmpx	#256	;cmphi:
	bne	L5
	puls	y,u,pc
_PutChar:
	leas	-1,s
	bra	L22
L18:
	ldb	#95
L22:
	stb	,s
	ldb	#32
	stb	[_cursor]
	ldb	,s
	cmpb	#10	;cmpqi:
	bne	L21
	bra	L19
L14:
	jsr	_PutChar
L19:
	ldx	_cursor
	ldb	#32
	cmpx	#16318	;cmphi:
	bls	L14
	bra	L22
L21:
	ldb	,s
	cmpb	#31	;cmpqi:
	bls	L18
	cmpb	#95	;cmpqi:
	bhi	L16
	andb	#63
	stb	,s
	bra	L23
L16:
	ldb	,s
	bmi	L17
	addb	#-96
	bra	L23
L17:
	ldb	,s
L23:
	leas	1,s
	jmp	_PutRawByte
_PutStr:
	pshs	y,u
	leay	,x
	ldu	#30
	bra	L25
L27:
	jsr	_PutChar
	cmpu	#0	;cmphi:
	bne	L26
	ldb	#92
	puls	y,u
	jmp	_PutChar
L26:
	leau	-1,u
L25:
	ldb	,y+
	bne	L27
	puls	y,u,pc
_PutHex:
	pshs	u
	leas	-4,s
	leau	,x
	cmpx	#15	;cmphi:
	bls	L29
	tfr	x,d
	lsra
	rorb
	lsra
	rorb
	lsra
	rorb
	lsra
	rorb
	std	2,s
	tfr	d,x
	jsr	_PutHex
L29:
	tfr	u,d
	anda	#0
	andb	#15
	tfr	d,x
	ldb	_HexAlphabet,x
	leas	4,s
	puls	u
	jmp	_PutChar
_DivMod10:
	ldd	#0
	bra	L31
L32:
	leax	-10000,x
	addd	#1000
L31:
	cmpx	#9999	;cmphi:
	bhi	L32
	bra	L39
L34:
	leax	-1000,x
	addd	#100
L39:
	cmpx	#999	;cmphi:
	bhi	L34
	bra	L40
L36:
	leax	-100,x
	addd	#10
L40:
	cmpx	#99	;cmphi:
	bhi	L36
	bra	L41
L38:
	leax	-10,x
	addd	#1
L41:
	cmpx	#9	;cmphi:
	bhi	L38
	std	[2,s]
	tfr	x,d	;movlsbqihi: R:x -> R:b
	rts
_PutDec:
	pshs	y,u
	leas	-2,s
	leau	,s
	leay	,x
	cmpx	#9	;cmphi:
	bls	L43
	ldd	#0
	pshs	u	;addhi: R:d += R:u
	addd	,s++
	pshs	d
	jsr	_DivMod10
	ldx	,u
	jsr	_PutDec
	leas	2,s
L43:
	ldd	#0
	pshs	u	;addhi: R:d += R:u
	addd	,s++
	pshs	d
	leax	,y
	jsr	_DivMod10
	addb	#48
	jsr	_PutChar
	leas	4,s
	puls	y,u,pc
_comma:
	pshs	u
	ldu	_here
	stx	,u
	leau	2,u
	stu	_here
	puls	u,pc
_unnest:
	ldx	_rp
	ldd	,x
	leax	2,x
	stx	_rp
	std	_ip
	rts
_semicolon:
	ldx	_unnester
	jsr	_comma
	ldd	#0
	std	_state
	rts
_docolon:
	pshs	u
	ldx	_rp
	leau	-2,x
	stu	_rp
	ldd	_ip
	std	-2,x
	ldd	_w
	addd	#2
	std	_ip
	puls	u,pc
_type:
	pshs	y,u
	leay	,x
	ldu	6,s
	bra	L49
L50:
	ldb	,y+
	jsr	_PutChar
	leau	-1,u
L49:
	cmpu	#0	;cmphi:
	bne	L50
	puls	y,u,pc
_parse_word:
	pshs	y,u
	leas	-6,s
	stx	4,s
	ldx	_num_source
	stx	2,s
	ldd	_source_adr
	std	,s
	ldx	_to_in
	bra	L54
L59:
	leax	,y
L54:
	cmpx	2,s	;cmphi:
	bhs	L60
L52:
	leay	1,x
	ldd	,s
	leau	d,x
	ldb	,u
	clra		;zero_extendqihi: R:b -> R:d
	cmpd	#32	;cmphi:
	ble	L59
L60:
	stx	_to_in
	ldd	_source_adr
	std	,s
	leau	d,x
	ldy	4,s
	stu	,y
	ldu	_to_in
	ldx	#0
	bra	L55
L58:
	leax	1,x
	leau	1,u
L55:
	cmpu	2,s	;cmphi:
	bhs	L61
L56:
	ldd	,s
	leay	d,u
	ldb	,y
	clra		;zero_extendqihi: R:b -> R:d
	tfr	d,y
	cmpd	#32	;cmphi:
	bgt	L58
L61:
	stu	_to_in
	leas	6,s
	puls	y,u,pc
_pop:
	pshs	u
	ldu	_sp
	ldx	,u
	leau	2,u
	stu	_sp
	puls	u,pc
_store:
	pshs	y,u
	jsr	_pop
	leay	,x
	jsr	_pop
	leau	,x
	stx	,y
	puls	y,u,pc
_drop:
	jmp	_pop
_push:
	pshs	y,u
	ldu	_sp
	leay	-2,u
	sty	_sp
	stx	-2,u
	puls	y,u,pc
_fetch:
	jsr	_pop
	ldx	,x
	jmp	_push
_doliteral:
	pshs	u
	ldu	_ip
	ldx	,u
	leau	2,u
	stu	_ip
	puls	u
	jmp	_push
_dovariable:
	ldd	_w
	addd	#2
	tfr	d,x
	jmp	_push
_doconstant:
	ldx	_w
	ldx	2,x
	jmp	_push
_divide:
	pshs	u
	jsr	_pop
	leau	,x
	jsr	_pop
	pshs	u
	jsr	_divhi3
	leas	2,s
	puls	u
	jmp	_push
_times:
	pshs	y,u
	jsr	_pop
	leay	,x
	jsr	_pop
	leau	,x
	pshs	x
	leax	,y
	jsr	_mulhi3
	leas	2,s
	puls	y,u
	jmp	_push
_minus:
	pshs	u
	jsr	_pop
	leau	,x
	jsr	_pop
	tfr	x,d
	pshs	u	;subhi: R:d -= R:u
	subd	,s++
	tfr	d,x
	puls	u
	jmp	_push
_plus:
	pshs	y,u
	jsr	_pop
	leay	,x
	jsr	_pop
	leau	,x
	tfr	y,d
	leax	d,x
	puls	y,u
	jmp	_push
_depth:
	ldd	#_stack+200
	subd	_sp	;subhi: R:d -= _sp
	asra
	rorb
	tfr	d,x
	jmp	_push
_dup:
	ldx	[_sp]
	jmp	_push
_do_finish:
	ldd	#1
	std	_finished
	rts
_ctype:
	pshs	u
	leau	,x
	jsr	_strlen
	pshs	x
	leax	,u
	jsr	_type
	leas	2,s
	puls	u,pc
LC0:
	.ascii "\nok \0"
LC1:
	.ascii "Not found: \0"
_loop:
	pshs	y,u
	leas	-15,s
	ldx	#LC0
	jsr	_ctype
	ldy	_source_len
	ldx	_source_adr
	stx	7,s
	ldu	#0
	stu	3,s
	jmp	L130
L129:
	ldb	_gReal
L80:
	cmpb	_gReal	;cmpqi:
	beq	L80
	ldb	_gKern+4
	ldu	#127
	tstb	;cmpqi:(ZERO)
	lbeq	L81
	ldx	#8
	ldb	#1
	stb	,s
L88:
	ldb	,s
	comb
	stb	-254
	ldb	-256
	comb
	andb	#127
	lbeq	L82
	stb	5,s
	ldb	#127
	stb	-254
	ldb	-256
	stb	2,s
	com	2,s
	ldb	2,s
	andb	#64
	stb	9,s
	clr	2,s
L84:
	ldb	,s
	clra		;zero_extendqihi: R:b -> R:d
	std	11,s
	anda	#0
	andb	#1
	cmpd	#0	;cmphi:
	bne	L83
	lsr	,s
	inc	2,s
	ldb	2,s
	cmpb	#8	;cmpqi:
	bne	L84
	ldb	#-1
	stb	2,s
L83:
	clr	,s
L86:
	ldb	5,s
	clra		;zero_extendqihi: R:b -> R:d
	std	11,s
	anda	#0
	andb	#1
	cmpd	#0	;cmphi:
	bne	L85
	lsr	5,s
	inc	,s
	ldb	,s
	cmpb	#8	;cmpqi:
	bne	L86
	ldb	#-1
	stb	,s
L85:
	ldb	,s
	aslb
	aslb
	aslb
	addb	2,s
	stb	,s
	ldb	9,s
	beq	L87
	ldb	#-128
	orb	,s
	stb	,s
L87:
	ldb	,s
	clra		;zero_extendqihi: R:b -> R:d
	tfr	d,u
	bra	L81
L82:
	asl	,s
	leax	-1,x
	cmpx	#0	;cmphi:
	lbne	L88
	ldu	#127
L81:
	tfr	u,d
	eora	_prev_code
	eorb	_prev_code+1
	anda	#0
	andb	#127
	cmpd	#0	;cmphi:
	lbeq	L129
	stu	_prev_code
	cmpu	#127	;cmphi:
	lbeq	L129
	tfr	u,d	;movlsbqihi: R:u -> R:b
	stb	,s
	andb	#127
	stb	2,s
	ldx	#_CocoKeyMap
	ldb	,s
	bpl	L91
	ldx	#_CocoKeyMapShifted
L91:
	ldb	2,s
	cmpb	#49	;cmpqi:
	bhi	L118
	clra		;zero_extendqihi: R:b -> R:d
	std	,s
	leax	d,x
	ldb	,x
	stb	,s
	beq	L92
	jsr	_PutChar
	ldb	,s
	cmpb	#10	;cmpqi:
	beq	L94
	cmpb	#13	;cmpqi:
	beq	L94
	cmpb	#8	;cmpqi:
	bne	L92
	leay	1,y
	ldd	3,s
	addd	#-1
	bra	L140
L118:
	clr	,s
L92:
	leay	-1,y
	ldd	7,s
	addd	3,s
	tfr	d,x
	ldb	,s
	stb	,x
	ldd	3,s
	addd	#1
L140:
	std	3,s
L130:
	cmpy	#0	;cmphi:
	lbne	L129
L94:
	ldu	3,s
	stu	_num_source
	ldd	#0
	std	_to_in
	jmp	L131
L113:
	ldx	13,s
	stx	5,s
	ldy	_last
	ldu	3,s
	jmp	L97
L105:
	ldb	2,y
	stb	7,s
	clra		;zero_extendqihi: R:b -> R:d
	std	,s
	anda	#0
	andb	#15
	pshs	u	;cmphi: R:u with R:d
	cmpd	,s++	;cmphi:
	lbne	L98
	leax	3,y
	stx	11,s
	ldx	5,s
	stx	9,s
	stu	3,s
	leax	,u
L101:
	ldu	9,s
	leau	1,u
	stu	9,s
	leau	-1,u
	ldb	,u+
	stb	,s
	ldu	11,s
	leau	1,u
	stu	11,s
	leau	-1,u
	ldb	,u+
	stb	2,s
	addb	#-97
	cmpb	#25	;cmpqi:
	bhi	L99
	ldb	2,s
	addb	#-32
	stb	2,s
L99:
	ldb	,s
	addb	#-97
	cmpb	#25	;cmpqi:
	bhi	L100
	ldb	,s
	addb	#-32
	stb	,s
L100:
	leax	-1,x
	ldb	2,s
	cmpb	,s	;cmpqi:
	bne	L139
	cmpx	#0	;cmphi:
	bne	L101
	bra	L142
L139:
	ldu	3,s
L98:
	ldy	,y
	bra	L97
L142:
	leax	18,y
	ldu	#1
	ldb	7,s
	bmi	L104
	ldu	#-1
	bra	L104
L97:
	cmpy	#0	;cmphi:
	lbne	L105
	bra	L143
L104:
	ldy	_state
	beq	L107
	cmpu	#-1	;cmphi:
	lbeq	L141
L107:
	stx	_executer
	ldu	#_executer
	stu	_ip
	ldd	#0
	std	_finished
L109:
	ldu	_ip
	ldx	,u
	stx	_w
	leau	2,u
	stu	_ip
	jsr	[,x]
	ldx	_finished
	beq	L109
	jmp	L131
L112:
	ldy	9,s
	leay	1,y
	sty	9,s
	leay	-1,y
	ldb	,y+
	clra		;zero_extendqihi: R:b -> R:d
	tfr	d,u
	leay	-48,u
	cmpy	#0	;cmphi:
	blt	L110
	leax	-1,x
	cmpy	#9	;cmphi:
	ble	L111
	bra	L110
L143:
	ldu	5,s
	ldx	3,s
	ldd	#0
	std	,s
	stu	9,s
	bra	L112
L110:
	ldx	#LC1
	jsr	_ctype
	ldx	3,s
	pshs	x
	ldx	7,s
	jsr	_type
	ldb	#10
	jsr	_PutChar
	ldy	_num_source
	sty	_to_in
	leas	2,s
	bra	L131
L114:
	ldx	_dolit
	jsr	_comma
	ldx	,s
L141:
	jsr	_comma
	bra	L131
L145:
	ldx	,s
	jsr	_push
L131:
	leax	13,s
	jsr	_parse_word
	stx	3,s
	lbne	L113
	bra	L144
L111:
	ldd	,s
	aslb
	rola
	std	,s
	aslb
	rola
	aslb
	rola
	addd	,s
	leay	d,y
	sty	,s
	cmpx	#0	;cmphi:
	lbne	L112
	ldx	_state
	bne	L114
	bra	L145
L144:
	leas	15,s
	puls	y,u,pc
LC2:
	.ascii "End of line while parsing word\n\0"
_safe_parse_word:
	pshs	u
	jsr	_parse_word
	leau	,x
	cmpx	#0	;cmphi:
	bne	L147
	ldx	#LC2
	jsr	_ctype
L147:
	leax	,u
	puls	u,pc
_Printf:
	pshs	y,u
	leas	-4,s
	leau	12,s
	ldy	10,s
	ldx	#31
	stx	2,s
	jmp	L149
L161:
	ldd	2,s
	addd	#-1
	std	2,s
	bne	L150
	ldb	#92
	jsr	_PutChar
	jmp	L148
L150:
	ldb	,s
	cmpb	#31	;cmpqi:
	bhi	L152
	ldb	#10
	bra	L162
L152:
	ldb	,s
	cmpb	#37	;cmpqi:
	beq	L154
L162:
	jsr	_PutChar
	sty	,s
	bra	L153
L154:
	leax	1,y
	stx	,s
	ldb	1,y
	cmpb	#115	;cmpqi:
	beq	L157
	bhi	L160
	cmpb	#100	;cmpqi:
	bne	L155
	bra	L158
L160:
	cmpb	#117	;cmpqi:
	beq	L158
	cmpb	#120	;cmpqi:
	bne	L155
	bra	L164
L158:
	leay	2,u
	ldx	,u
	jsr	_PutDec
	bra	L163
L164:
	leay	2,u
	ldx	,u
	jsr	_PutHex
	bra	L163
L157:
	leay	2,u
	ldx	,u
	jsr	_PutStr
L163:
	leau	,y
	bra	L153
L155:
	jsr	_PutChar
L153:
	ldx	,s
	leay	1,x
L149:
	ldb	,y
	stb	,s
	lbne	L161
L148:
	leas	4,s
	puls	y,u,pc
LC3:
	.ascii " => %d \0"
_print:
	jsr	_pop
	pshs	x
	ldx	#LC3
	stx	,--s
	jsr	_Printf
	leas	4,s
	rts
LC4:
	.ascii " is too long\n\0"
_header:
	pshs	y,u
	leas	-4,s
	ldd	10,s
	std	,s
	ldy	12,s
	sty	2,s
	cmpd	#15	;cmphi:
	bgt	L167
	ldy	_here
	bra	L168
L167:
	ldd	,s
	pshs	d
	jsr	_type
	ldx	#LC4
	leas	6,s
	puls	y,u
	jmp	_ctype
L168:
	leau	,y
	tfr	y,d
	anda	#0
	andb	#1
	leay	1,y
	cmpd	#0	;cmphi:
	bne	L168
	leay	20,u
	sty	_here
	ldd	_last
	std	,u
	stu	_last
	ldd	,s
	stb	2,u	;movlsbqihi: R:d -> 2,u
	leay	3,u
	bra	L169
L170:
	ldb	,x+
	stb	,y+
L169:
	ldd	,s
	addd	#-1
	std	,s
	cmpd	#-1	;cmphi:
	bne	L170
	ldx	2,s
	stx	18,u
	leas	4,s
	puls	y,u,pc
_cheader:
	pshs	y,u
	leau	,x
	jsr	_strlen
	ldy	6,s
	pshs	x,y
	leax	,u
	jsr	_header
	leas	4,s
	puls	y,u,pc
LC5:
	.ascii "-- Hello FORTH -- \0"
LC6:
	.ascii "exit\0"
LC7:
	.ascii ";\0"
LC8:
	.ascii ":\0"
LC9:
	.ascii "variable\0"
LC10:
	.ascii "constant\0"
LC11:
	.ascii "(literal)\0"
LC12:
	.ascii "+\0"
LC13:
	.ascii "-\0"
LC14:
	.ascii "*\0"
LC15:
	.ascii "/\0"
LC16:
	.ascii ".\0"
LC17:
	.ascii "drop\0"
LC18:
	.ascii "dup\0"
LC19:
	.ascii "depth\0"
LC20:
	.ascii "@\0"
LC21:
	.ascii "!\0"
LC22:
	.ascii "bye\0"

	.area	.text.startup

	.globl	_main
_main:
	pshs	u
;----- asm -----
;  5 "../nekot1/game_postlude.h" 1
	.globl __n1pre_entry
;--- end asm ---
	ldx	#__n1pre_entry
	stx	0
;----- asm -----
;  8 "../nekot1/game_postlude.h" 1
	.globl __n1pre_final
;--- end asm ---
	ldu	#__n1pre_final
	stu	0
;----- asm -----
;  11 "../nekot1/game_postlude.h" 1
	.globl __n1pre_final_startup
;--- end asm ---
	ldx	#__n1pre_final_startup
	stx	0
	clrb
	ldx	#15872
	jsr	_gTextScreen
	ldx	#15872
L174:
	ldu	#12079
	stu	,x++
	cmpx	#16384	;cmphi:
	bne	L174
	ldx	#16288
	stx	_cursor
	ldb	#-1
	stb	16288
	ldx	#LC5
	stx	,--s
	jsr	_Printf
	ldu	#_origin
	stu	_here
	ldx	#_unnest
	stx	,--s
	ldx	#LC6
	jsr	_cheader
	ldd	_last
	addd	#18
	std	_unnester
	ldx	#_semicolon
	stx	,--s
	ldx	#LC7
	jsr	_cheader
	ldx	_last
	ldb	2,x
	orb	#-128
	stb	2,x
	ldu	#_colon
	stu	,--s
	ldx	#LC8
	jsr	_cheader
	leas	8,s
	ldx	#_variable
	stx	,--s
	ldx	#LC9
	jsr	_cheader
	ldu	#_constant
	stu	,--s
	ldx	#LC10
	jsr	_cheader
	ldx	#_doliteral
	stx	,--s
	ldx	#LC11
	jsr	_cheader
	ldd	_last
	addd	#18
	std	_dolit
	ldx	#_plus
	stx	,--s
	ldx	#LC12
	jsr	_cheader
	leas	8,s
	ldu	#_minus
	stu	,--s
	ldx	#LC13
	jsr	_cheader
	ldx	#_times
	stx	,--s
	ldx	#LC14
	jsr	_cheader
	ldu	#_divide
	stu	,--s
	ldx	#LC15
	jsr	_cheader
	ldx	#_print
	stx	,--s
	ldx	#LC16
	jsr	_cheader
	leas	8,s
	ldu	#_drop
	stu	,--s
	ldx	#LC17
	jsr	_cheader
	ldx	#_dup
	stx	,--s
	ldx	#LC18
	jsr	_cheader
	ldu	#_depth
	stu	,--s
	ldx	#LC19
	jsr	_cheader
	ldx	#_fetch
	stx	,--s
	ldx	#LC20
	jsr	_cheader
	leas	8,s
	ldu	#_store
	stu	,--s
	ldx	#LC21
	jsr	_cheader
	ldx	#_bye
	stx	,--s
	ldx	#LC22
	jsr	_cheader
	ldu	#_return_stack+200
	stu	_rp
	ldd	#_stack+200
	std	_sp
	ldd	#-2
	std	_source_id
	ldx	#_tib
	stx	_source_adr
	ldu	#132
	stu	_source_len
	ldd	#0
	std	_num_source
	std	_to_in
	ldx	#__n1pre_final_startup
	stx	,--s
	ldu	#__n1pre_final
	stu	,--s
	ldx	#_loop
	jsr	_xAfterSetup
	leas	8,s
	ldx	#0
	puls	u,pc

	.area	.text
_variable:
	pshs	u
	leas	-2,s
	leax	,s
	jsr	_safe_parse_word
	cmpx	#0	;cmphi:
	beq	L176
	ldu	#_dovariable
	pshs	x,u
	ldx	4,s
	jsr	_header
	ldx	#0
	jsr	_comma
	leas	4,s
L176:
	leas	2,s
	puls	u,pc
_constant:
	pshs	u
	leas	-2,s
	leax	,s
	jsr	_safe_parse_word
	cmpx	#0	;cmphi:
	beq	L178
	ldu	#_doconstant
	pshs	x,u
	ldx	4,s
	jsr	_header
	jsr	_pop
	jsr	_comma
	leas	4,s
L178:
	leas	2,s
	puls	u,pc
_colon:
	pshs	u
	leas	-2,s
	leax	,s
	jsr	_safe_parse_word
	cmpx	#0	;cmphi:
	beq	L180
	ldu	#_docolon
	pshs	x,u
	ldx	4,s
	jsr	_header
	ldd	#1
	std	_state
	leas	4,s
L180:
	leas	2,s
	puls	u,pc
LC23:
	.ascii "** EXIT %d.  (HIT BREAK) \n\0"

	.globl	__exit
__exit:
	pshs	u
	leau	,x
	ldx	#LC23
	jsr	_PutStr
	bra	L183
L184:
	stu	16352
	leau	1,u
L183:
	ldb	_gKern+5
	bne	L184
L186:
	bra	L186

	.globl	_exit
_exit:
	pshs	u
	leau	,x
	pshs	x
	ldx	#LC23
	stx	,--s
	jsr	_Printf
	leas	4,s
	bra	L188
L189:
	stu	16352
	leau	1,u
L188:
	ldb	_gKern+5
	bne	L189
L191:
	bra	L191
_bye:
	ldx	#0
	jmp	_exit
LC24:
	.ascii "** ABORT. \n\0"

	.globl	_abort
_abort:
	ldx	#LC24
	stx	,--s
	jsr	_Printf
	ldx	#13
	jmp	_exit

	.globl	_fputc
_fputc:
	tfr	x,d	;movlsbqihi: R:x -> R:b
	jsr	_PutChar
	ldx	#0
	rts

	.globl	_isspace
_isspace:
	pshs	u
	ldu	#1
	cmpx	#32	;cmphi:
	ble	L196
	ldu	#0
L196:
	leax	,u
	puls	u,pc

	.area	.bss
_cursor:	.blkb	2

	.area	.text
_HexAlphabet:
	.ascii "0123456789ABCDEF\0"

	.area	.text.entry
__n1pre_entry:
	.byte	126
	.word	_main

	.area	.final
__n1pre_final:
	.word	-20754

	.area	.final.setup
__n1pre_final_startup:
	.word	-20753

	.area	.bss
_rp:	.blkb	2

	.area	.data.more
_return_stack:
	zmb	210	;skip space

	.area	.bss
_sp:	.blkb	2

	.area	.data.more
_stack:
	zmb	210	;skip space

	.area	.bss
_source_id:	.blkb	2
_source_adr:	.blkb	2

	.area	.data.more
_tib:
	zmb	132	;skip space

	.area	.bss
_source_len:	.blkb	2
_num_source:	.blkb	2
_to_in:	.blkb	2
_prev_code:	.blkb	2

	.area	.text
_CocoKeyMapShifted:
	.ascii "@ABCDEFGHIJKLMNOPQRSTUVWXYZ\0\0\010\0 \0!\042#$%&'()*+<=>?"
	.ascii "\n\0"
_CocoKeyMap:
	.ascii "@ABCDEFGHIJKLMNOPQRSTUVWXYZ\0\0\010\0 0123456789:;,-./"
	.ascii "\n\0"

	.area	.bss
_last:	.blkb	2
_state:	.blkb	2

	.area	.data
_executer:
	.word	0
	.word	_finisher

	.area	.bss
_ip:	.blkb	2
_finished:	.blkb	2
_w:	.blkb	2
_dolit:	.blkb	2
_here:	.blkb	2

	.area	.data.more
_origin:
	zmb	800	;skip space

	.area	.bss
_unnester:	.blkb	2

	.area	.data
_finisher:
	.word	_do_finish
  .area .absolute
  .globl  _gAlloc64
_gAlloc64            EQU  $0BDC
  .globl  _gConfig
_gConfig             EQU  $0607
  .globl  _gFatal
_gFatal              EQU  $0ABC
  .globl  _gFatalFIRQ
_gFatalFIRQ          EQU  $0B5F
  .globl  _gFatalNMI
_gFatalNMI           EQU  $0B75
  .globl  _gFatalSWI1
_gFatalSWI1          EQU  $0BB9
  .globl  _gFatalSWI2
_gFatalSWI2          EQU  $0BA3
  .globl  _gFatalSWI3
_gFatalSWI3          EQU  $0B8C
  .globl  _gFree64
_gFree64             EQU  $07AC
  .globl  _gIrqRestore
_gIrqRestore         EQU  $07A1
  .globl  _gIrqSaveAndDisable
_gIrqSaveAndDisable  EQU  $0794
  .globl  _gKern
_gKern               EQU  $0048
  .globl  _gModeScreen
_gModeScreen         EQU  $0A85
  .globl  _gNetworkLog
_gNetworkLog         EQU  $0DBD
  .globl  _gPMode1Screen
_gPMode1Screen       EQU  $0A6A
  .globl  _gReal
_gReal               EQU  $0022
  .globl  _gReceiveCast64
_gReceiveCast64      EQU  $084B
  .globl  _gScore
_gScore              EQU  $060B
  .globl  _gSendCast
_gSendCast           EQU  $0DF0
  .globl  _gTextScreen
_gTextScreen         EQU  $09A8
  .globl  _gWall
_gWall               EQU  $0026
  .globl  _memcpy
_memcpy              EQU  $08C1
  .globl  _memcpy_words
_memcpy_words        EQU  $0868
  .globl  _memset
_memset              EQU  $089B
  .globl  _memset_words
_memset_words        EQU  $0880
  .globl  _strlen
_strlen              EQU  $08E3
  .globl  _xAfterSetup
_xAfterSetup         EQU  $07CC
  .globl  _xSendControlPacket
_xSendControlPacket  EQU  $0DD6
