Subversion Repositories Kolibri OS

Rev

Rev 2956 | 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   55    56
  94.             db  010100b     ;48    XXX   XX   XX    XX   XXXX   XX   XXX  XX    XX
  95.             db  000011b     ;49       X   X     X     X     X    X     X    X     X
  96.             db  010001b     ;50       X   X      X    X         X      X    X   XX
  97.             db  000101b     ;51           X      X    X        X           X
  98.             db  110000b     ;52
  99.             db  000111b     ;53
  100.             db  001100b     ;54
  101.             db  010101b     ;55
  102.             db  011101b     ;56
  103.             db  0, 0, 0         ;57..59
  104.             db  0, 0, 0, 0              ;60..63
  105. .v4:
  106.                               ;            64   65   66    67     68    69
  107.             db  01010001b   ;64:   XX    XX  XXXX   Y      XX    XX
  108.             db  01000101b   ;65:     X     X     X  X        X     X
  109.             db  01010000b   ;66:      X    X     X   X    XXX    XXX
  110.             db  01010010b   ;67:      X    X          X
  111.             db  00011101b   ;68:     X    X           X
  112.             db  00110101b   ;69:                     X
  113.             db  10100000b   ;70:
  114.             db  0           ;71:
  115.             db  0, 0, 0, 0              ;72..75
  116.             db  0, 0, 0, 0              ;76..79
  117.  
  118.  
  119. .v5:
  120.             db  00000001b, 01b          ;80: )(
  121.             db  00000001b, 10b          ;81: /7X
  122.             db  01000101b, 01b          ;82: 8u
  123.             db  01010100b, 01b          ;83:
  124.             db  00000010b, 01b          ;84: \X&
  125.             db  00010100b, 00b          ;85: hnu—
  126.             db  10111000b, 00b          ;86: a
  127.             db  0, 0                    ;87:
  128.  
  129. .v6:
  130.             db  01000000b, 0101b        ;88: Jfg
  131.             db  01010100b, 0001b        ;89: BPR
  132.             db  11010010b, 0001b        ;90: s$
  133.             db  0, 0                    ;91
  134.             db  0, 0, 0, 0              ;92,93
  135.             db  0, 0, 0, 0              ;94,95
  136. .v7:
  137.             db  11011001b, 011001b      ;96: ><vVY
  138.             db  00010001b, 010001b      ;97: D
  139.             db  00010100b, 000101b      ;98: bcdpqg
  140.             db  0, 0                          ;99:
  141.             db  0, 0, 0, 0              ;100,101
  142.             db  0, 0, 0, 0              ;102,103
  143. .v8:
  144.             db  00110000b, 00001100b    ;104: 5
  145.             db  01010100b, 01010001b    ;105: 689
  146.             db  0, 0, 0, 0, 0, 0        ;106..108
  147.             db  0, 0, 0, 0, 0, 0        ;109..111
  148.  
  149. .v9:
  150.             db  0, 0, 0                 ;112:
  151.             db  0, 0, 0                 ;113:
  152.             db  0, 0, 0                 ;114:
  153.             db  0, 0, 0                 ;115:
  154. .v10:
  155.             db  00010100b, 01010000b, 0100b     ;116: @0CGOQ
  156.             db  01010100b, 01010001b, 0100b     ;117: ---
  157.             db  0, 0, 0                         ;118:
  158.             db  0, 0, 0                         ;119:
  159. .v11:
  160.             db  10100000b, 01010010b, 000001b   ; 120: $s
  161.             db  0, 0, 0                         ;121:
  162.             db  0, 0, 0                         ;122:
  163.             db  0, 0, 0                         ;123:
  164. .v12:
  165.             db  0, 0, 0                 ;124:
  166.             db  0, 0, 0                         ;125:
  167.             db  0, 0, 0                         ;126:
  168.             db  0, 0, 0                         ;127:
  169. .v13:
  170.         ; WARNING: 13-16 vertex fields not implemented yet!
  171.  
  172. include 'nsvf_00.asm'
  173. include 'nsvf_01.asm'
  174.  
  175.