]> github.com/historicalsource and other repositories - DRGNSRC.git/blob - DDCOLRS.ASM
Fixed README extension
[DRGNSRC.git] / DDCOLRS.ASM
1 cseg            segment public 'code'\r
2 \r
3 assume          cs:cseg, ds:dseg\r
4 \r
5 \r
6 \r
7 public          setup_colrs\r
8 \r
9 \r
10 \r
11 setup_colrs:\r
12                 mov     bx, offset black\r
13 \r
14                 mov     di, offset identity_table\r
15                 mov     black, 0\r
16                 mov     cyan, 1\r
17                 mov     red, 2\r
18                 mov     white, 3\r
19                 call    gen_colr_tab\r
20 \r
21                 mov     di, offset player2_table\r
22                 mov     black, 0\r
23                 mov     cyan, 2\r
24                 mov     red, 2\r
25                 mov     white, 3\r
26                 call    gen_colr_tab\r
27 \r
28 ;       mov     di, offset will_A_table\r
29 ;       mov     black, 0\r
30 ;       mov     cyan, 0\r
31 ;       mov     red, 3\r
32 ;       mov     white, 2\r
33 ;       call    gen_colr_tab\r
34 ;\r
35 ;       mov     di, offset will_B_table\r
36 ;       mov     black, 0\r
37 ;       mov     cyan, 3\r
38 ;       mov     red, 0\r
39 ;       mov     white, 2\r
40 ;       call    gen_colr_tab\r
41 ;\r
42 ;       mov     di, offset will_C_table\r
43 ;       mov     black, 0\r
44 ;       mov     cyan, 1\r
45 ;       mov     red, 0\r
46 ;       mov     white, 2\r
47 ;       call    gen_colr_tab\r
48 ;\r
49 ;       mov     di, offset abobo_B_table\r
50 ;       mov     black, 0\r
51 ;       mov     cyan, 2\r
52 ;       mov     red, 0\r
53 ;       mov     white, 1\r
54 ;       call    gen_colr_tab\r
55 ;\r
56 ;       mov     di, offset roper_table\r
57 ;       mov     black, 0\r
58 ;       mov     cyan, 3\r
59 ;       mov     red, 1\r
60 ;       mov     white, 2\r
61 ;       call    gen_colr_tab\r
62 \r
63                 ret\r
64 \r
65 \r
66 \r
67 gen_colr_tab:   xor     dl, dl\r
68 gen_loop:       mov     ah, dl\r
69                 call    replace\r
70                 call    replace\r
71                 call    replace\r
72                 call    replace\r
73                 mov     [di], ah\r
74                 inc     di\r
75                 inc     dl\r
76                 jnz     gen_loop\r
77                 ret\r
78 \r
79 \r
80 replace:        mov     al, ah\r
81                 and     ax, 0fc03h\r
82                 xlat\r
83                 or      ah, al\r
84                 rol     ah, 1\r
85                 rol     ah, 1\r
86                 ret\r
87 \r
88 \r
89 \r
90 cseg            ends\r
91 \r
92 \r
93 \r
94 \r
95 dseg            segment public 'data'\r
96 \r
97 public          identity_table, player2_table, colrmap_table\r
98 \r
99 ; bit bloody silly really I've only got a colour change set for player2 !\r
100 ; cant even do player2 yet so even sillier !\r
101 colrmap_table   dw      offset identity_table   ; player1\r
102                 dw      offset identity_table   ; williams\r
103                 dw      offset identity_table   ; abobo\r
104                 dw      offset identity_table   ; linda\r
105                 dw      offset identity_table   ; big_boss_willy\r
106                 dw      offset player2_table    ; player2\r
107                 dw      offset identity_table   ;will_A_table   ; williams_A\r
108                 dw      offset identity_table   ;will_B_table   ; williams_B\r
109                 dw      offset identity_table   ;will_C_table   ; williams_C\r
110                 dw      offset identity_table   ;will_B_table   ; abobo_A\r
111                 dw      offset identity_table   ;abobo_B_table  ; abobo_B\r
112                 dw      offset identity_table   ;roper_table    ; roper\r
113                 dw      offset identity_table   ;bill\r
114                 dw      offset identity_table   ;lowry\r
115                 dw      offset identity_table   ; captain\r
116                 dw      offset identity_table   ;a\r
117                 dw      offset identity_table   ;b\r
118                 dw      offset identity_table   ;c ?\r
119                 dw      offset identity_table   ;wepons\r
120                 dw      offset identity_table   ;abobo \r
121                 dw      offset identity_table   ;\r
122                 dw      offset identity_table   ;\r
123 \r
124 identity_table  db      256 dup (?)\r
125 player2_table   db      256 dup (?)\r
126 \r
127 ;will_A_table   db      256 dup (?)\r
128 ;will_B_table   db      256 dup (?)\r
129 ;will_C_table   db      256 dup (?)\r
130 ;abobo_B_table  db      256 dup (?)\r
131 ;roper_table    db      256 dup (?)\r
132 \r
133 \r
134 black           db      ?\r
135 cyan            db      ?\r
136 red             db      ?\r
137 white           db      ?\r
138 \r
139 \r
140 \r
141 dseg            ends\r
142 \r
143 \r
144 \r
145 \r
146 end\r
147 \1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a\1a