Subversion Repositories Kolibri OS

Rev

Rev 2990 | Go to most recent revision | 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. .v1:
  79.                     ; 38    39
  80.             db  01b         ; XX    XX
  81.             db  11b         ;   X    X
  82. .v2:
  83.                       ;      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  0           ;46
  91.             db  0           ;47
  92. .v3:
  93.                               ;             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      0             ;58
  105.           db      0           ;59
  106.             db  0, 0, 0, 0      ;60..63
  107. .v4:
  108.                               ;            64   65   66    67     68    69     70
  109.             db  01010001b   ;64:   XX    XX  XXXX   Y      XX    XX    Y
  110.             db  01000101b   ;65:     X     X     X  X        X     X   X
  111.             db  01010000b   ;66:      X    X     X   X    XXX    XXX   X
  112.             db  01010010b   ;67:      X    X          X                X
  113.             db  00011101b   ;68:     X    X           X                 XX
  114.             db  00110101b   ;69:                     X
  115.             db  10100000b   ;70:
  116.             db  01010101b   ;71:   71
  117.             db  00000000b   ;72:   XX
  118.         db  00000000b   ;73:     X
  119.         db  00000000b   ;74:     X
  120.         db  00000000b   ;75:   XX
  121.             db  00000000b   ;76:
  122.         db  00000000b   ;77:
  123.         db  00000000b   ;78:
  124.         db  00000000b   ;79:
  125.  
  126.  
  127. .v5:
  128.             db  00000001b, 01b          ;80: )(
  129.             db  00000001b, 10b          ;81: /7X
  130.             db  01000101b, 01b          ;82: 8u
  131.             db  01010100b, 01b          ;83:
  132.             db  00000010b, 01b          ;84: \X&
  133.             db  00010100b, 00b          ;85: hnu—
  134.             db  10111000b, 00b          ;86: a
  135.             db  0, 0                    ;87:
  136.  
  137. .v6:
  138.             db  01000000b, 0101b        ;88: Jfg
  139.             db  01010100b, 0001b        ;89: BPR
  140.             db  11010010b, 0001b        ;90: s$
  141.             db  11010000b, 0001b        ;91
  142.             db  0, 0, 0, 0              ;92,93
  143.             db  0, 0, 0, 0              ;94,95
  144. .v7:
  145.             db  11011001b, 011001b      ;96: ><vVY
  146.             db  00010001b, 010001b      ;97: D
  147.             db  00010100b, 000101b      ;98: bcdpqg
  148.             db  0, 0                          ;99:
  149.             db  0, 0, 0, 0              ;100,101
  150.             db  0, 0, 0, 0              ;102,103
  151. .v8:
  152.             db  00110000b, 00001100b    ;104: 5
  153.             db  01010100b, 01010001b    ;105: 689
  154.             db  0, 0, 0, 0, 0, 0        ;106..108
  155.             db  0, 0, 0, 0, 0, 0        ;109..111
  156.  
  157. .v9:
  158.             db  00100100b, 00100100b, 00b   ;112:  XXX
  159.             db  0, 0, 0                     ;113:     XXXX
  160.             db  0, 0, 0                     ;114:         XXX
  161.             db  0, 0, 0                 ;115:
  162. .v10:
  163.             db  00010100b, 01010000b, 0100b     ;116:
  164.             db  01010100b, 01010001b, 0100b     ;117:
  165.             db  01010001b, 00000100b, 0100b ;118:
  166.             db  0, 0, 0                         ;119:
  167. .v11:
  168.             db  10100000b, 01010010b, 000001b   ; 120: $s
  169.             db  0, 0, 0                         ;121:
  170.             db  0, 0, 0                         ;122:
  171.             db  0, 0, 0                         ;123:
  172. .v12:
  173.             db  10011001b, 10011001b, 10011001b ;124:
  174.             db  01000100b, 01000100b, 01000000b ;125:
  175.             db  00000000b, 00000000b, 00000000b ;126:
  176.             db  00000000b, 00000000b, 00000000b ;127:
  177. .v13:
  178.         ; WARNING: 13-16 vertex fields not implemented yet!
  179.  
  180. include 'nsvf_00.asm'
  181. include 'nsvf_01.asm'
  182.  
  183.