-
Notifications
You must be signed in to change notification settings - Fork 1
/
console.h
184 lines (173 loc) · 2.44 KB
/
console.h
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#pragma once
#include "comm.h"
extern string udp_msg;
extern std::mutex g_mutex;
void handle_cmd(string & str);
void push_message(char* msg);
string get_message();
// compile below with 6502 macroassembler and simulator,
// "save code" as intel-hex format, then use convert.sh
/*=======
nc2600
=======*/
//for put:
/*
INT:.MACRO INT_PARAM
.DB $00
.DW INT_PARAM
.ENDM
.ORG $3000
CREATE:
LDA #$70
STA $0912
LDA #$EF
STA $0913
STA $0914
INT $0514
WRITE:
LDA #$00
STA $3f6
LDA $3FFF
CMP #$00
BEQ PREEND
LDA $3FFF
STA $3200
LDA #$00
STA $DD
LDA #$32
STA $DE
LDA #$1
STA $090F
LDA #$0
STA $0910
STA $0911
INT $0517
JMP WRITE
PREEND:
INT $0516
END: INT $0527
JMP END
*/
//for get:
/*
INT:.MACRO INT_PARAM
.DB $00
.DW INT_PARAM
.ENDM
.ORG $3000
CREATE:
LDA #$80 ; open mode
STA $0912
LDA #$EF ; file mode for create not really needed
STA $0913
STA $0914
INT $0514
READ:
LDA #$00
STA $3f6 ;prevent auto shutdown
LDA #$00
STA $DD
LDA #$32
STA $DE
LDA #$1 ; read 1 byte
STA $090F
LDA #$0 ; read 1 byte (high value 0)
STA $0910
STA $0911
INT $0515 ; read
LDA $090F ; actual read byte here
BEQ PREEND ;
LDA #$1
STA $3FFF
LDA $3200
STA $3FFF
JMP READ
PREEND:
LDA #$0
STA $3FFF ;indicate dummy close
INT $0516 ;close file
END: INT $0527 ;open file manager
JMP END
*/
/*=======
nc2000
=======*/
//for put
/*
INT:.MACRO INT_PARAM
.DB $00
.DW INT_PARAM
.ENDM
.ORG $3000
CREATE:
LDA #$70
STA $08fa
LDA #$EF
STA $08fb
STA $08fc
INT $0515
WRITE:
LDA #$00
STA $3f6
LDA $3FFF
CMP #$00
BEQ PREEND
LDA $3FFF
STA $3200
LDA #$00
STA $DD
LDA #$32
STA $DE
LDA #$1
STA $08f7
LDA #$0
STA $08f8
STA $08f9 ;not really needed maybe
INT $0518
JMP WRITE
PREEND:
INT $0517
END: INT $0528
JMP END
*/
/*=======
nc3000
========*/
//put
/*
INT:.MACRO INT_PARAM
.DB $00
.DW INT_PARAM
.ENDM
.ORG $3000
CREATE:
LDA #$70
STA $08c9
LDA #$EF
STA $08ca
STA $08cb
INT $0515
WRITE:
LDA #$00
STA $3f6
LDA $3FFF
CMP #$00
BEQ PREEND
LDA $3FFF
STA $3200
LDA #$00
STA $e0
LDA #$32
STA $e1
LDA #$1
STA $08c6
LDA #$0
STA $08c7
STA $08c8
INT $0518
JMP WRITE
PREEND:
INT $0517
END: INT $0528
JMP END
*/