This repository was archived by the owner on Feb 10, 2025. It is now read-only.
forked from jblang/bbcbasic-z80
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhbios.inc
More file actions
94 lines (83 loc) · 3.66 KB
/
hbios.inc
File metadata and controls
94 lines (83 loc) · 3.66 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
; 0 - Use Fixed Port Numbers
HBIOS EQU 08
BF_VDA EQU $40
BF_VDAINI EQU BF_VDA + 0 ; INITIALIZE VDU
BF_VDAQRY EQU BF_VDA + 1 ; QUERY VDU STATUS
BF_VDARES EQU BF_VDA + 2 ; SOFT RESET VDU
BF_VDADEV EQU BF_VDA + 3 ; DEVICE INFO
BF_VDASCS EQU BF_VDA + 4 ; SET CURSOR STYLE
BF_VDASCP EQU BF_VDA + 5 ; SET CURSOR POSITION
BF_VDASAT EQU BF_VDA + 6 ; SET CHARACTER ATTRIBUTE
BF_VDASCO EQU BF_VDA + 7 ; SET CHARACTER COLOR
BF_VDAWRC EQU BF_VDA + 8 ; WRITE CHARACTER
BF_VDAFIL EQU BF_VDA + 9 ; FILL
BF_VDACPY EQU BF_VDA + 10 ; COPY
BF_VDASCR EQU BF_VDA + 11 ; SCROLL
BF_VDAKST EQU BF_VDA + 12 ; GET KEYBOARD STATUS
BF_VDAKFL EQU BF_VDA + 13 ; FLUSH KEYBOARD BUFFER
BF_VDAKRD EQU BF_VDA + 14 ; READ KEYBOARD
BF_SND EQU $50
BF_SNDRESET EQU BF_SND + 0 ; RESET SOUND SYSTEM
BF_SNDVOL EQU BF_SND + 1 ; REQUEST SOUND VOL - L CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489)
BF_SNDPRD EQU BF_SND + 2 ; REQUEST SOUND PERIOD - HL CONTAINS DRIVER SPECIFIC VALUE
BF_SNDNOTE EQU BF_SND + 3 ; REQUEST NOTE - L CONTAINS NOTE - EACH VALUE IS QUARTER NOTE
BF_SNDPLAY EQU BF_SND + 4 ; INITIATE THE REQUESTED SOUND COMMAND
BF_SNDQUERY EQU BF_SND + 5 ; E IS SUBFUNCTION
;
; BF_SNDQUERY SUBCOMMANDS
BF_SNDQ_STATUS EQU 0
BF_SNDQ_CHCNT EQU BF_SNDQ_STATUS + 1 ; RETURN COUNT OF CHANNELS
BF_SNDQ_VOLUME EQU BF_SNDQ_STATUS + 2 ; 8 BIT NUMBER
BF_SNDQ_PERIOD EQU BF_SNDQ_STATUS + 3 ; 16 BIT NUMBER
BF_SNDQ_DEV EQU BF_SNDQ_STATUS + 4 ; RETURN DEVICE TYPE CODE AND IO PORTS - TYPE IN B, PORTS IN DE, HL
BF_SNDDEV EQU 0 ; TYPES OF SOUND DRIVERS
BF_SND_SN76489 EQU BF_SNDDEV + 1
BF_SND_SNAY38910 EQU BF_SNDDEV + 2
BF_SYS EQU $F0
BF_SYSRESET EQU BF_SYS + 0 ; SOFT RESET HBIOS
BF_SYSVER EQU BF_SYS + 1 ; GET HBIOS VERSION
BF_SYSSETBNK EQU BF_SYS + 2 ; SET CURRENT BANK
BF_SYSGETBNK EQU BF_SYS + 3 ; GET CURRENT BANK
BF_SYSSETCPY EQU BF_SYS + 4 ; BANK MEMORY COPY SETUP
BF_SYSBNKCPY EQU BF_SYS + 5 ; BANK MEMORY COPY
BF_SYSALLOC EQU BF_SYS + 6 ; ALLOC HBIOS HEAP MEMORY
BF_SYSFREE EQU BF_SYS + 7 ; FREE HBIOS HEAP MEMORY
BF_SYSGET EQU BF_SYS + 8 ; GET HBIOS INFO
BF_SYSSET EQU BF_SYS + 9 ; SET HBIOS PARAMETERS
BF_SYSPEEK EQU BF_SYS + 10 ; GET A BYTE VALUE FROM ALT BANK
BF_SYSPOKE EQU BF_SYS + 11 ; SET A BYTE VALUE IN ALT BANK
BF_SYSINT EQU BF_SYS + 12 ; MANAGE INTERRUPT VECTORS
;
BF_SYSGET_CIOCNT EQU $00 ; GET CHAR UNIT COUNT
BF_SYSGET_CIOFN EQU $01 ; GET CIO UNIT FN/DATA ADR
BF_SYSGET_DIOCNT EQU $10 ; GET DISK UNIT COUNT
BF_SYSGET_DIOFN EQU $11 ; GET DIO UNIT FN/DATA ADR
BF_SYSGET_RTCCNT EQU $20 ; GET RTC UNIT COUNT
BF_SYSGET_VDACNT EQU $40 ; GET VDA UNIT COUNT
BF_SYSGET_VDAFN EQU $41 ; GET VDA UNIT FN/DATA ADR
BF_SYSGET_SNDCNT EQU $50 ; GET VDA UNIT COUNT
BF_SYSGET_SNDFN EQU $51 ; GET SND UNIT FN/DATA ADR
BF_SYSGET_TIMER EQU $D0 ; GET CURRENT TIMER VALUE
BF_SYSGET_SECS EQU $D1 ; GET CURRENT SECONDS VALUE
BF_SYSGET_BOOTINFO EQU $E0 ; GET BOOT INFORMATION
BF_SYSGET_CPUINFO EQU $F0 ; GET CPU INFORMATION
BF_SYSGET_MEMINFO EQU $F1 ; GET MEMORY CAPACTITY INFO
BF_SYSGET_BNKINFO EQU $F2 ; GET BANK ASSIGNMENT INFO
;
BF_SYSSET_TIMER EQU $D0 ; SET TIMER VALUE
BF_SYSSET_SECS EQU $D1 ; SET SECONDS VALUE
BF_SYSSET_BOOTINFO EQU $E0 ; SET BOOT INFORMATION
;
BF_SYSINT_INFO EQU $00 ; GET INTERRUPT SYSTEM INFO
BF_SYSINT_GET EQU $10 ; GET INT VECTOR ADDRESS
BF_SYSINT_SET EQU $20 ; SET INT VECTOR ADDRESS
;
CIO_CONSOLE EQU $80 ; CIO UNIT NUM FOR CUR CON
;
SYSGET_TIMER EQU (BF_SYSGET << 8) + BF_SYSGET_TIMER
SYSSET_TIMER EQU (BF_SYSSET << 8) + BF_SYSSET_TIMER
SYSGET_SNDCNT EQU (BF_SYSGET << 8) + BF_SYSGET_SNDCNT
SYSGET_VDAFN EQU (BF_SYSGET << 8) + BF_SYSGET_VDAFN
#define CALL_HBIOS RST 08
HCB_BIDUSR EQU $8E ; USER BANK (TPA)
HCB_BIDBIOS EQU $8D ; BIOS BANK (HBIOS, UBIOS)