aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/words/quit.asm
blob: 2a30e4ca21e9e9994e3c676305a9ae786024bfa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
; ( -- ) 
; System
; main loop of amforth. accept - interpret in an endless loop

.if cpu_msp430==1
    HEADER(XT_QUIT,4,"quit",DOCOLON)
.endif

.if cpu_avr8==1
VE_QUIT:
    .dw $ff04
    .db "quit"
    .dw VE_HEAD
    .set VE_HEAD = VE_QUIT
XT_QUIT:
    .dw DO_COLON
.endif
PFA_QUIT:
    .dw XT_LP0,XT_LP,XT_STORE
    .dw XT_SP0
    .dw XT_SP_STORE
    .dw XT_RP0
    .dw XT_RP_STORE
    .dw XT_LBRACKET

PFA_QUIT2:
    .dw XT_STATE
    .dw XT_FETCH
    .dw XT_ZEROEQUAL
    .dw XT_DOCONDBRANCH
    DEST(PFA_QUIT4)
    .dw XT_PROMPTREADY
PFA_QUIT4:
    .dw XT_REFILL
    .dw XT_DOCONDBRANCH
    DEST(PFA_QUIT3)
    .dw XT_DOLITERAL
    .dw XT_INTERPRET
    .dw XT_CATCH
    .dw XT_QDUP
    .dw XT_DOCONDBRANCH
    DEST(PFA_QUIT3)
	.dw XT_DUP
	.dw XT_DOLITERAL
	.dw -2
	.dw XT_LESS
	.dw XT_DOCONDBRANCH
	DEST(PFA_QUIT5)
	.dw XT_PROMPTERROR
PFA_QUIT5:
	.dw XT_DOBRANCH
	DEST(PFA_QUIT)
PFA_QUIT3:
    .dw XT_PROMPTOK
    .dw XT_DOBRANCH
    DEST(PFA_QUIT2)
;    .dw XT_EXIT ; never reached