Subversion Repositories MB01 Project

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 - 1
;----------------------------------------------------------
2
; BIOS.INC
3
; PROGETTO: B1601
4
;
5
; funzioni BIOS
6
;----------------------------------------------------------
7
 
8
; il file puo' essere incluso solo all'interno di GLOBAL.INC
9
.IFNDEF		_GLOBAL_INC_
10
.EXIT		"ERROR: This file cannot be included."
11
.ENDIF
12
 
13
; system functions numbers (for cop instruction)
14
FN_TASKSW	.EQU	$00
15
 
16
 
17
FN_SETBRK	.EQU	$7F
18
FN_CBMFSCMD	.EQU	$80
19
FN_CBMFSRW	.EQU	$81
20
FN_CBMFSCLS	.EQU	$82
21
 
22
; equates for parameters access in system function
23
STKCNT		.SET	$04
24
STKYR		.SET	$09
25
STKXR		.SET	$0B
26
STKCR		.SET	$0D
27
STKSR		.SET	$0F
28
STKPCL		.SET	$10
29
STKPBR		.SET	$12
30
STKPRMS		.SET	$13
31
 
32
 
33
; CBM EMULATOR
34
CBMCOLD		.EQU	$FEFF00
35
 
36
OSINIT		.EQU	$F90000
37
MONITOR		.EQU	$FF0000
38
SYSMON		.EQU	$FF0003
39
BRKMON		.EQU	$FF0006
40
ALTSYSMON	.EQU	$FF0009
41
 
42
;---------------------------------------------------------------------------
43
; system call functions
44
;---------------------------------------------------------------------------
45
 
46
; set rtc time
47
RTCSETT		.MACRO
48
	.MLIST
49
	cop	$19
50
	.DB	$00
51
	.MNLIST
52
.ENDM
53
 
54
; set rtc date
55
RTCSETD		.MACRO
56
	.MLIST
57
	cop	$19
58
	.DB	$01
59
	.MNLIST
60
.ENDM
61
 
62
; get rtc time
63
RTCGETT		.MACRO
64
	.MLIST
65
	cop	$19
66
	.DB	$02
67
	.MNLIST
68
.ENDM
69
 
70
; get rtc date
71
RTCGETD		.MACRO
72
	.MLIST
73
	cop	$19
74
	.DB	$03
75
	.MNLIST
76
.ENDM
77
 
78
; task switch (no parm's, no arg's)
79
TASKSW		.MACRO
80
	.MLIST
81
	cop	FN_TASKSW
82
	.DB	$00
83
	.MNLIST
84
.ENDM
85
 
86
SCNPRINT	.MACRO
87
	.MLIST
88
	cop	$01
89
	.MNLIST
90
.ENDM
91
 
92
TXTPRINT	.MACRO
93
	.MLIST
94
	cop	$02
95
	.MNLIST
96
.ENDM
97
 
98
SCNSTROUT	.MACRO
99
	.MLIST
100
	cop	$03
101
	.MNLIST
102
.ENDM
103
 
104
TXTSTROUT	.MACRO
105
	.MLIST
106
	cop	$04
107
	.MNLIST
108
.ENDM
109
 
110
SCNCHAROUT	.MACRO
111
	.MLIST
112
	cop	$05
113
	.MNLIST
114
.ENDM
115
 
116
TXTCHAROUT	.MACRO
117
	.MLIST
118
	cop	$06
119
	.MNLIST
120
.ENDM
121
 
122
SCNPRCHAR	.MACRO
123
	.MLIST
124
	cop	$07
125
	.MNLIST
126
.ENDM
127
 
128
SCN_CR	.MACRO
129
	.MLIST
130
	SCNPRCHAR
131
	.MLIST
132
	.DB	$0D
133
	.MNLIST
134
.ENDM
135
 
136
TXTPRCHAR	.MACRO
137
	.MLIST
138
	cop	$08
139
	.MNLIST
140
.ENDM
141
 
142
TXT_CR	.MACRO
143
	.MLIST
144
	TXTPRCHAR
145
	.MLIST
146
	.DB	$0D
147
	.MNLIST
148
.ENDM
149
 
