-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path19 - Tutorial Nineteen.asm
115 lines (104 loc) · 2.86 KB
/
19 - Tutorial Nineteen.asm
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
;*******************************************************************************
;* Tutorial Nineteen Output to a device using Kernel Jump Vectors *
;* *
;* Written By John C. Dale *
;* Tutorial #19 *
;* Date : 22nd Aug, 2017 *
;* *
;*******************************************************************************
;* *
;*******************************************************************************
;*******************************************************************************
;* Kernel Vector Constants *
;*******************************************************************************
CHROUT = $FFD2
CHKOUT = $FFC9
OPEN = $FFC0
SETLFS = $FFBA
SETNAM = $FFBD
CLRCHN = $FFCC
CLOSE = $FFC3
PRINTSTRING = $AB1E
*=$9000
;jmp PRINTTODEFAULT
;jmp PRINTTOPRINTER
;jmp PRINTTOTAPE
;jmp PRINTTODISK
TESTFILENAME
TEXT "johntest"
BRK
TESTFILENAMEDISK
TEXT "johntest,seq,write"
BRK
TESTTEXT
TEXT "this is to test the output jump vectors"
BRK
PRINTTODEFAULT
ldx #$00
lda #<TESTTEXT
ldy #>TESTTEXT
jsr PRINTSTRING
rts
PRINTTOPRINTER
lda #4 ; Logical File Number
tax ; Device Number (Printer Device #4)
ldy #255 ; Secondary Address
jsr SETLFS
lda #0
ldx #255
ldy #255
jsr SETNAM
jsr OPEN
ldx #4 ; Logical File Number
jsr CHKOUT
jsr PRINTTODEFAULT
;ldx #$00
;lda #<TESTTEXT
;ldy #>TESTTEXT
;jsr PRINTSTRING
jsr CLRCHN
lda #4 ; Logical File Number
jsr CLOSE
rts
PRINTTOTAPE
lda #1 ; Logical File Number
tax ; Device Number (Tape Device #1)
ldy #255 ; Secondary Address
jsr SETLFS
lda #8
ldx #<TESTFILENAME
ldy #>TESTFILENAME
jsr SETNAM
jsr OPEN
ldx #1 ; Logical File Number
jsr CHKOUT
jsr PRINTTODEFAULT
;ldx #$00
;lda #<TESTTEXT
;ldy #>TESTTEXT
;jsr PRINTSTRING
jsr CLRCHN
lda #1 ; Logical File Number
jsr CLOSE
RTS
PRINTTODISK
lda #8 ; Logical File Number
tax ; Device Number (Disk Drive 8)
ldy #2 ; Secondary Address
jsr SETLFS
lda #18
ldx #<TESTFILENAMEDISK
ldy #>TESTFILENAMEDISK
jsr SETNAM
jsr OPEN
ldx #8 ; Logical File Number
jsr CHKOUT
jsr PRINTTODEFAULT
;ldx #$00
;lda #<TESTTEXT
;ldy #>TESTTEXT
;jsr PRINTSTRING
jsr CLRCHN
lda #8 ; Logical File Number
jsr CLOSE
RTS