aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/words/tib.asm
blob: ca5601f533b88f40ec48a0d0b51da29c38a28cf9 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
; ( -- f ) 
; System
; refills the input buffer
.if cpu_msp430==1
    HEADER(XT_REFILLTIB,10,"refill-tib",DOCOLON)
.endif

.if cpu_avr8==1
VE_REFILLTIB:
    .dw $ff0a
    .db "refill-tib"
    .dw VE_HEAD
    .set VE_HEAD = VE_REFILLTIB
XT_REFILLTIB:
    .dw DO_COLON
PFA_REFILLTIB:
.endif
    .dw XT_TIB
    .dw XT_DOLITERAL
    .dw TIB_SIZE
    .dw XT_ACCEPT
    .dw XT_NUMBERTIB
    .dw XT_STORE
    .dw XT_ZERO
    .dw XT_TO_IN
    .dw XT_STORE
    .dw XT_TRUE ; -1
    .dw XT_EXIT

; ( -- addr n ) 
; System
; address and current length of the input buffer
.if cpu_msp430==1
    HEADER(XT_SOURCETIB,10,"source-tib",DOCOLON)
.endif

.if cpu_avr8==1
VE_SOURCETIB:
    .dw $FF0A
    .db "source-tib"
    .dw VE_HEAD
    .set VE_HEAD = VE_SOURCETIB
XT_SOURCETIB:
    .dw DO_COLON
PFA_SOURCETIB:
.endif
    .dw XT_TIB
    .dw XT_NUMBERTIB
    .dw XT_FETCH
    .dw XT_EXIT

; ( -- addr ) 
; System Variable
; terminal input buffer address
.if cpu_msp430==1
    VARIABLE(XT_TIB,3,"tib")
        .DW TIBAREA
.endif

.if cpu_avr8==1
VE_TIB:
    .dw $ff03
    .db "tib",0
    .dw VE_HEAD
    .set VE_HEAD = VE_TIB
XT_TIB:
    .dw PFA_DOVARIABLE
PFA_TIB:
    .dw ram_tib
.dseg
ram_tib: .byte TIB_SIZE
.cseg
.endif

; ( -- addr ) 
; System Variable
; variable holding the number of characters in TIB
.if cpu_msp430==1
    VARIABLE(XT_NUMBERTIB,4,"#tib")
        .DW RAM_NUMBERTIB
.endif

.if cpu_avr8==1
VE_NUMBERTIB:
    .dw $ff04
    .db "#tib"
    .dw VE_HEAD
    .set VE_HEAD  = VE_NUMBERTIB
XT_NUMBERTIB:
    .dw PFA_DOVARIABLE
PFA_NUMBERTIB:
    .dw ram_sharptib
.dseg
ram_sharptib: .byte 2
.cseg
.endif