150
SCNPASSTR	.MACRO
151
	.MLIST
152
	cop	$0B
153
	.MNLIST
154
.ENDM
155
 
156
SCNTXTSTR	.MACRO
157
	.MLIST
158
	cop	$0C
159
	.MNLIST
160
.ENDM
161
 
162
SCNBUFOUT	.MACRO
163
	.MLIST
164
	cop	$0D
165
	.MNLIST
166
.ENDM
167
 
168
TXTBUFOUT	.MACRO
169
	.MLIST
170
	cop	$0E
171
	.MNLIST
172
.ENDM
173
 
174
KBCHARIN	.MACRO
175
	.MLIST
176
	cop	$0F
177
	.MNLIST
178
.ENDM
179
 
180
TXTCHARIN	.MACRO
181
	.MLIST
182
	cop	$10
183
	.MNLIST
184
.ENDM
185
 
186
BPRINTF		.MACRO
187
	.MLIST
188
	cop	$11
189
	.MNLIST
190
.ENDM
191
 
192
BSPRINTF	.MACRO
193
	.MLIST
194
	cop	$12
195
	.MNLIST
196
.ENDM
197
 
198
BVPRINTF	.MACRO
199
	.MLIST
200
	cop	$13
201
	.MNLIST
202
.ENDM
203
 
204
BSPRINTF2	.MACRO
205
	.MLIST
206
	cop	$14
207
	.MNLIST
208
.ENDM
209
 
210
DEVCHAROUT	.MACRO
211
	.MLIST
212
	cop	$15
213
	.MNLIST
214
.ENDM
215
 
216
DEVCHARIN	.MACRO
217
	.MLIST
218
	cop	$16
219
	.MNLIST
220
.ENDM
221
 
222
KBGETIN		.MACRO
223
	.MLIST
224
	cop	$17
225
	.MNLIST
226
.ENDM
227
 
228
SCNINIT		.MACRO
229
	.MLIST
230
	cop	$18
231
	.DB	$00
232
	.MNLIST
233
.ENDM
234
 
235
SCNCLR		.MACRO
236
	.MLIST
237
	cop	$18
238
	.DB	$01
239
	.MNLIST
240
.ENDM
241
 
242
SCNGETPOS	.MACRO
243
	.MLIST
244
	cop	$18
245
	.DB	$02
246
	.MNLIST
247
.ENDM
248
 
249
SCNSETPOS	.MACRO
250
	.MLIST
251
	cop	$18
252
	.DB	$03
253
	.MNLIST
254
.ENDM
255
 
256
SCNGETORG	.MACRO
257
	.MLIST
258
	cop	$18
259
	.DB	$04
260
	.MNLIST
261
.ENDM
262
 
263
SCNKEYFLG	.MACRO
264
	.MLIST
265
	cop	$18
266
	.DB	$05
267
	.MNLIST
268
.ENDM
269
 
270
SCNKEYCLR	.MACRO
271
	.MLIST
272
	cop	$18
273
	.DB	$06
274
	.MNLIST
275
.ENDM
276
 
277
SCNKEYBRK	.MACRO
278
	.MLIST
279
	cop	$18
280
	.DB	$07
281
	.MNLIST
282
.ENDM
283
 
284
SCNKEYBUF	.MACRO
285
	.MLIST
286
	cop	$18
287
	.DB	$08
288
	.MNLIST
289
.ENDM
290
 
291
;------------------------------
292
 
293
FDCRESET	.MACRO
294
	.MLIST
295
	cop	$30
296
	.DB	$00
297
	.MNLIST
298
.ENDM
299
 
300
FDCINIT		.MACRO
301
	.MLIST
302
	cop	$30
303
	.DB	$01
304
	.MNLIST
305
.ENDM
306
 
307
FDNEWRD		.MACRO
308
	.MLIST
309
	cop	$30
310
	.DB	$02
311
	.MNLIST
312
.ENDM
313
 
314
FDCTST		.MACRO
315
	.MLIST
316
	cop	$30
317
	.DB	$03
318
	.MNLIST
319
.ENDM
320
 
321
FDCGETFMT	.MACRO
322
	.MLIST
323
	cop	$30
324
	.DB	$04
