source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc @ 179

Last change on this file since 179 was 179, checked in by gregli@…, 13 years ago

Main checkin, adding virtual IDE drive over serial port connection

File size: 2.0 KB
Line 
1; Project name  :   XTIDE Universal BIOS
2; Description   :   RAMVARS struct containing BIOS variables stored in RAM.
3%ifndef RAMVARS_INC
4%define RAMVARS_INC
5
6; Segment when RAMVARS is stored to top of interrupt vectors.
7LITE_MODE_RAMVARS_SEGMENT   EQU     30h
8
9
10; Variables for translating drive numbers.
11struc XLATEVARS
12    .bFDSwap        resb    1   ; Floppy Drive to swap to 00h and vice versa
13    .bHDSwap        resb    1   ; Hard Drive to swap to 80h and vice versa
14    .bXlatedDrv     resb    1   ; Drive number after translation
15                    resb    1   ; For WORD alignment
16endstruc
17
18; RAM Variables.
19; Variables should be kept to minimum since they might be located
20; at the top of interrupt vectors.
21struc RAMVARS
22    .fpOldI13h          resb    4   ; Far pointer to old INT 13h handler
23    .wSignature         resb    2   ; Sign for finding stolen 1 kiB
24    .bTimeoutTicksLeft  resb    1
25    .bLastTimeoutUpdate resb    1
26
27    .wDrvCntAndFirst:
28    .bDrvCnt            resb    1   ; Number of drives handled by this BIOS
29    .bFirstDrv          resb    1   ; Number of first drive for this BIOS
30
31    ; Variables for drive number translation
32    .xlateVars      resb    XLATEVARS_size
33endstruc
34
35RAMVARS_SIGNATURE       EQU "Xu"    ; RAMVARS signature for .wSignature
36
37;
38; IDEPACK NOTE: The first six bytes of this structure are directly put on the
39; wire for MODULE_SERIAL, please do not change the order or insert other members.
40;
41struc IDEPACK
42    .bFeatures              resb    1
43    .bDrvAndHead            resb    1   ; LBA28 27...24
44
45    .wSectorCountAndLbaLow:
46    .bSectorCount           resb    1
47    .bSectorNumber:
48    .bLbaLow                resb    1   ; LBA 7...0
49
50    .wCylinder:
51    .wLbaMiddleAndHigh:
52    .bLbaMiddle             resb    1   ; LBA 15...8
53    .bLbaHigh               resb    1   ; LBA 23...16
54
55    .bCommand               resb    1
56    .bDeviceControl         resb    1   ; Offset 7 shared with PIOVARS
57
58    ; Parameters for 48-bit LBA
59    .wSectorCountHighAndLbaLowExt:
60    .bSectorCountHighExt    resb    1
61    .bLbaLowExt             resb    1   ; LBA48 31...24
62
63    .wLbaMiddleAndHighExt:
64    .bLbaMiddleExt          resb    1   ; LBA48 39...32
65    .bLbaHighExt            resb    1   ; LBA48 47...40
66
67    .intpack                resb    INTPACK_size
68endstruc
69
70EXTRA_BYTES_FOR_INTPACK     EQU (IDEPACK_size - INTPACK_size)
71
72
73%endif ; RAMVARS_INC
Note: See TracBrowser for help on using the repository browser.