Subversion Repositories Kolibri OS

Rev

Rev 3163 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ; Kolibri-A vectorized system fonts
  3. ; A.Jerdev <artem@jerdev.co.uk>
  4. ; Copyright (C) KolibriOS Team, 2011-12
  5. ;
  6. ; font data section
  7.  
  8.  
  9. macro gptick    origin, r, tick
  10. {    dw  (origin mod 32) shl 11 + (r mod 8) shl 8 + (tick mod 256) }
  11.  
  12. macro ritick    x, y, tick
  13. {    dw  (x mod 16) shl 12 + (y mod 16) shl 8 + (tick and 2) shl 3 + (tick mod 2) }
  14.  
  15. macro cstick    x, y, r, tick
  16. {    dw  (x mod 16) shl 12 + (y mod 16) shl 8 + 0xD8 + (r mod 2) shl 2 + (tick mod 4) }
  17.  
  18. macro lntick    x, y, r, len
  19. {
  20. if  len in <2, 3, 4, 5, 6, 7>
  21. dw  ((x mod 16) shl 12 + (y mod 16) shl 8 + (r mod 4) shl 3 + len)
  22. else
  23. dw  ((x mod 16) shl 12 + (y mod 16) shl 8 + (r mod 4) shl 3 + ((len-8) mod 8) + 0xE0)
  24. end if
  25. }
  26.  
  27. macro char_entry        charpos, wdbits, numticks
  28. {
  29.         dw (charpos - .chars)*16 + (wdbits mod 4)*8 + (numticks mod 8)
  30. }
  31.  
  32. ;align 8
  33. ;nsvf_data:
  34.  
  35. .numfonts   db  2               ; number of system fonts
  36. .numsptks   db  32              ; number of special ticks
  37. .numticks   dw  ?               ; total number of ticks
  38. .ticktble   dd  nsvf.tick_table ; general table
  39.  
  40. align 4
  41. ;   ---- special tickfields ----
  42. .blank      db  0, 0, 0, 0         ; for straight lines
  43. .cs2        db  11001100b,  111100b
  44. .cs3        db  00010100b,  01000101b,  0001b
  45. .cs0        db  1111b              ; 4-pix square
  46. .ri1        db  01010101b, 0101b       ; rot-invariants: 8-pix ring
  47. .ri2        db  01000100b, 01000100b, 01000100b, 000100b   ; 16-pix ring
  48.  
  49. align 16
  50. nsvf_info:
  51.  
  52. ;    System font #0: 5x9
  53. .fnt0.x     db  5           ; + 0: X-width
  54. .fnt0.y     db  9           ; + 1: Y-heigth
  55. .fnt0.rs    dw  0           ; + 2: reserved
  56. .fnt0.tab   dd  nsvf00.table      ; + 4
  57. .fnt0.org   dd  nsvf00.origs      ; + 8
  58. .fnt0.chr   dd    nsvf00.chars      ; +12
  59.  
  60.  
  61. ;align 16
  62. ;    System font #1: 7x10
  63. .fnt1.x     db  7           ; X-width
  64. .fnt1.y     db  10          ; Y-heigth
  65. .fnt1.rs    dw  0           ; reserved
  66. .fnt1.tab   dd  nsvf01.table
  67. .fnt1.org   dd  nsvf01.origs
  68. .fnt1.chr   dd  nsvf01.chars
  69.  
  70.  
  71. align 4
  72.  
  73. diff16 "sdsh_data.tick_table: ",0,$
  74.  
  75. nsvf:
  76. .tick_table:
  77.             db  0, 0, 0, 0, 0, 0        ;32..37 (reserved)
  78.  
  79. .v1:                ; 38    39
  80.         db  01b     ; XX    XX
  81.         db  11b     ;   X    X
  82.  
  83. .v2:                    ;      40    41     42    43    44   45
  84.         db  0100b       ;40    XXX    XXX   XX    XX    XX   XX
  85.         db  1100b       ;41       X     X     X     XX    X    X
  86.         db  0001b       ;42                    X          X   X
  87.         db  1001b       ;43    
  88.         db  0101b       ;44    
  89.         db  1101b       ;45    
  90.         db  0000b       ;46    
  91.         db  0000b       ;47    
  92.          
  93. .v3:               ;            48   49   50    51    52    53   54  
  94.             db  010100b     ;48    XXX   XX   XX    XX   XXXX   XX   XXX  
  95.             db  000011b     ;49       X   X     X     X     X    X     X    
  96.             db  010001b     ;50       X   X      X    X         X      X    
  97.             db  000101b     ;51           X      X    X        X          
  98.             db  110000b     ;52
  99.             db  000111b     ;53     55    56    57
  100.             db  001100b     ;54     XX    XX    XXX
  101.             db  010101b     ;55       X     X    XX
  102.             db  011101b     ;56       X   XX
  103.             db  111100b     ;57      X
  104.         db  000000b     ;58
  105.         db  000000b     ;59
  106.         db  000000b     ;60
  107.         db  000000b     ;61
  108.         db  000000b     ;62
  109.         db  000000b     ;63
  110. .v4:
  111.                               ;            64   65   66    67     68    69     70
  112.             db  01010001b   ;64:   XX    XX  XXXX   Y      XX    XX    Y
  113.             db  01000101b   ;65:     X     X     X  X        X     X   X
  114.             db  01010000b   ;66:      X    X     X   X    XXX    XXX   X
  115.             db  01010010b   ;67:      X    X          X                X
  116.             db  00011101b   ;68:     X    X           X                 XX
  117.             db  00110101b   ;69:                     X
  118.             db  10100000b   ;70:
  119.             db  01010101b   ;71:   71
  120.             db  00000000b   ;72:   XX
  121.         db  00000000b   ;73:     X
  122.         db  00000000b   ;74:     X
  123.         db  00000000b   ;75:   XX
  124.             db  00000000b   ;76:
  125.         db  00000000b   ;77:
  126.         db  00000000b   ;78:
  127.         db  00000000b   ;79:
  128.  
  129.  
  130. .v5:                                ;   80  81  82   83    84  85    86
  131.             db  00000001b, 01b      ;80:  X  X   XX   XXX    X  XXX    X
  132.             db  00000001b, 10b      ;81:   X  X    X     X  X      X   X
  133.             db  01000101b, 01b      ;82:   X  X    X     X  X      X   X
  134.             db  01010100b, 01b      ;83:   X  X    X   XX   X      X    X
  135.         db      00000010b, 01b      ;84:   X  X   X         X      X   X
  136.             db  00010100b, 00b      ;85:  X    X           X           X
  137.             db  10111000b, 00b      ;86:                               X
  138.             db  0, 0                    ;87:
  139.  
  140. .v6:                                ;     88   89    90     91
  141.             db  01000000b, 0101b    ;88:    X  XXX    X       X
  142.             db  01010100b, 0001b    ;89:    X     X   X       X
  143.             db  11010010b, 0001b    ;90:    X     X    X    X X
  144.             db  11010000b, 0001b    ;91:    X    X    X X   X X
  145.             db  00000000b, 0000b    ;92: X  X   X      XX    X
  146.             db  00000000b, 0000b    ;93:  XX
  147.             db  00000000b, 0000b    ;94:  
  148.             db  00000000b, 0000b    ;95:  
  149.  
  150. .v7:                                    ;        96  97    98    99
  151.             db  11011001b, 011001b      ; 96: X   X  XX    XXX   XX
  152.             db  00010001b, 010001b      ; 97: X   X    X      X  X
  153.             db  00010100b, 000101b      ; 98:  X X      X     X  X
  154.             db  00000011b, 110000b      ; 99:  X X      X     X  X
  155.             db  00000000b, 000000b      ;100:   X       X  XXX   X
  156.             db  00000000b, 000000b      ;101:          X         X
  157.             db  00000000b, 000000b      ;102:        XX          XX
  158.             db  00000000b, 000000b      ;103:        
  159. .v8:                                  ;     104    105    106
  160.             db  00110000b, 00001100b  ;104: XXXX   XXX   XXXXX
  161.             db  01010100b, 01010001b  ;105:    X  X   X X     X
  162.             db  00000001b, 01000101b  ;106:    X  X   X       X
  163.             db  00000000b, 00000000b  ;107: XXXX   XXX        X
  164.             db  00000000b, 00000000b  ;108:                  X
  165.             db  00000000b, 00000000b  ;109:
  166.             db  00000000b, 00000000b  ;110:
  167.             db  00000000b, 00000000b  ;111:
  168.  
  169. .v9:                                          
  170.             db  00100100b, 00100100b, 00b   ;112:  XXX
  171.             db  0, 0, 0                     ;113:     XXXX
  172.             db  0, 0, 0                     ;114:         XXX
  173.             db  0, 0, 0                 ;115:
  174. .v10:
  175.             db  00010100b, 01010000b, 0100b     ;116:
  176.             db  01010100b, 01010001b, 0100b     ;117:
  177.             db  01010001b, 00000100b, 0100b     ;118:
  178.             db  0, 0, 0                         ;119:
  179. .v11:
  180.             db  10100000b, 01010010b, 000001b   ; 120: $s
  181.             db  01100100b, 01000000b, 000110b   ; 121: )(
  182.             db  01000100b, 01000100b, 000000b   ; 122: 0
  183.             db  0, 0, 0                         ;123:
  184. .v12:
  185.             db  10011001b, 10011001b, 10011001b ;124:
  186.             db  01000100b, 01000100b, 01000000b ;125:
  187.             db  00000000b, 00000000b, 00000000b ;126:
  188.             db  00000000b, 00000000b, 00000000b ;127:
  189. .v13:
  190.         ; WARNING: 13-16 vertex fields not implemented yet!
  191.  
  192. include 'nsvf_00.asm'
  193. include 'nsvf_01.asm'
  194.  
  195.