325
	.MNLIST
326
.ENDM
327
 
328
FDCGETST	.MACRO
329
	.MLIST
330
	cop	$30
331
	.DB	$02
332
	.MNLIST
333
.ENDM
334
 
335
FDCREAD		.MACRO
336
	.MLIST
337
	cop	$31
338
	.DB	$00
339
	.MNLIST
340
.ENDM
341
 
342
FDCVERF		.MACRO
343
	.MLIST
344
	cop	$31
345
	.DB	$01
346
	.MNLIST
347
.ENDM
348
 
349
FDCWRITE	.MACRO
350
	.MLIST
351
	cop	$31
352
	.DB	$02
353
	.MNLIST
354
.ENDM
355
 
356
FDCFORMAT	.MACRO
357
	.MLIST
358
	cop	$33
359
	.MNLIST
360
.ENDM
361
 
362
FDCVERFMT	.MACRO
363
	.MLIST
364
	cop	$34
365
	.MNLIST
366
.ENDM
367
 
368
 
369
FDCTKRD		.MACRO
370
	.MLIST
371
	cop	$35
372
	.DB	$00
373
	.MNLIST
374
.ENDM
375
 
376
FDCTKVERF	.MACRO
377
	.MLIST
378
	cop	$35
379
	.DB	$01
380
	.MNLIST
381
.ENDM
382
 
383
FDCTKWR		.MACRO
384
	.MLIST
385
	cop	$35
386
	.DB	$02
387
	.MNLIST
388
.ENDM
389
 
390
FDCMKFS		.MACRO
391
	.MLIST
392
	cop	$36
393
	.MNLIST
394
.ENDM
395
 
396
ATAREAD		.MACRO
397
	.MLIST
398
	cop	$40
399
	.DB	$00
400
	.MNLIST
401
.ENDM
402
 
403
ATAVERF		.MACRO
404
	.MLIST
405
	cop	$40
406
	.DB	$01
407
	.MNLIST
408
.ENDM
409
 
410
ATAWRITE	.MACRO
411
	.MLIST
412
	cop	$40
413
	.DB	$02
414
	.MNLIST
415
.ENDM
416
 
417
ATACTL		.MACRO
418
	.MLIST
419
	cop	$41
420
	.MNLIST
421
.ENDM
422
 
423
ATADMARD	.MACRO
424
	.MLIST
425
	cop	$42
426
	.DB	$00
427
	.MNLIST
428
.ENDM
429
 
430
ATADMAWR	.MACRO
431
	.MLIST
432
	cop	$42
433
	.DB	$01
434
	.MNLIST
435
.ENDM
436
 
437
TRUENAM		.MACRO
438
	.MLIST
439
	cop	$FE
440
	.MNLIST
441
.ENDM
442
 
443
 
444
;============================================00
445
 
446
; SETBRK	set break level of a process
447
;
448
;	in:	C  = pages number to increase or decrease
449
;		     if C = 0 return current break level
450
;		CF = 0 -> increase pages, 1 -> decrease pages
451
;	out:	C  = previous break level if no error (CF = 0)
452
;		C  = maximum available pages or max. pages to decrease
453
SETBRK		.MACRO
454
	.MLIST
455
	cop	FN_SETBRK
456
	.MNLIST
457
.ENDM
458
 
459
; CBMFSCMD
460
CBMFSCMD	.MACRO
461
	.MLIST
462
	cop	FN_CBMFSCMD
463
	.MNLIST
464
.ENDM
465
 
466
CBMFSRD		.MACRO
467
	.MLIST
468
	cop	FN_CBMFSRW
469
	.DB	$00
470
	.MNLIST
471
.ENDM
472
 
473
CBMFSWR		.MACRO
474
	.MLIST
475
	cop	FN_CBMFSRW
476
	.DB	$01
477
	.MNLIST
478
.ENDM
479
 
480
CBMFSCLS	.MACRO
481
	.MLIST
482
	cop	FN_CBMFSCLS
483
	.MNLIST
484
.ENDM
485
 
486
;-------------- LIB
487
 
488
getopt		.EQU	$FA0000
489
strlen		.EQU	$FA0003
490
strcpy		.EQU	$FA0006