Changeset 233 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm


Ignore:
Timestamp:
Feb 4, 2012, 6:21:22 PM (12 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Serial Port: split single byte port and baud into two bytes, taking advantage of the two bytes in DPT_SERIAL, which supports more serial baud rates and in particular fixed a bug where a 4x client machine couldn't talk to a 115.2K server machine. This is a wide change, touching lots of files, but most are shallow changes. DetectPrint.asm took the most significant changes, now it calculates the baud rate to display instead of using characters provided by the Configurator. The Configurator now has a new menu flag, FLG_MENUITEM_CHOICESTRINGS, for specifying that values are not linear and they should be lookedup rather than indexed. Finally, another important bug fixed here is that in some error cases, the serial port code could get into an infinite loop waiting ont the hardware; now it has a timeout.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r197 r233  
    2020g_szRomAt:      ; db    "%s @ %x",LF,CR,NULL
    2121                ; db     25h,  73h,  20h,  40h,  20h,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
    22                   db     34h,  20h, 0c6h,  39h,  1bh                                  ; compressed
    23 
    24 
    25 g_szMaster:             ; db    "IDE Master at ",NULL
    26                         ; db     49h,  44h,  45h,  20h,  4dh,  61h,  73h,  74h,  65h,  72h,  20h,  61h,  74h,  20h,  00h    ; uncompressed
    27                           db     4fh,  4ah, 0cbh,  53h,  67h,  79h,  7ah,  6bh, 0f8h,  67h,  7ah,  00h                      ; compressed
    28 
    29 g_szSlave:              ; db    "IDE Slave  at ",NULL
    30                         ; db     49h,  44h,  45h,  20h,  53h,  6ch,  61h,  76h,  65h,  20h,  20h,  61h,  74h,  20h,  00h    ; uncompressed
    31                           db     4fh,  4ah, 0cbh,  59h,  72h,  67h,  7ch, 0ebh,  20h,  67h,  7ah,  00h                      ; compressed
    32 
    33 g_szDetect:             ; db    "%s%x: ",NULL                      ; IDE Master at 1F0h:
    34                         ; db     25h,  73h,  25h,  78h,  3ah,  20h,  00h    ; uncompressed
    35                           db     34h,  39h,  40h,  00h                      ; compressed
    36 
    37 g_szDetectCOM:          ; db  "%sCOM%c/%u%c: ",NULL              ; IDE Master at COM1/115K:     
    38                         ; db   25h,  73h,  43h,  4fh,  4dh,  25h,  63h,  2fh,  25h,  75h,  25h,  63h,  3ah,  20h,  00h    ; uncompressed
    39                           db   34h,  49h,  55h,  53h,  35h,  2ah,  37h,  35h,  40h,  00h                                  ; compressed
    40 
    41 g_szDetectCOMAuto:      ; db  "%sCOM Detect: ",NULL            ; IDE Master at COM Detect:
    42                         ; db   25h,  73h,  43h,  4fh,  4dh,  20h,  44h,  65h,  74h,  65h,  63h,  74h,  3ah,  20h,  00h    ; uncompressed
    43                           db   34h,  49h,  55h, 0d3h,  4ah,  6bh,  7ah,  6bh,  69h,  7ah,  40h,  00h                      ; compressed
    44 
     22                  db     3eh,  20h, 0c6h,  39h,  1bh                                  ; compressed
     23
     24
     25; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
     26; To support an optimization in that code, these strings must start on the same 256 byte page,
     27; which is checked at assembly time below.
     28;
     29g_szDetectStart:       
     30g_szDetectMaster:       ; db    "Master",NULL
     31                        ; db     4dh,  61h,  73h,  74h,  65h,  72h,  00h    ; uncompressed
     32                          db     53h,  67h,  79h,  7ah,  6bh, 0b8h          ; compressed
     33
     34g_szDetectSlave:        ; db    "Slave ",NULL
     35                        ; db     53h,  6ch,  61h,  76h,  65h,  20h,  00h    ; uncompressed
     36                          db     59h,  72h,  67h,  7ch,  6bh,  00h          ; compressed
     37
     38g_szDetectOuter:        ; db    "IDE %s at %s: ",NULL
     39                        ; db     49h,  44h,  45h,  20h,  25h,  73h,  20h,  61h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
     40                          db     4fh,  4ah, 0cbh,  3eh,  20h,  67h, 0fah,  3eh,  40h,  00h                                  ; compressed
     41
     42g_szDetectPort:         ; db    "%x",NULL                       ; IDE Master at 1F0h:
     43                        ; db     25h,  78h,  00h    ; uncompressed
     44                          db     19h                ; compressed
     45
     46g_szDetectCOM:          ; db  "COM%c%s",NULL           
     47                        ; db   43h,  4fh,  4dh,  25h,  63h,  25h,  73h,  00h    ; uncompressed
     48                          db   49h,  55h,  53h,  35h,  1eh                      ; compressed
     49
     50g_szDetectCOMAuto:      ; db    " Auto",NULL
     51                        ; db     20h,  41h,  75h,  74h,  6fh,  00h    ; uncompressed
     52                          db     20h,  47h,  7bh,  7ah, 0b5h          ; compressed
     53
     54g_szDetectCOMSmall:     ; db    "/%u%u00",NULL                  ; IDE Master at COM1/9600:
     55                        ; db     2fh,  25h,  75h,  25h,  75h,  30h,  30h,  00h    ; uncompressed
     56                          db     2ah,  37h,  37h,  34h,  14h                      ; compressed
     57
     58g_szDetectEnd:
     59g_szDetectCOMLarge:     ; db    "/%u.%uK",NULL                  ; IDE Master at COM1/19.2K:
     60                        ; db     2fh,  25h,  75h,  2eh,  25h,  75h,  4bh,  00h    ; uncompressed
     61                          db     2ah,  37h,  29h,  37h,  91h                      ; compressed
     62
     63
     64%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS               
     65%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
     66%error "g_szDetect* strings must be on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
     67%endif
     68%endif             
    4569
    4670; Boot loader strings
    4771g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    4872                        ; db     42h,  6fh,  6fh,  74h,  69h,  6eh,  67h,  20h,  66h,  72h,  6fh,  6dh,  20h,  25h,  73h,  20h,  25h,  78h, 0afh,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
    49                           db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  34h,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
     73                          db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  3eh,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
    5074
    5175g_szBootSectorNotFound: ; db    "Boot sector "
     
    77101g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL
    78102                ; db     25h,  41h,  25h,  63h,  25h,  63h,  25h,  41h,  25h,  73h,  25h,  41h,  20h,  00h    ; uncompressed
    79                   db     3dh,  35h,  35h,  3dh,  34h,  3dh,  00h                                              ; compressed
     103                  db     3dh,  35h,  35h,  3dh,  3eh,  3dh,  00h                                              ; compressed
    80104
    81105
     
    88112g_szFDLetter:   ; db    "%s %c",NULL
    89113                ; db     25h,  73h,  20h,  25h,  63h,  00h    ; uncompressed
    90                   db     34h,  20h,  15h                      ; compressed
     114                  db     3eh,  20h,  15h                      ; compressed
    91115
    92116g_szFloppyDrv:  ; db    "Floppy Drive",NULL
     
    106130g_szSizeSingle: ; db    "%s%u.%u %ciB",NULL
    107131                ; db     25h,  73h,  25h,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  00h    ; uncompressed
    108                   db     34h,  37h,  29h,  37h,  20h,  35h,  6fh,  88h                                  ; compressed
     132                  db     3eh,  37h,  29h,  37h,  20h,  35h,  6fh,  88h                                  ; compressed
    109133
    110134g_szSizeDual:   ; db    "%s%5-u.%u %ciB /%5-u.%u %ciB",LF,CR,NULL
    111135                ; db     25h,  73h,  25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  20h,  2fh,  25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  0ah,  0dh,  00h    ; uncompressed
    112                   db     34h,  38h,  29h,  37h,  20h,  35h,  6fh, 0c8h,  2ah,  38h,  29h,  37h,  20h,  35h,  6fh,  48h,  1bh                                                                                        ; compressed
     136                  db     3eh,  38h,  29h,  37h,  20h,  35h,  6fh, 0c8h,  2ah,  38h,  29h,  37h,  20h,  35h,  6fh,  48h,  1bh                                                                                        ; compressed
    113137
    114138g_szCfgHeader:  ; db    "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",  SINGLE_VERTICAL,"IRQ",  SINGLE_VERTICAL,"Reset",LF,CR,NULL
     
    118142g_szCfgFormat:  ; db    "%s"   ,SINGLE_VERTICAL,"%5-u", SINGLE_VERTICAL,"%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",  NULL
    119143                ; db     25h,  73h, 0b3h,  25h,  35h,  2dh,  75h, 0b3h,  25h,  73h, 0b3h,  20h,  25h,  32h,  2dh,  49h, 0b3h,  25h,  35h,  2dh,  78h,  00h    ; uncompressed
    120                   db     34h,  23h,  38h,  23h,  34h,  23h,  20h,  36h,  23h,  1ah                                                                            ; compressed
     144                  db     3eh,  23h,  38h,  23h,  3eh,  23h,  20h,  36h,  23h,  1ah                                                                            ; compressed
    121145
    122146
     
    159183g_szFddUnknown: ; db    "%sUnknown",NULL
    160184                ; db     25h,  73h,  55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
    161                   db     34h,  5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h                ; compressed
     185                  db     3eh,  5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h                ; compressed
    162186
    163187g_szFddSizeOr:  ; db    "%s5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
    164188                ; db     25h,  73h,  35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
    165                   db     34h,  2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                      ; compressed
     189                  db     3eh,  2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                      ; compressed
    166190
    167191g_szFddSize:    ; db    "%s%s",QUOTATION_MARK,", %u kiB",NULL   ; 3½", 1440 kiB
    168192                ; db     25h,  73h,  25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
    169                   db     34h,  34h,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                            ; compressed
     193                  db     3eh,  3eh,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                            ; compressed
    170194
    171195
     
    265289;$translate{200}      = 18;    # DOUBLE_BOTTOM_LEFT_CORNER    [StringsCompress Processed]
    266290;$translate{181}      = 19;    # DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL    [StringsCompress Processed]
     291;$translate{ord('0')} = 20;    # DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL          [StringsCompress Processed]
    267292;
    268293; Formats begin immediately after the last Translated character (they are in the same table)
    269294;
    270 ;$format_begin = 20;    [StringsCompress Processed]
    271 ;
    272 ;$format{"s"}   = 20;        # n/a    [StringsCompress Processed]
     295;$format_begin = 21;    [StringsCompress Processed]
     296;
    273297;$format{"c"}   = 21;        # n/a    [StringsCompress Processed]
    274298;$format{"2-I"} = 22;        # must be even    [StringsCompress Processed]
     
    280304;$format{"2-u"} = 28;        # must be even    [StringsCompress Processed]
    281305;$format{"A"}   = 29;        # n/a    [StringsCompress Processed]
     306;$format{"s"}   = 30;        # n/a          [StringsCompress Processed]
    282307;
    283308; NOTE: The last $format cannot exceed 31 (stored in a 5-bit quantity).
     
    299324StringsCompressed_NormalBase     equ   58
    300325
    301 StringsCompressed_FormatsBegin   equ   20
     326StringsCompressed_FormatsBegin   equ   21
    302327
    303328StringsCompressed_TranslatesAndFormats:
     
    322347        db     200  ; 18
    323348        db     181  ; 19
    324         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s)    ; 20
     349        db     48  ; 20
    325350        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c)    ; 21
    326351        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I)    ; 22
     
    332357        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u)    ; 28
    333358        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A)    ; 29
     359        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s)    ; 30
    334360
    335361%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     362%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_c || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c > 255
     363%error "DisplayFormatCompressed_Format_c is out of range of DisplayFormatCompressed_BaseFormatOffset"
     364%endif
     365%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_I || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I > 255
     366%error "DisplayFormatCompressed_Format_2_I is out of range of DisplayFormatCompressed_BaseFormatOffset"
     367%endif
     368%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_u > 255
     369%error "DisplayFormatCompressed_Format_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     370%endif
     371%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_u > 255
     372%error "DisplayFormatCompressed_Format_5_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     373%endif
     374%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_x > 255
     375%error "DisplayFormatCompressed_Format_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
     376%endif
     377%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_x > 255
     378%error "DisplayFormatCompressed_Format_5_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
     379%endif
     380%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_nl || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_nl > 255
     381%error "DisplayFormatCompressed_Format_nl is out of range of DisplayFormatCompressed_BaseFormatOffset"
     382%endif
     383%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u > 255
     384%error "DisplayFormatCompressed_Format_2_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     385%endif
     386%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_A || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A > 255
     387%error "DisplayFormatCompressed_Format_A is out of range of DisplayFormatCompressed_BaseFormatOffset"
     388%endif
    336389%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_s || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s > 255
    337390%error "DisplayFormatCompressed_Format_s is out of range of DisplayFormatCompressed_BaseFormatOffset"
    338 %endif
    339 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_c || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c > 255
    340 %error "DisplayFormatCompressed_Format_c is out of range of DisplayFormatCompressed_BaseFormatOffset"
    341 %endif
    342 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_I || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I > 255
    343 %error "DisplayFormatCompressed_Format_2_I is out of range of DisplayFormatCompressed_BaseFormatOffset"
    344 %endif
    345 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_u > 255
    346 %error "DisplayFormatCompressed_Format_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
    347 %endif
    348 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_u > 255
    349 %error "DisplayFormatCompressed_Format_5_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
    350 %endif
    351 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_x > 255
    352 %error "DisplayFormatCompressed_Format_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
    353 %endif
    354 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_x > 255
    355 %error "DisplayFormatCompressed_Format_5_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
    356 %endif
    357 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_nl || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_nl > 255
    358 %error "DisplayFormatCompressed_Format_nl is out of range of DisplayFormatCompressed_BaseFormatOffset"
    359 %endif
    360 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u > 255
    361 %error "DisplayFormatCompressed_Format_2_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
    362 %endif
    363 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_A || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A > 255
    364 %error "DisplayFormatCompressed_Format_A is out of range of DisplayFormatCompressed_BaseFormatOffset"
    365391%endif
    366392%endif
     
    374400;; 5-u:3
    375401;; x:6
     402;; s:15
    376403;; 5-x:1
    377 ;; s:15
    378404;; nl:6
    379405;; 2-I:1
    380 ;; c:8
    381 ;; u:6
     406;; c:7
     407;; u:9
    382408;; total format: 10
    383409
    384410;; alphabet usage stats
    385 ;; 58,::4
     411;; 58,::2
    386412;; 59,;:
    387413;; 60,<:
     
    390416;; 63,?:
    391417;; 64,@:1
    392 ;; 65,A:3
     418;; 65,A:4
    393419;; 66,B:11
    394 ;; 67,C:5
    395 ;; 68,D:12
    396 ;; 69,E:4
     420;; 67,C:4
     421;; 68,D:10
     422;; 69,E:3
    397423;; 70,F:3
    398424;; 71,G:
    399425;; 72,H:4
    400 ;; 73,I:3
     426;; 73,I:2
    401427;; 74,J:
    402 ;; 75,K:
     428;; 75,K:1
    403429;; 76,L:3
    404 ;; 77,M:4
     430;; 77,M:3
    405431;; 78,N:
    406 ;; 79,O:3
     432;; 79,O:2
    407433;; 80,P:1
    408434;; 81,Q:1
     
    422448;; 95,_:
    423449;; 96,`:
    424 ;; 97,a:7
     450;; 97,a:6
    425451;; 98,b:
    426 ;; 99,c:5
     452;; 99,c:4
    427453;; 100,d:4
    428 ;; 101,e:11
     454;; 101,e:9
    429455;; 102,f:2
    430456;; 103,g:2
     
    436462;; 109,m:1
    437463;; 110,n:9
    438 ;; 111,o:17
     464;; 111,o:18
    439465;; 112,p:3
    440466;; 113,q:
    441467;; 114,r:11
    442468;; 115,s:6
    443 ;; 116,t:13
    444 ;; 117,u:2
     469;; 116,t:11
     470;; 117,u:3
    445471;; 118,v:2
    446472;; 119,w:1
    447473;; 120,x:
    448474;; 121,y:2
    449 ;; alphabet used count: 39
     475;; alphabet used count: 40
Note: See TracChangeset for help on using the changeset viewer.