Changeset 199 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc


Ignore:
Timestamp:
Nov 21, 2011, 11:01:08 AM (13 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Adding proper serial port support to the Configurator, which required some minor changes elsewhere. Also added an option, off by default, to automatically scan for serial drives at the end of normal drive detection (no ALT key required, although that is still available if the option is off).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc

    r196 r199  
    3434
    3535; Bit defines for ROMVARS.wFlags
    36 FLG_ROMVARS_FULLMODE        EQU (1<<0)  ; Full operating mode (steals base RAM, supports EBIOS etc.)
    37 FLG_ROMVARS_DRVXLAT         EQU (1<<2)  ; Enable drive number translation
    38 FLG_ROMVARS_MODULE_SERIAL   EQU (1<<3)
    39 FLG_ROMVARS_MODULE_EBIOS    EQU (1<<4)
     36FLG_ROMVARS_FULLMODE                EQU (1<<0)  ; Full operating mode (steals base RAM, supports EBIOS etc.)
     37FLG_ROMVARS_DRVXLAT                 EQU (1<<2)  ; Enable drive number translation
     38FLG_ROMVARS_SERIAL_SCANDETECT       EQU (1<<3)  ; Scan COM ports at the end of drive detection.  Can also be invoked
     39                                                ; by holding down the ALT key at the end of drive detection.
     40                                                ; (Conveniently, this is 8, a fact we exploit when testing the bit)
     41FLG_ROMVARS_MODULE_SERIAL           EQU (1<<6)  ; Here in case the configuration needs to know functionality is present
     42FLG_ROMVARS_MODULE_EBIOS            EQU (1<<7)  ; Here in case the configuration needs to know functionality is present
    4043
    4144; Boot Menu Display Modes (see Assembly Library Display.inc for standard modes)
     
    5861endstruc
    5962
     63; Default values for Port and PortCtrl, shared with the configurator
     64;
     65DEVICE_XTIDE_DEFAULT_PORT               EQU     300h
     66DEVICE_XTIDE_DEFAULT_PORTCTRL           EQU     308h
     67DEVICE_ATA_DEFAULT_PORT                 EQU     1F0h
     68DEVICE_ATA_DEFAULT_PORTCTRL             EQU     3F0h
     69DEVICE_SERIAL_DEFAULT_COM               EQU     0       ; COM1
     70DEVICE_SERIAL_DEFAULT_BAUD              EQU     1       ; 9600
     71
    6072; Device types for IDEVARS.bDevice
     73;
    6174DEVICE_8BIT_DUAL_PORT_XTIDE             EQU (0<<1)
    6275DEVICE_XTIDE_WITH_REVERSED_A3_AND_A0    EQU (1<<1)
     
    6578DEVICE_32BIT_ATA                        EQU (4<<1)
    6679DEVICE_SERIAL_PORT                      EQU (5<<1)
     80
    6781
    6882; Master/Slave drive specific parameters
     
    8094
    8195
     96; Defines for IDEVARS.bSerialPackedPortAndBaud (same format used by DPT.bSerialPortAndBaud)
     97;
     98; pppp ppbb
     99;   i/o port address = p * 2 + 240h
     100;   baud rate = b, where 00 = 2400, 01 = 9600, 10 = 38.4K, 11 = 115.2K
     101;
     102DEVICE_SERIAL_PACKEDPORTANDBAUD_PORTMASK        EQU     0fch
     103DEVICE_SERIAL_PACKEDPORTANDBAUD_PORTBITS        EQU     03fh
     104DEVICE_SERIAL_PACKEDPORTANDBAUD_STARTINGPORT    EQU     240h
     105DEVICE_SERIAL_PACKEDPORTANDBAUD_BAUDMASK        EQU     3h
     106DEVICE_SERIAL_PACKEDPORTANDBAUD_BAUDBITS        EQU     3h
     107
     108; Defines for IDEVARS.wSerialPrintBaud
     109;
     110; pppp ppnn nnnn nnnn
     111;   unsigned number to output = n
     112;   postfix character = p + '0' (designed for '0' and 'K', although other values are possible)
     113;
     114; Note that the contents of this word is only used for printing by the BIOS when a drive is detected. 
     115; It is not used for any other purpose, and so long as it conforms to the structure, any values can be used.
     116;
     117DEVICE_SERIAL_PRINTBAUD_NUMBERMASK      EQU     003ffh
     118DEVICE_SERIAL_PRINTBAUD_POSTCHARMASK    EQU     0fc00h
     119DEVICE_SERIAL_PRINTBAUD_POSTCHARADD     EQU     '0'
     120;
     121; These are defined here (instead of in the configurator) for consistency since they could also be used
     122; in main.asm as a default for an IDEVARS structure.
     123;
     124DEVICE_SERIAL_PRINTBAUD_2400  EQU ((('0'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 240)       ; Prints "2400"
     125DEVICE_SERIAL_PRINTBAUD_9600  EQU ((('0'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 960)       ; Prints "9600"
     126DEVICE_SERIAL_PRINTBAUD_38_4  EQU ((('K'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 38)        ; Prints "38K"
     127DEVICE_SERIAL_PRINTBAUD_115_2 EQU ((('K'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 115)       ; Prints "115K"
     128
     129;
     130; COM Number to I/O Port Address Mapping
     131;
     132; COM Number:                               1,    2,    3,    4,    5,    6,    7,    8,    9,   10,   11,   12     
     133; Corresponds to I/O port:                3f8,  2f8,  3e8,  2e8,  2f0,  3e0,  2e0,  260,  368,  268,  360,  270
     134; Corresponds to Packed I/O port (hex):    37,   17,   35,   15,   16,   34,   14,    4,   25,    5,   24,    6
     135;
     136DEVICE_SERIAL_COM1  EQU     3f8h
     137DEVICE_SERIAL_COM2  EQU     2f8h
     138DEVICE_SERIAL_COM3  EQU     3e8h
     139DEVICE_SERIAL_COM4  EQU     2e8h
     140DEVICE_SERIAL_COM5  EQU     2f0h
     141DEVICE_SERIAL_COM6  EQU     3e0h
     142DEVICE_SERIAL_COM7  EQU     2e0h
     143DEVICE_SERIAL_COM8  EQU     260h
     144DEVICE_SERIAL_COM9  EQU     368h
     145DEVICE_SERIAL_COMA  EQU     268h
     146DEVICE_SERIAL_COMB  EQU     360h
     147DEVICE_SERIAL_COMC  EQU     270h
     148
     149
    82150%endif ; ROMVARS_INC
Note: See TracChangeset for help on using the changeset viewer.