-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path20 - Tutorial Twenty.asm
More file actions
101 lines (87 loc) · 2.48 KB
/
20 - Tutorial Twenty.asm
File metadata and controls
101 lines (87 loc) · 2.48 KB
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
97
98
99
100
101
;*******************************************************************************
;* Tutorial Twenty-One Input from a device using Kernel Jump Vectors *
;* *
;* Written By John C. Dale *
;* Tutorial #21 *
;* Date : 29th Sep, 2017 *
;* *
;*******************************************************************************
;* *
;*******************************************************************************
;*******************************************************************************
;* Kernel Vector Constants *
;*******************************************************************************
CHROUT = $FFD2
CHRIN = $FFCF
CHKIN = $FFC6
CHKOUT = $FFC9
OPEN = $FFC0
SETLFS = $FFBA
SETNAM = $FFBD
CLRCHN = $FFCC
CLOSE = $FFC3
PRINTSTRING = $AB1E
BUFFERTEXT = $0200
*=$9000
;jmp INPUTFROMDEFAULT
;jmp INPUTFROMTAPE
;jmp INPUTFROMDISK
TESTFILENAME
TEXT "johntest"
BRK
TESTFILENAMEDISK
TEXT "johntest,seq,read"
BRK
TESTTEXT
TEXT " "
BRK
INPUTFROMDEFAULT
jsr INPUTSTRING
rts
INPUTFROMTAPE
lda #1 ; Logical File Number
tax ; Device Number (Tape Device #1)
ldy #0 ; Secondary Address (0 = Loading)
jsr SETLFS
lda #8
ldx #<TESTFILENAME
ldy #>TESTFILENAME
jsr SETNAM
jsr OPEN
ldx #1 ; Logical File Number
jsr CHKIN
jsr INPUTFROMDEFAULT
jsr CLRCHN
lda #1 ; Logical File Number
jsr CLOSE
RTS
INPUTFROMDISK
lda #8 ; Logical File Number
tax ; Device Number (Disk Drive 8)
ldy #2 ; Secondary Address
jsr SETLFS
lda #17
ldx #<TESTFILENAMEDISK
ldy #>TESTFILENAMEDISK
jsr SETNAM
jsr OPEN
ldx #8 ; Logical File Number
jsr CHKIN
NOCHKOUTERRORFOUND
jsr INPUTFROMDEFAULT
jsr CLRCHN
lda #8 ; Logical File Number
jsr CLOSE
RTS
INPUTSTRING
ldx #0
@INPUTSTRINGLOOP
jsr $e112
cmp #13
beq @INPUTEND
sta TESTTEXT,x
inx
cpx #56
bcc @INPUTSTRINGLOOP
@INPUTEND
RTS