home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Large Pack of OldSkool DOS MOD Trackers
/
cdfm.zip
/
CDFMSB.LST
< prev
next >
Wrap
File List
|
1998-01-25
|
214KB
|
5,157 lines
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 1
cdfmsb.ASM
1 .386p
2 00000000 code32 segment para public use32
3 assume cs:code32, ds:code32, ss:code32
4
5 include pmode.inc
1 6 extrn v86r_eax:dword, v86r_ebx:dword, v86r_ecx:dword, v86r_edx:dword
1 7 extrn v86r_esi:dword, v86r_edi:dword, v86r_ebp:dword
1 8 extrn v86r_ah:byte, v86r_al:byte, v86r_bh:byte, v86r_bl:byte
1 9 extrn v86r_ch:byte, v86r_cl:byte, v86r_dh:byte, v86r_dl:byte
1 10 extrn v86r_ax:word, v86r_bx:word, v86r_cx:word, v86r_dx:word
1 11 extrn v86r_si:word, v86r_di:word, v86r_bp:word
1 12 extrn v86r_ds:word, v86r_es:word, v86r_fs:word, v86r_gs:word
1 13 extrn v86r_flags:word
1 14
1 15 extrn _selcode:word, _seldata:word, _selzero:word, _lomembase:dword
1 16 extrn _lomemtop:dword, _himembase:dword, _himemtop:dword, _pspa:dword
1 17 extrn _code16a:dword, _code32a:dword, _getirqvect:dword, _setirqvect:dword
1 18 extrn _sysbyte0:byte, _setselector:dword, _exitcode:byte
1 19
1 20 extrn _getmem:near, _getlomem:near, _gethimem:near, _lomemsize:near
1 21 extrn _himemsize:near, _ret:near, _exit:near, _getirqmask:near
1 22 extrn _setirqmask:near, _rmpmirqset:near, _rmpmirqfree:near
1 23 extrn _getselector:near, _freeselector:near
1 24
1 25 ; Convert physical pointer to realative pointer
1 26 @rlp macro reg, ptr
1 27 mov ®,&ptr
1 28 sub ®,_code32a
1 29 endm
1 30
1 31 ; Convert realative pointer to physical pointer
1 32 @php macro reg, ptr
1 33 mov ®,&ptr
1 34 add ®,_code32a
1 35 endm
1 36
1 37 ; Output a byte to DX
1 38 @outb macro val
1 39 mov al,&val
1 40 out dx,al
1 41 endm
1 42
1 43 ; Output a word to DX
1 44 @outw macro val
1 45 mov ax,&val
1 46 out dx,ax
1 47 endm
1 48
1 49 ; Get interrupt flag status
1 50 @gif macro
1 51 mov ax,902h
1 52 int 31h
1 53 endm
1 54
1 55 ; Get interrupt flag status and clear
1 56 @gifc macro
1 57 mov ax,900h
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 2
cdfmsb.ASM
1 58 int 31h
1 59 endm
1 60
1 61 ; Get interrupt flag status and set
1 62 @gifs macro
1 63 mov ax,901h
1 64 int 31h
1 65 endm
1 66
1 67 ; Get interrupt flag status and set to AL (0=clear, 1=set)
1 68 @gifal macro
1 69 mov ah,9
1 70 int 31h
1 71 endm
1 72
1 73
74 include argc.inc
1 75 extrn _cchekswitch:near, _cchekswitchnc:near, _cchekstr:near
1 76 extrn _ccheksstr:near
1 77
1 78
79 include file.inc
1 80 extrn _filebufloc:dword, _filebuflen:word
1 81
1 82 extrn _openfile:near, _closefile:near, _lseekfile:near, _readfile:near
1 83 extrn _writefile:near, _createfile:near, _filesize:near, _filecopy:near
1 84 extrn _deletefile:near, _findfile:near
1 85
1 86
87 include dfmpm.inc
1 88 extrn _dfmcounter:byte, _dfmfunc:dword, _scard:byte, _sbirq:byte
1 89 extrn _sbport:word, _dspout:byte, _pcsfxtblptr:dword, _fmsfxtblptr:dword
1 90 extrn _sbsfxtblptr:dword, _sbsfxchl:byte, _sbsfxchh:byte, _sbsfxch:byte
1 91 extrn muztempo:byte, muzordern:byte, muzorderl:byte, muzordptr:dword
1 92 extrn muzsbinsptr:dword, muzfminsptr:dword, muzpatbase:dword
1 93 extrn muzpatoffptr:dword, _voicehit:byte, modebitmap:byte
1 94
1 95 extrn _install_dfm:near, _uninstall_dfm:near, _detect_scard:near
1 96 extrn _pcsfx:near, _pcsfxd:near, _sbsfxs:near, _sbsfxsd:near
1 97 extrn _stopsmp:near, _sbsfxmd:near, _sbsfxm:near, _sbnote:near, _fmnote:near
1 98 extrn _fmsfx:near, _fmsfxd:near
1 99 extrn _stopmuzik:near, _setmuzik:near, _muzik:near, _adjsmp:near
1 100 extrn _phademuzik:near
1 101 extrn _mixahead:near
1 102
1 103 ;
1 104 ; PC SFX table:
1 105 ; 0 1db number of FX present
1 106 ; 1+ struc{
1 107 ; 0 1dd ptr to fect data (z-terminated string of bytes)
1 108 ; }
1 109 ;
1 110 ; SB SFX table:
1 111 ; 0 1db number of FX present
1 112 ; 1 1dd ptr to list of ptrs to dsfx
1 113 ; 5+ struc{
1 114 ; 0 1db SB sampling rate (or mix rate shr 4 for mix out)
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 3
cdfmsb.ASM
1 115 ; 1 1db number of sample to use (length is first dword there)
1 116 ; }
1 117 ;
1 118 ; FM SFX table:
1 119 ; 0 1db number of FX present
1 120 ; 1 1dd ptr to list of timbre+freq data (13 bytes each)
1 121 ; 5+ struc{
1 122 ; 0 1dd ptr to single fect data (-1 ends the chain)
1 123 ; }
1 124 ;
1 125 ; 670 muzik format:
1 126 ; 0 1db tempo for whole muzik
1 127 ; 1 1db number of orders
1 128 ; 2 1db number of patterns
1 129 ; 3 1db number of digital instruments
1 130 ; 4 1db number of FM instruments
1 131 ; 5 1db order loop
1 132 ; 6 1dd offset (from beginning of block) of digital instruments
1 133 ; 10 ?db order list
1 134 ; ?dd pattern offset (from beginning of patterns) list
1 135 ; ?4dd digital instrument data
1 136 ; ?11db FM instrument data
1 137 ; ?db patterns{
1 138 ; high 3 bits are command:
1 139 ; 000vvvvv - note, byte[1]=iooonnnn, byte[2]=iiiivvvv
1 140 ; 001vvvvv - volume, byte[1]=0000vvvv
1 141 ; 010????? - delay, byte[1]=dddddddd
1 142 ; 011????? - break pattern
1 143 ;
1 144
1 145 ; for 22k mixing:
1 146 ;
1 147 ; mono SB rate is 0d2h, SBP stereo rate is 0e9h
1 148 ; DBUFLEN is 380, max code end is 9FA1
1 149 ;
1 150 ; frequencies are:
1 151 ; 24, 25, 27, 29, 30, 32, 34, 36, 38, 41, 43, 46
1 152 ; 49, 51, 55, 58, 61, 65, 69, 73, 77, 82, 87, 92
1 153 ; 98, 103, 110, 116, 123, 130, 138, 146, 155, 164, 174, 185
1 154 ; 196, 207, 220, 233, 247, 261, 277, 293, 311, 329, 349, 370
1 155 ; 392, 415, 440, 466, 494, 523, 554, 587, 622, 659, 699, 740
1 156 ;
1 157
1 158 ; for 12k mixing:
1 159 ;
1 160 ; mono SB rate is 0ach, SBP stereo rate is 0d2h
1 161 ; DBUFLEN is 208, max code end is ?
1 162 ;
1 163 ; frequencies are:
1 164 ; 44, 47, 50, 53, 56, 59, 63, 67, 71, 75, 79, 84
1 165 ; 89, 95, 100, 106, 113, 119, 126, 134, 142, 150, 159, 169
1 166 ; 179, 190, 201, 213, 226, 239, 253, 268, 284, 301, 319, 338
1 167 ; 359, 380, 402, 426, 452, 479, 507, 537, 569, 603, 639, 677
1 168 ; 718, 760, 805, 853, 904, 958, 1015, 1075, 1139, 1207, 1279, 1355
1 169 ;
1 170
1 171
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 4
cdfmsb.ASM
172 include kb.inc
1 173 ; Special KB codez: KB bits:
1 174 ; 1-12 - F1-F12 - 1-0ch 0 - shift
1 175 ; 13 - Enter - 0dh 1 - alt
1 176 ; 14 - Esc - 0eh 2 - ctrl
1 177 ; 15 - Tab - 0fh
1 178 ; 16 - BS - 10h
1 179 ; 17 - Ins - 11h
1 180 ; 18 - Del - 12h
1 181 ; 19 - Home - 13h
1 182 ; 20 - End - 14h
1 183 ; 21 - PgUp - 15h
1 184 ; 22 - PgDn - 16h
1 185 ; 23 - Left - 17h
1 186 ; 24 - Right - 18h
1 187 ; 25 - Up - 19h
1 188 ; 26 - Down - 1ah
1 189
1 190 extrn _kbtbl0:byte, _kbtbl1:byte, _kbchar:byte, _kbshift:byte, _kbhit:byte
1 191
1 192 extrn _initkb:near, _resetkb:near, _getch:near, _clearkb:near
1 193
1 194
195 include vga50.inc
1 196 extrn _textstakptr:dword, _vgatextptr:dword, _vgadefcolorz:byte
1 197
1 198 extrn _initvga50:near, _putstr:near, _textbox0:near, _textbox1:near
1 199 extrn _pushtext:near, _poptext:near, _getstr:near, _setchars:near
1 200 extrn _centerscr:near
1 201
1 202
203
204 extrn muzorderc:byte
205
206 public _main, exit
207
208 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
209 ; MAIN DATA
210 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
211
212 00000000 30 31 32 33 34 35 36+ _hextbl db '0123456789ABCDEF'
213 37 38 39 41 42 43 44+
214 45 46
215
216 00000010 0F 0D 01 52 65 6E 61+ ht db 15,13,01,'Renaissance 670 quickie composer, by Tran ofcourse...',0
217 69 73 73 61 6E 63 65+
218 20 36 37 30 20 71 75+
219 69 63 6B 69 65 20 63+
220 6F 6D 70 6F 73 65 72+
221 2C 20 62 79 20 54 72+
222 61 6E 20 6F 66 63 6F+
223 75 72 73 65 2E 2E 2E+
224 00
225 00000049 07 00 04 41 73 20 66+ db 07,00,04,'As for the keys:',0
226 6F 72 20 74 68 65 20+
227 6B 65 79 73 3A 00
228 0000005D 07 01 05 18 2C 20 19+ db 07,01,05,24,', ',25,', PgUp, PgDn, Home, and End reformat your HD in all +
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 5
cdfmsb.ASM
229 2C 20 50 67 55 70 2C+ the menus.',0
230 20 50 67 44 6E 2C 20+
231 48 6F 6D 65 2C 20 61+
232 6E 64 20 45 6E 64 20+
233 72 65 66 6F 72 6D 61+
234 74 20 79 6F 75 72 20+
235 48 44 20 69 6E 20 61+
236 6C 6C 20 74 68 65 20+
237 6D 65 6E 75 73 2E 00
238 000000A3 07 00 06 54 68 65 73+ db 07,00,06,'These are common basic keys:',0
239 65 20 61 72 65 20 63+
240 6F 6D 6D 6F 6E 20 62+
241 61 73 69 63 20 6B 65+
242 79 73 3A 00
243 000000C3 07 01 07 3D 20 61 6E+ db 07,01,07,'= and \ decrease and increase editing volume.',0
244 64 20 5C 20 64 65 63+
245 72 65 61 73 65 20 61+
246 6E 64 20 69 6E 63 72+
247 65 61 73 65 20 65 64+
248 69 74 69 6E 67 20 76+
249 6F 6C 75 6D 65 2E 00
250 000000F4 07 01 08 3B 20 61 6E+ db 07,01,08,'; and '' decrease and increase master tempo.',0
251 64 20 27 20 64 65 63+
252 72 65 61 73 65 20 61+
253 6E 64 20 69 6E 63 72+
254 65 61 73 65 20 6D 61+
255 73 74 65 72 20 74 65+
256 6D 70 6F 2E 00
257 00000123 07 01 09 2F 20 61 6E+ db 07,01,09,'/ and * decrease and increase editing volume.',0
258 64 20 2A 20 64 65 63+
259 72 65 61 73 65 20 61+
260 6E 64 20 69 6E 63 72+
261 65 61 73 65 20 65 64+
262 69 74 69 6E 67 20 76+
263 6F 6C 75 6D 65 2E 00
264 00000154 07 02 0A 28 41 20 6E+ db 07,02,10,'(A note on this, the octaves range from 0-3 for digital and 0-5 +
265 6F 74 65 20 6F 6E 20+ for FM)',0
266 74 68 69 73 2C 20 74+
267 68 65 20 6F 63 74 61+
268 76 65 73 20 72 61 6E+
269 67 65 20 66 72 6F 6D+
270 20 30 2D 33 20 66 6F+
271 72 20 64 69 67 69 74+
272 61 6C 20 61 6E 64 20+
273 30 2D 35 20 66 6F 72+
274 20 46 4D 29 00
275 0000019F 07 01 0C 54 61 62 20+ db 07,01,12,'Tab toggles stereo digital.',0
276 74 6F 67 67 6C 65 73+
277 20 73 74 65 72 65 6F+
278 20 64 69 67 69 74 61+
279 6C 2E 00
280 000001BE 07 01 0D 53 68 69 66+ db 07,01,13,'Shift-Tab toggles stereo FM.',0
281 74 2D 54 61 62 20 74+
282 6F 67 67 6C 65 73 20+
283 73 74 65 72 65 6F 20+
284 46 4D 2E 00
285 000001DE 07 02 0E 28 62 6F 74+ db 07,02,14,'(both start off as mono, however in stereo FM there are 9 extra +
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 6
cdfmsb.ASM
286 68 20 73 74 61 72 74+ channels',0
287 20 6F 66 66 20 61 73+
288 20 6D 6F 6E 6F 2C 20+
289 68 6F 77 65 76 65 72+
290 20 69 6E 20 73 74 65+
291 72 65 6F 20 46 4D 20+
292 74 68 65 72 65 20 61+
293 72 65 20 39 20 65 78+
294 74 72 61 20 63 68 61+
295 6E 6E 65 6C 73 00
296 0000022A 07 03 0F 62 75 74 20+ db 07,03,15,'but in stereo digital, the existing 4 are just split up between l+
297 69 6E 20 73 74 65 72+ and r)',0
298 65 6F 20 64 69 67 69+
299 74 61 6C 2C 20 74 68+
300 65 20 65 78 69 73 74+
301 69 6E 67 20 34 20 61+
302 72 65 20 6A 75 73 74+
303 20 73 70 6C 69 74 20+
304 75 70 20 62 65 74 77+
305 65 65 6E 20 6C 20 61+
306 6E 64 20 72 29 00
307 00000276 07 01 11 46 35 20 70+ db 07,01,17,'F5 plays the whole song.',0
308 6C 61 79 73 20 74 68+
309 65 20 77 68 6F 6C 65+
310 20 73 6F 6E 67 2E 00
311 00000292 07 01 12 46 36 20 70+ db 07,01,18,'F6 plays just the pattern youre editing at the moment.',0
312 6C 61 79 73 20 6A 75+
313 73 74 20 74 68 65 20+
314 70 61 74 74 65 72 6E+
315 20 79 6F 75 72 65 20+
316 65 64 69 74 69 6E 67+
317 20 61 74 20 74 68 65+
318 20 6D 6F 6D 65 6E 74+
319 2E 00
320 000002CC 07 01 13 46 37 20 70+ db 07,01,19,'F7 plays from the order the cursor is on in the order thingy.',0
321 6C 61 79 73 20 66 72+
322 6F 6D 20 74 68 65 20+
323 6F 72 64 65 72 20 74+
324 68 65 20 63 75 72 73+
325 6F 72 20 69 73 20 6F+
326 6E 20 69 6E 20 74 68+
327 65 20 6F 72 64 65 72+
328 20 74 68 69 6E 67 79+
329 2E 00
330 0000030D 07 02 14 28 70 72 65+ db 07,02,20,'(press any key during playback to stop)',0
331 73 73 20 61 6E 79 20+
332 6B 65 79 20 64 75 72+
333 69 6E 67 20 70 6C 61+
334 79 62 61 63 6B 20 74+
335 6F 20 73 74 6F 70 29+
336 00
337 00000338 07 01 16 46 31 32 20+ db 07,01,22,'F12 saves the song in full info mode. (you use this)',0
338 73 61 76 65 73 20 74+
339 68 65 20 73 6F 6E 67+
340 20 69 6E 20 66 75 6C+
341 6C 20 69 6E 66 6F 20+
342 6D 6F 64 65 2E 20 28+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 7
cdfmsb.ASM
343 79 6F 75 20 75 73 65+
344 20 74 68 69 73 29 00
345 00000370 07 01 17 41 4C 54 2D+ db 07,01,23,'ALT-F12 saves the song as the data file that will actually be +
346 46 31 32 20 73 61 76+ used by moi.',0
347 65 73 20 74 68 65 20+
348 73 6F 6E 67 20 61 73+
349 20 74 68 65 20 64 61+
350 74 61 20 66 69 6C 65+
351 20 74 68 61 74 20 77+
352 69 6C 6C 20 61 63 74+
353 75 61 6C 6C 79 20 62+
354 65 20 75 73 65 64 20+
355 62 79 20 6D 6F 69 2E+
356 00
357 000003BE 07 01 1B 46 34 20 74+ db 07,01,27,'F4 takes ya to FM instrument menu thing.',0
358 61 6B 65 73 20 79 61+
359 20 74 6F 20 46 4D 20+
360 69 6E 73 74 72 75 6D+
361 65 6E 74 20 6D 65 6E+
362 75 20 74 68 69 6E 67+
363 2E 00
364 000003EA 07 01 18 46 31 20 74+ db 07,01,24,'F1 takes ya to the digital instrument menu.',0
365 61 6B 65 73 20 79 61+
366 20 74 6F 20 74 68 65+
367 20 64 69 67 69 74 61+
368 6C 20 69 6E 73 74 72+
369 75 6D 65 6E 74 20 6D+
370 65 6E 75 2E 00
371 00000419 07 01 19 46 32 20 74+ db 07,01,25,'F2 takes ya to the edit pattern menu or window or whatever.',0
372 61 6B 65 73 20 79 61+
373 20 74 6F 20 74 68 65+
374 20 65 64 69 74 20 70+
375 61 74 74 65 72 6E 20+
376 6D 65 6E 75 20 6F 72+
377 20 77 69 6E 64 6F 77+
378 20 6F 72 20 77 68 61+
379 74 65 76 65 72 2E 00
380 00000458 07 01 1A 46 33 20 6C+ db 07,01,26,'F3 lets ya edit the order list, then blows out your VGA.',0
381 65 74 73 20 79 61 20+
382 65 64 69 74 20 74 68+
383 65 20 6F 72 64 65 72+
384 20 6C 69 73 74 2C 20+
385 74 68 65 6E 20 62 6C+
386 6F 77 73 20 6F 75 74+
387 20 79 6F 75 72 20 56+
388 47 41 2E 00
389 00000494 07 01 1C 41 4C 54 2D+ db 07,01,28,'ALT-X destroys your computer...',0
390 58 20 64 65 73 74 72+
391 6F 79 73 20 79 6F 75+
392 72 20 63 6F 6D 70 75+
393 74 65 72 2E 2E 2E 00
394 000004B7 07 01 1E 53 70 61 63+ db 07,01,30,'Space in the instrument menu whatevers allows ya to select an +
395 65 20 69 6E 20 74 68+ instrument.',0
396 65 20 69 6E 73 74 72+
397 75 6D 65 6E 74 20 6D+
398 65 6E 75 20 77 68 61+
399 74 65 76 65 72 73 20+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 8
cdfmsb.ASM
400 61 6C 6C 6F 77 73 20+
401 79 61 20 74 6F 20 73+
402 65 6C 65 63 74 20 61+
403 6E 20 69 6E 73 74 72+
404 75 6D 65 6E 74 2E 00
405 00000504 07 01 1F 45 6E 74 65+ db 07,01,31,'Enter be allowing ya to edit the instrument name.',0
406 72 20 62 65 20 61 6C+
407 6C 6F 77 69 6E 67 20+
408 79 61 20 74 6F 20 65+
409 64 69 74 20 74 68 65+
410 20 69 6E 73 74 72 75+
411 6D 65 6E 74 20 6E 61+
412 6D 65 2E 00
413 00000539 07 01 20 2E 20 63 6C+ db 07,01,32,'. clears stuff in any menu...',0
414 65 61 72 73 20 73 74+
415 75 66 66 20 69 6E 20+
416 61 6E 79 20 6D 65 6E+
417 75 2E 2E 2E 00
418 0000055A 07 01 21 2D 20 61 6E+ db 07,01,33,'- and + decrease and increase values in the FM instrument menu.',0
419 64 20 2B 20 64 65 63+
420 72 65 61 73 65 20 61+
421 6E 64 20 69 6E 63 72+
422 65 61 73 65 20 76 61+
423 6C 75 65 73 20 69 6E+
424 20 74 68 65 20 46 4D+
425 20 69 6E 73 74 72 75+
426 6D 65 6E 74 20 6D 65+
427 6E 75 2E 00
428 0000059D 07 01 22 41 4C 54 2D+ db 07,01,34,'ALT-Backspace saves the instrument ya got currently selected.',0
429 42 61 63 6B 73 70 61+
430 63 65 20 73 61 76 65+
431 73 20 74 68 65 20 69+
432 6E 73 74 72 75 6D 65+
433 6E 74 20 79 61 20 67+
434 6F 74 20 63 75 72 72+
435 65 6E 74 6C 79 20 73+
436 65 6C 65 63 74 65 64+
437 2E 00
438 000005DE 07 02 23 28 64 69 67+ db 07,02,35,'(digital instruments are saved as filez, FM are saved in the bank+
439 69 74 61 6C 20 69 6E+ file',0
440 73 74 72 75 6D 65 6E+
441 74 73 20 61 72 65 20+
442 73 61 76 65 64 20 61+
443 73 20 66 69 6C 65 7A+
444 2C 20 46 4D 20 61 72+
445 65 20 73 61 76 65 64+
446 20 69 6E 20 74 68 65+
447 20 62 61 6E 6B 20 66+
448 69 6C 65 00
449 00000628 07 03 24 77 68 69 63+ db 07,03,36,'which can hold up to 666 FM instruments. Thus make sure the +
450 68 20 63 61 6E 20 68+ digital',0
451 6F 6C 64 20 75 70 20+
452 74 6F 20 36 36 36 20+
453 46 4D 20 69 6E 73 74+
454 72 75 6D 65 6E 74 73+
455 2E 20 54 68 75 73 20+
456 6D 61 6B 65 20 73 75+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 9
cdfmsb.ASM
457 72 65 20 74 68 65 20+
458 64 69 67 69 74 61 6C+
459 00
460 0000066F 07 03 25 69 6E 73 74+ db 07,03,37,'instrument namez are valid filenames before saving)',0
461 72 75 6D 65 6E 74 20+
462 6E 61 6D 65 7A 20 61+
463 72 65 20 76 61 6C 69+
464 64 20 66 69 6C 65 6E+
465 61 6D 65 73 20 62 65+
466 66 6F 72 65 20 73 61+
467 76 69 6E 67 29 00
468 000006A6 07 01 28 55 6D 6D 2C+ db 07,01,40,'Umm, ok, U B on your own now... play wit this ting and figure it +
469 20 6F 6B 2C 20 55 20+ out for',0
470 42 20 6F 6E 20 79 6F+
471 75 72 20 6F 77 6E 20+
472 6E 6F 77 2E 2E 2E 20+
473 70 6C 61 79 20 77 69+
474 74 20 74 68 69 73 20+
475 74 69 6E 67 20 61 6E+
476 64 20 66 69 67 75 72+
477 65 20 69 74 20 6F 75+
478 74 20 66 6F 72 00
479 000006F2 07 01 29 79 6F 75 72+ db 07,01,41,'yourself, I gotta finish coding it now... L8r...',0
480 73 65 6C 66 2C 20 49+
481 20 67 6F 74 74 61 20+
482 66 69 6E 69 73 68 20+
483 63 6F 64 69 6E 67 20+
484 69 74 20 6E 6F 77 2E+
485 2E 2E 20 4C 38 72 2E+
486 2E 2E 00
487 00000726 0C 07 2F 4F 76 65 72+ db 12,07,47,'Overall, this composer works pretty much like my other +
488 61 6C 6C 2C 20 74 68+ composers...',0
489 69 73 20 63 6F 6D 70+
490 6F 73 65 72 20 77 6F+
491 72 6B 73 20 70 72 65+
492 74 74 79 20 6D 75 63+
493 68 20 6C 69 6B 65 20+
494 6D 79 20 6F 74 68 65+
495 72 20 63 6F 6D 70 6F+
496 73 65 72 73 2E 2E 2E+
497 00
498 0000076D 0C 05 30 42 75 74 20+ db 12,05,48,'But for the sake of speed in coding this ting, it is a bare-bones+
499 66 6F 72 20 74 68 65+ thing.',0
500 20 73 61 6B 65 20 6F+
501 66 20 73 70 65 65 64+
502 20 69 6E 20 63 6F 64+
503 69 6E 67 20 74 68 69+
504 73 20 74 69 6E 67 2C+
505 20 69 74 20 69 73 20+
506 61 20 62 61 72 65 2D+
507 62 6F 6E 65 73 20 74+
508 68 69 6E 67 2E 00
509 000007B9 0C 06 31 54 68 65 72+ db 12,06,49,'There is very little error cheking and shit, so dont make any +
510 65 20 69 73 20 76 65+ mistakes!',0
511 72 79 20 6C 69 74 74+
512 6C 65 20 65 72 72 6F+
513 72 20 63 68 65 6B 69+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 10
cdfmsb.ASM
514 6E 67 20 61 6E 64 20+
515 73 68 69 74 2C 20 73+
516 6F 20 64 6F 6E 74 20+
517 6D 61 6B 65 20 61 6E+
518 79 20 6D 69 73 74 61+
519 6B 65 73 21 00
520 00000804 00 db 0
521
522 00000805 4C 38 72 2E 2E 2E 24 l8rmsg db 'L8r...$'
523 0000080C 43 44 46 4D 20 3C 36+ errmsg0 db 'CDFM <670 filename with no extention> <digital instrument +
524 37 30 20 66 69 6C 65+ directory> [-c#]$'
525 6E 61 6D 65 20 77 69+
526 74 68 20 6E 6F 20 65+
527 78 74 65 6E 74 69 6F+
528 6E 3E 20 3C 64 69 67+
529 69 74 61 6C 20 69 6E+
530 73 74 72 75 6D 65 6E+
531 74 20 64 69 72 65 63+
532 74 6F 72 79 3E 20 5B+
533 2D 63 23 5D 24
534
535 00000857 40*(??) songfile db 64 dup(?)
536 00000897 40*(??) datafile db 64 dup(?)
537 000008D7 40*(??) dinsdir db 64 dup(?)
538 00000917 40*(??) prgdir db 64 dup(?)
539 00000957 40*(??) fileworkbuf db 64 dup(?)
540 00000997 2E 43 36 37 00 extention670 db '.C67',0
541 0000099C 2E 36 37 30 00 extentiondat db '.670',0
542 000009A1 2A 2E 2A 00 allfilemask db '*.*',0
543 000009A5 43 44 46 4D 2E 44 41+ fminsfile db 'CDFM.DAT',0
544 54 00
545 000009AE 53 70 61 63 65 67 75+ fminsdat0 db 'Spaceguitar',0,0
546 69 74 61 72 00 00
547 000009BB 00 30 C3 F2 80 02 00+ db 0,48,195,242,128,2,0,0,240,2,2
548 00 F0 02 02
549
550 000009C6 ???????? patbase dd ? ; beginning of compiled patterns
551 000009CA ???????? patoffbase dd ? ; pattern offset data
552 000009CE ???????? patlenbase dd ? ; pattern length data
553 000009D2 ???????? dinsbase dd ? ; digital instrument data
554 000009D6 ???????? dinsnames dd ? ; names of digital instruments
555 000009DA ???????? fminsbase dd ? ; FM instrument data
556 000009DE ???????? fminsnames dd ? ; names of FM instruments
557 000009E2 ???????? fminsbank dd ? ; ptr to bank file of FM instruments
558 000009E6 ???????? ordbase dd ? ; ptr to order list
559 000009EA ???????? workpatptr dd ? ; ptr to workpattern
560 000009EE ???????? buildpat dd ? ; ptr to build pattern buffer
561 000009F2 ???????? dinsfilez dd ? ; ptr to cached digital filenames
562 000009F6 ???????? worktrak dd ? ; ptr to single worktrack
563 000009FA ???????? savetrak dd ? ; ptr to save buffer
564
565 000009FE vgacolorz:
566 000009FE 15 13 03 2A 16 00 1A+ db 21,19,3, 42,22,0, 26,39,33, 48,35,9, 24,21,4, 35,10,37
567 27 21 30 23 09 18 15+
568 04 23 0A 25
569 00000A10 04 17 1F 28 26 16 1E+ db 4,23,31, 40,38,22, 30,28,12, 63,24,14, 37,63,44
570 1C 0C 3F 18 0E 25 3F+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 11
cdfmsb.ASM
571 2C
572 00000A1F 3B 32 1D 00 1D 38 35+ db 59,50,29, 0,29,56, 53,12,61, 15,48,56, 60,59,56
573 0C 3D 0F 30 38 3C 3B+
574 38
575 00000A2E 03 15 13 00 2A 16 21+ db 3,21,19, 0,42,22, 33,26,39, 9,48,35, 4,23,21, 37,35,10
576 1A 27 09 30 23 04 17+
577 15 25 23 0A
578 00000A40 1F 04 17 16 28 26 0C+ db 31,4,23, 22,40,38, 12,30,28, 14,63,24, 44,37,63
579 1E 1C 0E 3F 18 2C 25+
580 3F
581 00000A4F 1D 3B 32 38 00 1D 3D+ db 29,59,50, 56,0,29, 61,53,12, 56,15,48, 56,60,59
582 35 0C 38 0F 30 38 3C+
583 3B
584 00000A5E 13 03 15 16 00 2A 27+ db 19,3,21, 22,0,42, 39,33,26, 35,9,48, 21,4,23, 10,37,35
585 21 1A 23 09 30 15 04+
586 17 0A 25 23
587 00000A70 17 1F 04 26 16 28 1C+ db 23,31,4, 38,22,40, 28,12,30, 24,14,63, 63,44,37
588 0C 1E 18 0E 3F 3F 2C+
589 25
590 00000A7F 32 1D 3B 1D 38 00 0C+ db 50,29,59, 29,56,0, 12,61,53, 48,56,15, 59,56,60
591 3D 35 30 38 0F 3B 38+
592 3C
593 00000A8E 00 03 0C 00 00 1F 00+ db 0,3,12, 0,0,31, 0,31,0, 0,31,42, 1,5,15, 38
594 1F 00 00 1F 2A 01 05+
595 0F 26
596 00000A9E 00 1F 1F 15 00 09 27+ db 0,31,31, 21,0,9, 39,49,21, 21,21,10, 21,53,10, 44
597 31 15 15 15 0A 15 35+
598 0A 2C
599 00000AAE 15 0A 2A 3F 35 15 0A+ db 21,10,42, 63,53,21, 10,44,21, 51,56,46, 10,20,53, 63
600 2C 15 33 38 2E 0A 14+
601 35 3F
602 00000ABE 00 00 0A 00 00 18 00+ db 0, 0, 10, 0, 0, 24, 0, 22, 19, 0, 25, 28, 1, 2, 13, 24
603 16 13 00 19 1C 01 02+
604 0D 18
605 00000ACE 05 16 14 11 0D 00 18+ db 5, 22, 20, 17, 13, 0, 24, 33, 2, 24, 38, 16, 24, 41, 0, 32
606 21 02 18 26 10 18 29+
607 00 20
608 00000ADE 1C 00 22 26 26 13 13+ db 28, 0, 34, 38, 38, 19, 19, 34, 7, 31, 36, 32, 12, 32, 43, 56
609 22 07 1F 24 20 0C 20+
610 2B 38
611 00000AEE 13 00 00 19 00 00 1F+ db 19, 0, 0, 25, 0, 0, 31, 0, 0, 37, 0, 0, 22, 2, 1, 50
612 00 00 25 00 00 16 02+
613 01 32
614 00000AFE 00 00 38 00 00 3F 00+ db 0, 0, 56, 0, 0, 63, 0, 0, 63, 0, 0, 63, 8, 0, 63, 17
615 00 3F 00 00 3F 08 00+
616 3F 11
617 00000B0E 00 3F 1A 00 3F 23 00+ db 0, 63, 26, 0, 63, 35, 0, 63, 44, 0, 63, 53, 0, 63, 63, 0
618 3F 2C 00 3F 35 00 3F+
619 3F 00
620 00000B1E 02 10 15 03 12 17 06+ db 2, 16, 21, 3, 18, 23, 6, 21, 26, 8, 24, 29, 3, 18, 24, 14
621 15 1A 08 18 1D 03 12+
622 18 0E
623 00000B2E 1D 23 11 20 25 15 23+ db 29, 35, 17, 32, 37, 21, 35, 40, 25, 38, 43, 29, 42, 46, 34, 45
624 28 19 26 2B 1D 2A 2E+
625 22 2D
626 00000B3E 31 27 30 33 2C 34 36+ db 49, 39, 48, 51, 44, 52, 54, 50, 55, 57, 56, 59, 60, 63, 63, 63
627 32 37 39 38 3B 3C 3F+
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 12
cdfmsb.ASM
628 3F 3F
629
630 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
631 ; BEGINNING, MISC, AND CODE
632 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
633 include textmode.rt
1 634 public _text_mode
1 635
1 636 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 637 ; Switch to text mode
1 638 ; In:
1 639 ; None
1 640 ; Out:
1 641 ; None
1 642 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 643 00000B4E _text_mode:
1 644 00000B4E 66| 50 push ax
1 645 00000B50 66| C7 05 00000000e + mov v86r_ax,3
646 0003
1 647 00000B59 B0 10 mov al,10h
1 648 00000B5B CD 33 int 33h
1 649 00000B5D 66| 58 pop ax
1 650 00000B5F C3 ret
1 651
1 652
653 include putnumtm.rt
1 654 public _putnumtomem
1 655 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 656 ; Put a hex number to mem
1 657 ; In:
1 658 ; EAX - number
1 659 ; CL - number of characters - 1
1 660 ; EDX -> mem loc to put
1 661 ; Out:
1 662 ; None
1 663 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 664 00000B60 _putnumtomem:
1 665 00000B60 53 push ebx
1 666 00000B61 52 push edx
1 667 00000B62 57 push edi
1 668 00000B63 8B FA mov edi,edx
1 669 00000B65 BB 00000000r mov ebx,offset _hextbl
1 670 00000B6A 0F B6 D1 movzx edx,cl
1 671 00000B6D 80 F1 07 xor cl,7
1 672 00000B70 C0 E1 02 shl cl,2
1 673 00000B73 D3 C0 rol eax,cl
1 674 00000B75 8B CA mov ecx,edx
1 675 00000B77 41 inc ecx
1 676 00000B78 8B D0 mov edx,eax
1 677 00000B7A putnumtomemml:
1 678 00000B7A C1 C2 04 rol edx,4
1 679 00000B7D 8A C2 mov al,dl
1 680 00000B7F 24 0F and al,0fh
1 681 00000B81 D7 xlat
1 682 00000B82 AA stosb
1 683 00000B83 E2 F5 loop putnumtomemml
1 684 00000B85 5F pop edi
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 13
cdfmsb.ASM
1 685 00000B86 5A pop edx
1 686 00000B87 5B pop ebx
1 687 00000B88 C3 ret
1 688
1 689
690 include strcpy.rt
1 691 public _strcpy
1 692 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 693 ; Copy ASCIIZ string to another
1 694 ; In:
1 695 ; ESI -> source string
1 696 ; EDI -> destination string
1 697 ; Out:
1 698 ; None
1 699 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 700 00000B89 _strcpy:
1 701 00000B89 66| 50 push ax
1 702 00000B8B 56 push esi
1 703 00000B8C 57 push edi
1 704 00000B8D strcpyl:
1 705 00000B8D AC lodsb
1 706 00000B8E AA stosb
1 707 00000B8F 0A C0 or al,al
1 708 00000B91 75 FA jnz strcpyl
1 709 00000B93 5F pop edi
1 710 00000B94 5E pop esi
1 711 00000B95 66| 58 pop ax
1 712 00000B97 C3 ret
1 713
1 714
715 include strcat.rt
1 716 public _strcat
1 717 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 718 ; Add one ASCIIZ string to another
1 719 ; In:
1 720 ; ESI -> source string
1 721 ; EDI -> destination string
1 722 ; Out:
1 723 ; None
1 724 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 725 00000B98 _strcat:
1 726 00000B98 66| 50 push ax
1 727 00000B9A 51 push ecx
1 728 00000B9B 56 push esi
1 729 00000B9C 57 push edi
1 730 00000B9D B9 FFFFFFFF mov ecx,-1
1 731 00000BA2 32 C0 xor al,al
1 732 00000BA4 F2> AE repnz scasb
1 733 00000BA6 4F dec edi
1 734 00000BA7 strcatl:
1 735 00000BA7 AC lodsb
1 736 00000BA8 AA stosb
1 737 00000BA9 0A C0 or al,al
1 738 00000BAB 75 FA jnz strcatl
1 739 00000BAD 5F pop edi
1 740 00000BAE 5E pop esi
1 741 00000BAF 59 pop ecx
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 14
cdfmsb.ASM
1 742 00000BB0 66| 58 pop ax
1 743 00000BB2 C3 ret
1 744
1 745
746 include strlen.rt
1 747 public _strlen
1 748 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 749 ; Get length of ASCIIZ string
1 750 ; In:
1 751 ; EDX -> string
1 752 ; Out:
1 753 ; EAX - length
1 754 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 755 00000BB3 _strlen:
1 756 00000BB3 51 push ecx
1 757 00000BB4 57 push edi
1 758 00000BB5 8B FA mov edi,edx
1 759 00000BB7 B9 FFFFFFFF mov ecx,-1
1 760 00000BBC 32 C0 xor al,al
1 761 00000BBE F2> AE repnz scasb
1 762 00000BC0 B8 FFFFFFFE mov eax,-2
1 763 00000BC5 2B C1 sub eax,ecx
1 764 00000BC7 5F pop edi
1 765 00000BC8 59 pop ecx
1 766 00000BC9 C3 ret
1 767
1 768
769 include strltu.rt
1 770 public _strltu
1 771 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 772 ; Make all lower case letters in string uppercase
1 773 ; In:
1 774 ; EDX -> string
1 775 ; Out:
1 776 ; None
1 777 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 778 00000BCA _strltu:
1 779 00000BCA 66| 50 push ax
1 780 00000BCC 52 push edx
1 781 00000BCD strltuml:
1 782 00000BCD 8A 02 mov al,[edx]
1 783 00000BCF 0A C0 or al,al
1 784 00000BD1 74 0F jz short strltumld
1 785 00000BD3 3C 61 cmp al,'a'
1 786 00000BD5 72 08 jb short strltumlf0
1 787 00000BD7 3C 7A cmp al,'z'
1 788 00000BD9 77 04 ja short strltumlf0
1 789 00000BDB 2C 20 sub al,'a'-'A'
1 790 00000BDD 88 02 mov [edx],al
1 791 00000BDF strltumlf0:
1 792 00000BDF 42 inc edx
1 793 00000BE0 EB EB jmp strltuml
1 794 00000BE2 strltumld:
1 795 00000BE2 5A pop edx
1 796 00000BE3 66| 58 pop ax
1 797 00000BE5 C3 ret
1 798
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 15
cdfmsb.ASM
1 799
800 include strhtn.rt
1 801 public _strhtn
1 802 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 803 ; Get number from mem
1 804 ; In:
1 805 ; EDX -> ASCIIZ hex number string
1 806 ; Out:
1 807 ; EAX - number
1 808 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 809 00000BE6 _strhtn:
1 810 00000BE6 66| 53 push bx
1 811 00000BE8 52 push edx
1 812 00000BE9 33 C0 xor eax,eax
1 813 00000BEB strhtnml:
1 814 00000BEB 8A 1A mov bl,[edx]
1 815 00000BED 42 inc edx
1 816 00000BEE 80 EB 30 sub bl,'0'
1 817 00000BF1 72 0F jc short strhtnmld
1 818 00000BF3 80 FB 0A cmp bl,0ah
1 819 00000BF6 72 03 jb short strhtnmlc
1 820 00000BF8 80 EB 07 sub bl,('A'-'0')-10
1 821 00000BFB strhtnmlc:
1 822 00000BFB C1 E0 04 shl eax,4
1 823 00000BFE 0A C3 or al,bl
1 824 00000C00 EB E9 jmp strhtnml
1 825 00000C02 strhtnmld:
1 826 00000C02 5A pop edx
1 827 00000C03 66| 5B pop bx
1 828 00000C05 C3 ret
1 829
1 830
831 include indxword.rt
1 832 public _indexword
1 833 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 834 ; Find a word (2bytes) in a counted list
1 835 ; In:
1 836 ; AX - word to find
1 837 ; EDX -> string of words, first byte is length (in words)
1 838 ; Out:
1 839 ; CF=1 - not found
1 840 ; CF=0 - found
1 841 ; EAX - index
1 842 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 843 00000C06 _indexword:
1 844 00000C06 57 push edi
1 845 00000C07 51 push ecx
1 846 00000C08 8D 7A 01 lea edi,[edx+1]
1 847 00000C0B 0F B6 0A movzx ecx,byte ptr [edx]
1 848 00000C0E F2> 66| AF repnz scasw
1 849 00000C11 75 08 jnz short indexwordf0
1 850 00000C13 0F B6 02 movzx eax,byte ptr [edx]
1 851 00000C16 2B C1 sub eax,ecx
1 852 00000C18 48 dec eax
1 853 00000C19 EB 01 jmp short indexwordf1
1 854 00000C1B indexwordf0:
1 855 00000C1B F9 stc
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 16
cdfmsb.ASM
1 856 00000C1C indexwordf1:
1 857 00000C1C 59 pop ecx
1 858 00000C1D 5F pop edi
1 859 00000C1E C3 ret
1 860
1 861
862 include indxbyte.rt
1 863 public _indexbyte
1 864 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 865 ; Find a byte in a counted string and return index
1 866 ; In:
1 867 ; AL - byte to find
1 868 ; EDX -> string of bytes, first byte is length
1 869 ; Out:
1 870 ; CF=1 - not found
1 871 ; CF=0 - found
1 872 ; EAX - index
1 873 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 874 00000C1F _indexbyte:
1 875 00000C1F 57 push edi
1 876 00000C20 51 push ecx
1 877 00000C21 8D 7A 01 lea edi,[edx+1]
1 878 00000C24 0F B6 0A movzx ecx,byte ptr [edx]
1 879 00000C27 F2> AE repnz scasb
1 880 00000C29 75 08 jnz short indexbytef0
1 881 00000C2B 0F B6 02 movzx eax,byte ptr [edx]
1 882 00000C2E 2B C1 sub eax,ecx
1 883 00000C30 48 dec eax
1 884 00000C31 EB 01 jmp short indexbytef1
1 885 00000C33 indexbytef0:
1 886 00000C33 F9 stc
1 887 00000C34 indexbytef1:
1 888 00000C34 59 pop ecx
1 889 00000C35 5F pop edi
1 890 00000C36 C3 ret
1 891
1 892
893 include copymem.rt
1 894 public _copymem
1 895 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 896 ; Copy a block of memory to another (possibly overlapping) location
1 897 ; In:
1 898 ; ECX - length of block
1 899 ; ESI -> source
1 900 ; EDI -> destination
1 901 ; Out:
1 902 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 903 00000C37 _copymem:
1 904 00000C37 51 push ecx
1 905 00000C38 56 push esi
1 906 00000C39 57 push edi
1 907 00000C3A 3B F7 cmp esi,edi
1 908 00000C3C 73 07 jae short copymemf0
1 909 00000C3E 03 F1 add esi,ecx
1 910 00000C40 03 F9 add edi,ecx
1 911 00000C42 4E dec esi
1 912 00000C43 4F dec edi
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 17
cdfmsb.ASM
1 913 00000C44 FD std
1 914 00000C45 copymemf0:
1 915 00000C45 F3> A4 rep movsb
1 916 00000C47 FC cld
1 917 00000C48 5F pop edi
1 918 00000C49 5E pop esi
1 919 00000C4A 59 pop ecx
1 920 00000C4B C3 ret
1 921
1 922
923 include pdosmsg.rt
1 924 public _putdosmsg
1 925 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 926 ; Put '$' terminated message to DOS
1 927 ; In:
1 928 ; EDX -> message in low mem
1 929 ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1 930 00000C4C _putdosmsg:
1 931 00000C4C 66| 50 52 push ax edx
1 932 00000C4F 03 15 00000000e add edx,_code32a
1 933 00000C55 8A C2 mov al,dl
1 934 00000C57 66| 25 000F and ax,0fh
1 935 00000C5B C1 EA 04 shr edx,4
1 936 00000C5E 66| 89 15 00000000e mov v86r_ds,dx
1 937 00000C65 66| A3 00000000e mov v86r_dx,ax
1 938 00000C6B C6 05 00000000e 09 mov v86r_ah,9
1 939 00000C72 B0 21 mov al,21h
1 940 00000C74 CD 33 int 33h
1 941 00000C76 5A 66| 58 pop edx ax
1 942 00000C79 C3 ret
1 943
1 944
945
946 ;═════════════════════════════════════════════════════════════════════════════
947 00000C7A exitsave: ; exit and save FM instrument bank
948 00000C7A BF 00000957r mov edi,offset fileworkbuf
949 00000C7F BE 00000917r mov esi,offset prgdir
950 00000C84 E8 FFFFFF00 call _strcpy
951 00000C89 BE 000009A5r mov esi,offset fminsfile
952 00000C8E E8 FFFFFF05 call _strcat
953 00000C93 8B D7 mov edx,edi
954 00000C95 E8 00000000e call _createfile
955 00000C9A BA 00001117r mov edx,offset fminsnum
956 00000C9F B9 00000002 mov ecx,2
957 00000CA4 E8 00000000e call _writefile
958 00000CA9 8B 15 000009E2r mov edx,fminsbank
959 00000CAF 66| 6B 0D 00001117r + imul cx,fminsnum,24
960 18
961 00000CB7 E8 00000000e call _writefile
962 00000CBC E8 00000000e call _closefile
963 00000CC1 exit1: ; exit with L8r msg
964 00000CC1 BA 00000805r mov edx,offset l8rmsg
965 00000CC6 EB 05 jmp short exit
966 00000CC8 exit0: ; exit cuz commandline be not right
967 00000CC8 BA 0000080Cr mov edx,offset errmsg0
968 00000CCD exit: ; exit with a message
969 00000CCD 52 push edx
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 18
cdfmsb.ASM
970 00000CCE E8 00000000e call _resetkb
971 00000CD3 E8 00000000e call _uninstall_dfm
972 00000CD8 E8 FFFFFE71 call _text_mode
973 00000CDD 5A pop edx
974 00000CDE E8 FFFFFF69 call _putdosmsg
975 00000CE3 E9 00000000e jmp _exit
976 ;═════════════════════════════════════════════════════════════════════════════
977 00000CE8 _main: ; beginning of program............
978 00000CE8 66| B8 0220 mov ax,220h
979 00000CEC B3 05 mov bl,5
980 00000CEE B7 01 mov bh,1
981
982 00000CF0 66| 05 000C add ax,0ch
983 00000CF4 66| A3 00000000e mov _sbport,ax
984 00000CFA 88 1D 00000000e mov _sbirq,bl
985 ; mov _sbdma,bh
986
987 ; mov _sbport,530h
988 ; mov _sbirq,10
989 ; mov _sbdma,3
990 ; mov _scard,1101b
991
992 00000D00 FB sti
993 00000D01 E8 00000000e call _initkb
994 00000D06 B0 09 mov al,1001b
995 00000D08 E8 00000000e call _install_dfm
996 00000D0D E8 000000D5 call allocbuffers
997 00000D12 E8 00000032 call setdirs
998 00000D17 E8 00000211 call setupscreen
999 00000D1C E8 00000261 call cachedins
1000 00000D21 E8 000001A3 call loadfmins
1001 00000D26 E8 00002087 call clearsong
1002 00000D2B E8 000002EA call loadsong
1003 ; call _getch
1004 ; jmp exit1
1005
1006 00000D30 A1 000009F2r mov eax,dinsfilez
1007 00000D35 A3 0000306Fr mov selbps,eax
1008 00000D3A A1 000009E2r mov eax,fminsbank
1009 00000D3F A3 00003073r mov selbps[4],eax
1010 00000D44 E9 0000101D jmp editins1
1011
1012 ;-----------------------------------------------------------------------------
1013 00000D49 setdirs: ; set and chek files and dirs
1014 00000D49 BD 00000997r mov ebp,offset extention670
1015 00000D4E BA 00000857r mov edx,offset songfile
1016 00000D53 E8 00000079 call setdirsrout
1017 00000D58 BD 0000099Cr mov ebp,offset extentiondat
1018 00000D5D BA 00000897r mov edx,offset datafile
1019 00000D62 E8 0000006A call setdirsrout
1020 00000D67 B0 01 mov al,1
1021 00000D69 BA 000008D7r mov edx,offset dinsdir
1022 00000D6E E8 00000000e call _cchekstr
1023 00000D73 0F 82 FFFFFF4F jc exit0
1024 00000D79 66| B8 0018 mov ax,18h
1025 00000D7D 8E C0 mov es,ax
1026 00000D7F 8B 3D 00000000e mov edi,_code16a
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 19
cdfmsb.ASM
1027 00000D85 81 EF 000000D4 sub edi,0d4h
1028 00000D8B 26: 0F B7 3F movzx edi,word ptr es:[edi]
1029 00000D8F C1 E7 04 shl edi,4
1030 00000D92 B9 FFFFFFFF mov ecx,-1
1031 00000D97 32 C0 xor al,al
1032 00000D99 setdirsl0:
1033 00000D99 F2> AE repnz scasb
1034 00000D9B AE scasb
1035 00000D9C 75 FB jnz setdirsl0
1036 00000D9E 83 C7 02 add edi,2
1037 00000DA1 8B F7 mov esi,edi
1038 00000DA3 8B CF mov ecx,edi
1039 00000DA5 setdirsl1:
1040 00000DA5 26: 8A 07 mov al,es:[edi]
1041 00000DA8 47 inc edi
1042 00000DA9 0A C0 or al,al
1043 00000DAB 74 08 jz short setdirsl1d
1044 00000DAD 3C 5C cmp al,'\'
1045 00000DAF 75 F4 jne setdirsl1
1046 00000DB1 8B CF mov ecx,edi
1047 00000DB3 EB F0 jmp setdirsl1
1048 00000DB5 setdirsl1d:
1049 00000DB5 66| 8C D8 mov ax,ds
1050 00000DB8 66| 8C C3 mov bx,es
1051 00000DBB 8E DB mov ds,bx
1052 00000DBD 8E C0 mov es,ax
1053 00000DBF 2B CE sub ecx,esi
1054 00000DC1 BF 00000917r mov edi,offset prgdir
1055 00000DC6 F3> A4 rep movsb
1056 00000DC8 32 C0 xor al,al
1057 00000DCA AA stosb
1058 00000DCB 66| 8C C0 mov ax,es
1059 00000DCE 8E D8 mov ds,ax
1060 00000DD0 C3 ret
1061 ;-----------------------------------------------------------------------------
1062 00000DD1 setdirsrout:
1063 00000DD1 32 C0 xor al,al
1064 00000DD3 E8 00000000e call _cchekstr
1065 00000DD8 0F 82 FFFFFEEA jc exit0
1066 00000DDE 8B FA mov edi,edx
1067 00000DE0 8B F5 mov esi,ebp
1068 00000DE2 E9 FFFFFDB1 jmp _strcat
1069 ;-----------------------------------------------------------------------------
1070 00000DE7 allocbuffers: ; set up buffers
1071 00000DE7 B8 00004000 mov eax,4000h
1072 00000DEC E8 00000000e call _getmem
1073 00000DF1 A3 00000000e mov _filebufloc,eax
1074 00000DF6 B8 00060000 mov eax,60000h
1075 00000DFB E8 00000000e call _getmem
1076 00000E00 A3 000009C6r mov patbase,eax
1077 00000E05 B8 00001101 mov eax,4353
1078 00000E0A E8 00000000e call _getmem
1079 00000E0F A3 000009EEr mov buildpat,eax
1080 00000E14 B8 00000160 mov eax,11*32
1081 00000E19 E8 00000000e call _getmem
1082 00000E1E A3 000009DAr mov fminsbase,eax
1083 00000E23 B8 000001A0 mov eax,13*32
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 20
cdfmsb.ASM
1084 00000E28 E8 00000000e call _getmem
1085 00000E2D A3 000009DEr mov fminsnames,eax
1086 00000E32 B8 00000200 mov eax,4*4*32
1087 00000E37 E8 00000000e call _getmem
1088 00000E3C A3 000009D2r mov dinsbase,eax
1089 00000E41 B8 000001A0 mov eax,13*32
1090 00000E46 E8 00000000e call _getmem
1091 00000E4B A3 000009D6r mov dinsnames,eax
1092 00000E50 B8 00000200 mov eax,4*128
1093 00000E55 E8 00000000e call _getmem
1094 00000E5A A3 000009CAr mov patoffbase,eax
1095 00000E5F B8 00000200 mov eax,4*128
1096 00000E64 E8 00000000e call _getmem
1097 00000E69 A3 000009CEr mov patlenbase,eax
1098 00000E6E B8 00000100 mov eax,256
1099 00000E73 E8 00000000e call _getmem
1100 00000E78 A3 000009E6r mov ordbase,eax
1101 00000E7D B8 00000B00 mov eax,22*2*64
1102 00000E82 E8 00000000e call _getmem
1103 00000E87 A3 000009EAr mov workpatptr,eax
1104 00000E8C B8 00003E70 mov eax,666*24
1105 00000E91 E8 00000000e call _getmem
1106 00000E96 A3 000009E2r mov fminsbank,eax
1107 00000E9B B8 00006800 mov eax,2048*13
1108 00000EA0 E8 00000000e call _getmem
1109 00000EA5 A3 000009F2r mov dinsfilez,eax
1110 00000EAA B8 00000080 mov eax,128
1111 00000EAF E8 00000000e call _getmem
1112 00000EB4 A3 000009F6r mov worktrak,eax
1113 00000EB9 B8 00000080 mov eax,128
1114 00000EBE E8 00000000e call _getmem
1115 00000EC3 A3 000009FAr mov savetrak,eax
1116 00000EC8 C3 ret
1117 ;-----------------------------------------------------------------------------
1118 00000EC9 loadfmins: ; load or create FM instruments
1119 00000EC9 BE 00000917r mov esi,offset prgdir
1120 00000ECE BF 00000957r mov edi,offset fileworkbuf
1121 00000ED3 E8 FFFFFCB1 call _strcpy
1122 00000ED8 BE 000009A5r mov esi,offset fminsfile
1123 00000EDD E8 FFFFFCB6 call _strcat
1124 00000EE2 8B D7 mov edx,edi
1125 00000EE4 E8 00000000e call _openfile
1126 00000EE9 72 2A jc short loadfminsf0
1127 00000EEB BA 00001117r mov edx,offset fminsnum
1128 00000EF0 B9 00000002 mov ecx,2
1129 00000EF5 E8 00000000e call _readfile
1130 00000EFA 0F B7 0D 00001117r movzx ecx,fminsnum
1131 00000F01 6B C9 18 imul ecx,24
1132 00000F04 8B 15 000009E2r mov edx,fminsbank
1133 00000F0A E8 00000000e call _readfile
1134 00000F0F E8 00000000e call _closefile
1135 00000F14 C3 ret
1136 00000F15 loadfminsf0:
1137 00000F15 BE 000009AEr mov esi,offset fminsdat0
1138 00000F1A 8B 3D 000009E2r mov edi,fminsbank
1139 00000F20 B9 00000018 mov ecx,24
1140 00000F25 F3> A4 rep movsb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 21
cdfmsb.ASM
1141 00000F27 C3 ret
1142 ;-----------------------------------------------------------------------------
1143 00000F28 4E 61 6D 65 00 setupscreenstr db 'Name',0
1144 00000F2D setupscreen: ; setup VGA and clear screen
1145 00000F2D B0 63 mov al,'c'
1146 00000F2F BA 00000957r mov edx,offset fileworkbuf
1147 00000F34 E8 00000000e call _ccheksstr
1148 00000F39 72 1F jc short setupscreenf0
1149 00000F3B 0F B6 35 00000957r movzx esi,fileworkbuf
1150 00000F42 83 EE 30 sub esi,'0'
1151 00000F45 6B F6 30 imul esi,30h
1152 00000F48 B9 0000000C mov ecx,0ch
1153 00000F4D 81 C6 000009FEr add esi,offset vgacolorz
1154 00000F53 BF 00000000e mov edi,offset _vgadefcolorz
1155 00000F58 F3> A5 rep movsd
1156 00000F5A setupscreenf0:
1157 00000F5A E8 00000000e call _initvga50
1158 00000F5F 8B 3D 00000000e mov edi,_vgatextptr
1159 00000F65 B8 10201020 mov eax,10201020h
1160 00000F6A B9 000007D0 mov ecx,40*50
1161 00000F6F F3> AB rep stosd
1162 00000F71 66| BB 0004 mov bx,4
1163 00000F75 B4 19 mov ah,19h
1164 00000F77 BA 00000F28r mov edx,offset setupscreenstr
1165 00000F7C E8 00000000e call _putstr
1166 00000F81 C3 ret
1167 ;-----------------------------------------------------------------------------
1168 00000F82 cachedins: ; cache filenames in dinsdir
1169 00000F82 BE 000008D7r mov esi,offset dinsdir
1170 00000F87 BF 00000957r mov edi,offset fileworkbuf
1171 00000F8C E8 FFFFFBF8 call _strcpy
1172 00000F91 BE 000009A1r mov esi,offset allfilemask
1173 00000F96 E8 FFFFFBFD call _strcat
1174 00000F9B 03 3D 00000000e add edi,_code32a
1175 00000FA1 8B C7 mov eax,edi
1176 00000FA3 66| 83 E7 0F and di,0fh
1177 00000FA7 66| 89 3D 00000000e mov v86r_dx,di
1178 00000FAE C1 E8 04 shr eax,4
1179 00000FB1 66| A3 00000000e mov v86r_ds,ax
1180 00000FB7 66| C7 05 00000000e + mov v86r_cx,0
1181 0000
1182 00000FC0 8B 2D 00000000e mov ebp,_code16a
1183 00000FC6 83 ED 62 sub ebp,62h
1184 00000FC9 8B 3D 000009F2r mov edi,dinsfilez
1185 00000FCF C6 05 00000000e 4E mov v86r_ah,4eh
1186 00000FD6 EB 07 jmp short cachedinsf0
1187 00000FD8 cachedinsml:
1188 00000FD8 C6 05 00000000e 4F mov v86r_ah,4fh
1189 00000FDF cachedinsf0:
1190 00000FDF B0 21 mov al,21h
1191 00000FE1 CD 33 int 33h
1192 00000FE3 66| F7 05 00000000e + test v86r_flags,1
1193 0001
1194 00000FEC 75 1A jnz short cachedinsd
1195 00000FEE 8B F5 mov esi,ebp
1196 00000FF0 66| B8 0018 mov ax,18h
1197 00000FF4 8E D8 mov ds,ax
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 22
cdfmsb.ASM
1198 00000FF6 A5 movsd
1199 00000FF7 A5 movsd
1200 00000FF8 A5 movsd
1201 00000FF9 A4 movsb
1202 00000FFA 66| 8C C0 mov ax,es
1203 00000FFD 8E D8 mov ds,ax
1204 00000FFF 66| FF 05 00001115r inc dinsnum
1205 00001006 EB D0 jmp cachedinsml
1206 00001008 cachedinsd:
1207 00001008 8B 2D 000009F2r mov ebp,dinsfilez
1208 0000100E 66| 8B 0D 00001115r mov cx,dinsnum
1209 00001015 E9 00001F1C jmp alph
1210 ;-----------------------------------------------------------------------------
1211 0000101A loadsong: ; load 670 specified if exists
1212 0000101A BA 00000857r mov edx,offset songfile
1213 0000101F E8 00000000e call _openfile
1214 00001024 0F 82 00000000e jc _ret
1215 0000102A BA 00001119r mov edx,offset mztempo
1216 0000102F B9 00000001 mov ecx,1
1217 00001034 E8 00000000e call _readfile
1218 00001039 BA 0000111Er mov edx,offset mzloop
1219 0000103E E8 00000000e call _readfile
1220 00001043 8B 15 000009D6r mov edx,dinsnames
1221 00001049 B9 000001A0 mov ecx,13*32
1222 0000104E E8 00000000e call _readfile
1223 00001053 8B 15 000009D2r mov edx,dinsbase
1224 00001059 B9 00000200 mov ecx,16*32
1225 0000105E E8 00000000e call _readfile
1226 00001063 8B 15 000009DEr mov edx,fminsnames
1227 00001069 B9 000001A0 mov ecx,13*32
1228 0000106E E8 00000000e call _readfile
1229 00001073 8B 15 000009DAr mov edx,fminsbase
1230 00001079 B9 00000160 mov ecx,11*32
1231 0000107E E8 00000000e call _readfile
1232 00001083 8B 15 000009E6r mov edx,ordbase
1233 00001089 B9 00000100 mov ecx,100h
1234 0000108E E8 00000000e call _readfile
1235 00001093 B9 00000200 mov ecx,4*128
1236 00001098 8B 15 000009CAr mov edx,patoffbase
1237 0000109E E8 00000000e call _readfile
1238 000010A3 8B 9A 000001FC mov ebx,[edx+4*127]
1239 000010A9 8B 15 000009CEr mov edx,patlenbase
1240 000010AF E8 00000000e call _readfile
1241 000010B4 03 9A 000001FC add ebx,[edx+4*127]
1242 000010BA 8B 15 000009C6r mov edx,patbase
1243 000010C0 8B CB mov ecx,ebx
1244 000010C2 E8 00000000e call _readfile
1245 ; @rlp edx,100000h
1246 000010C7 8B 15 00000000e mov edx,_himembase
1247 000010CD B9 01000000 mov ecx,1000000h
1248 000010D2 E8 00000000e call _readfile
1249 000010D7 E8 00000000e call _closefile
1250 000010DC 68 00002E95r push offset putall
1251 000010E1 EB 72 jmp resetdinslens
1252
1253 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
1254 ; COMPOSER SPECIFIC DATA
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 23
cdfmsb.ASM
1255 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
1256 000010E3 18 7A 73 78 64 63 76+ nkeylist db 24,'zsxdcvgbhnjmq2w3er5t6y7u'
1257 67 62 68 6E 6A 6D 71+
1258 32 77 33 65 72 35 74+
1259 36 79 37 75
1260 000010FC 10 30 31 32 33 34 35+ numlist db 16,'0123456789ABCDEF'
1261 36 37 38 39 41 42 43+
1262 44 45 46
1263
1264 0000110D 0009 installword dw 1001b
1265 0000110F 00 zeroforplay db 0
1266 00001110 02 maxvoiceb db 2
1267 00001111 ???????? smpbase dd ?
1268 00001115 0000 dinsnum dw 0
1269 00001117 0001 fminsnum dw 1 ; number of FM instruments in bank
1270
1271 00001119 ?? mztempo db ? ; tempo of muzik
1272 0000111A ?? svnord db ?
1273 0000111B ?? svnpat db ?
1274 0000111C ?? svndins db ?
1275 0000111D ?? svnfmins db ?
1276 0000111E ?? mzloop db ? ; muzik loop
1277 0000111F ???????? svdinsoff dd ?
1278 00001123 ?? mzbreak db ? ; break for this pattern
1279
1280 00001124 ?? edpat db ? ; current pattern
1281 00001125 ?? edvol db ? ; current volume
1282 00001126 ?? edoct db ? ; editing octave
1283 00001127 ?? edvoiceb db ? ; editing voice base
1284 00001128 ?? edvoiceo db ? ; editing voice offset
1285 00001129 ?? edrowb db ? ; editing row base
1286 0000112A ?? edrowo db ? ; editing row offset
1287 0000112B ?? edinsb db ? ; editing instrument base
1288 0000112C ?? edinso db ? ; editing instrument offset
1289 0000112D ?? edordb db ? ; editing order base
1290 0000112E ?? edordo db ? ; editing order offset
1291 0000112F ?? edfmval db ? ; editing FM value
1292
1293 00001130 FF edblkb db -1
1294 00001131 FF edblke db -1
1295 00001132 FF edblkl db -1
1296
1297 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
1298 ; COMPOSER CODE
1299 ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
1300
1301 ;─────────────────────────────────────────────────────────────────────────────
1302 00001133 setdinslens:
1303 00001133 8B 1D 000009D2r mov ebx,dinsbase
1304 00001139 B9 00000020 mov ecx,32
1305 0000113E setdinslensml:
1306 0000113E 8B 03 mov eax,[ebx]
1307 00001140 29 43 04 sub [ebx+4],eax
1308 00001143 29 43 08 sub [ebx+8],eax
1309 00001146 29 43 0C sub [ebx+12],eax
1310 00001149 C7 03 00000000 mov dword ptr [ebx],0
1311 0000114F 83 C3 10 add ebx,10h
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 24
cdfmsb.ASM
1312 00001152 E2 EA loop setdinslensml
1313 00001154 C3 ret
1314 ;─────────────────────────────────────────────────────────────────────────────
1315 00001155 resetdinslens:
1316 ; @rlp eax,100000h
1317 00001155 A1 00000000e mov eax,_himembase
1318 0000115A 8B 1D 000009D2r mov ebx,dinsbase
1319 00001160 B9 00000020 mov ecx,32
1320 00001165 resetdinslensml:
1321 00001165 8B 53 04 mov edx,[ebx+4]
1322 00001168 0B D2 or edx,edx
1323 0000116A 74 0D jz short resetdinslensmlc
1324 0000116C 89 03 mov [ebx],eax
1325 0000116E 01 43 08 add [ebx+8],eax
1326 00001171 01 43 0C add [ebx+12],eax
1327 00001174 03 C2 add eax,edx
1328 00001176 89 43 04 mov [ebx+4],eax
1329 00001179 resetdinslensmlc:
1330 00001179 83 C3 10 add ebx,10h
1331 0000117C E2 E7 loop resetdinslensml
1332 0000117E C3 ret
1333
1334 ;─────────────────────────────────────────────────────────────────────────────
1335 0000117F adjoct:
1336 0000117F 80 3D 00001126r 04 cmp edoct,4
1337 00001186 0F 82 00000000e jb _ret
1338 0000118C C6 05 00001126r 03 mov edoct,3
1339 00001193 C3 ret
1340
1341 ;─────────────────────────────────────────────────────────────────────────────
1342 00001194 calcloc:
1343 00001194 0F B6 05 00001129r movzx eax,edrowb
1344 0000119B 02 05 0000112Ar add al,edrowo
1345 000011A1 6B F8 2C imul edi,eax,44
1346 000011A4 0F B6 05 00001127r movzx eax,edvoiceb
1347 000011AB 02 05 00001128r add al,edvoiceo
1348 000011B1 8D 3C 47 lea edi,[edi+eax*2]
1349 000011B4 03 3D 000009EAr add edi,workpatptr
1350 000011BA C3 ret
1351
1352 ;─────────────────────────────────────────────────────────────────────────────
1353 000011BB CD BA C9 BB C8 BC 20 boxgrfx db '═║╔╗╚╝ '
1354 000011C2 50 6C 61 79 69 6E 67+ playstr db 'Playing...',0
1355 2E 2E 2E 00
1356 000011CD play:
1357 000011CD 66| BB 1822 mov bx,1822h
1358 000011D1 66| B9 060F mov cx,60fh
1359 000011D5 E8 00000000e call _pushtext
1360 000011DA 66| 81 C3 0101 add bx,101h
1361 000011DF 66| 81 E9 0101 sub cx,101h
1362 000011E4 66| B8 0020 mov ax,20h
1363 000011E8 E8 00000000e call _textbox0
1364 000011ED 66| 81 EB 0101 sub bx,101h
1365 000011F2 BA 000011BBr mov edx,offset boxgrfx
1366 000011F7 B4 87 mov ah,87h
1367 000011F9 E8 00000000e call _textbox1
1368 000011FE 66| 81 C3 0202 add bx,202h
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 25
cdfmsb.ASM
1369 00001203 BA 000011C2r mov edx,offset playstr
1370 00001208 B4 8F mov ah,8fh
1371 0000120A E8 00000000e call _putstr
1372 0000120F A0 00001119r mov al,mztempo
1373 00001214 A2 00000000e mov muztempo,al
1374 00001219 A1 000009D2r mov eax,dinsbase
1375 0000121E A3 00000000e mov muzsbinsptr,eax
1376 00001223 A1 000009DAr mov eax,fminsbase
1377 00001228 A3 00000000e mov muzfminsptr,eax
1378 0000122D A1 000009C6r mov eax,patbase
1379 00001232 A3 00000000e mov muzpatbase,eax
1380 00001237 E8 00000000e call _setmuzik
1381 0000123C E8 00000000e call _getch
1382 00001241 E8 00000000e call _stopmuzik
1383 00001246 E8 00000000e call _poptext
1384 0000124B C3 ret
1385
1386 ;─────────────────────────────────────────────────────────────────────────────
1387 0000124C howmanyorders:
1388 0000124C 32 E4 xor ah,ah
1389 0000124E 8B 35 000009E6r mov esi,ordbase
1390 00001254 howmanyordersml:
1391 00001254 AC lodsb
1392 00001255 3C FF cmp al,-1
1393 00001257 74 04 je short howmanyordersd
1394 00001259 FE C4 inc ah
1395 0000125B EB F7 jmp howmanyordersml
1396 0000125D howmanyordersd:
1397 0000125D 8A C4 mov al,ah
1398 0000125F C3 ret
1399
1400 ;─────────────────────────────────────────────────────────────────────────────
1401 00001260 calcloc2:
1402 00001260 8A 3D 0000112Ar mov bh,edrowo
1403 00001266 80 C7 10 add bh,16
1404 00001269 0F B6 05 00001128r movzx eax,edvoiceo
1405 00001270 6B C0 07 imul eax,7
1406 00001273 8A D8 mov bl,al
1407 00001275 80 C3 03 add bl,3
1408 00001278 C3 ret
1409
1410 ;─────────────────────────────────────────────────────────────────────────────
1411 00001279 setins:
1412 00001279 32 DB xor bl,bl
1413 0000127B 8A F8 mov bh,al
1414 0000127D 3C 14 cmp al,14h
1415 0000127F 72 07 jb short setinsf0
1416 00001281 8A D8 mov bl,al
1417 00001283 80 EB 13 sub bl,13h
1418 00001286 B7 13 mov bh,13h
1419 00001288 setinsf0:
1420 00001288 88 3D 0000112Br mov edinsb,bh
1421 0000128E 88 1D 0000112Cr mov edinso,bl
1422 00001294 C3 ret
1423
1424 ;─────────────────────────────────────────────────────────────────────────────
1425 00001295 gettrak:
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 26
cdfmsb.ASM
1426 00001295 0F B6 05 00001127r movzx eax,edvoiceb
1427 0000129C 02 05 00001128r add al,edvoiceo
1428 000012A2 8D 34 45 00000000 lea esi,[eax*2]
1429 000012A9 03 35 000009EAr add esi,workpatptr
1430 000012AF 8B 3D 000009F6r mov edi,worktrak
1431 000012B5 B9 00000040 mov ecx,64
1432 000012BA gettrakml:
1433 000012BA 66| A5 movsw
1434 000012BC 83 C6 2A add esi,42
1435 000012BF E2 F9 loop gettrakml
1436 000012C1 C3 ret
1437 ;─────────────────────────────────────────────────────────────────────────────
1438 000012C2 puttrak:
1439 000012C2 0F B6 05 00001127r movzx eax,edvoiceb
1440 000012C9 02 05 00001128r add al,edvoiceo
1441 000012CF 8D 3C 45 00000000 lea edi,[eax*2]
1442 000012D6 03 3D 000009EAr add edi,workpatptr
1443 000012DC 8B 35 000009F6r mov esi,worktrak
1444 000012E2 B9 00000040 mov ecx,64
1445 000012E7 puttrakml:
1446 000012E7 66| A5 movsw
1447 000012E9 83 C7 2A add edi,42
1448 000012EC E2 F9 loop puttrakml
1449 000012EE C3 ret
1450
1451 ;─────────────────────────────────────────────────────────────────────────────
1452 000012EF calc3:
1453 000012EF E8 FFFFFFA1 call gettrak
1454 000012F4 8B 3D 000009F6r mov edi,worktrak
1455 000012FA 0F B6 1D 00001130r movzx ebx,edblkb
1456 00001301 0A DB or bl,bl
1457 00001303 78 13 js ret2
1458 00001305 8D 3C 5F lea edi,[edi+ebx*2]
1459 00001308 0F B6 0D 00001131r movzx ecx,edblke
1460 0000130F 0A C9 or cl,cl
1461 00001311 78 05 js ret2
1462 00001313 2A CB sub cl,bl
1463 00001315 FE C1 inc cl
1464 00001317 C3 ret
1465 00001318 ret2:
1466 00001318 83 C4 04 add esp,4
1467 0000131B C3 ret
1468
1469 ;─────────────────────────────────────────────────────────────────────────────
1470 0000131C 13 inputlist db 19
1471 0000131D 0278 002A 002F 003D + dw 278h,'*','/','=','\',12ch,12eh,';','''',0fh,10fh
1472 005C 012C 012E 003B +
1473 0027 000F 010F
1474 00001333 013F 0008 0006 0005 + dw 13fh,8,6,5,7,12,20ch
1475 0007 000C 020C
1476 00001341 00000C7Ar 000013A7r + inputrout dd exitsave,incoct,decoct,decvol,incvol,decloop,incloop
1477 000013ABr 000013D0r +
1478 000013CCr 000013F5r +
1479 000013F1r
1480 0000135D 0000141Ar 00001416r + dd dectempo,inctempo,togglesd,togglesfm,help,_stopmuzik
1481 0000143Br 0000144Er +
1482 00001458r 00000000e
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 27
cdfmsb.ASM
1483 00001375 0000149Fr 000014DDr + dd playpat,playsong,playord,savesong,savedata
1484 000014E1r 00001525r +
1485 00001607r
1486 00001389 getinput: ; regular high get input routine
1487 00001389 E8 00000000e call _getch
1488 0000138E BA 0000131Cr mov edx,offset inputlist
1489 00001393 E8 FFFFF86E call _indexword
1490 00001398 0F 82 00000000e jc _ret
1491 0000139E FF 14 85 00001341r call inputrout[eax*4]
1492 000013A5 EB E2 jmp getinput
1493 ;-----------------------------------------------------------------------------
1494 000013A7 incoct:
1495 000013A7 B4 01 mov ah,1
1496 000013A9 EB 02 jmp short changeoct
1497 ;-----------------------------------------------------------------------------
1498 000013AB decoct:
1499 000013AB B4 FF mov ah,-1
1500 000013AD changeoct:
1501 000013AD A0 00001126r mov al,edoct
1502 000013B2 02 C4 add al,ah
1503 000013B4 0F 88 00000000e js _ret
1504 000013BA 3C 06 cmp al,6
1505 000013BC 0F 87 00000000e ja _ret
1506 000013C2 A2 00001126r mov edoct,al
1507 000013C7 E9 00001658 jmp putstat
1508 ;-----------------------------------------------------------------------------
1509 000013CC incvol:
1510 000013CC B4 01 mov ah,1
1511 000013CE EB 02 jmp short changevol
1512 ;-----------------------------------------------------------------------------
1513 000013D0 decvol:
1514 000013D0 B4 FF mov ah,-1
1515 000013D2 changevol:
1516 000013D2 A0 00001125r mov al,edvol
1517 000013D7 02 C4 add al,ah
1518 000013D9 0F 88 00000000e js _ret
1519 000013DF 3C 0F cmp al,0fh
1520 000013E1 0F 87 00000000e ja _ret
1521 000013E7 A2 00001125r mov edvol,al
1522 000013EC E9 00001633 jmp putstat
1523 ;-----------------------------------------------------------------------------
1524 000013F1 incloop:
1525 000013F1 B4 01 mov ah,1
1526 000013F3 EB 02 jmp short changeloop
1527 ;-----------------------------------------------------------------------------
1528 000013F5 decloop:
1529 000013F5 B4 FF mov ah,-1
1530 000013F7 changeloop:
1531 000013F7 A0 0000111Er mov al,mzloop
1532 000013FC 02 C4 add al,ah
1533 000013FE 0F 88 00000000e js _ret
1534 00001404 3C 7F cmp al,7fh
1535 00001406 0F 87 00000000e ja _ret
1536 0000140C A2 0000111Er mov mzloop,al
1537 00001411 E9 0000160E jmp putstat
1538 ;-----------------------------------------------------------------------------
1539 00001416 inctempo:
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 28
cdfmsb.ASM
1540 00001416 B4 01 mov ah,1
1541 00001418 EB 02 jmp short changetempo
1542 ;-----------------------------------------------------------------------------
1543 0000141A dectempo:
1544 0000141A B4 FF mov ah,-1
1545 0000141C changetempo:
1546 0000141C A0 00001119r mov al,mztempo
1547 00001421 02 C4 add al,ah
1548 00001423 0F 84 00000000e jz _ret
1549 00001429 3C 0F cmp al,0fh
1550 0000142B 0F 87 00000000e ja _ret
1551 00001431 A2 00001119r mov mztempo,al
1552 00001436 E9 000015E9 jmp putstat
1553 ;-----------------------------------------------------------------------------
1554 0000143B togglesd:
1555 0000143B 66| 83 35 0000110Dr + xor installword,100b
1556 04
1557 00001443 togglereinstall:
1558 00001443 66| A1 0000110Dr mov ax,installword
1559 00001449 E9 00000000e jmp _install_dfm
1560 ;-----------------------------------------------------------------------------
1561 0000144E togglesfm:
1562 ; xor maxvoiceb,9
1563 ; mov edvoiceb,0
1564 0000144E 66| 83 35 0000110Dr + xor installword,11b
1565 03
1566 00001456 EB EB jmp togglereinstall
1567 ;-----------------------------------------------------------------------------
1568 00001458 help:
1569 00001458 33 DB xor ebx,ebx
1570 0000145A 66| B9 3250 mov cx,3250h
1571 0000145E E8 00000000e call _pushtext
1572 00001463 66| B8 0F20 mov ax,0f20h
1573 00001467 E8 00000000e call _textbox0
1574 0000146C BE 00000010r mov esi,offset ht
1575 00001471 helploop:
1576 00001471 AC lodsb
1577 00001472 0A C0 or al,al
1578 00001474 74 1E jz helpdone
1579 00001476 8A E0 mov ah,al
1580 00001478 AC lodsb
1581 00001479 8A D8 mov bl,al
1582 0000147B AC lodsb
1583 0000147C 8A F8 mov bh,al
1584 0000147E 8B D6 mov edx,esi
1585 00001480 E8 00000000e call _putstr
1586 00001485 8B FE mov edi,esi
1587 00001487 B9 FFFFFFFF mov ecx,-1
1588 0000148C 32 C0 xor al,al
1589 0000148E F2> AE repnz scasb
1590 00001490 8B F7 mov esi,edi
1591 00001492 EB DD jmp helploop
1592 00001494 helpdone:
1593 00001494 E8 00000000e call _getch
1594 00001499 E8 00000000e call _poptext
1595 0000149E C3 ret
1596 ;-----------------------------------------------------------------------------
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 29
cdfmsb.ASM
1597 0000149F playpat:
1598 0000149F E8 00001F10 call setpat
1599 000014A4 C7 05 00000000e + mov muzordptr,offset zeroforplay
1600 0000110Fr
1601 000014AE C6 05 00000000e 01 mov muzordern,1
1602 000014B5 C6 05 00000000e 00 mov muzorderl,0
1603 000014BC 0F B6 05 00001124r movzx eax,edpat
1604 000014C3 C1 E0 02 shl eax,2
1605 000014C6 03 05 000009CAr add eax,patoffbase
1606 000014CC A3 00000000e mov muzpatoffptr,eax
1607 000014D1 C6 05 00000000e 00 mov muzorderc,0
1608 000014D8 E9 FFFFFCF0 jmp play
1609 ;-----------------------------------------------------------------------------
1610 000014DD playsong:
1611 000014DD 32 C0 xor al,al
1612 000014DF EB 0B jmp short playfrom
1613 000014E1 playord:
1614 000014E1 A0 0000112Dr mov al,edordb
1615 000014E6 02 05 0000112Er add al,edordo
1616 000014EC playfrom:
1617 000014EC FE C8 dec al
1618 000014EE A2 00000000e mov muzorderc,al
1619 000014F3 E8 00001EBC call setpat
1620 000014F8 E8 FFFFFD4F call howmanyorders
1621 000014FD A2 00000000e mov muzordern,al
1622 00001502 A0 0000111Er mov al,mzloop
1623 00001507 A2 00000000e mov muzorderl,al
1624 0000150C A1 000009E6r mov eax,ordbase
1625 00001511 A3 00000000e mov muzordptr,eax
1626 00001516 A1 000009CAr mov eax,patoffbase
1627 0000151B A3 00000000e mov muzpatoffptr,eax
1628 00001520 E9 FFFFFCA8 jmp play
1629 ;-----------------------------------------------------------------------------
1630 00001525 savesong:
1631 00001525 E8 FFFFFC09 call setdinslens
1632 0000152A E8 00001E85 call setpat
1633 0000152F BA 00000857r mov edx,offset songfile
1634 00001534 E8 00000000e call _createfile
1635 00001539 BA 00001119r mov edx,offset mztempo
1636 0000153E B9 00000001 mov ecx,1
1637 00001543 E8 00000000e call _writefile
1638 00001548 BA 0000111Er mov edx,offset mzloop
1639 0000154D E8 00000000e call _writefile
1640 00001552 8B 15 000009D6r mov edx,dinsnames
1641 00001558 B9 000001A0 mov ecx,13*32
1642 0000155D E8 00000000e call _writefile
1643 00001562 8B 15 000009D2r mov edx,dinsbase
1644 00001568 B9 00000200 mov ecx,16*32
1645 0000156D E8 00000000e call _writefile
1646 00001572 8B 15 000009DEr mov edx,fminsnames
1647 00001578 B9 000001A0 mov ecx,13*32
1648 0000157D E8 00000000e call _writefile
1649 00001582 8B 15 000009DAr mov edx,fminsbase
1650 00001588 B9 00000160 mov ecx,11*32
1651 0000158D E8 00000000e call _writefile
1652 00001592 8B 15 000009E6r mov edx,ordbase
1653 00001598 B9 00000100 mov ecx,100h
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 30
cdfmsb.ASM
1654 0000159D E8 00000000e call _writefile
1655 000015A2 B9 00000200 mov ecx,4*128
1656 000015A7 8B 15 000009CAr mov edx,patoffbase
1657 000015AD 8B 9A 000001FC mov ebx,[edx+4*127]
1658 000015B3 E8 00000000e call _writefile
1659 000015B8 8B 15 000009CEr mov edx,patlenbase
1660 000015BE 03 9A 000001FC add ebx,[edx+4*127]
1661 000015C4 E8 00000000e call _writefile
1662 000015C9 8B 15 000009C6r mov edx,patbase
1663 000015CF 8B CB mov ecx,ebx
1664 000015D1 E8 00000000e call _writefile
1665 ; @rlp edx,100000h
1666 000015D6 8B 15 00000000e mov edx,_himembase
1667 000015DC 8B 0D 00001111r mov ecx,smpbase
1668 000015E2 2B CA sub ecx,edx
1669 000015E4 E8 00000000e call _writefile
1670 000015E9 E8 00000000e call _closefile
1671 000015EE E9 FFFFFB62 jmp resetdinslens
1672 ;-----------------------------------------------------------------------------
1673 000015F3 ???????? svpatlen dd ?
1674 000015F7 00001684r 00001682r + svrouttbl dd savedatan,savedata1,savedata1,_ret
1675 00001682r 00000000e
1676 00001607 savedata:
1677 00001607 E8 00001DA8 call setpat
1678 0000160C E8 FFFFFC3B call howmanyorders
1679 00001611 0A C0 or al,al
1680 00001613 0F 84 00000000e jz _ret
1681 00001619 A2 0000111Ar mov svnord,al
1682 0000161E 0F B6 C8 movzx ecx,al
1683 00001621 8B 35 000009E6r mov esi,ordbase
1684 00001627 32 E4 xor ah,ah
1685 00001629 savedatal0:
1686 00001629 AC lodsb
1687 0000162A 3A C4 cmp al,ah
1688 0000162C 76 02 jbe short savedatal0c
1689 0000162E 8A E0 mov ah,al
1690 00001630 savedatal0c:
1691 00001630 E2 F7 loop savedatal0
1692 00001632 0F B6 EC movzx ebp,ah
1693 00001635 FE C4 inc ah
1694 00001637 88 25 0000111Br mov svnpat,ah
1695 0000163D 8D 04 AD 00000000 lea eax,[ebp*4]
1696 00001644 03 05 000009CAr add eax,patoffbase
1697 0000164A 8B 38 mov edi,[eax]
1698 0000164C 8D 04 AD 00000000 lea eax,[ebp*4]
1699 00001653 03 05 000009CEr add eax,patlenbase
1700 00001659 03 38 add edi,[eax]
1701 0000165B 89 3D 000015F3r mov svpatlen,edi
1702 00001661 8B 35 000009C6r mov esi,patbase
1703 00001667 03 FE add edi,esi
1704 00001669 BA FFFFFFFF mov edx,-1
1705 0000166E savedatal1:
1706 0000166E AC lodsb
1707 0000166F 0F B6 D8 movzx ebx,al
1708 00001672 C0 EB 05 shr bl,5
1709 00001675 FF 14 9D 000015F7r call svrouttbl[ebx*4]
1710 0000167C 3B F7 cmp esi,edi
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 31
cdfmsb.ASM
1711 0000167E 72 EE jb savedatal1
1712 00001680 EB 2C jmp short savedatal1d
1713 00001682 savedata1:
1714 00001682 46 inc esi
1715 00001683 C3 ret
1716 00001684 savedatan:
1717 00001684 8A D8 mov bl,al
1718 00001686 80 E3 1F and bl,1fh
1719 00001689 66| AD lodsw
1720 0000168B 86 E0 xchg ah,al
1721 0000168D C0 EC 07 shr ah,7
1722 00001690 C1 E8 04 shr eax,4
1723 00001693 80 FB 03 cmp bl,3
1724 00001696 77 0B ja short savedatanfm
1725 00001698 3A C2 cmp al,dl
1726 0000169A 0F 8E 00000000e jle _ret
1727 000016A0 8A D0 mov dl,al
1728 000016A2 C3 ret
1729 000016A3 savedatanfm:
1730 000016A3 3A C6 cmp al,dh
1731 000016A5 0F 8E 00000000e jle _ret
1732 000016AB 8A F0 mov dh,al
1733 000016AD C3 ret
1734 000016AE savedatal1d:
1735 000016AE FE C6 inc dh
1736 000016B0 FE C2 inc dl
1737 000016B2 88 15 0000111Cr mov svndins,dl
1738 000016B8 88 35 0000111Dr mov svnfmins,dh
1739 000016BE 0F B6 C2 movzx eax,dl
1740 000016C1 C1 E0 04 shl eax,4
1741 000016C4 0F B6 DE movzx ebx,dh
1742 000016C7 6B DB 0B imul ebx,11
1743 000016CA 03 05 000015F3r add eax,svpatlen
1744 000016D0 8D 44 18 0A lea eax,[eax+ebx+10]
1745 000016D4 0F B6 1D 0000111Ar movzx ebx,svnord
1746 000016DB 03 C3 add eax,ebx
1747 000016DD 0F B6 1D 0000111Br movzx ebx,svnpat
1748 000016E4 8D 04 98 lea eax,[eax+ebx*4]
1749 000016E7 A3 0000111Fr mov svdinsoff,eax
1750 000016EC 8B 3D 000009EAr mov edi,workpatptr
1751 000016F2 8B 35 000009D2r mov esi,dinsbase
1752 000016F8 B9 00000020 mov ecx,32
1753 000016FD savedatal2:
1754 000016FD 33 C0 xor eax,eax
1755 000016FF AB stosd
1756 00001700 AD lodsd
1757 00001701 8B D8 mov ebx,eax
1758 00001703 AD lodsd
1759 00001704 2B C3 sub eax,ebx
1760 00001706 AB stosd
1761 00001707 AD lodsd
1762 00001708 2B C3 sub eax,ebx
1763 0000170A AB stosd
1764 0000170B AD lodsd
1765 0000170C 2B C3 sub eax,ebx
1766 0000170E AB stosd
1767 0000170F E2 EC loop savedatal2
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 32
cdfmsb.ASM
1768 00001711 BA 00000897r mov edx,offset datafile
1769 00001716 E8 00000000e call _createfile
1770 0000171B BA 00001119r mov edx,offset mztempo
1771 00001720 B9 0000000A mov ecx,10
1772 00001725 E8 00000000e call _writefile
1773 0000172A 8B 15 000009E6r mov edx,ordbase
1774 00001730 0F B6 0D 0000111Ar movzx ecx,svnord
1775 00001737 E8 00000000e call _writefile
1776 0000173C 8B 15 000009CAr mov edx,patoffbase
1777 00001742 0F B6 0D 0000111Br movzx ecx,svnpat
1778 00001749 C1 E1 02 shl ecx,2
1779 0000174C E8 00000000e call _writefile
1780 00001751 8B 15 000009EAr mov edx,workpatptr
1781 00001757 0F B6 0D 0000111Cr movzx ecx,svndins
1782 0000175E C1 E1 04 shl ecx,4
1783 00001761 E8 00000000e call _writefile
1784 00001766 8B 15 000009DAr mov edx,fminsbase
1785 0000176C 0F B6 0D 0000111Dr movzx ecx,svnfmins
1786 00001773 6B C9 0B imul ecx,11
1787 00001776 E8 00000000e call _writefile
1788 0000177B 8B 15 000009C6r mov edx,patbase
1789 00001781 8B 0D 000015F3r mov ecx,svpatlen
1790 00001787 E8 00000000e call _writefile
1791 0000178C 0F B6 05 0000111Cr movzx eax,svndins
1792 00001793 0A C0 or al,al
1793 00001795 0F 84 00001BA4 jz getpat
1794 0000179B 48 dec eax
1795 0000179C C1 E0 04 shl eax,4
1796 0000179F 03 05 000009D2r add eax,dinsbase
1797 000017A5 8B 48 04 mov ecx,[eax+4]
1798 ; @rlp edx,100000h
1799 000017A8 8B 15 00000000e mov edx,_himembase
1800 000017AE 2B CA sub ecx,edx
1801 000017B0 E8 00000000e call _writefile
1802 000017B5 E9 00000000e jmp _closefile
1803
1804 ;═════════════════════════════════════════════════════════════════════════════
1805 000017BA 0E editordlist db 14
1806 000017BB 0019 001A 0015 0016 + dw 25,26,21,22,19,20,13,32,'.',1,4,2,17,18
1807 0013 0014 000D 0020 +
1808 002E 0001 0004 0002 +
1809 0011 0012
1810 000017D7 00001838r 0000183Cr + editordrout dd eoup,eodn,eopgup,eopgdn,eohome,eoend,eoed,eoed,eoclear
1811 00001851r 00001855r +
1812 00001882r 0000188Ar +
1813 00001892r 00001892r +
1814 000018C6r
1815 000017FB 000018E1r 000018EEr + dd eof1,eof2,eof3,eoins,eodel
1816 000018FBr 00001908r +
1817 0000190Fr
1818 0000180F editord:
1819 0000180F E8 00001210 call putstat
1820 00001814 E8 00001145 call putord
1821 00001819 E8 00001198 call putordcur
1822 0000181E E8 FFFFFB66 call getinput
1823 00001823 BA 000017BAr mov edx,offset editordlist
1824 00001828 E8 FFFFF3D9 call _indexword
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 33
cdfmsb.ASM
1825 0000182D 72 E0 jc editord
1826 0000182F FF 14 85 000017D7r call editordrout[eax*4]
1827 00001836 EB D7 jmp editord
1828 ;-----------------------------------------------------------------------------
1829 00001838 eoup:
1830 00001838 B4 FF mov ah,-1
1831 0000183A EB 02 jmp short eoupdn
1832 ;-----------------------------------------------------------------------------
1833 0000183C eodn:
1834 0000183C B4 01 mov ah,1
1835 0000183E eoupdn:
1836 0000183E A0 0000112Er mov al,edordo
1837 00001843 02 C4 add al,ah
1838 00001845 78 10 js eopgupdn
1839 00001847 3C 0C cmp al,0ch
1840 00001849 77 0C ja eopgupdn
1841 0000184B A2 0000112Er mov edordo,al
1842 00001850 C3 ret
1843 ;-----------------------------------------------------------------------------
1844 00001851 eopgup:
1845 00001851 B4 F3 mov ah,-0dh
1846 00001853 EB 02 jmp short eopgupdn
1847 ;-----------------------------------------------------------------------------
1848 00001855 eopgdn:
1849 00001855 B4 0D mov ah,0dh
1850 00001857 eopgupdn:
1851 00001857 A0 0000112Dr mov al,edordb
1852 0000185C 02 C4 add al,ah
1853 0000185E 72 18 jc short eopgupdnf2
1854 00001860 0A E4 or ah,ah
1855 00001862 78 0C js short eopgupdnf1
1856 00001864 3C F4 cmp al,0f4h
1857 00001866 72 14 jb short eopgupdnf0
1858 00001868 eopgupdnf3:
1859 00001868 C6 05 0000112Dr F3 mov edordb,0f3h
1860 0000186F C3 ret
1861 00001870 eopgupdnf1:
1862 00001870 C6 05 0000112Dr 00 mov edordb,0
1863 00001877 C3 ret
1864 00001878 eopgupdnf2:
1865 00001878 0A E4 or ah,ah
1866 0000187A 79 EC jns eopgupdnf3
1867 0000187C eopgupdnf0:
1868 0000187C A2 0000112Dr mov edordb,al
1869 00001881 C3 ret
1870 ;-----------------------------------------------------------------------------
1871 00001882 eohome:
1872 00001882 C6 05 0000112Er 00 mov edordo,0
1873 00001889 C3 ret
1874 ;-----------------------------------------------------------------------------
1875 0000188A eoend:
1876 0000188A C6 05 0000112Er 0C mov edordo,0ch
1877 00001891 C3 ret
1878 ;-----------------------------------------------------------------------------
1879 00001892 eoed:
1880 00001892 8A 3D 0000112Er mov bh,edordo
1881 00001898 80 C7 01 add bh,1
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 34
cdfmsb.ASM
1882 0000189B B3 4D mov bl,77
1883 0000189D B1 02 mov cl,2
1884 0000189F E8 0000174F call getnum
1885 000018A4 0F 82 00000000e jc _ret
1886 000018AA 0F B6 1D 0000112Dr movzx ebx,edordb
1887 000018B1 02 1D 0000112Er add bl,edordo
1888 000018B7 03 1D 000009E6r add ebx,ordbase
1889 000018BD 24 7F and al,7fh
1890 000018BF 88 03 mov [ebx],al
1891 000018C1 E9 FFFFFF76 jmp eodn
1892 ;-----------------------------------------------------------------------------
1893 000018C6 eoclear:
1894 000018C6 0F B6 1D 0000112Dr movzx ebx,edordb
1895 000018CD 02 1D 0000112Er add bl,edordo
1896 000018D3 03 1D 000009E6r add ebx,ordbase
1897 000018D9 C6 03 FF mov byte ptr [ebx],-1
1898 000018DC E9 FFFFFF5B jmp eodn
1899 ;-----------------------------------------------------------------------------
1900 000018E1 eof1:
1901 000018E1 83 C4 04 add esp,4
1902 000018E4 E8 00001075 call putord
1903 000018E9 E9 000000B0 jmp editins0
1904 ;-----------------------------------------------------------------------------
1905 000018EE eof2:
1906 000018EE 83 C4 04 add esp,4
1907 000018F1 E8 00001068 call putord
1908 000018F6 E9 0000046B jmp editins1
1909 ;-----------------------------------------------------------------------------
1910 000018FB eof3:
1911 000018FB 83 C4 04 add esp,4
1912 000018FE E8 0000105B call putord
1913 00001903 E9 0000087A jmp editpat
1914 ;-----------------------------------------------------------------------------
1915 00001908 eoins:
1916 00001908 B8 00002FACr mov eax,offset ins
1917 0000190D EB 05 jmp short eoid
1918 ;-----------------------------------------------------------------------------
1919 0000190F eodel:
1920 0000190F B8 00002FCBr mov eax,offset del
1921 00001914 eoid:
1922 00001914 8B 2D 000009E6r mov ebp,ordbase
1923 0000191A 66| 0F B6 1D + movzx bx,edordb
1924 0000112Dr
1925 00001922 02 1D 0000112Er add bl,edordo
1926 00001928 66| BA 0100 mov dx,100h
1927 0000192C B9 00000001 mov ecx,1
1928 00001931 FF D0 call eax
1929 00001933 C6 07 FF mov byte ptr [edi],-1
1930 00001936 C3 ret
1931
1932 ;═════════════════════════════════════════════════════════════════════════════
1933 00001937 11 editins0list db 17
1934 00001938 0004 0002 0003 0019 + dw 4,2,3,25,26,21,22,19,20,13,'[',']',32,'.',17,18,210h
1935 001A 0015 0016 0013 +
1936 0014 000D 005B 005D +
1937 0020 002E 0011 0012 +
1938 0210
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 35
cdfmsb.ASM
1939 0000195A 00001A30r 00001A3Dr + editins0rout dd esf2,esf3,esf4,eiup,eidn,eipgup,eipgdn,eihome,eiend
1940 00001A23r 00001DDFr +
1941 00001DE3r 00001DF8r +
1942 00001DFCr 00001E9Br +
1943 00001EA3r
1944 0000197E 00001A4Ar 00001A80r + dd esgetname,eslbeg,eslend,esload,esclearins,esins,esdel
1945 00001A89r 00001AC3r +
1946 00001B58r 00001B91r +
1947 00001B9Dr
1948 0000199A 00001BF6r dd esaddins
1949 0000199E editins0:
1950 0000199E E8 00001081 call putstat
1951 000019A3 E8 00000DCA call putins0
1952 000019A8 E8 00000E31 call putins0cur
1953 000019AD E8 FFFFF9D7 call getinput
1954 000019B2 BA 00001937r mov edx,offset editins0list
1955 000019B7 E8 FFFFF24A call _indexword
1956 000019BC 72 09 jc short editins0f0
1957 000019BE FF 14 85 0000195Ar call editins0rout[eax*4]
1958 000019C5 EB D7 jmp editins0
1959 000019C7 editins0f0:
1960 000019C7 0A E4 or ah,ah
1961 000019C9 75 D3 jnz editins0
1962 000019CB BA 000010E3r mov edx,offset nkeylist
1963 000019D0 E8 FFFFF24A call _indexbyte
1964 000019D5 72 C7 jc editins0
1965 000019D7 0F B6 15 0000112Br movzx edx,edinsb
1966 000019DE 02 15 0000112Cr add dl,edinso
1967 000019E4 C1 E2 04 shl edx,4
1968 000019E7 03 15 000009D2r add edx,dinsbase
1969 000019ED 8A 1D 00001125r mov bl,edvol
1970 000019F3 8A E0 mov ah,al
1971 000019F5 80 FC 0C cmp ah,12
1972 000019F8 72 03 jb short editins0f1
1973 000019FA 80 C4 04 add ah,10h-12
1974 000019FD editins0f1:
1975 000019FD E8 FFFFF77D call adjoct
1976 00001A02 A0 00001126r mov al,edoct
1977 00001A07 C0 E0 04 shl al,4
1978 00001A0A 02 E0 add ah,al
1979 00001A0C 32 C0 xor al,al
1980 00001A0E 8B 6A 04 mov ebp,[edx+4]
1981 00001A11 8B 32 mov esi,[edx]
1982 00001A13 8B 4A 08 mov ecx,[edx+8]
1983 00001A16 8B 52 0C mov edx,[edx+12]
1984 00001A19 E8 00000000e call _sbnote
1985 00001A1E E9 FFFFFF7B jmp editins0
1986
1987 ;-----------------------------------------------------------------------------
1988 00001A23 esf4:
1989 00001A23 83 C4 04 add esp,4
1990 00001A26 E8 00000D47 call putins0
1991 00001A2B E9 FFFFFDDF jmp editord
1992 ;-----------------------------------------------------------------------------
1993 00001A30 esf2:
1994 00001A30 83 C4 04 add esp,4
1995 00001A33 E8 00000D3A call putins0
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 36
cdfmsb.ASM
1996 00001A38 E9 00000329 jmp editins1
1997 ;-----------------------------------------------------------------------------
1998 00001A3D esf3:
1999 00001A3D 83 C4 04 add esp,4
2000 00001A40 E8 00000D2D call putins0
2001 00001A45 E9 00000738 jmp editpat
2002 ;-----------------------------------------------------------------------------
2003 00001A4A esgetname:
2004 00001A4A E8 00000D23 call putins0
2005 00001A4F 66| B8 8A00 mov ax,8a00h
2006 00001A53 66| BB 0104 mov bx,104h
2007 00001A57 02 3D 0000112Cr add bh,edinso
2008 00001A5D B1 0C mov cl,12
2009 00001A5F 0F B6 15 0000112Br movzx edx,edinsb
2010 00001A66 02 15 0000112Cr add dl,edinso
2011 00001A6C 6B D2 0D imul edx,13
2012 00001A6F 03 15 000009D6r add edx,dinsnames
2013 00001A75 BD 00001CABr mov ebp,offset editinsaccept
2014 00001A7A E8 00000000e call _getstr
2015 00001A7F C3 ret
2016 ;-----------------------------------------------------------------------------
2017 00001A80 eslbeg:
2018 00001A80 BA 00000008 mov edx,8
2019 00001A85 B3 11 mov bl,17
2020 00001A87 EB 07 jmp short eslnum
2021 ;-----------------------------------------------------------------------------
2022 00001A89 eslend:
2023 00001A89 BA 0000000C mov edx,12
2024 00001A8E B3 17 mov bl,23
2025 00001A90 eslnum:
2026 00001A90 52 push edx
2027 00001A91 8A 3D 0000112Cr mov bh,edinso
2028 00001A97 FE C7 inc bh
2029 00001A99 B1 05 mov cl,5
2030 00001A9B E8 00001553 call getnum
2031 00001AA0 5A pop edx
2032 00001AA1 0F 82 00000000e jc _ret
2033 00001AA7 0F B6 1D 0000112Br movzx ebx,edinsb
2034 00001AAE 02 1D 0000112Cr add bl,edinso
2035 00001AB4 C1 E3 04 shl ebx,4
2036 00001AB7 03 1D 000009D2r add ebx,dinsbase
2037 00001ABD 03 03 add eax,[ebx]
2038 00001ABF 89 04 13 mov [ebx+edx],eax
2039 00001AC2 C3 ret
2040 ;-----------------------------------------------------------------------------
2041 00001AC3 esload:
2042 00001AC3 8B 15 000009F2r mov edx,dinsfilez
2043 00001AC9 0F B7 0D 00001115r movzx ecx,dinsnum
2044 00001AD0 C6 05 00003068r 00 mov seli,0
2045 00001AD7 E8 0000159B call select
2046 00001ADC 0F 82 00000000e jc _ret
2047 00001AE2 0F B6 1D 0000112Br movzx ebx,edinsb
2048 00001AE9 02 1D 0000112Cr add bl,edinso
2049 00001AEF BF 00000957r mov edi,offset fileworkbuf
2050 00001AF4 BE 000008D7r mov esi,offset dinsdir
2051 00001AF9 E8 FFFFF08B call _strcpy
2052 00001AFE 6B F0 0D imul esi,eax,13
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 37
cdfmsb.ASM
2053 00001B01 03 35 000009F2r add esi,dinsfilez
2054 00001B07 E8 FFFFF08C call _strcat
2055 00001B0C 8B D7 mov edx,edi
2056 00001B0E 6B FB 0D imul edi,ebx,13
2057 00001B11 03 3D 000009D6r add edi,dinsnames
2058 00001B17 A5 movsd
2059 00001B18 A5 movsd
2060 00001B19 A5 movsd
2061 00001B1A A4 movsb
2062 00001B1B E8 00000000e call _openfile
2063 00001B20 E8 00000000e call _filesize
2064 00001B25 8B C8 mov ecx,eax
2065 00001B27 8B 15 00001111r mov edx,smpbase
2066 00001B2D C1 E3 04 shl ebx,4
2067 00001B30 03 1D 000009D2r add ebx,dinsbase
2068 00001B36 89 13 mov [ebx],edx
2069 00001B38 89 53 08 mov [ebx+8],edx
2070 00001B3B 03 C2 add eax,edx
2071 00001B3D 89 43 04 mov [ebx+4],eax
2072 00001B40 8D 82 00FFFFFF lea eax,[edx+0ffffffh]
2073 00001B46 89 43 0C mov [ebx+12],eax
2074 00001B49 E8 00000000e call _readfile
2075 00001B4E E8 00000000e call _closefile
2076 00001B53 E9 0000135D jmp adjsmp
2077 ;-----------------------------------------------------------------------------
2078 00001B58 esclearins:
2079 00001B58 0F B6 1D 0000112Br movzx ebx,edinsb
2080 00001B5F 02 1D 0000112Cr add bl,edinso
2081 00001B65 8B FB mov edi,ebx
2082 00001B67 C1 E7 04 shl edi,4
2083 00001B6A 03 3D 000009D2r add edi,dinsbase
2084 00001B70 33 C0 xor eax,eax
2085 00001B72 AB stosd
2086 00001B73 AB stosd
2087 00001B74 AB stosd
2088 00001B75 C7 07 00FFFFFF mov dword ptr [edi],0ffffffh
2089 00001B7B 6B DB 0D imul ebx,13
2090 00001B7E 03 1D 000009DEr add ebx,fminsnames
2091 00001B84 C6 03 00 mov byte ptr [ebx],0
2092 00001B87 E8 00001329 call adjsmp
2093 00001B8C E9 00000252 jmp eidn
2094 ;-----------------------------------------------------------------------------
2095 00001B91 esins:
2096 00001B91 C7 05 00001F66r + mov idcall,offset ins
2097 00002FACr
2098 00001B9B EB 0A jmp short esid
2099 ;-----------------------------------------------------------------------------
2100 00001B9D esdel:
2101 00001B9D C7 05 00001F66r + mov idcall,offset del
2102 00002FCBr
2103 00001BA7 esid:
2104 00001BA7 66| BA 0020 mov dx,20h
2105 00001BAB 66| 0F B6 1D + movzx bx,edinsb
2106 0000112Br
2107 00001BB3 02 1D 0000112Cr add bl,edinso
2108 00001BB9 8B 2D 000009D6r mov ebp,dinsnames
2109 00001BBF B9 0000000D mov ecx,13
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 38
cdfmsb.ASM
2110 00001BC4 66| 53 push bx
2111 00001BC6 66| 52 push dx
2112 00001BC8 FF 15 00001F66r call idcall
2113 00001BCE 66| 5A pop dx
2114 00001BD0 66| 5B pop bx
2115 00001BD2 C6 07 00 mov byte ptr [edi],0
2116 00001BD5 8B 2D 000009D2r mov ebp,dinsbase
2117 00001BDB B9 00000010 mov ecx,16
2118 00001BE0 FF 15 00001F66r call idcall
2119 00001BE6 33 C0 xor eax,eax
2120 00001BE8 AB stosd
2121 00001BE9 AB stosd
2122 00001BEA AB stosd
2123 00001BEB C7 07 00FFFFFF mov dword ptr [edi],0ffffffh
2124 00001BF1 E9 000012BF jmp adjsmp
2125 ;-----------------------------------------------------------------------------
2126 00001BF6 esaddins:
2127 00001BF6 0F B6 05 0000112Br movzx eax,edinsb
2128 00001BFD 02 05 0000112Cr add al,edinso
2129 00001C03 6B F0 0D imul esi,eax,13
2130 00001C06 03 35 000009D6r add esi,dinsnames
2131 00001C0C BF 0000080Cr mov edi,offset errmsg0
2132 00001C11 E8 FFFFEF73 call _strcpy
2133 00001C16 8B D7 mov edx,edi
2134 00001C18 E8 FFFFEFAD call _strltu
2135 00001C1D 8B EA mov ebp,edx
2136 00001C1F 0F B7 1D 00001115r movzx ebx,dinsnum
2137 00001C26 8B 35 000009F2r mov esi,dinsfilez
2138 00001C2C E8 00001346 call alphfind
2139 00001C31 0F 82 00000000e jc _ret
2140 00001C37 66| 8B D8 mov bx,ax
2141 00001C3A 66| 8B 15 00001115r mov dx,dinsnum
2142 00001C41 66| 42 inc dx
2143 00001C43 66| 89 15 00001115r mov dinsnum,dx
2144 00001C4A B9 0000000D mov ecx,13
2145 00001C4F 8B 2D 000009F2r mov ebp,dinsfilez
2146 00001C55 E8 00001352 call ins
2147 00001C5A BE 0000080Cr mov esi,offset errmsg0
2148 00001C5F A5 movsd
2149 00001C60 A5 movsd
2150 00001C61 A5 movsd
2151 00001C62 A4 movsb
2152 00001C63 BE 000008D7r mov esi,offset dinsdir
2153 00001C68 BF 00000957r mov edi,offset fileworkbuf
2154 00001C6D E8 FFFFEF17 call _strcpy
2155 00001C72 BE 0000080Cr mov esi,offset errmsg0
2156 00001C77 E8 FFFFEF1C call _strcat
2157 00001C7C 8B D7 mov edx,edi
2158 00001C7E E8 00000000e call _createfile
2159 00001C83 0F B6 05 0000112Br movzx eax,edinsb
2160 00001C8A 02 05 0000112Cr add al,edinso
2161 00001C90 C1 E0 04 shl eax,4
2162 00001C93 03 05 000009D2r add eax,dinsbase
2163 00001C99 8B 10 mov edx,[eax]
2164 00001C9B 8B 48 04 mov ecx,[eax+4]
2165 00001C9E 2B CA sub ecx,edx
2166 00001CA0 E8 00000000e call _writefile
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 39
cdfmsb.ASM
2167 00001CA5 E8 00000000e call _closefile
2168 00001CAA C3 ret
2169
2170 ;═════════════════════════════════════════════════════════════════════════════
2171 00001CAB 48 51 57 45 52 54 59+ editinsaccept db editins1list-editinsaccept,'QWERTYUIOPASDFGHJKLZXCVBNM'
2172 55 49 4F 50 41 53 44+
2173 46 47 48 4A 4B 4C 5A+
2174 58 43 56 42 4E 4D
2175 00001CC6 71 77 65 72 74 79 75+ db 'qwertyuiopasdfghjklzxcvbnm1234567890 !_?,.()-'
2176 69 6F 70 61 73 64 66+
2177 67 68 6A 6B 6C 7A 78+
2178 63 76 62 6E 6D 31 32+
2179 33 34 35 36 37 38 39+
2180 30 20 21 5F 3F 2C 2E+
2181 28 29 2D
2182 00001CF3 13 editins1list db 19
2183 00001CF4 0019 001A 0017 0018 + dw 25,26,23,24,'+','-',21,22,32,13,19,20,'.',210h,1,2,3
2184 002B 002D 0015 0016 +
2185 0020 000D 0013 0014 +
2186 002E 0210 0001 0002 +
2187 0003
2188 00001D16 0011 0012 dw 17,18
2189 00001D1A 00001DDFr 00001DE3r + editins1rout dd eiup,eidn,eivald,eivalu,eiincval,eidecval
2190 00001E1Br 00001E1Fr +
2191 00001E3Cr 00001E40r
2192 00001D32 00001DF8r 00001DFCr + dd eipgup,eipgdn,eigetins,eigetname,eihome,eiend
2193 00001EABr 00001E65r +
2194 00001E9Br 00001EA3r
2195 00001D4A 00001F11r 00001FCDr + dd eiclearins,eiaddins,eif1,eif3,eif4,eiins,eidel
2196 00001F3Fr 00001F4Cr +
2197 00001F59r 00001F6Ar +
2198 00001F76r
2199 00001D66 editins1:
2200 00001D66 E8 00000CB9 call putstat
2201 00001D6B E8 00000AF5 call putins1
2202 00001D70 E8 00000B8B call putins1cur
2203 00001D75 E8 FFFFF60F call getinput
2204 00001D7A BA 00001CF3r mov edx,offset editins1list
2205 00001D7F E8 FFFFEE82 call _indexword
2206 00001D84 72 09 jc short editins1f0
2207 00001D86 FF 14 85 00001D1Ar call editins1rout[eax*4]
2208 00001D8D EB D7 jmp editins1
2209 00001D8F editins1f0:
2210 00001D8F 0A E4 or ah,ah
2211 00001D91 75 D3 jnz editins1
2212 00001D93 BA 000010E3r mov edx,offset nkeylist
2213 00001D98 E8 FFFFEE82 call _indexbyte
2214 00001D9D 72 C7 jc editins1
2215 00001D9F 0F B6 15 0000112Br movzx edx,edinsb
2216 00001DA6 02 15 0000112Cr add dl,edinso
2217 00001DAC 6B D2 0B imul edx,11
2218 00001DAF 03 15 000009DAr add edx,fminsbase
2219 00001DB5 8A 1D 00001125r mov bl,edvol
2220 00001DBB 8A E0 mov ah,al
2221 00001DBD 80 FC 0C cmp ah,12
2222 00001DC0 72 03 jb short editins1f1
2223 00001DC2 80 C4 04 add ah,10h-12
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 40
cdfmsb.ASM
2224 00001DC5 editins1f1:
2225 00001DC5 A0 00001126r mov al,edoct
2226 00001DCA C0 E0 04 shl al,4
2227 00001DCD 02 E0 add ah,al
2228 00001DCF 32 C0 xor al,al
2229 00001DD1 E8 00000000e call _fmnote
2230 00001DD6 B0 09 mov al,9
2231 00001DD8 E8 00000000e call _fmnote
2232 00001DDD EB 87 jmp editins1
2233 ;-----------------------------------------------------------------------------
2234 00001DDF eiup:
2235 00001DDF B4 FF mov ah,-1
2236 00001DE1 EB 02 jmp short eiupdn
2237 ;-----------------------------------------------------------------------------
2238 00001DE3 eidn:
2239 00001DE3 B4 01 mov ah,1
2240 00001DE5 eiupdn:
2241 00001DE5 A0 0000112Cr mov al,edinso
2242 00001DEA 02 C4 add al,ah
2243 00001DEC 78 10 js eipgupdn
2244 00001DEE 3C 0C cmp al,0ch
2245 00001DF0 77 0C ja eipgupdn
2246 00001DF2 A2 0000112Cr mov edinso,al
2247 00001DF7 C3 ret
2248 ;-----------------------------------------------------------------------------
2249 00001DF8 eipgup:
2250 00001DF8 B4 F3 mov ah,-0dh
2251 00001DFA EB 02 jmp short eipgupdn
2252 ;-----------------------------------------------------------------------------
2253 00001DFC eipgdn:
2254 00001DFC B4 0D mov ah,0dh
2255 00001DFE eipgupdn:
2256 00001DFE A0 0000112Br mov al,edinsb
2257 00001E03 02 C4 add al,ah
2258 00001E05 79 08 jns short eipgupdnf0
2259 00001E07 C6 05 0000112Br 00 mov edinsb,0
2260 00001E0E C3 ret
2261 00001E0F eipgupdnf0:
2262 00001E0F 3C 14 cmp al,14h
2263 00001E11 72 02 jb short eipgupdnf1
2264 00001E13 B0 13 mov al,13h
2265 00001E15 eipgupdnf1:
2266 00001E15 A2 0000112Br mov edinsb,al
2267 00001E1A C3 ret
2268 ;-----------------------------------------------------------------------------
2269 00001E1B eivald:
2270 00001E1B B4 FF mov ah,-1
2271 00001E1D EB 02 jmp short eichangeval
2272 ;-----------------------------------------------------------------------------
2273 00001E1F eivalu:
2274 00001E1F B4 01 mov ah,1
2275 00001E21 eichangeval:
2276 00001E21 A0 0000112Fr mov al,edfmval
2277 00001E26 02 C4 add al,ah
2278 00001E28 0F 88 00000000e js _ret
2279 00001E2E 3C 19 cmp al,25
2280 00001E30 0F 87 00000000e ja _ret
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 41
cdfmsb.ASM
2281 00001E36 A2 0000112Fr mov edfmval,al
2282 00001E3B C3 ret
2283 ;-----------------------------------------------------------------------------
2284 00001E3C eiincval:
2285 00001E3C B3 01 mov bl,1
2286 00001E3E EB 02 jmp short eiincdecval
2287 ;-----------------------------------------------------------------------------
2288 00001E40 eidecval:
2289 00001E40 B3 FF mov bl,-1
2290 00001E42 eiincdecval:
2291 00001E42 8A 25 0000112Br mov ah,edinsb
2292 00001E48 02 25 0000112Cr add ah,edinso
2293 00001E4E A0 0000112Fr mov al,edfmval
2294 00001E53 E8 0000146C call getfminsval
2295 00001E58 02 D8 add bl,al
2296 00001E5A A0 0000112Fr mov al,edfmval
2297 00001E5F E8 0000148C call setfminsval
2298 00001E64 C3 ret
2299 ;-----------------------------------------------------------------------------
2300 00001E65 eigetname:
2301 00001E65 E8 000009FB call putins1
2302 00001E6A 66| B8 8A00 mov ax,8a00h
2303 00001E6E 66| BB 0104 mov bx,104h
2304 00001E72 02 3D 0000112Cr add bh,edinso
2305 00001E78 B1 0C mov cl,12
2306 00001E7A 0F B6 15 0000112Br movzx edx,edinsb
2307 00001E81 02 15 0000112Cr add dl,edinso
2308 00001E87 6B D2 0D imul edx,13
2309 00001E8A 03 15 000009DEr add edx,fminsnames
2310 00001E90 BD 00001CABr mov ebp,offset editinsaccept
2311 00001E95 E8 00000000e call _getstr
2312 00001E9A C3 ret
2313 ;-----------------------------------------------------------------------------
2314 00001E9B eihome:
2315 00001E9B C6 05 0000112Cr 00 mov edinso,0
2316 00001EA2 C3 ret
2317 ;-----------------------------------------------------------------------------
2318 00001EA3 eiend:
2319 00001EA3 C6 05 0000112Cr 0C mov edinso,0ch
2320 00001EAA C3 ret
2321 ;-----------------------------------------------------------------------------
2322 00001EAB eigetins:
2323 00001EAB 8B 15 000009E2r mov edx,fminsbank
2324 00001EB1 0F B7 0D 00001117r movzx ecx,fminsnum
2325 00001EB8 C6 05 00003068r 01 mov seli,1
2326 00001EBF E8 000011B3 call select
2327 00001EC4 0F 82 00000000e jc _ret
2328 00001ECA 0F B6 1D 0000112Br movzx ebx,edinsb
2329 00001ED1 02 1D 0000112Cr add bl,edinso
2330 00001ED7 6B FB 0D imul edi,ebx,13
2331 00001EDA 03 3D 000009DEr add edi,fminsnames
2332 00001EE0 6B F0 0D imul esi,eax,13
2333 00001EE3 03 35 000009E2r add esi,fminsbank
2334 00001EE9 A5 movsd
2335 00001EEA A5 movsd
2336 00001EEB A5 movsd
2337 00001EEC A4 movsb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 42
cdfmsb.ASM
2338 00001EED 6B FB 0B imul edi,ebx,11
2339 00001EF0 03 3D 000009DAr add edi,fminsbase
2340 00001EF6 0F B7 1D 00001117r movzx ebx,fminsnum
2341 00001EFD 6B DB 0D imul ebx,13
2342 00001F00 6B F0 0B imul esi,eax,11
2343 00001F03 03 35 000009E2r add esi,fminsbank
2344 00001F09 03 F3 add esi,ebx
2345 00001F0B A5 movsd
2346 00001F0C A5 movsd
2347 00001F0D 66| A5 movsw
2348 00001F0F A4 movsb
2349 00001F10 C3 ret
2350 ;-----------------------------------------------------------------------------
2351 00001F11 eiclearins:
2352 00001F11 0F B6 1D 0000112Br movzx ebx,edinsb
2353 00001F18 02 1D 0000112Cr add bl,edinso
2354 00001F1E 6B FB 0B imul edi,ebx,11
2355 00001F21 03 3D 000009DAr add edi,fminsbase
2356 00001F27 33 C0 xor eax,eax
2357 00001F29 AB stosd
2358 00001F2A AB stosd
2359 00001F2B 66| AB stosw
2360 00001F2D AA stosb
2361 00001F2E 6B DB 0D imul ebx,13
2362 00001F31 03 1D 000009DEr add ebx,fminsnames
2363 00001F37 C6 03 00 mov byte ptr [ebx],0
2364 00001F3A E9 FFFFFEA4 jmp eidn
2365 ;-----------------------------------------------------------------------------
2366 00001F3F eif1:
2367 00001F3F 83 C4 04 add esp,4
2368 00001F42 E8 0000091E call putins1
2369 00001F47 E9 FFFFFA52 jmp editins0
2370 ;-----------------------------------------------------------------------------
2371 00001F4C eif3:
2372 00001F4C 83 C4 04 add esp,4
2373 00001F4F E8 00000911 call putins1
2374 00001F54 E9 00000229 jmp editpat
2375 ;-----------------------------------------------------------------------------
2376 00001F59 eif4:
2377 00001F59 83 C4 04 add esp,4
2378 00001F5C E8 00000904 call putins1
2379 00001F61 E9 FFFFF8A9 jmp editord
2380 ;-----------------------------------------------------------------------------
2381 00001F66 ???????? idcall dd ?
2382 00001F6A eiins:
2383 00001F6A C7 05 00001F66r + mov idcall,offset ins
2384 00002FACr
2385 00001F74 EB 0A jmp short eiid
2386 ;-----------------------------------------------------------------------------
2387 00001F76 eidel:
2388 00001F76 C7 05 00001F66r + mov idcall,offset del
2389 00002FCBr
2390 00001F80 eiid:
2391 00001F80 66| BA 0020 mov dx,20h
2392 00001F84 66| 0F B6 1D + movzx bx,edinsb
2393 0000112Br
2394 00001F8C 02 1D 0000112Cr add bl,edinso
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 43
cdfmsb.ASM
2395 00001F92 8B 2D 000009DEr mov ebp,fminsnames
2396 00001F98 B9 0000000D mov ecx,13
2397 00001F9D 66| 53 push bx
2398 00001F9F 66| 52 push dx
2399 00001FA1 FF 15 00001F66r call idcall
2400 00001FA7 66| 5A pop dx
2401 00001FA9 66| 5B pop bx
2402 00001FAB C6 07 00 mov byte ptr [edi],0
2403 00001FAE 8B 2D 000009DAr mov ebp,fminsbase
2404 00001FB4 B9 0000000B mov ecx,11
2405 00001FB9 FF 15 00001F66r call idcall
2406 00001FBF 33 C0 xor eax,eax
2407 00001FC1 AB stosd
2408 00001FC2 AB stosd
2409 00001FC3 66| AB stosw
2410 00001FC5 AA stosb
2411 00001FC6 C3 ret
2412 ;-----------------------------------------------------------------------------
2413 00001FC7 ???????? eiaddinsbase dd ?
2414 00001FCB ???? eiaddinsindx dw ?
2415 00001FCD eiaddins:
2416 00001FCD 0F B6 05 0000112Br movzx eax,edinsb
2417 00001FD4 02 05 0000112Cr add al,edinso
2418 00001FDA 0F B7 1D 00001117r movzx ebx,fminsnum
2419 00001FE1 8B 35 000009E2r mov esi,fminsbank
2420 00001FE7 6B E8 0D imul ebp,eax,13
2421 00001FEA 03 2D 000009DEr add ebp,fminsnames
2422 00001FF0 E8 00000F82 call alphfind
2423 00001FF5 0F 82 000000A3 jc eiaddinsf0
2424 00001FFB 66| A3 00001FCBr mov eiaddinsindx,ax
2425 00002001 0F B7 3D 00001117r movzx edi,fminsnum
2426 00002008 6B CF 0B imul ecx,edi,11
2427 0000200B 47 inc edi
2428 0000200C 66| 89 3D 00001117r mov fminsnum,di
2429 00002013 6B FF 0D imul edi,13
2430 00002016 03 3D 000009E2r add edi,fminsbank
2431 0000201C 8B F7 mov esi,edi
2432 0000201E 83 EE 0D sub esi,13
2433 00002021 89 3D 00001FC7r mov eiaddinsbase,edi
2434 00002027 E8 FFFFEC0B call _copymem
2435 0000202C 66| 8B 15 00001117r mov dx,fminsnum
2436 00002033 66| 8B 1D 00001FCBr mov bx,eiaddinsindx
2437 0000203A B9 0000000D mov ecx,13
2438 0000203F 8B 2D 000009E2r mov ebp,fminsbank
2439 00002045 E8 00000F62 call ins
2440 0000204A 0F B6 05 0000112Br movzx eax,edinsb
2441 00002051 02 05 0000112Cr add al,edinso
2442 00002057 6B F0 0D imul esi,eax,13
2443 0000205A 03 35 000009DEr add esi,fminsnames
2444 00002060 A5 movsd
2445 00002061 A5 movsd
2446 00002062 A5 movsd
2447 00002063 A4 movsb
2448 00002064 66| 8B 15 00001117r mov dx,fminsnum
2449 0000206B 66| 8B 1D 00001FCBr mov bx,eiaddinsindx
2450 00002072 B9 0000000B mov ecx,11
2451 00002077 8B 2D 00001FC7r mov ebp,eiaddinsbase
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 44
cdfmsb.ASM
2452 0000207D E8 00000F2A call ins
2453 00002082 eiaddinsf1:
2454 00002082 0F B6 05 0000112Br movzx eax,edinsb
2455 00002089 02 05 0000112Cr add al,edinso
2456 0000208F 6B F0 0B imul esi,eax,11
2457 00002092 03 35 000009DAr add esi,fminsbase
2458 00002098 A5 movsd
2459 00002099 A5 movsd
2460 0000209A 66| A5 movsw
2461 0000209C A4 movsb
2462 0000209D C3 ret
2463 0000209E eiaddinsf0:
2464 0000209E 0F B7 3D 00001117r movzx edi,fminsnum
2465 000020A5 6B FF 0D imul edi,13
2466 000020A8 6B C0 0B imul eax,11
2467 000020AB 03 F8 add edi,eax
2468 000020AD 03 3D 000009E2r add edi,fminsbank
2469 000020B3 EB CD jmp eiaddinsf1
2470
2471 ;═════════════════════════════════════════════════════════════════════════════
2472 000020B5 22 editpatlist db 34
2473 000020B6 0001 0004 0003 0019 + dw 1,4,3,25,26,21,22,19,20,23,24,'[',']','.','-','+',13
2474 001A 0015 0016 0013 +
2475 0014 0017 0018 005B +
2476 005D 002E 002D 002B +
2477 000D
2478 000020D8 026D 0060 0262 0265 + dw 621,'`',262h,265h,26ch,275h,17,18,27ah,263h,26fh
2479 026C 0275 0011 0012 +
2480 027A 0263 026F
2481 000020EE 0276 0269 0271 0261 + dw 276h,269h,271h,261h,277h,273h
2482 0277 0273
2483 000020FA 00002255r 00002262r + editpatrout dd epf1,epf2,epf4,epup,epdn,eppgup,eppgdn,ephome,epend
2484 0000226Fr 0000228Cr +
2485 00002290r 000022A5r +
2486 000022A9r 0000227Cr +
2487 00002284r
2488 0000211E 000022C8r 000022CCr + dd epdecvoice,epincvoice,epcins,epcvol,epclear,epdecpat
2489 00002300r 0000233Fr +
2490 00002374r 00002383r
2491 00002136 00002387r 000023A6r + dd epincpat,epbreak,epcopypat,eppickup,epblkb,epblke
2492 000023CEr 0000243Dr +
2493 00002469r 0000247Ar
2494 0000214E 0000248Br 0000249Ar + dd epblkl,epblku,epins,epdel,epblkzero,epblkcopy
2495 000024A9r 000024B5r +
2496 000024F3r 00002507r
2497 00002166 0000251Er 00002585r + dd epblkover,epblkvol,epblkins,epblkou,epblkod,epblknu
2498 000025A2r 000025D3r +
2499 000025D7r 00002613r
2500 0000217E 00002617r dd epblknd
2501 00002182 editpat:
2502 00002182 E8 0000089D call putstat
2503 00002187 E8 000009CA call putpat
2504 0000218C E8 00000BF8 call putpatcur
2505 00002191 E8 FFFFF1F3 call getinput
2506 00002196 BA 000020B5r mov edx,offset editpatlist
2507 0000219B E8 FFFFEA66 call _indexword
2508 000021A0 72 09 jc short editpatf0
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 45
cdfmsb.ASM
2509 000021A2 FF 14 85 000020FAr call editpatrout[eax*4]
2510 000021A9 EB D7 jmp editpat
2511 000021AB editpatf0:
2512 000021AB 0A E4 or ah,ah
2513 000021AD 75 D3 jnz editpat
2514 000021AF 66| 50 push ax
2515 000021B1 E8 FFFFEFDE call calcloc
2516 000021B6 66| 58 pop ax
2517 000021B8 BA 000010E3r mov edx,offset nkeylist
2518 000021BD E8 FFFFEA5D call _indexbyte
2519 000021C2 72 BE jc editpat
2520 000021C4 8A 15 00001127r mov dl,edvoiceb
2521 000021CA 02 15 00001128r add dl,edvoiceo
2522 000021D0 80 FA 03 cmp dl,3
2523 000021D3 77 05 ja short editpatf1
2524 000021D5 E8 FFFFEFA5 call adjoct
2525 000021DA editpatf1:
2526 000021DA 8A 1D 00001126r mov bl,edoct
2527 000021E0 C0 E3 04 shl bl,4
2528 000021E3 3C 0C cmp al,12
2529 000021E5 72 02 jb short editpatf2
2530 000021E7 04 04 add al,10h-12
2531 000021E9 editpatf2:
2532 000021E9 02 D8 add bl,al
2533 000021EB 8A 3D 00001125r mov bh,edvol
2534 000021F1 0F B6 0D 0000112Br movzx ecx,edinsb
2535 000021F8 02 0D 0000112Cr add cl,edinso
2536 000021FE 66| 0F A4 C8 14 shld ax,cx,20
2537 00002203 0A F8 or bh,al
2538 00002205 C0 E4 07 shl ah,7
2539 00002208 0A DC or bl,ah
2540 0000220A 66| 89 1F mov [edi],bx
2541 0000220D 8A C2 mov al,dl
2542 0000220F 8A E3 mov ah,bl
2543 00002211 80 E4 7F and ah,7fh
2544 00002214 8A 1D 00001125r mov bl,edvol
2545 0000221A 3C 03 cmp al,3
2546 0000221C 77 20 ja editpatfm
2547 0000221E C1 E1 04 shl ecx,4
2548 00002221 03 0D 000009D2r add ecx,dinsbase
2549 00002227 8B 31 mov esi,[ecx]
2550 00002229 8B 69 04 mov ebp,[ecx+4]
2551 0000222C 8B 51 0C mov edx,[ecx+12]
2552 0000222F 8B 49 08 mov ecx,[ecx+8]
2553 00002232 E8 00000000e call _sbnote
2554 00002237 68 00002182r push offset editpat
2555 0000223C EB 52 jmp epdn
2556 0000223E editpatfm:
2557 0000223E 2C 04 sub al,4
2558 00002240 6B D1 0B imul edx,ecx,11
2559 00002243 03 15 000009DAr add edx,fminsbase
2560 00002249 E8 00000000e call _fmnote
2561 0000224E 68 00002182r push offset editpat
2562 00002253 EB 3B jmp epdn
2563
2564 ;-----------------------------------------------------------------------------
2565 00002255 epf1:
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 46
cdfmsb.ASM
2566 00002255 83 C4 04 add esp,4
2567 00002258 E8 000008F9 call putpat
2568 0000225D E9 FFFFF73C jmp editins0
2569 ;-----------------------------------------------------------------------------
2570 00002262 epf2:
2571 00002262 83 C4 04 add esp,4
2572 00002265 E8 000008EC call putpat
2573 0000226A E9 FFFFFAF7 jmp editins1
2574 ;-----------------------------------------------------------------------------
2575 0000226F epf4:
2576 0000226F 83 C4 04 add esp,4
2577 00002272 E8 000008DF call putpat
2578 00002277 E9 FFFFF593 jmp editord
2579 ;-----------------------------------------------------------------------------
2580 0000227C ephome:
2581 0000227C C6 05 0000112Ar 00 mov edrowo,0
2582 00002283 C3 ret
2583 ;-----------------------------------------------------------------------------
2584 00002284 epend:
2585 00002284 C6 05 0000112Ar 1F mov edrowo,1fh
2586 0000228B C3 ret
2587 ;-----------------------------------------------------------------------------
2588 0000228C epup:
2589 0000228C B4 FF mov ah,-1
2590 0000228E EB 02 jmp short epupdn
2591 ;-----------------------------------------------------------------------------
2592 00002290 epdn:
2593 00002290 B4 01 mov ah,1
2594 00002292 epupdn:
2595 00002292 A0 0000112Ar mov al,edrowo
2596 00002297 02 C4 add al,ah
2597 00002299 78 10 js eppgupdn
2598 0000229B 3C 1F cmp al,1fh
2599 0000229D 77 0C ja eppgupdn
2600 0000229F A2 0000112Ar mov edrowo,al
2601 000022A4 C3 ret
2602 ;-----------------------------------------------------------------------------
2603 000022A5 eppgup:
2604 000022A5 B4 F0 mov ah,-10h
2605 000022A7 EB 02 jmp short eppgupdn
2606 ;-----------------------------------------------------------------------------
2607 000022A9 eppgdn:
2608 000022A9 B4 10 mov ah,10h
2609 000022AB eppgupdn:
2610 000022AB A0 00001129r mov al,edrowb
2611 000022B0 02 C4 add al,ah
2612 000022B2 79 08 jns short eppgupdnf0
2613 000022B4 C6 05 00001129r 00 mov edrowb,0
2614 000022BB C3 ret
2615 000022BC eppgupdnf0:
2616 000022BC 3C 21 cmp al,21h
2617 000022BE 72 02 jb short eppgupdnf1
2618 000022C0 B0 20 mov al,20h
2619 000022C2 eppgupdnf1:
2620 000022C2 A2 00001129r mov edrowb,al
2621 000022C7 C3 ret
2622 ;-----------------------------------------------------------------------------
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 47
cdfmsb.ASM
2623 000022C8 epdecvoice:
2624 000022C8 B4 FF mov ah,-1
2625 000022CA EB 02 jmp short epcvoice
2626 ;-----------------------------------------------------------------------------
2627 000022CC epincvoice:
2628 000022CC B4 01 mov ah,1
2629 000022CE epcvoice:
2630 000022CE A0 00001128r mov al,edvoiceo
2631 000022D3 02 C4 add al,ah
2632 000022D5 78 0A js epcvoiceb
2633 000022D7 3C 0A cmp al,10
2634 000022D9 77 06 ja epcvoiceb
2635 000022DB A2 00001128r mov edvoiceo,al
2636 000022E0 C3 ret
2637 000022E1 epcvoiceb:
2638 000022E1 A0 00001127r mov al,edvoiceb
2639 000022E6 02 C4 add al,ah
2640 000022E8 0F 88 00000000e js _ret
2641 000022EE 3A 05 00001110r cmp al,maxvoiceb
2642 000022F4 0F 87 00000000e ja _ret
2643 000022FA A2 00001127r mov edvoiceb,al
2644 000022FF C3 ret
2645 ;-----------------------------------------------------------------------------
2646 00002300 epcins:
2647 00002300 E8 FFFFEE8F call calcloc
2648 00002305 80 3F FE cmp byte ptr [edi],0feh
2649 00002308 0F 83 00000000e jae _ret
2650 0000230E E8 FFFFEF4D call calcloc2
2651 00002313 80 C3 03 add bl,3
2652 00002316 B1 02 mov cl,2
2653 00002318 E8 00000CD6 call getnum
2654 0000231D 0F 82 00000000e jc _ret
2655 00002323 24 1F and al,1fh
2656 00002325 E8 FFFFEF4F call setins
2657 0000232A C1 E0 04 shl eax,4
2658 0000232D C0 E4 07 shl ah,7
2659 00002330 86 C4 xchg al,ah
2660 00002332 66| 81 27 0F7F and word ptr [edi],0f7fh
2661 00002337 66| 09 07 or word ptr [edi],ax
2662 0000233A E9 FFFFFF51 jmp epdn
2663 ;-----------------------------------------------------------------------------
2664 0000233F epcvol:
2665 0000233F E8 FFFFEE50 call calcloc
2666 00002344 E8 FFFFEF17 call calcloc2
2667 00002349 80 C3 05 add bl,5
2668 0000234C B1 01 mov cl,1
2669 0000234E E8 00000CA0 call getnum
2670 00002353 0F 82 00000000e jc _ret
2671 00002359 A2 00001125r mov edvol,al
2672 0000235E 80 3F FF cmp byte ptr [edi],0ffh
2673 00002361 72 05 jb short epcvolf0
2674 00002363 66| C7 07 00FE mov word ptr [edi],0feh
2675 00002368 epcvolf0:
2676 00002368 80 67 01 F0 and byte ptr [edi+1],0f0h
2677 0000236C 08 47 01 or byte ptr [edi+1],al
2678 0000236F E9 FFFFFF1C jmp epdn
2679 ;-----------------------------------------------------------------------------
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 48
cdfmsb.ASM
2680 00002374 epclear:
2681 00002374 E8 FFFFEE1B call calcloc
2682 00002379 66| C7 07 FFFF mov word ptr [edi],-1
2683 0000237E E9 FFFFFF0D jmp epdn
2684 ;-----------------------------------------------------------------------------
2685 00002383 epdecpat:
2686 00002383 B4 FF mov ah,-1
2687 00002385 EB 02 jmp short epchangepat
2688 ;-----------------------------------------------------------------------------
2689 00002387 epincpat:
2690 00002387 B4 01 mov ah,1
2691 00002389 epchangepat:
2692 00002389 66| 50 push ax
2693 0000238B E8 00001024 call setpat
2694 00002390 66| 58 pop ax
2695 00002392 A0 00001124r mov al,edpat
2696 00002397 02 C4 add al,ah
2697 00002399 24 7F and al,7fh
2698 0000239B A2 00001124r mov edpat,al
2699 000023A0 E8 00000F9A call getpat
2700 000023A5 C3 ret
2701 ;-----------------------------------------------------------------------------
2702 000023A6 epbreak:
2703 000023A6 A0 00001129r mov al,edrowb
2704 000023AB 02 05 0000112Ar add al,edrowo
2705 000023B1 A2 00001123r mov mzbreak,al
2706 000023B6 C3 ret
2707 ;-----------------------------------------------------------------------------
2708 000023B7 43 6F 70 79 20 74 6F+ wpatstr db 'Copy to which pattern?',0
2709 20 77 68 69 63 68 20+
2710 70 61 74 74 65 72 6E+
2711 3F 00
2712 000023CE epcopypat:
2713 000023CE 66| BB 181A mov bx,181ah
2714 000023D2 66| B9 061E mov cx,61eh
2715 000023D6 E8 00000000e call _pushtext
2716 000023DB 66| 81 C3 0101 add bx,101h
2717 000023E0 66| 81 E9 0101 sub cx,101h
2718 000023E5 66| B8 0020 mov ax,20h
2719 000023E9 E8 00000000e call _textbox0
2720 000023EE 66| 81 EB 0101 sub bx,101h
2721 000023F3 BA 000011BBr mov edx,offset boxgrfx
2722 000023F8 B4 87 mov ah,87h
2723 000023FA E8 00000000e call _textbox1
2724 000023FF 66| 81 C3 0202 add bx,202h
2725 00002404 BA 000023B7r mov edx,offset wpatstr
2726 00002409 B4 8F mov ah,8fh
2727 0000240B E8 00000000e call _putstr
2728 00002410 66| 83 C3 17 add bx,17h
2729 00002414 B1 02 mov cl,2
2730 00002416 E8 00000BD8 call getnum
2731 0000241B 72 1A jc short epcopypatd
2732 0000241D 8A 25 00001124r mov ah,edpat
2733 00002423 66| 50 push ax
2734 00002425 A2 00001124r mov edpat,al
2735 0000242A E8 00000F85 call setpat
2736 0000242F 66| 58 pop ax
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 49
cdfmsb.ASM
2737 00002431 88 25 00001124r mov edpat,ah
2738 00002437 epcopypatd:
2739 00002437 E8 00000000e call _poptext
2740 0000243C C3 ret
2741 ;-----------------------------------------------------------------------------
2742 0000243D eppickup:
2743 0000243D E8 FFFFED52 call calcloc
2744 00002442 66| 8B 17 mov dx,[edi]
2745 00002445 80 FA FE cmp dl,-2
2746 00002448 0F 87 00000000e ja _ret
2747 0000244E 74 0F je short eppickupf0
2748 00002450 8A E2 mov ah,dl
2749 00002452 8A C6 mov al,dh
2750 00002454 C0 EC 07 shr ah,7
2751 00002457 C1 E8 04 shr eax,4
2752 0000245A E8 FFFFEE1A call setins
2753 0000245F eppickupf0:
2754 0000245F 80 E6 0F and dh,0fh
2755 00002462 88 35 00001125r mov edvol,dh
2756 00002468 C3 ret
2757 ;-----------------------------------------------------------------------------
2758 00002469 epblkb:
2759 00002469 A0 00001129r mov al,edrowb
2760 0000246E 02 05 0000112Ar add al,edrowo
2761 00002474 A2 00001130r mov edblkb,al
2762 00002479 C3 ret
2763 ;-----------------------------------------------------------------------------
2764 0000247A epblke:
2765 0000247A A0 00001129r mov al,edrowb
2766 0000247F 02 05 0000112Ar add al,edrowo
2767 00002485 A2 00001131r mov edblke,al
2768 0000248A C3 ret
2769 ;-----------------------------------------------------------------------------
2770 0000248B epblkl:
2771 0000248B C6 05 00001130r 00 mov edblkb,0
2772 00002492 C6 05 00001131r 3F mov edblke,3fh
2773 00002499 C3 ret
2774 ;-----------------------------------------------------------------------------
2775 0000249A epblku:
2776 0000249A C6 05 00001130r FF mov edblkb,-1
2777 000024A1 C6 05 00001131r FF mov edblke,-1
2778 000024A8 C3 ret
2779 ;-----------------------------------------------------------------------------
2780 000024A9 epins:
2781 000024A9 C7 05 00001F66r + mov idcall,offset ins
2782 00002FACr
2783 000024B3 EB 0A jmp short epid
2784 ;-----------------------------------------------------------------------------
2785 000024B5 epdel:
2786 000024B5 C7 05 00001F66r + mov idcall,offset del
2787 00002FCBr
2788 000024BF epid:
2789 000024BF E8 FFFFEDD1 call gettrak
2790 000024C4 66| BA 0040 mov dx,64
2791 000024C8 66| 0F B6 1D + movzx bx,edrowb
2792 00001129r
2793 000024D0 02 1D 0000112Ar add bl,edrowo
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 50
cdfmsb.ASM
2794 000024D6 B9 00000002 mov ecx,2
2795 000024DB 8B 2D 000009F6r mov ebp,worktrak
2796 000024E1 FF 15 00001F66r call idcall
2797 000024E7 B8 FFFFFFFF mov eax,-1
2798 000024EC 66| AB stosw
2799 000024EE E9 FFFFEDCF jmp puttrak
2800 ;-----------------------------------------------------------------------------
2801 000024F3 epblkzero:
2802 000024F3 E8 FFFFEDF7 call calc3
2803 000024F8 epblkzeroml:
2804 000024F8 66| C7 07 FFFF mov word ptr [edi],-1
2805 000024FD 83 C7 02 add edi,2
2806 00002500 E2 F6 loop epblkzeroml
2807 00002502 E9 FFFFEDBB jmp puttrak
2808 ;-----------------------------------------------------------------------------
2809 00002507 epblkcopy:
2810 00002507 E8 FFFFEDE3 call calc3
2811 0000250C 8B F7 mov esi,edi
2812 0000250E 8B 3D 000009FAr mov edi,savetrak
2813 00002514 88 0D 00001132r mov edblkl,cl
2814 0000251A F3> 66| A5 rep movsw
2815 0000251D C3 ret
2816 ;-----------------------------------------------------------------------------
2817 0000251E epblkover:
2818 0000251E E8 FFFFED72 call gettrak
2819 00002523 0F B6 0D 00001132r movzx ecx,edblkl
2820 0000252A 0A C9 or cl,cl
2821 0000252C 0F 88 00000000e js _ret
2822 00002532 0F B6 05 00001129r movzx eax,edrowb
2823 00002539 02 05 0000112Ar add al,edrowo
2824 0000253F BB 00000040 mov ebx,64
2825 00002544 2B D8 sub ebx,eax
2826 00002546 3B CB cmp ecx,ebx
2827 00002548 76 02 jbe epblkoverf0
2828 0000254A 8B CB mov ecx,ebx
2829 0000254C epblkoverf0:
2830 0000254C 8B 35 000009FAr mov esi,savetrak
2831 00002552 8D 3C 45 00000000 lea edi,[eax*2]
2832 00002559 03 3D 000009F6r add edi,worktrak
2833 0000255F 8A 1D 00001127r mov bl,edvoiceb
2834 00002565 02 1D 00001128r add bl,edvoiceo
2835 0000256B epblkoverml:
2836 0000256B 66| AD lodsw
2837 0000256D 3C FD cmp al,0fdh
2838 0000256F 77 0B ja short epblkovermlc
2839 00002571 80 FB 03 cmp bl,3
2840 00002574 77 06 ja short epblkovermlc
2841 00002576 3C 50 cmp al,1010000b
2842 00002578 72 02 jb short epblkovermlc
2843 0000257A 24 BF and al,0bfh
2844 0000257C epblkovermlc:
2845 0000257C 66| AB stosw
2846 0000257E E2 EB loop epblkoverml
2847 00002580 E9 FFFFED3D jmp puttrak
2848 ;-----------------------------------------------------------------------------
2849 00002585 epblkvol:
2850 00002585 E8 FFFFED65 call calc3
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 51
cdfmsb.ASM
2851 0000258A 8B F7 mov esi,edi
2852 0000258C 8A 1D 00001125r mov bl,edvol
2853 00002592 epblkvolml:
2854 00002592 66| AD lodsw
2855 00002594 80 E4 F0 and ah,0f0h
2856 00002597 0A E3 or ah,bl
2857 00002599 66| AB stosw
2858 0000259B E2 F5 loop epblkvolml
2859 0000259D E9 FFFFED20 jmp puttrak
2860 ;-----------------------------------------------------------------------------
2861 000025A2 epblkins:
2862 000025A2 E8 FFFFED48 call calc3
2863 000025A7 8B F7 mov esi,edi
2864 000025A9 8A 1D 0000112Br mov bl,edinsb
2865 000025AF 02 1D 0000112Cr add bl,edinso
2866 000025B5 C1 E3 04 shl ebx,4
2867 000025B8 C0 E7 07 shl bh,7
2868 000025BB 86 DF xchg bl,bh
2869 000025BD epblkinsml:
2870 000025BD 66| AD lodsw
2871 000025BF 3C FD cmp al,0fdh
2872 000025C1 77 07 ja short epblkinsmlc
2873 000025C3 66| 25 0F7F and ax,0f7fh
2874 000025C7 66| 0B C3 or ax,bx
2875 000025CA epblkinsmlc:
2876 000025CA 66| AB stosw
2877 000025CC E2 EF loop epblkinsml
2878 000025CE E9 FFFFECEF jmp puttrak
2879 ;-----------------------------------------------------------------------------
2880 000025D3 epblkou:
2881 000025D3 B6 10 mov dh,10h
2882 000025D5 EB 02 jmp short epblkoc
2883 ;-----------------------------------------------------------------------------
2884 000025D7 epblkod:
2885 000025D7 B6 F0 mov dh,-10h
2886 000025D9 epblkoc:
2887 000025D9 E8 FFFFED11 call calc3
2888 000025DE 8B F7 mov esi,edi
2889 000025E0 A0 00001127r mov al,edvoiceb
2890 000025E5 02 05 00001128r add al,edvoiceo
2891 000025EB B2 40 mov dl,40h
2892 000025ED 3C 04 cmp al,4
2893 000025EF 72 02 jb short epblkoml
2894 000025F1 B2 70 mov dl,70h
2895 000025F3 epblkoml:
2896 000025F3 66| AD lodsw
2897 000025F5 3C FD cmp al,0fdh
2898 000025F7 77 11 ja short epblkomlc
2899 000025F9 8A D8 mov bl,al
2900 000025FB 80 E3 70 and bl,70h
2901 000025FE 02 DE add bl,dh
2902 00002600 78 08 js short epblkomlc
2903 00002602 3A DA cmp bl,dl
2904 00002604 77 04 ja short epblkomlc
2905 00002606 24 8F and al,8fh
2906 00002608 0A C3 or al,bl
2907 0000260A epblkomlc:
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 52
cdfmsb.ASM
2908 0000260A 66| AB stosw
2909 0000260C E2 E5 loop epblkoml
2910 0000260E E9 FFFFECAF jmp puttrak
2911 ;-----------------------------------------------------------------------------
2912 00002613 epblknu:
2913 00002613 B6 01 mov dh,1
2914 00002615 EB 02 jmp short epblknc
2915 ;-----------------------------------------------------------------------------
2916 00002617 epblknd:
2917 00002617 B6 FF mov dh,-1
2918 00002619 epblknc:
2919 00002619 E8 FFFFECD1 call calc3
2920 0000261E 8B F7 mov esi,edi
2921 00002620 A0 00001127r mov al,edvoiceb
2922 00002625 02 05 00001128r add al,edvoiceo
2923 0000262B B2 04 mov dl,4
2924 0000262D 3C 04 cmp al,4
2925 0000262F 72 02 jb short epblknml
2926 00002631 B2 07 mov dl,7
2927 00002633 epblknml:
2928 00002633 66| AD lodsw
2929 00002635 3C FD cmp al,0fdh
2930 00002637 77 31 ja short epblknmlc
2931 00002639 8A D8 mov bl,al
2932 0000263B 80 E3 0F and bl,0fh
2933 0000263E 8A F8 mov bh,al
2934 00002640 C0 EF 04 shr bh,4
2935 00002643 80 E7 07 and bh,7
2936 00002646 02 DE add bl,dh
2937 00002648 78 0A js short epblknmlf0
2938 0000264A 80 FB 0C cmp bl,12
2939 0000264D 72 17 jb short epblknmlf1
2940 0000264F 80 EB 0C sub bl,12
2941 00002652 EB 03 jmp short epblknmlf2
2942 00002654 epblknmlf0:
2943 00002654 80 C3 0C add bl,12
2944 00002657 epblknmlf2:
2945 00002657 02 FE add bh,dh
2946 00002659 78 0F js short epblknmlc
2947 0000265B 3A FA cmp bh,dl
2948 0000265D 77 0B ja short epblknmlc
2949 0000265F C0 E7 04 shl bh,4
2950 00002662 24 8F and al,8fh
2951 00002664 0A C7 or al,bh
2952 00002666 epblknmlf1:
2953 00002666 24 F0 and al,0f0h
2954 00002668 0A C3 or al,bl
2955 0000266A epblknmlc:
2956 0000266A 66| AB stosw
2957 0000266C E2 C5 loop epblknml
2958 0000266E E9 FFFFEC4F jmp puttrak
2959
2960 ;─────────────────────────────────────────────────────────────────────────────
2961 ; CL - number to start at
2962 ; CH - number to do
2963 ; EDI -> coordinates to start at
2964 00002673 putnumbar:
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 53
cdfmsb.ASM
2965 00002673 BB 00000000r mov ebx,offset _hextbl
2966 00002678 B4 02 mov ah,2
2967 0000267A putnumbarml:
2968 0000267A 8A C1 mov al,cl
2969 0000267C C0 E8 04 shr al,4
2970 0000267F D7 xlat
2971 00002680 66| AB stosw
2972 00002682 8A C1 mov al,cl
2973 00002684 24 0F and al,0fh
2974 00002686 D7 xlat
2975 00002687 66| AB stosw
2976 00002689 81 C7 0000009C add edi,156
2977 0000268F FE C1 inc cl
2978 00002691 FE CD dec ch
2979 00002693 75 E5 jnz putnumbarml
2980 00002695 C3 ret
2981 ;─────────────────────────────────────────────────────────────────────────────
2982 ; AH - attributes
2983 ; EDX - number
2984 ; EDI - coordinates
2985 00002696 putnum5:
2986 00002696 BB 00000000r mov ebx,offset _hextbl
2987 0000269B C1 E2 0C shl edx,12
2988 0000269E B9 00000005 mov ecx,5
2989 000026A3 putnum5ml:
2990 000026A3 C1 C2 04 rol edx,4
2991 000026A6 8A C2 mov al,dl
2992 000026A8 24 0F and al,0fh
2993 000026AA D7 xlat
2994 000026AB 66| AB stosw
2995 000026AD E2 F4 loop putnum5ml
2996 000026AF C3 ret
2997 ;─────────────────────────────────────────────────────────────────────────────
2998 ; AH - attributes
2999 ; AL - number
3000 ; EDI - coordinates
3001 000026B0 putnum2:
3002 000026B0 BB 00000000r mov ebx,offset _hextbl
3003 000026B5 8A D0 mov dl,al
3004 000026B7 C0 E8 04 shr al,4
3005 000026BA D7 xlat
3006 000026BB 66| AB stosw
3007 000026BD 8A C2 mov al,dl
3008 000026BF 24 0F and al,0fh
3009 000026C1 D7 xlat
3010 000026C2 66| AB stosw
3011 000026C4 C3 ret
3012 ;─────────────────────────────────────────────────────────────────────────────
3013 ; AH - attributes
3014 ; AL - number
3015 ; EDI - coordinates
3016 000026C5 putnum1:
3017 000026C5 BB 00000000r mov ebx,offset _hextbl
3018 000026CA 24 0F and al,0fh
3019 000026CC D7 xlat
3020 000026CD 66| AB stosw
3021 000026CF C3 ret
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 54
cdfmsb.ASM
3022
3023 ;-----------------------------------------------------------------------------
3024 000026D0 putcur: ; routine for putcursor
3025 000026D0 03 3D 00000000e add edi,_vgatextptr
3026 000026D6 putcurl0:
3027 000026D6 AC lodsb
3028 000026D7 0F B6 C8 movzx ecx,al
3029 000026DA B0 8F mov al,8fh
3030 000026DC putcurl1:
3031 000026DC 47 inc edi
3032 000026DD AA stosb
3033 000026DE E2 FC loop putcurl1
3034 000026E0 AC lodsb
3035 000026E1 0A C0 or al,al
3036 000026E3 0F 84 00000000e jz _ret
3037 000026E9 0F B6 C0 movzx eax,al
3038 000026EC 8D 3C 47 lea edi,[edi+eax*2]
3039 000026EF EB E5 jmp putcurl0
3040 ;─────────────────────────────────────────────────────────────────────────────
3041 000026F1 putins: ; General put ins routine
3042 000026F1 66| BB 0011 mov bx,17
3043 000026F5 66| B9 0E2D mov cx,0e2dh
3044 000026F9 66| B8 1920 mov ax,1920h
3045 000026FD E8 00000000e call _textbox0
3046 00002702 66| BB 0011 mov bx,17
3047 00002706 B4 13 mov ah,13h
3048 00002708 8B 54 24 04 mov edx,[esp+4]
3049 0000270C E8 00000000e call _putstr
3050 00002711 BF 00000002 mov edi,2
3051 00002716 8B 3D 00000000e mov edi,_vgatextptr
3052 0000271C 81 C7 000000A2 add edi,160+2
3053 00002722 8A 0D 0000112Br mov cl,edinsb
3054 00002728 B5 0D mov ch,13
3055 0000272A E8 FFFFFF44 call putnumbar
3056 0000272F 66| B8 0720 mov ax,720h
3057 00002733 66| BB 0104 mov bx,104h
3058 00002737 66| B9 0D0C mov cx,0d0ch
3059 0000273B E8 00000000e call _textbox0
3060 00002740 0F B6 15 0000112Br movzx edx,edinsb
3061 00002747 6B D2 0D imul edx,13
3062 0000274A 03 54 24 08 add edx,[esp+8]
3063 0000274E B9 0000000D mov ecx,13
3064 00002753 putinsl0:
3065 00002753 E8 00000000e call _putstr
3066 00002758 FE C7 inc bh
3067 0000275A 83 C2 0D add edx,13
3068 0000275D E2 F4 loop putinsl0
3069 0000275F C2 0008 ret 8
3070 ;─────────────────────────────────────────────────────────────────────────────
3071 00002762 4C 62 65 67 20 20 4C+ putins0str db 'Lbeg Lend Len',0
3072 65 6E 64 20 20 4C 65+
3073 6E 00
3074 00002772 putins0: ; Put digital instrument data
3075 00002772 FF 35 000009D6r push dinsnames
3076 00002778 68 00002762r push offset putins0str
3077 0000277D E8 FFFFFF6F call putins
3078 00002782 0F B6 35 0000112Br movzx esi,edinsb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 55
cdfmsb.ASM
3079 00002789 6B F6 10 imul esi,16
3080 0000278C 03 35 000009D2r add esi,dinsbase
3081 00002792 B9 0000000D mov ecx,13
3082 00002797 B4 07 mov ah,7
3083 00002799 8B 3D 00000000e mov edi,_vgatextptr
3084 0000279F 81 C7 000000C2 add edi,160+34
3085 000027A5 putins0ml:
3086 000027A5 51 push ecx
3087 000027A6 8B 56 08 mov edx,[esi+8]
3088 000027A9 2B 16 sub edx,[esi]
3089 000027AB E8 FFFFFEE6 call putnum5
3090 000027B0 83 C7 02 add edi,2
3091 000027B3 8B 56 0C mov edx,[esi+12]
3092 000027B6 2B 16 sub edx,[esi]
3093 000027B8 E8 FFFFFED9 call putnum5
3094 000027BD 83 C7 02 add edi,2
3095 000027C0 8B 56 04 mov edx,[esi+4]
3096 000027C3 2B 16 sub edx,[esi]
3097 000027C5 E8 FFFFFECC call putnum5
3098 000027CA 83 C7 7E add edi,126
3099 000027CD 83 C6 10 add esi,16
3100 000027D0 59 pop ecx
3101 000027D1 E2 D2 loop putins0ml
3102 000027D3 C3 ret
3103 ;─────────────────────────────────────────────────────────────────────────────
3104 000027D4 02 01 0C 01 05 01 05+ ins0curdat db 2,1,12,1,5,1,5,1,5,0
3105 01 05 00
3106 000027DE putins0cur: ; Put digital instrument cursor
3107 000027DE 0F B6 3D 0000112Cr movzx edi,edinso
3108 000027E5 69 FF 000000A0 imul edi,160
3109 000027EB 81 C7 000000A2 add edi,160+2
3110 000027F1 BE 000027D4r mov esi,offset ins0curdat
3111 000027F6 E9 FFFFFED5 jmp putcur
3112 ;─────────────────────────────────────────────────────────────────────────────
3113 000027FB 41 72 44 72 53 6C 52+ putins1str db 'ArDrSlRrMlKsTlWsAVEK ArDrSlRrMlKsTlWsAVEK FbC',0
3114 72 4D 6C 4B 73 54 6C+
3115 57 73 41 56 45 4B 20+
3116 41 72 44 72 53 6C 52+
3117 72 4D 6C 4B 73 54 6C+
3118 57 73 41 56 45 4B 20+
3119 46 62 43 00
3120 00002829 00 00 00 00 00 00 00+ putins1pmns db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,2
3121 00 00 00 00 00 00 00+
3122 00 00 01 00 01 00 01+
3123 00 01 02
3124 00002841 00 00 00 00 00 00 00+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,2
3125 00 00 00 00 00 00 00+
3126 00 00 01 00 01 00 01+
3127 00 01 02
3128 00002859 00 00 01 00 db 0,0,1,0
3129 0000285D 000026B0r 000026C5r putins1pm dd putnum2,putnum1
3130 00002865 putins1: ; Put FM instrument data
3131 00002865 FF 35 000009DEr push fminsnames
3132 0000286B 68 000027FBr push offset putins1str
3133 00002870 E8 FFFFFE7C call putins
3134 00002875 8A 35 0000112Br mov dh,edinsb
3135 0000287B 8B 3D 00000000e mov edi,_vgatextptr
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 56
cdfmsb.ASM
3136 00002881 81 C7 000000C2 add edi,160+34
3137 00002887 B9 0000000D mov ecx,13
3138 0000288C putins1l0:
3139 0000288C 51 push ecx
3140 0000288D BE 00002829r mov esi,offset putins1pmns
3141 00002892 32 C9 xor cl,cl
3142 00002894 putins1l1:
3143 00002894 8A E6 mov ah,dh
3144 00002896 8A C1 mov al,cl
3145 00002898 E8 00000A27 call getfminsval
3146 0000289D 0F B6 2E movzx ebp,byte ptr [esi]
3147 000028A0 B4 07 mov ah,7
3148 000028A2 FF 14 AD 0000285Dr call putins1pm[ebp*4]
3149 000028A9 0F B6 6E 01 movzx ebp,byte ptr [esi+1]
3150 000028AD 83 C6 02 add esi,2
3151 000028B0 03 FD add edi,ebp
3152 000028B2 FE C1 inc cl
3153 000028B4 80 F9 1A cmp cl,26
3154 000028B7 72 DB jb putins1l1
3155 000028B9 FE C6 inc dh
3156 000028BB 83 C7 46 add edi,70
3157 000028BE 59 pop ecx
3158 000028BF E2 CB loop putins1l0
3159 000028C1 C3 ret
3160 ;─────────────────────────────────────────────────────────────────────────────
3161 000028C2 02 01 0C 01 14 01 14+ ins1curdat db 2,1,12,1,20,1,20,1,3,0
3162 01 03 00
3163 000028CC 00 01 02 01 04 01 06+ ins1curdat2 db 0,1,2,1,4,1,6,1,8,1,10,1,12,1,14,1,16,0,17,0,18,0,19,0
3164 01 08 01 0A 01 0C 01+
3165 0E 01 10 00 11 00 12+
3166 00 13 00
3167 000028E4 15 01 17 01 19 01 1B+ db 21,1,23,1,25,1,27,1,29,1,31,1,33,1,35,1,37,0,38,0,39,0,40,0
3168 01 1D 01 1F 01 21 01+
3169 23 01 25 00 26 00 27+
3170 00 28 00
3171 000028FC 2A 01 2C 00 db 42,1,44,0
3172 00002900 putins1cur: ; Put FM instrument cursor
3173 00002900 0F B6 3D 0000112Cr movzx edi,edinso
3174 00002907 69 FF 000000A0 imul edi,160
3175 0000290D 81 C7 000000A2 add edi,160+2
3176 00002913 BE 000028C2r mov esi,offset ins1curdat
3177 00002918 E8 FFFFFDB3 call putcur
3178 0000291D 0F B6 35 0000112Fr movzx esi,edfmval
3179 00002924 0F B6 3C 75 + movzx edi,ins1curdat2[esi*2]
3180 000028CCr
3181 0000292C 8D 3C 7D 000000C3 lea edi,[edi*2+160+35]
3182 00002933 03 3D 00000000e add edi,_vgatextptr
3183 00002939 0F B6 05 0000112Cr movzx eax,edinso
3184 00002940 69 C0 000000A0 imul eax,160
3185 00002946 03 F8 add edi,eax
3186 00002948 C6 07 0D mov byte ptr [edi],0dh
3187 0000294B 80 3C 75 000028CDr + cmp ins1curdat2[esi*2+1],0
3188 00
3189 00002953 0F 84 00000000e je _ret
3190 00002959 C6 47 02 0D mov byte ptr [edi+2],0dh
3191 0000295D C3 ret
3192 ;─────────────────────────────────────────────────────────────────────────────
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 57
cdfmsb.ASM
3193 0000295E putord: ; Put order list
3194 0000295E 8B 3D 00000000e mov edi,_vgatextptr
3195 00002964 81 C7 00000134 add edi,160+148
3196 0000296A 8A 0D 0000112Dr mov cl,edordb
3197 00002970 B5 0D mov ch,13
3198 00002972 E8 FFFFFCFC call putnumbar
3199 00002977 8B 3D 00000000e mov edi,_vgatextptr
3200 0000297D 81 C7 0000013A add edi,160+154
3201 00002983 0F B6 35 0000112Dr movzx esi,edordb
3202 0000298A 03 35 000009E6r add esi,ordbase
3203 00002990 B9 0000000D mov ecx,13
3204 00002995 B4 07 mov ah,7
3205 00002997 putordl0:
3206 00002997 AC lodsb
3207 00002998 3C FF cmp al,-1
3208 0000299A 74 07 je short putordl0f0
3209 0000299C E8 FFFFFD0F call putnum2
3210 000029A1 EB 06 jmp short putordl0c
3211 000029A3 putordl0f0:
3212 000029A3 B0 FA mov al,'·'
3213 000029A5 66| AB stosw
3214 000029A7 66| AB stosw
3215 000029A9 putordl0c:
3216 000029A9 81 C7 0000009C add edi,156
3217 000029AF E2 E6 loop putordl0
3218 000029B1 C3 ret
3219 ;─────────────────────────────────────────────────────────────────────────────
3220 000029B2 02 01 02 00 ordcurdat db 2,1,2,0
3221 000029B6 putordcur: ; Put order list cursor
3222 000029B6 0F B6 3D 0000112Er movzx edi,edordo
3223 000029BD 69 FF 000000A0 imul edi,160
3224 000029C3 81 C7 00000134 add edi,160+148
3225 000029C9 BE 000029B2r mov esi,offset ordcurdat
3226 000029CE E9 FFFFFCFD jmp putcur
3227 ;─────────────────────────────────────────────────────────────────────────────
3228 000029D3 20 20 54 65 6D 70 6F+ statline db ' Tempo:_ Loop:__ Channel:__ Octave:_ Volume:_ Order:__ Pattern:__+
3229 3A 5F 20 20 20 4C 6F+ ',0
3230 6F 70 3A 5F 5F 20 20+
3231 20 43 68 61 6E 6E 65+
3232 6C 3A 5F 5F 20 20 20+
3233 4F 63 74 61 76 65 3A+
3234 5F 20 20 20 56 6F 6C+
3235 75 6D 65 3A 5F 20 20+
3236 20 4F 72 64 65 72 3A+
3237 5F 5F 20 20 20 50 61+
3238 74 74 65 72 6E 3A 5F+
3239 5F 20 20 00
3240 00002A24 putstat: ; Put stat line
3241 00002A24 A0 00001119r mov al,mztempo
3242 00002A29 B1 00 mov cl,0
3243 00002A2B BA 000029DBr mov edx,offset statline+8
3244 00002A30 E8 FFFFE12B call _putnumtomem
3245 00002A35 A0 0000111Er mov al,mzloop
3246 00002A3A B1 01 mov cl,1
3247 00002A3C BA 000029E4r mov edx,offset statline+17
3248 00002A41 E8 FFFFE11A call _putnumtomem
3249 00002A46 A0 00001127r mov al,edvoiceb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 58
cdfmsb.ASM
3250 00002A4B 02 05 00001128r add al,edvoiceo
3251 00002A51 B1 01 mov cl,1
3252 00002A53 BA 000029F1r mov edx,offset statline+30
3253 00002A58 E8 FFFFE103 call _putnumtomem
3254 00002A5D A0 00001126r mov al,edoct
3255 00002A62 B1 00 mov cl,0
3256 00002A64 BA 000029FDr mov edx,offset statline+42
3257 00002A69 E8 FFFFE0F2 call _putnumtomem
3258 00002A6E A0 00001125r mov al,edvol
3259 00002A73 B1 00 mov cl,0
3260 00002A75 BA 00002A08r mov edx,offset statline+53
3261 00002A7A E8 FFFFE0E1 call _putnumtomem
3262 00002A7F A0 0000112Dr mov al,edordb
3263 00002A84 02 05 0000112Er add al,edordo
3264 00002A8A B1 01 mov cl,1
3265 00002A8C BA 00002A12r mov edx,offset statline+63
3266 00002A91 E8 FFFFE0CA call _putnumtomem
3267 00002A96 A0 00001124r mov al,edpat
3268 00002A9B B1 01 mov cl,1
3269 00002A9D BA 00002A1Fr mov edx,offset statline+76
3270 00002AA2 E8 FFFFE0B9 call _putnumtomem
3271 00002AA7 BA 000029D3r mov edx,offset statline
3272 00002AAC 66| BB 3100 mov bx,3100h
3273 00002AB0 B4 8F mov ah,08fh
3274 00002AB2 E8 00000000e call _putstr
3275 00002AB7 C3 ret
3276 ;─────────────────────────────────────────────────────────────────────────────
3277 00002AB8 43 FA 43 23 44 FA 44+ noteascii db 'C·C#D·D#E·F·F#G·G#A·A#B·'
3278 23 45 FA 46 FA 46 23+
3279 47 FA 47 23 41 FA 41+
3280 23 42 FA
3281 00002AD0 30 30 20 20 44 4C 30+ patchannels db '00 DL01 DR02 DL03 DR04 FL05 FR06 FL07 FR'
3282 31 20 20 44 52 30 32+
3283 20 20 44 4C 30 33 20+
3284 20 44 52 30 34 20 20+
3285 46 4C 30 35 20 20 46+
3286 52 30 36 20 20 46 4C+
3287 30 37 20 20 46 52
3288 00002B00 30 38 20 20 46 4C 30+ db '08 FL09 FR0A FL0B FR0C FL0D *FR0E *FL0F *FR'
3289 39 20 20 46 52 30 41+
3290 20 20 46 4C 30 42 20+
3291 20 46 52 30 43 20 20+
3292 46 4C 30 44 20 2A 46+
3293 52 30 45 20 2A 46 4C+
3294 30 46 20 2A 46 52
3295 00002B30 31 30 20 2A 46 4C 31+ db '10 *FL11 *FR12 *FL13 *FR14 *FL15 *FR'
3296 31 20 2A 46 52 31 32+
3297 20 2A 46 4C 31 33 20+
3298 2A 46 52 31 34 20 2A+
3299 46 4C 31 35 20 2A 46+
3300 52
3301 00002B54 ?? putpatphase db ?
3302 00002B55 ?? putpatcolor db ?
3303 00002B56 putpat: ; Put pattern
3304 00002B56 8B 3D 00000000e mov edi,_vgatextptr
3305 00002B5C 81 C7 00000A02 add edi,16*160+2
3306 00002B62 8A 0D 00001129r mov cl,edrowb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 59
cdfmsb.ASM
3307 00002B68 B5 20 mov ch,32
3308 00002B6A E8 FFFFFB04 call putnumbar
3309 00002B6F 66| B8 132D mov ax,132dh
3310 00002B73 66| BB 104F mov bx,104fh
3311 00002B77 66| B9 2001 mov cx,2001h
3312 00002B7B E8 00000000e call _textbox0
3313 00002B80 0F B6 35 00001129r movzx esi,edrowb
3314 00002B87 6B F6 2C imul esi,44
3315 00002B8A 03 35 000009EAr add esi,workpatptr
3316 00002B90 0F B6 05 00001127r movzx eax,edvoiceb
3317 00002B97 8D 34 46 lea esi,[esi+eax*2]
3318 00002B9A 8B 3D 00000000e mov edi,_vgatextptr
3319 00002BA0 81 C7 00000A06 add edi,16*160+6
3320 00002BA6 BD 00000020 mov ebp,20h
3321 00002BAB A0 00001129r mov al,edrowb
3322 00002BB0 FE C8 dec al
3323 00002BB2 A2 00002B54r mov putpatphase,al
3324 00002BB7 putpatl0:
3325 00002BB7 A0 00002B54r mov al,putpatphase
3326 00002BBC FE C0 inc al
3327 00002BBE A2 00002B54r mov putpatphase,al
3328 00002BC3 A8 03 test al,3
3329 00002BC5 0F 94 C4 setz ah
3330 00002BC8 C0 E4 06 shl ah,6
3331 00002BCB 88 25 00002B55r mov putpatcolor,ah
3332 00002BD1 B9 0000000B mov ecx,11
3333 00002BD6 putpatl1:
3334 00002BD6 8A 1E mov bl,[esi]
3335 00002BD8 80 FB FE cmp bl,0feh
3336 00002BDB 72 1D jb short putpatl1f0
3337 00002BDD 66| B8 07FA mov ax,7fah
3338 00002BE1 0A 25 00002B55r or ah,putpatcolor
3339 00002BE7 66| AB stosw
3340 00002BE9 66| AB stosw
3341 00002BEB 66| AB stosw
3342 00002BED 66| AB stosw
3343 00002BEF 66| AB stosw
3344 00002BF1 80 FB FF cmp bl,-1
3345 00002BF4 72 4F jb short putpatl1f1
3346 00002BF6 66| AB stosw
3347 00002BF8 EB 5C jmp short putpatl1c
3348 00002BFA putpatl1f0:
3349 00002BFA 8A 25 00002B55r mov ah,putpatcolor
3350 00002C00 80 CC 0B or ah,11
3351 00002C03 0F B6 D3 movzx edx,bl
3352 00002C06 80 E2 0F and dl,0fh
3353 00002C09 8A 04 55 00002AB8r mov al,noteascii[edx*2]
3354 00002C10 66| AB stosw
3355 00002C12 8A 04 55 00002AB9r mov al,noteascii[edx*2+1]
3356 00002C19 66| AB stosw
3357 00002C1B 8A D3 mov dl,bl
3358 00002C1D 8A C3 mov al,bl
3359 00002C1F C0 E8 04 shr al,4
3360 00002C22 24 07 and al,7
3361 00002C24 E8 FFFFFA9C call putnum1
3362 00002C29 8A 25 00002B55r mov ah,putpatcolor
3363 00002C2F 80 CC 03 or ah,3
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 60
cdfmsb.ASM
3364 00002C32 8A 46 01 mov al,[esi+1]
3365 00002C35 C0 E8 04 shr al,4
3366 00002C38 80 E2 80 and dl,80h
3367 00002C3B C0 EA 03 shr dl,3
3368 00002C3E 0A C2 or al,dl
3369 00002C40 E8 FFFFFA6B call putnum2
3370 00002C45 putpatl1f1:
3371 00002C45 8A 25 00002B55r mov ah,putpatcolor
3372 00002C4B 80 CC 0B or ah,11
3373 00002C4E 8A 46 01 mov al,[esi+1]
3374 00002C51 E8 FFFFFA6F call putnum1
3375 00002C56 putpatl1c:
3376 00002C56 83 C6 02 add esi,2
3377 00002C59 83 C7 02 add edi,2
3378 00002C5C 49 dec ecx
3379 00002C5D 0F 85 FFFFFF73 jnz putpatl1
3380 00002C63 83 C6 16 add esi,22
3381 00002C66 83 C7 06 add edi,6
3382 00002C69 4D dec ebp
3383 00002C6A 0F 85 FFFFFF47 jnz putpatl0
3384 00002C70 8B 3D 00000000e mov edi,_vgatextptr
3385 00002C76 81 C7 00000966 add edi,15*160+6
3386 00002C7C 0F B6 35 00001127r movzx esi,edvoiceb
3387 00002C83 6B F6 06 imul esi,6
3388 00002C86 81 C6 00002AD0r add esi,offset patchannels
3389 00002C8C B4 8F mov ah,8fh
3390 00002C8E B9 0000000B mov ecx,11
3391 00002C93 putpatl2:
3392 00002C93 AC lodsb
3393 00002C94 66| AB stosw
3394 00002C96 AC lodsb
3395 00002C97 66| AB stosw
3396 00002C99 AC lodsb
3397 00002C9A 66| AB stosw
3398 00002C9C AC lodsb
3399 00002C9D 66| AB stosw
3400 00002C9F AC lodsb
3401 00002CA0 66| AB stosw
3402 00002CA2 AC lodsb
3403 00002CA3 66| AB stosw
3404 00002CA5 83 C7 02 add edi,2
3405 00002CA8 E2 E9 loop putpatl2
3406 00002CAA 8A 3D 00001130r mov bh,edblkb
3407 00002CB0 80 FF FF cmp bh,0ffh
3408 00002CB3 0F 84 00000091 je putpatf2
3409 00002CB9 8A 2D 00001131r mov ch,edblke
3410 00002CBF 80 FD FF cmp ch,0ffh
3411 00002CC2 0F 84 00000082 je putpatf2
3412 00002CC8 3A EF cmp ch,bh
3413 00002CCA 73 10 jae short putpatf3
3414 00002CCC C6 05 00001130r FF mov edblkb,-1
3415 00002CD3 C6 05 00001131r FF mov edblke,-1
3416 00002CDA EB 6E jmp short putpatf2
3417 00002CDC putpatf3:
3418 00002CDC A0 00001129r mov al,edrowb
3419 00002CE1 3A E8 cmp ch,al
3420 00002CE3 72 65 jb short putpatf2
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 61
cdfmsb.ASM
3421 00002CE5 3A F8 cmp bh,al
3422 00002CE7 73 02 jae putpatf0
3423 00002CE9 8A F8 mov bh,al
3424 00002CEB putpatf0:
3425 00002CEB 04 1F add al,1fh
3426 00002CED 3A F8 cmp bh,al
3427 00002CEF 77 59 ja short putpatf2
3428 00002CF1 3A E8 cmp ch,al
3429 00002CF3 76 02 jbe putpatf1
3430 00002CF5 8A E8 mov ch,al
3431 00002CF7 putpatf1:
3432 00002CF7 2A EF sub ch,bh
3433 00002CF9 FE C5 inc ch
3434 00002CFB 2A 3D 00001129r sub bh,edrowb
3435 00002D01 80 C7 10 add bh,16
3436 00002D04 B3 4F mov bl,79
3437 00002D06 B1 01 mov cl,1
3438 00002D08 66| B8 B02D mov ax,0b02dh
3439 00002D0C E8 00000000e call _textbox0
3440 00002D11 0F B6 CD movzx ecx,ch
3441 00002D14 0F B6 FF movzx edi,bh
3442 00002D17 69 FF 000000A0 imul edi,160
3443 00002D1D 0F B6 05 00001128r movzx eax,edvoiceo
3444 00002D24 6B C0 0E imul eax,14
3445 00002D27 8D 7C 07 07 lea edi,[edi+eax+7]
3446 00002D2B 03 3D 00000000e add edi,_vgatextptr
3447 00002D31 C6 07 FF mov byte ptr [edi],0ffh
3448 00002D34 B0 4E mov al,04eh
3449 00002D36 putpatl3:
3450 00002D36 AA stosb
3451 00002D37 47 inc edi
3452 00002D38 AA stosb
3453 00002D39 47 inc edi
3454 00002D3A AA stosb
3455 00002D3B 47 inc edi
3456 00002D3C AA stosb
3457 00002D3D 47 inc edi
3458 00002D3E AA stosb
3459 00002D3F 47 inc edi
3460 00002D40 AA stosb
3461 00002D41 47 inc edi
3462 00002D42 81 C7 00000094 add edi,148
3463 00002D48 E2 EC loop putpatl3
3464 00002D4A putpatf2:
3465 00002D4A 8B 3D 00000000e mov edi,_vgatextptr
3466 00002D50 81 C7 00000A9E add edi,16*160+158
3467 00002D56 0F B6 05 00001123r movzx eax,mzbreak
3468 00002D5D 2A 05 00001129r sub al,edrowb
3469 00002D63 0F 82 00000000e jc _ret
3470 00002D69 3C 1F cmp al,1fh
3471 00002D6B 0F 87 00000000e ja _ret
3472 00002D71 69 C0 000000A0 imul eax,160
3473 00002D77 03 F8 add edi,eax
3474 00002D79 C6 07 11 mov byte ptr [edi],11h
3475 00002D7C 8A 47 01 mov al,[edi+1]
3476 00002D7F 24 F0 and al,0f0h
3477 00002D81 0C 0F or al,0fh
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 62
cdfmsb.ASM
3478 00002D83 88 47 01 mov [edi+1],al
3479 00002D86 C3 ret
3480 ;─────────────────────────────────────────────────────────────────────────────
3481 00002D87 06 00 patcurdat db 6,0
3482 00002D89 putpatcur:
3483 00002D89 0F B6 3D 0000112Ar movzx edi,edrowo
3484 00002D90 69 FF 000000A0 imul edi,160
3485 00002D96 81 C7 00000A06 add edi,16*160+6
3486 00002D9C 0F B6 05 00001128r movzx eax,edvoiceo
3487 00002DA3 6B C0 0E imul eax,14
3488 00002DA6 03 F8 add edi,eax
3489 00002DA8 BE 00002D87r mov esi,offset patcurdat
3490 00002DAD E9 FFFFF91E jmp putcur
3491
3492 ;─────────────────────────────────────────────────────────────────────────────
3493 00002DB2 clearsong: ; Clear song
3494 00002DB2 E8 00000000e call _stopmuzik
3495 00002DB7 C6 05 00001119r 06 mov mztempo,6
3496 00002DBE C6 05 0000111Er 00 mov mzloop,0
3497 00002DC5 32 C0 xor al,al
3498 00002DC7 C6 05 00001125r 0F mov edvol,0fh
3499 00002DCE C6 05 00001126r 02 mov edoct,2
3500 00002DD5 A2 00001124r mov edpat,al
3501 00002DDA A2 00001127r mov edvoiceb,al
3502 00002DDF A2 00001128r mov edvoiceo,al
3503 00002DE4 A2 00001129r mov edrowb,al
3504 00002DE9 A2 0000112Ar mov edrowo,al
3505 00002DEE A2 0000112Br mov edinsb,al
3506 00002DF3 A2 0000112Cr mov edinso,al
3507 00002DF8 A2 0000112Dr mov edordb,al
3508 00002DFD A2 0000112Er mov edordo,al
3509 00002E02 A2 0000112Fr mov edfmval,al
3510 00002E07 8B 3D 000009E6r mov edi,ordbase
3511 00002E0D B8 FFFFFFFF mov eax,-1
3512 00002E12 B9 00000040 mov ecx,40h
3513 00002E17 F3> AB rep stosd
3514 00002E19 8B 3D 000009C6r mov edi,patbase
3515 00002E1F B8 00604040 mov eax,604040h
3516 00002E24 B9 00000080 mov ecx,80h
3517 00002E29 clearsongl0:
3518 00002E29 AB stosd
3519 00002E2A 4F dec edi
3520 00002E2B E2 FC loop clearsongl0
3521 00002E2D 8B 3D 000009CAr mov edi,patoffbase
3522 00002E33 B9 00000080 mov ecx,80h
3523 00002E38 33 C0 xor eax,eax
3524 00002E3A clearsongl1:
3525 00002E3A AB stosd
3526 00002E3B 83 C0 03 add eax,3
3527 00002E3E E2 FA loop clearsongl1
3528 00002E40 8B 3D 000009CEr mov edi,patlenbase
3529 00002E46 B9 00000080 mov ecx,80h
3530 00002E4B B8 00000003 mov eax,3
3531 00002E50 F3> AB rep stosd
3532 00002E52 33 C0 xor eax,eax
3533 00002E54 8B 3D 000009D2r mov edi,dinsbase
3534 00002E5A B9 00000020 mov ecx,32
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 63
cdfmsb.ASM
3535 00002E5F clearsongl2:
3536 00002E5F 33 C0 xor eax,eax
3537 00002E61 AB stosd
3538 00002E62 AB stosd
3539 00002E63 AB stosd
3540 00002E64 B8 00FFFFFF mov eax,0ffffffh
3541 00002E69 AB stosd
3542 00002E6A E2 F3 loop clearsongl2
3543 00002E6C 33 C0 xor eax,eax
3544 00002E6E 8B 3D 000009DAr mov edi,fminsbase
3545 00002E74 B9 00000058 mov ecx,11*8
3546 00002E79 F3> AB rep stosd
3547 00002E7B 8B 3D 000009D6r mov edi,dinsnames
3548 00002E81 B9 00000068 mov ecx,13*8
3549 00002E86 F3> AB rep stosd
3550 00002E88 8B 3D 000009DEr mov edi,fminsnames
3551 00002E8E B9 00000068 mov ecx,13*8
3552 00002E93 F3> AB rep stosd
3553 00002E95 putall:
3554 00002E95 E8 000004A5 call getpat
3555 00002E9A E8 FFFFF8D3 call putins0
3556 00002E9F E8 FFFFFCB2 call putpat
3557 00002EA4 E8 FFFFFAB5 call putord
3558 00002EA9 E8 FFFFFB76 call putstat
3559 00002EAE E8 00000002 call adjsmp
3560 00002EB3 _retc:
3561 00002EB3 F9 stc
3562 00002EB4 C3 ret
3563
3564 ;─────────────────────────────────────────────────────────────────────────────
3565 00002EB5 adjsmp: ; defragment sample memory...
3566 00002EB5 E8 00000000e call _stopmuzik
3567 ; @rlp ebp,100000h
3568 00002EBA 8B 2D 00000000e mov ebp,_himembase
3569 00002EC0 adjsmpl1:
3570 00002EC0 33 DB xor ebx,ebx
3571 00002EC2 B9 00000020 mov ecx,20h
3572 00002EC7 BA FFFFFFFF mov edx,-1
3573 00002ECC 8B 35 000009D2r mov esi,dinsbase
3574 00002ED2 adjsmpl2:
3575 00002ED2 8B 46 04 mov eax,[esi+4]
3576 00002ED5 0B C0 or eax,eax
3577 00002ED7 74 14 je short adjsmpl2c
3578 00002ED9 3B C3 cmp eax,ebx
3579 00002EDB 72 02 jb short adjsmpl2f1
3580 00002EDD 8B D8 mov ebx,eax
3581 00002EDF adjsmpl2f1:
3582 00002EDF 8B 06 mov eax,[esi]
3583 00002EE1 3B C5 cmp eax,ebp
3584 00002EE3 72 08 jb short adjsmpl2c
3585 00002EE5 3B C2 cmp eax,edx
3586 00002EE7 77 04 ja short adjsmpl2c
3587 00002EE9 8B FE mov edi,esi
3588 00002EEB 8B D0 mov edx,eax
3589 00002EED adjsmpl2c:
3590 00002EED 83 C6 10 add esi,16
3591 00002EF0 E2 E0 loop adjsmpl2
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 64
cdfmsb.ASM
3592 00002EF2 83 FA FF cmp edx,-1
3593 00002EF5 74 38 je short adjsmpdone
3594 00002EF7 3B D5 cmp edx,ebp
3595 00002EF9 74 2F je short adjsmpl1c
3596 00002EFB 57 push edi
3597 00002EFC 8B C2 mov eax,edx
3598 00002EFE 2B C5 sub eax,ebp
3599 00002F00 B9 00000020 mov ecx,20h
3600 00002F05 8B 35 000009D2r mov esi,dinsbase
3601 00002F0B adjsmpl3:
3602 00002F0B 39 2E cmp [esi],ebp
3603 00002F0D 72 0B jb short adjsmpl3c
3604 00002F0F 29 06 sub [esi],eax
3605 00002F11 29 46 04 sub [esi+4],eax
3606 00002F14 29 46 08 sub [esi+8],eax
3607 00002F17 29 46 0C sub [esi+12],eax
3608 00002F1A adjsmpl3c:
3609 00002F1A 83 C6 10 add esi,16
3610 00002F1D E2 EC loop adjsmpl3
3611 00002F1F 8B F2 mov esi,edx
3612 00002F21 8B FD mov edi,ebp
3613 00002F23 8B CB mov ecx,ebx
3614 00002F25 2B CE sub ecx,esi
3615 00002F27 F3> A4 rep movsb
3616 00002F29 5F pop edi
3617 00002F2A adjsmpl1c:
3618 00002F2A 8B 6F 04 mov ebp,[edi+4]
3619 00002F2D EB 91 jmp adjsmpl1
3620 00002F2F adjsmpdone:
3621 00002F2F 89 2D 00001111r mov smpbase,ebp
3622 00002F35 C3 ret
3623
3624 ;─────────────────────────────────────────────────────────────────────────────
3625 ; CX - number of strings
3626 ; EBP - 13 byte ASCIIZstrings
3627 00002F36 alph:
3628 00002F36 66| 83 F9 02 cmp cx,2
3629 00002F3A 0F 82 00000000e jb _ret
3630 00002F40 0F B7 D1 movzx edx,cx
3631 00002F43 4A dec edx
3632 00002F44 alphl1:
3633 00002F44 8B CA mov ecx,edx
3634 00002F46 8B F5 mov esi,ebp
3635 00002F48 alphl2:
3636 00002F48 66| 51 push cx
3637 00002F4A 56 push esi
3638 00002F4B 8B FE mov edi,esi
3639 00002F4D 83 C7 0D add edi,13
3640 00002F50 66| B9 000D mov cx,13
3641 00002F54 F3> A6 repe cmpsb
3642 00002F56 72 12 jb alphl2c
3643 00002F58 5E pop esi
3644 00002F59 66| 59 pop cx
3645 00002F5B 66| B9 000D mov cx,13
3646 00002F5F alphl3:
3647 00002F5F AC lodsb
3648 00002F60 86 46 0C xchg al,[esi+12]
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 65
cdfmsb.ASM
3649 00002F63 88 46 FF mov [esi-1],al
3650 00002F66 E2 F7 loop alphl3
3651 00002F68 EB DA jmp alphl1
3652 00002F6A alphl2c:
3653 00002F6A 5E pop esi
3654 00002F6B 66| 59 pop cx
3655 00002F6D 83 C6 0D add esi,13
3656 00002F70 E2 D6 loop alphl2
3657 00002F72 C3 ret
3658
3659 ;─────────────────────────────────────────────────────────────────────────────
3660 00002F73 ???????? alphfindbp dd ?
3661 ; EBX - total strings present
3662 ; ESI - base of strings
3663 ; EBP - string to place
3664 ; out:
3665 ; EAX - index to put string at
3666 00002F77 alphfind:
3667 00002F77 89 35 00002F73r mov alphfindbp,esi
3668 00002F7D 8B D5 mov edx,ebp
3669 00002F7F E8 FFFFDC2F call _strlen
3670 00002F84 8D 50 01 lea edx,[eax+1]
3671 00002F87 33 C0 xor eax,eax
3672 00002F89 alphfindml:
3673 00002F89 8B CA mov ecx,edx
3674 00002F8B 8B FD mov edi,ebp
3675 00002F8D F3> A6 repe cmpsb
3676 00002F8F 0F 84 FFFFFF1E je _retc
3677 00002F95 77 13 ja _retnc
3678 00002F97 8B 35 00002F73r mov esi,alphfindbp
3679 00002F9D 83 C6 0D add esi,13
3680 00002FA0 89 35 00002F73r mov alphfindbp,esi
3681 00002FA6 40 inc eax
3682 00002FA7 4B dec ebx
3683 00002FA8 75 DF jnz alphfindml
3684 00002FAA _retnc:
3685 00002FAA F8 clc
3686 00002FAB C3 ret
3687
3688 ;─────────────────────────────────────────────────────────────────────────────
3689 ; DX - total items present
3690 ; BX - number to insert at
3691 ; EBP - base of list
3692 ; ECX - size of each item
3693 ; out:
3694 ; EDI - item to fill with blank
3695 00002FAC ins:
3696 00002FAC 0F B7 F3 movzx esi,bx
3697 00002FAF 0F AF F1 imul esi,ecx
3698 00002FB2 03 F5 add esi,ebp
3699 00002FB4 8D 3C 0E lea edi,[esi+ecx]
3700 00002FB7 66| 2B D3 sub dx,bx
3701 00002FBA 0F B7 D2 movzx edx,dx
3702 00002FBD 4A dec edx
3703 00002FBE 74 08 jz short insdone
3704 00002FC0 0F AF CA imul ecx,edx
3705 00002FC3 E8 FFFFDC6F call _copymem
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 66
cdfmsb.ASM
3706 00002FC8 insdone:
3707 00002FC8 8B FE mov edi,esi
3708 00002FCA C3 ret
3709 ;─────────────────────────────────────────────────────────────────────────────
3710 ; DX - total items present
3711 ; BX - number to insert at
3712 ; EBP - base of list
3713 ; ECX - size of each item
3714 ; out:
3715 ; EDI - item to fill with blank
3716 00002FCB del:
3717 00002FCB 0F B7 C2 movzx eax,dx
3718 00002FCE 48 dec eax
3719 00002FCF 0F AF C1 imul eax,ecx
3720 00002FD2 03 C5 add eax,ebp
3721 00002FD4 0F B7 FB movzx edi,bx
3722 00002FD7 0F AF F9 imul edi,ecx
3723 00002FDA 03 FD add edi,ebp
3724 00002FDC 8D 34 0F lea esi,[edi+ecx]
3725 00002FDF 66| 2B D3 sub dx,bx
3726 00002FE2 0F B7 D2 movzx edx,dx
3727 00002FE5 4A dec edx
3728 00002FE6 74 08 jz short deldone
3729 00002FE8 0F AF CA imul ecx,edx
3730 00002FEB E8 FFFFDC47 call _copymem
3731 00002FF0 deldone:
3732 00002FF0 8B F8 mov edi,eax
3733 00002FF2 C3 ret
3734
3735 ;─────────────────────────────────────────────────────────────────────────────
3736 ; BL,BH - X and Y
3737 ; CL - number of digits
3738 ; out:
3739 ; EAX - number
3740 00002FF3 getnum:
3741 00002FF3 66| B8 8A01 mov ax,8a01h
3742 00002FF7 BA 0000080Cr mov edx,offset errmsg0
3743 00002FFC C6 02 00 mov byte ptr [edx],0
3744 00002FFF BD 000010FCr mov ebp,offset numlist
3745 00003004 E8 00000000e call _getstr
3746 00003009 0F 82 00000000e jc _ret
3747 0000300F 80 3A 00 cmp byte ptr [edx],0
3748 00003012 0F 84 FFFFFE9B je _retc
3749 00003018 E8 FFFFDBAD call _strltu
3750 0000301D E8 FFFFDBC4 call _strhtn
3751 00003022 F8 clc
3752 00003023 C3 ret
3753
3754 ;─────────────────────────────────────────────────────────────────────────────
3755 00003024 09 sellist db 9
3756 00003025 000E 0020 000D 0015 + dw 14,32,13,21,22,25,26,19,20
3757 0016 0019 001A 0013 +
3758 0014
3759 00003037 00003247r 00003203r + selrout dd selectexit,selectdone,selectdone,selpgup,selpgdn,selup,seldn
3760 00003203r 000031BFr +
3761 000031C5r 0000318Ar +
3762 00003190r
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 67
cdfmsb.ASM
3763 00003053 00003251r 00003259r dd selhome,selend
3764 0000305B ???????? sels dd ?
3765 0000305F ???????? selbp dd ?
3766 00003063 ???? seln dw ?
3767 00003065 ???? selb dw ?
3768 00003067 ?? selo db ?
3769 00003068 ?? seli db ?
3770 00003069 0000 0000 selbs dw 0,0
3771 0000306D 00 00 selos db 0,0
3772 0000306F ???????? ???????? selbps dd ?,?
3773 ; EDX -> 13 byte ASCIIZ strings
3774 ; ECX - number present
3775 ; out:
3776 ; EAX - index
3777 00003077 select:
3778 00003077 0F B6 1D 00003068r movzx ebx,seli
3779 0000307E 8B 04 9D 0000306Fr mov eax,selbps[ebx*4]
3780 00003085 A3 0000305Fr mov selbp,eax
3781 0000308A 66| 8B 04 5D + mov ax,selbs[ebx*2]
3782 00003069r
3783 00003092 66| A3 00003065r mov selb,ax
3784 00003098 8A 83 0000306Dr mov al,selos[ebx]
3785 0000309E A2 00003067r mov selo,al
3786 000030A3 89 15 0000305Br mov sels,edx
3787 000030A9 66| 89 0D 00003063r mov seln,cx
3788 000030B0 66| BB 0020 mov bx,32
3789 000030B4 66| B9 3210 mov cx,3210h
3790 000030B8 E8 00000000e call _pushtext
3791 000030BD 66| B8 7020 mov ax,7020h
3792 000030C1 E8 00000000e call _textbox0
3793 000030C6 selectml:
3794 000030C6 66| BB 0021 mov bx,33
3795 000030CA 66| B9 320E mov cx,320eh
3796 000030CE 66| B8 7020 mov ax,7020h
3797 000030D2 E8 00000000e call _textbox0
3798 000030D7 0F B7 0D 00003063r movzx ecx,seln
3799 000030DE 0F B7 15 00003065r movzx edx,selb
3800 000030E5 2B CA sub ecx,edx
3801 000030E7 83 F9 32 cmp ecx,50
3802 000030EA 76 05 jbe short selectf0
3803 000030EC B9 00000032 mov ecx,50
3804 000030F1 selectf0:
3805 000030F1 8B 15 0000305Fr mov edx,selbp
3806 000030F7 FE C3 inc bl
3807 000030F9 selectl0:
3808 000030F9 E8 00000000e call _putstr
3809 000030FE FE C7 inc bh
3810 00003100 83 C2 0D add edx,13
3811 00003103 E2 F4 loop selectl0
3812 00003105 0F B6 3D 00003067r movzx edi,selo
3813 0000310C 69 FF 000000A0 imul edi,160
3814 00003112 03 3D 00000000e add edi,_vgatextptr
3815 00003118 83 C7 43 add edi,67
3816 0000311B B0 0F mov al,15
3817 0000311D B9 0000000E mov ecx,14
3818 00003122 selectl1:
3819 00003122 AA stosb
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 68
cdfmsb.ASM
3820 00003123 47 inc edi
3821 00003124 E2 FC loop selectl1
3822 00003126 selectml2:
3823 00003126 E8 00000000e call _getch
3824 0000312B BA 00003024r mov edx,offset sellist
3825 00003130 E8 FFFFDAD1 call _indexword
3826 00003135 72 0C jc short selectfind
3827 00003137 68 000030C6r push offset selectml
3828 0000313C FF 24 85 00003037r jmp selrout[eax*4]
3829 ;-----------------------------------------------------------------------------
3830 00003143 selectfind:
3831 00003143 0A E4 or ah,ah
3832 00003145 75 DF jnz selectml2
3833 00003147 8B 15 0000305Br mov edx,sels
3834 0000314D 0F B7 0D 00003063r movzx ecx,seln
3835 00003154 selectfindml:
3836 00003154 3A 02 cmp al,[edx]
3837 00003156 74 11 jz short selectfindf0
3838 00003158 83 C2 0D add edx,13
3839 0000315B E2 F7 loop selectfindml
3840 0000315D 3C 61 cmp al,'a'
3841 0000315F 72 C5 jb selectml2
3842 00003161 3C 7A cmp al,'z'
3843 00003163 77 C1 ja selectml2
3844 00003165 04 E0 add al,'A'-'a'
3845 00003167 EB DA jmp selectfind
3846 00003169 selectfindf0:
3847 00003169 89 15 0000305Fr mov selbp,edx
3848 0000316F 66| A1 00003063r mov ax,seln
3849 00003175 66| 2B C1 sub ax,cx
3850 00003178 66| A3 00003065r mov selb,ax
3851 0000317E C6 05 00003067r 00 mov selo,0
3852 00003185 E9 FFFFFF3C jmp selectml
3853 ;-----------------------------------------------------------------------------
3854 0000318A selup:
3855 0000318A 66| BB FFFF mov bx,-1
3856 0000318E EB 04 jmp short selupdn
3857 ;-----------------------------------------------------------------------------
3858 00003190 seldn:
3859 00003190 66| BB 0001 mov bx,1
3860 00003194 selupdn:
3861 00003194 A0 00003067r mov al,selo
3862 00003199 02 C3 add al,bl
3863 0000319B 78 2C js short selpgupdn
3864 0000319D 66| 0F B6 C8 movzx cx,al
3865 000031A1 66| 03 0D 00003065r add cx,selb
3866 000031A8 66| 3B 0D 00003063r cmp cx,seln
3867 000031AF 0F 83 00000000e jae _ret
3868 000031B5 3C 31 cmp al,49
3869 000031B7 77 10 ja selpgupdn
3870 000031B9 A2 00003067r mov selo,al
3871 000031BE C3 ret
3872 ;-----------------------------------------------------------------------------
3873 000031BF selpgup:
3874 000031BF 66| BB FFCE mov bx,-50
3875 000031C3 EB CF jmp short selupdn
3876 ;-----------------------------------------------------------------------------
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 69
cdfmsb.ASM
3877 000031C5 selpgdn:
3878 000031C5 66| BB 0032 mov bx,50
3879 000031C9 selpgupdn:
3880 000031C9 66| A1 00003065r mov ax,selb
3881 000031CF 66| 03 C3 add ax,bx
3882 000031D2 0F 88 00000000e js _ret
3883 000031D8 66| 0F B6 0D + movzx cx,selo
3884 00003067r
3885 000031E0 66| 03 C8 add cx,ax
3886 000031E3 66| 3B 0D 00003063r cmp cx,seln
3887 000031EA 0F 83 00000000e jae _ret
3888 000031F0 0F BF DB movsx ebx,bx
3889 000031F3 6B DB 0D imul ebx,13
3890 000031F6 01 1D 0000305Fr add selbp,ebx
3891 000031FC 66| A3 00003065r mov selb,ax
3892 00003202 C3 ret
3893 ;-----------------------------------------------------------------------------
3894 00003203 selectdone:
3895 00003203 0F B6 1D 00003068r movzx ebx,seli
3896 0000320A A1 0000305Fr mov eax,selbp
3897 0000320F 89 04 9D 0000306Fr mov selbps[ebx*4],eax
3898 00003216 66| A1 00003065r mov ax,selb
3899 0000321C 66| 89 04 5D + mov selbs[ebx*2],ax
3900 00003069r
3901 00003224 A0 00003067r mov al,selo
3902 00003229 88 83 0000306Dr mov selos[ebx],al
3903 0000322F 83 C4 04 add esp,4
3904 00003232 E8 00000000e call _poptext
3905 00003237 0F B6 05 00003067r movzx eax,selo
3906 0000323E 66| 03 05 00003065r add ax,selb
3907 00003245 F8 clc
3908 00003246 C3 ret
3909 ;-----------------------------------------------------------------------------
3910 00003247 selectexit:
3911 00003247 83 C4 04 add esp,4
3912 0000324A E8 00000000e call _poptext
3913 0000324F F9 stc
3914 00003250 C3 ret
3915 ;-----------------------------------------------------------------------------
3916 00003251 selhome:
3917 00003251 C6 05 00003067r 00 mov selo,0
3918 00003258 C3 ret
3919 ;-----------------------------------------------------------------------------
3920 00003259 selend:
3921 00003259 66| A1 00003063r mov ax,seln
3922 0000325F 66| 2B 05 00003065r sub ax,selb
3923 00003266 66| 3D 0033 cmp ax,51
3924 0000326A 72 02 jb short selendf0
3925 0000326C B0 32 mov al,50
3926 0000326E selendf0:
3927 0000326E FE C8 dec al
3928 00003270 A2 00003067r mov selo,al
3929 00003275 C3 ret
3930
3931 ;─────────────────────────────────────────────────────────────────────────────
3932 00003276 03 04 0F 03 00 0F 04+ fminsvaldat db 3,4,15, 3,0,15, 4,4,15, 4,0,15, 1,0,15, 2,6,3, 2,0,63, 5,0,3, 1,7, +
3933 04 0F 04 00 0F 01 00+ 1,1,6,1,1,5,1,1,4,1
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 70
cdfmsb.ASM
3934 0F 02 06 03 02 00 3F+
3935 05 00 03 01 07 01 01+
3936 06 01 01 05 01 01 04+
3937 01
3938 0000329A 08 04 0F 08 00 0F 09+ db 8,4,15, 8,0,15, 9,4,15, 9,0,15, 6,0,15, 7,6,3, 7,0,63, 10,0,3, 6,7,+
3939 04 0F 09 00 0F 06 00+ 1,6,6,1,6,5,1,6,4,1
3940 0F 07 06 03 07 00 3F+
3941 0A 00 03 06 07 01 06+
3942 06 01 06 05 01 06 04+
3943 01
3944 000032BE 00 01 07 00 00 01 db 0,1,7, 0,0,1
3945 ; AH - instrument
3946 ; AL - value number
3947 ; out AL - val
3948 000032C4 getfminsval:
3949 000032C4 53 push ebx
3950 000032C5 51 push ecx
3951 000032C6 52 push edx
3952 000032C7 0F B6 D4 movzx edx,ah
3953 000032CA 6B D2 0B imul edx,11
3954 000032CD 03 15 000009DAr add edx,fminsbase
3955 000032D3 0F B6 D8 movzx ebx,al
3956 000032D6 8D 9C 5B 00003276r lea ebx,[ebx*2+ebx+fminsvaldat]
3957 000032DD 0F B6 0B movzx ecx,byte ptr [ebx]
3958 000032E0 03 D1 add edx,ecx
3959 000032E2 8A 4B 01 mov cl,[ebx+1]
3960 000032E5 8A 02 mov al,[edx]
3961 000032E7 D2 E8 shr al,cl
3962 000032E9 22 43 02 and al,[ebx+2]
3963 000032EC 5A pop edx
3964 000032ED 59 pop ecx
3965 000032EE 5B pop ebx
3966 000032EF C3 ret
3967 ;─────────────────────────────────────────────────────────────────────────────
3968 ; AH - instrument
3969 ; AL - value number
3970 ; BL - val
3971 000032F0 setfminsval:
3972 000032F0 66| 50 push ax
3973 000032F2 51 push ecx
3974 000032F3 52 push edx
3975 000032F4 57 push edi
3976 000032F5 0F B6 D4 movzx edx,ah
3977 000032F8 6B D2 0B imul edx,11
3978 000032FB 03 15 000009DAr add edx,fminsbase
3979 00003301 0F B6 F8 movzx edi,al
3980 00003304 8D BC 7F 00003276r lea edi,[edi*2+edi+fminsvaldat]
3981 0000330B 0F B6 0F movzx ecx,byte ptr [edi]
3982 0000330E 03 D1 add edx,ecx
3983 00003310 8A 4F 01 mov cl,[edi+1]
3984 00003313 8A 2A mov ch,[edx]
3985 00003315 8A 47 02 mov al,[edi+2]
3986 00003318 D2 E0 shl al,cl
3987 0000331A F6 D0 not al
3988 0000331C 22 E8 and ch,al
3989 0000331E 8A C3 mov al,bl
3990 00003320 22 47 02 and al,[edi+2]
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 71
cdfmsb.ASM
3991 00003323 D2 E0 shl al,cl
3992 00003325 0A C5 or al,ch
3993 00003327 88 02 mov [edx],al
3994 00003329 5F pop edi
3995 0000332A 5A pop edx
3996 0000332B 59 pop ecx
3997 0000332C 66| 58 pop ax
3998 0000332E C3 ret
3999
4000 ;─────────────────────────────────────────────────────────────────────────────
4001 0000332F 0000337Fr 0000338Dr + getpatrout dd getpat0,getpat1,getpat2,getpat3
4002 0000339Er 000033ABr
4003 0000333F getpat: ; Unsquish EDPAT to work buffer
4004 0000333F 8B 3D 000009EAr mov edi,workpatptr
4005 00003345 B8 FFFFFFFF mov eax,-1
4006 0000334A B9 000002C0 mov ecx,11*64
4007 0000334F F3> AB rep stosd
4008 00003351 0F B6 35 00001124r movzx esi,edpat
4009 00003358 C1 E6 02 shl esi,2
4010 0000335B 03 35 000009CAr add esi,patoffbase
4011 00003361 8B 36 mov esi,[esi]
4012 00003363 03 35 000009C6r add esi,patbase
4013 00003369 8B 3D 000009EAr mov edi,workpatptr
4014 0000336F 33 D2 xor edx,edx
4015 00003371 getpatml:
4016 00003371 AC lodsb
4017 00003372 0F B6 D8 movzx ebx,al
4018 00003375 C0 EB 05 shr bl,5
4019 00003378 FF 24 9D 0000332Fr jmp getpatrout[ebx*4]
4020 0000337F getpat0:
4021 0000337F 0F B6 D8 movzx ebx,al
4022 00003382 80 E3 1F and bl,1fh
4023 00003385 66| AD lodsw
4024 00003387 66| 89 04 5F mov [edi+ebx*2],ax
4025 0000338B EB E4 jmp getpatml
4026 0000338D getpat1:
4027 0000338D 0F B6 D8 movzx ebx,al
4028 00003390 80 E3 1F and bl,1fh
4029 00003393 AC lodsb
4030 00003394 8A E0 mov ah,al
4031 00003396 B0 FE mov al,0feh
4032 00003398 66| 89 04 5F mov [edi+ebx*2],ax
4033 0000339C EB D3 jmp getpatml
4034 0000339E getpat2:
4035 0000339E AC lodsb
4036 0000339F 0F B6 D8 movzx ebx,al
4037 000033A2 02 D0 add dl,al
4038 000033A4 6B DB 2C imul ebx,44
4039 000033A7 03 FB add edi,ebx
4040 000033A9 EB C6 jmp getpatml
4041 000033AB getpat3:
4042 000033AB FE CA dec dl
4043 000033AD 88 15 00001123r mov mzbreak,dl
4044 000033B3 C3 ret
4045
4046 ;─────────────────────────────────────────────────────────────────────────────
4047 000033B4 setpat: ; Squish work buffer to EDPAT
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 72
cdfmsb.ASM
4048 000033B4 8B 35 000009EAr mov esi,workpatptr
4049 000033BA 8B 3D 000009EEr mov edi,buildpat
4050 000033C0 33 D2 xor edx,edx
4051 000033C2 setpatl0:
4052 000033C2 B9 00000016 mov ecx,22
4053 000033C7 setpatl1:
4054 000033C7 8A 26 mov ah,[esi]
4055 000033C9 80 FC FE cmp ah,0feh
4056 000033CC 77 1A ja short setpatl1c
4057 000033CE E8 000000CE call setpatrout
4058 000033D3 B0 16 mov al,22
4059 000033D5 2A C1 sub al,cl
4060 000033D7 80 FC FE cmp ah,0feh
4061 000033DA 72 04 jb short setpatl1f0
4062 000033DC 0C 20 or al,20h
4063 000033DE EB 03 jmp short setpatl1f1
4064 000033E0 setpatl1f0:
4065 000033E0 AA stosb
4066 000033E1 8A C4 mov al,ah
4067 000033E3 setpatl1f1:
4068 000033E3 AA stosb
4069 000033E4 8A 46 01 mov al,[esi+1]
4070 000033E7 AA stosb
4071 000033E8 setpatl1c:
4072 000033E8 83 C6 02 add esi,2
4073 000033EB E2 DA loop setpatl1
4074 000033ED 66| 81 C2 0101 add dx,101h
4075 000033F2 3A 35 00001123r cmp dh,mzbreak
4076 000033F8 76 C8 jbe setpatl0
4077 000033FA E8 000000A2 call setpatrout
4078 000033FF B0 60 mov al,60h
4079 00003401 AA stosb
4080 00003402 0F B6 2D 00001124r movzx ebp,edpat
4081 00003409 8B D7 mov edx,edi
4082 0000340B 2B 15 000009EEr sub edx,buildpat
4083 00003411 52 push edx
4084 00003412 8D 1C AD 00000000 lea ebx,[ebp*4]
4085 00003419 03 1D 000009CEr add ebx,patlenbase
4086 0000341F 87 13 xchg edx,[ebx]
4087 00003421 2B 13 sub edx,[ebx]
4088 00003423 83 FD 7F cmp ebp,7fh
4089 00003426 74 38 je short setpatf0
4090 00003428 8D 34 AD 00000004 lea esi,[ebp*4+4]
4091 0000342F 03 35 000009CAr add esi,patoffbase
4092 00003435 8B 36 mov esi,[esi]
4093 00003437 8B 0D 000009CAr mov ecx,patoffbase
4094 0000343D 8B 89 000001FC mov ecx,[ecx+4*127]
4095 00003443 8B 1D 000009CEr mov ebx,patlenbase
4096 00003449 03 8B 000001FC add ecx,[ebx+4*127]
4097 0000344F 2B CE sub ecx,esi
4098 00003451 03 35 000009C6r add esi,patbase
4099 00003457 8B FE mov edi,esi
4100 00003459 2B FA sub edi,edx
4101 0000345B E8 FFFFD7D7 call _copymem
4102 00003460 setpatf0:
4103 00003460 59 pop ecx
4104 00003461 8B 35 000009EEr mov esi,buildpat
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 73
cdfmsb.ASM
4105 00003467 8D 3C AD 00000000 lea edi,[ebp*4]
4106 0000346E 03 3D 000009CAr add edi,patoffbase
4107 00003474 8B 3F mov edi,[edi]
4108 00003476 03 3D 000009C6r add edi,patbase
4109 0000347C F3> A4 rep movsb
4110 0000347E B9 0000007F mov ecx,7fh
4111 00003483 2B CD sub ecx,ebp
4112 00003485 0F 84 00000000e jz _ret
4113 0000348B 8D 2C AD 00000004 lea ebp,[ebp*4+4]
4114 00003492 03 2D 000009CAr add ebp,patoffbase
4115 00003498 setpatl2:
4116 00003498 29 55 00 sub [ebp],edx
4117 0000349B 83 C5 04 add ebp,4
4118 0000349E E2 F8 loop setpatl2
4119 000034A0 C3 ret
4120 ;-----------------------------------------------------------------------------
4121 000034A1 setpatrout:
4122 000034A1 0A D2 or dl,dl
4123 000034A3 0F 84 00000000e jz _ret
4124 000034A9 B0 40 mov al,40h
4125 000034AB AA stosb
4126 000034AC 8A C2 mov al,dl
4127 000034AE AA stosb
4128 000034AF 32 D2 xor dl,dl
4129 000034B1 C3 ret
4130
4131
4132 000034B2 code32 ends
4133 end
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 74
Symbol Table
Symbol Name Type Value
??date Text "01/25/98"
??filename Text "cdfmsb "
??time Text "23:51:15"
??version Number 030A
@Cpu Text 0F8FH
@FileName Text cdfmsb
@WordSize Text 4
@curseg Text code32
_adjsmp Near code32:---- Extern
_ccheksstr Near code32:---- Extern
_cchekstr Near code32:---- Extern
_cchekswitch Near code32:---- Extern
_cchekswitchnc Near code32:---- Extern
_centerscr Near code32:---- Extern
_clearkb Near code32:---- Extern
_closefile Near code32:---- Extern
_code16a Dword code32:---- Extern
_code32a Dword code32:---- Extern
_copymem Near code32:0C37
_createfile Near code32:---- Extern
_deletefile Near code32:---- Extern
_detect_scard Near code32:---- Extern
_dfmcounter Byte code32:---- Extern
_dfmfunc Dword code32:---- Extern
_dspout Byte code32:---- Extern
_exit Near code32:---- Extern
_exitcode Byte code32:---- Extern
_filebuflen Word code32:---- Extern
_filebufloc Dword code32:---- Extern
_filecopy Near code32:---- Extern
_filesize Near code32:---- Extern
_findfile Near code32:---- Extern
_fmnote Near code32:---- Extern
_fmsfx Near code32:---- Extern
_fmsfxd Near code32:---- Extern
_fmsfxtblptr Dword code32:---- Extern
_freeselector Near code32:---- Extern
_getch Near code32:---- Extern
_gethimem Near code32:---- Extern
_getirqmask Near code32:---- Extern
_getirqvect Dword code32:---- Extern
_getlomem Near code32:---- Extern
_getmem Near code32:---- Extern
_getselector Near code32:---- Extern
_getstr Near code32:---- Extern
_hextbl Byte code32:0000
_himembase Dword code32:---- Extern
_himemsize Near code32:---- Extern
_himemtop Dword code32:---- Extern
_indexbyte Near code32:0C1F
_indexword Near code32:0C06
_initkb Near code32:---- Extern
_initvga50 Near code32:---- Extern
_install_dfm Near code32:---- Extern
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 75
Symbol Table
_kbchar Byte code32:---- Extern
_kbhit Byte code32:---- Extern
_kbshift Byte code32:---- Extern
_kbtbl0 Byte code32:---- Extern
_kbtbl1 Byte code32:---- Extern
_lomembase Dword code32:---- Extern
_lomemsize Near code32:---- Extern
_lomemtop Dword code32:---- Extern
_lseekfile Near code32:---- Extern
_main Near code32:0CE8
_mixahead Near code32:---- Extern
_muzik Near code32:---- Extern
_openfile Near code32:---- Extern
_pcsfx Near code32:---- Extern
_pcsfxd Near code32:---- Extern
_pcsfxtblptr Dword code32:---- Extern
_phademuzik Near code32:---- Extern
_poptext Near code32:---- Extern
_pspa Dword code32:---- Extern
_pushtext Near code32:---- Extern
_putdosmsg Near code32:0C4C
_putnumtomem Near code32:0B60
_putstr Near code32:---- Extern
_readfile Near code32:---- Extern
_resetkb Near code32:---- Extern
_ret Near code32:---- Extern
_retc Near code32:2EB3
_retnc Near code32:2FAA
_rmpmirqfree Near code32:---- Extern
_rmpmirqset Near code32:---- Extern
_sbirq Byte code32:---- Extern
_sbnote Near code32:---- Extern
_sbport Word code32:---- Extern
_sbsfxch Byte code32:---- Extern
_sbsfxchh Byte code32:---- Extern
_sbsfxchl Byte code32:---- Extern
_sbsfxm Near code32:---- Extern
_sbsfxmd Near code32:---- Extern
_sbsfxs Near code32:---- Extern
_sbsfxsd Near code32:---- Extern
_sbsfxtblptr Dword code32:---- Extern
_scard Byte code32:---- Extern
_selcode Word code32:---- Extern
_seldata Word code32:---- Extern
_selzero Word code32:---- Extern
_setchars Near code32:---- Extern
_setirqmask Near code32:---- Extern
_setirqvect Dword code32:---- Extern
_setmuzik Near code32:---- Extern
_setselector Dword code32:---- Extern
_stopmuzik Near code32:---- Extern
_stopsmp Near code32:---- Extern
_strcat Near code32:0B98
_strcpy Near code32:0B89
_strhtn Near code32:0BE6
_strlen Near code32:0BB3
_strltu Near code32:0BCA
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 76
Symbol Table
_sysbyte0 Byte code32:---- Extern
_text_mode Near code32:0B4E
_textbox0 Near code32:---- Extern
_textbox1 Near code32:---- Extern
_textstakptr Dword code32:---- Extern
_uninstall_dfm Near code32:---- Extern
_vgadefcolorz Byte code32:---- Extern
_vgatextptr Dword code32:---- Extern
_voicehit Byte code32:---- Extern
_writefile Near code32:---- Extern
adjoct Near code32:117F
adjsmp Near code32:2EB5
adjsmpdone Near code32:2F2F
adjsmpl1 Near code32:2EC0
adjsmpl1c Near code32:2F2A
adjsmpl2 Near code32:2ED2
adjsmpl2c Near code32:2EED
adjsmpl2f1 Near code32:2EDF
adjsmpl3 Near code32:2F0B
adjsmpl3c Near code32:2F1A
allfilemask Byte code32:09A1
allocbuffers Near code32:0DE7
alph Near code32:2F36
alphfind Near code32:2F77
alphfindbp Dword code32:2F73
alphfindml Near code32:2F89
alphl1 Near code32:2F44
alphl2 Near code32:2F48
alphl2c Near code32:2F6A
alphl3 Near code32:2F5F
boxgrfx Byte code32:11BB
buildpat Dword code32:09EE
cachedins Near code32:0F82
cachedinsd Near code32:1008
cachedinsf0 Near code32:0FDF
cachedinsml Near code32:0FD8
calc3 Near code32:12EF
calcloc Near code32:1194
calcloc2 Near code32:1260
changeloop Near code32:13F7
changeoct Near code32:13AD
changetempo Near code32:141C
changevol Near code32:13D2
clearsong Near code32:2DB2
clearsongl0 Near code32:2E29
clearsongl1 Near code32:2E3A
clearsongl2 Near code32:2E5F
copymemf0 Near code32:0C45
datafile Byte code32:0897
decloop Near code32:13F5
decoct Near code32:13AB
dectempo Near code32:141A
decvol Near code32:13D0
del Near code32:2FCB
deldone Near code32:2FF0
dinsbase Dword code32:09D2
dinsdir Byte code32:08D7
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 77
Symbol Table
dinsfilez Dword code32:09F2
dinsnames Dword code32:09D6
dinsnum Word code32:1115
edblkb Byte code32:1130
edblke Byte code32:1131
edblkl Byte code32:1132
edfmval Byte code32:112F
edinsb Byte code32:112B
edinso Byte code32:112C
editins0 Near code32:199E
editins0f0 Near code32:19C7
editins0f1 Near code32:19FD
editins0list Byte code32:1937
editins0rout Dword code32:195A
editins1 Near code32:1D66
editins1f0 Near code32:1D8F
editins1f1 Near code32:1DC5
editins1list Byte code32:1CF3
editins1rout Dword code32:1D1A
editinsaccept Byte code32:1CAB
editord Near code32:180F
editordlist Byte code32:17BA
editordrout Dword code32:17D7
editpat Near code32:2182
editpatf0 Near code32:21AB
editpatf1 Near code32:21DA
editpatf2 Near code32:21E9
editpatfm Near code32:223E
editpatlist Byte code32:20B5
editpatrout Dword code32:20FA
edoct Byte code32:1126
edordb Byte code32:112D
edordo Byte code32:112E
edpat Byte code32:1124
edrowb Byte code32:1129
edrowo Byte code32:112A
edvoiceb Byte code32:1127
edvoiceo Byte code32:1128
edvol Byte code32:1125
eiaddins Near code32:1FCD
eiaddinsbase Dword code32:1FC7
eiaddinsf0 Near code32:209E
eiaddinsf1 Near code32:2082
eiaddinsindx Word code32:1FCB
eichangeval Near code32:1E21
eiclearins Near code32:1F11
eidecval Near code32:1E40
eidel Near code32:1F76
eidn Near code32:1DE3
eiend Near code32:1EA3
eif1 Near code32:1F3F
eif3 Near code32:1F4C
eif4 Near code32:1F59
eigetins Near code32:1EAB
eigetname Near code32:1E65
eihome Near code32:1E9B
eiid Near code32:1F80
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 78
Symbol Table
eiincdecval Near code32:1E42
eiincval Near code32:1E3C
eiins Near code32:1F6A
eipgdn Near code32:1DFC
eipgup Near code32:1DF8
eipgupdn Near code32:1DFE
eipgupdnf0 Near code32:1E0F
eipgupdnf1 Near code32:1E15
eiup Near code32:1DDF
eiupdn Near code32:1DE5
eivald Near code32:1E1B
eivalu Near code32:1E1F
eoclear Near code32:18C6
eodel Near code32:190F
eodn Near code32:183C
eoed Near code32:1892
eoend Near code32:188A
eof1 Near code32:18E1
eof2 Near code32:18EE
eof3 Near code32:18FB
eohome Near code32:1882
eoid Near code32:1914
eoins Near code32:1908
eopgdn Near code32:1855
eopgup Near code32:1851
eopgupdn Near code32:1857
eopgupdnf0 Near code32:187C
eopgupdnf1 Near code32:1870
eopgupdnf2 Near code32:1878
eopgupdnf3 Near code32:1868
eoup Near code32:1838
eoupdn Near code32:183E
epblkb Near code32:2469
epblkcopy Near code32:2507
epblke Near code32:247A
epblkins Near code32:25A2
epblkinsml Near code32:25BD
epblkinsmlc Near code32:25CA
epblkl Near code32:248B
epblknc Near code32:2619
epblknd Near code32:2617
epblknml Near code32:2633
epblknmlc Near code32:266A
epblknmlf0 Near code32:2654
epblknmlf1 Near code32:2666
epblknmlf2 Near code32:2657
epblknu Near code32:2613
epblkoc Near code32:25D9
epblkod Near code32:25D7
epblkoml Near code32:25F3
epblkomlc Near code32:260A
epblkou Near code32:25D3
epblkover Near code32:251E
epblkoverf0 Near code32:254C
epblkoverml Near code32:256B
epblkovermlc Near code32:257C
epblku Near code32:249A
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 79
Symbol Table
epblkvol Near code32:2585
epblkvolml Near code32:2592
epblkzero Near code32:24F3
epblkzeroml Near code32:24F8
epbreak Near code32:23A6
epchangepat Near code32:2389
epcins Near code32:2300
epclear Near code32:2374
epcopypat Near code32:23CE
epcopypatd Near code32:2437
epcvoice Near code32:22CE
epcvoiceb Near code32:22E1
epcvol Near code32:233F
epcvolf0 Near code32:2368
epdecpat Near code32:2383
epdecvoice Near code32:22C8
epdel Near code32:24B5
epdn Near code32:2290
epend Near code32:2284
epf1 Near code32:2255
epf2 Near code32:2262
epf4 Near code32:226F
ephome Near code32:227C
epid Near code32:24BF
epincpat Near code32:2387
epincvoice Near code32:22CC
epins Near code32:24A9
eppgdn Near code32:22A9
eppgup Near code32:22A5
eppgupdn Near code32:22AB
eppgupdnf0 Near code32:22BC
eppgupdnf1 Near code32:22C2
eppickup Near code32:243D
eppickupf0 Near code32:245F
epup Near code32:228C
epupdn Near code32:2292
errmsg0 Byte code32:080C
esaddins Near code32:1BF6
esclearins Near code32:1B58
esdel Near code32:1B9D
esf2 Near code32:1A30
esf3 Near code32:1A3D
esf4 Near code32:1A23
esgetname Near code32:1A4A
esid Near code32:1BA7
esins Near code32:1B91
eslbeg Near code32:1A80
eslend Near code32:1A89
eslnum Near code32:1A90
esload Near code32:1AC3
exit Near code32:0CCD
exit0 Near code32:0CC8
exit1 Near code32:0CC1
exitsave Near code32:0C7A
extention670 Byte code32:0997
extentiondat Byte code32:099C
fileworkbuf Byte code32:0957
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 80
Symbol Table
fminsbank Dword code32:09E2
fminsbase Dword code32:09DA
fminsdat0 Byte code32:09AE
fminsfile Byte code32:09A5
fminsnames Dword code32:09DE
fminsnum Word code32:1117
fminsvaldat Byte code32:3276
getfminsval Near code32:32C4
getinput Near code32:1389
getnum Near code32:2FF3
getpat Near code32:333F
getpat0 Near code32:337F
getpat1 Near code32:338D
getpat2 Near code32:339E
getpat3 Near code32:33AB
getpatml Near code32:3371
getpatrout Dword code32:332F
gettrak Near code32:1295
gettrakml Near code32:12BA
help Near code32:1458
helpdone Near code32:1494
helploop Near code32:1471
howmanyorders Near code32:124C
howmanyordersd Near code32:125D
howmanyordersml Near code32:1254
ht Byte code32:0010
idcall Dword code32:1F66
incloop Near code32:13F1
incoct Near code32:13A7
inctempo Near code32:1416
incvol Near code32:13CC
indexbytef0 Near code32:0C33
indexbytef1 Near code32:0C34
indexwordf0 Near code32:0C1B
indexwordf1 Near code32:0C1C
inputlist Byte code32:131C
inputrout Dword code32:1341
ins Near code32:2FAC
ins0curdat Byte code32:27D4
ins1curdat Byte code32:28C2
ins1curdat2 Byte code32:28CC
insdone Near code32:2FC8
installword Word code32:110D
l8rmsg Byte code32:0805
loadfmins Near code32:0EC9
loadfminsf0 Near code32:0F15
loadsong Near code32:101A
maxvoiceb Byte code32:1110
modebitmap Byte code32:---- Extern
muzfminsptr Dword code32:---- Extern
muzorderc Byte code32:---- Extern
muzorderl Byte code32:---- Extern
muzordern Byte code32:---- Extern
muzordptr Dword code32:---- Extern
muzpatbase Dword code32:---- Extern
muzpatoffptr Dword code32:---- Extern
muzsbinsptr Dword code32:---- Extern
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 81
Symbol Table
muztempo Byte code32:---- Extern
mzbreak Byte code32:1123
mzloop Byte code32:111E
mztempo Byte code32:1119
nkeylist Byte code32:10E3
noteascii Byte code32:2AB8
numlist Byte code32:10FC
ordbase Dword code32:09E6
ordcurdat Byte code32:29B2
patbase Dword code32:09C6
patchannels Byte code32:2AD0
patcurdat Byte code32:2D87
patlenbase Dword code32:09CE
patoffbase Dword code32:09CA
play Near code32:11CD
playfrom Near code32:14EC
playord Near code32:14E1
playpat Near code32:149F
playsong Near code32:14DD
playstr Byte code32:11C2
prgdir Byte code32:0917
putall Near code32:2E95
putcur Near code32:26D0
putcurl0 Near code32:26D6
putcurl1 Near code32:26DC
putins Near code32:26F1
putins0 Near code32:2772
putins0cur Near code32:27DE
putins0ml Near code32:27A5
putins0str Byte code32:2762
putins1 Near code32:2865
putins1cur Near code32:2900
putins1l0 Near code32:288C
putins1l1 Near code32:2894
putins1pm Dword code32:285D
putins1pmns Byte code32:2829
putins1str Byte code32:27FB
putinsl0 Near code32:2753
putnum1 Near code32:26C5
putnum2 Near code32:26B0
putnum5 Near code32:2696
putnum5ml Near code32:26A3
putnumbar Near code32:2673
putnumbarml Near code32:267A
putnumtomemml Near code32:0B7A
putord Near code32:295E
putordcur Near code32:29B6
putordl0 Near code32:2997
putordl0c Near code32:29A9
putordl0f0 Near code32:29A3
putpat Near code32:2B56
putpatcolor Byte code32:2B55
putpatcur Near code32:2D89
putpatf0 Near code32:2CEB
putpatf1 Near code32:2CF7
putpatf2 Near code32:2D4A
putpatf3 Near code32:2CDC
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 82
Symbol Table
putpatl0 Near code32:2BB7
putpatl1 Near code32:2BD6
putpatl1c Near code32:2C56
putpatl1f0 Near code32:2BFA
putpatl1f1 Near code32:2C45
putpatl2 Near code32:2C93
putpatl3 Near code32:2D36
putpatphase Byte code32:2B54
putstat Near code32:2A24
puttrak Near code32:12C2
puttrakml Near code32:12E7
resetdinslens Near code32:1155
resetdinslensml Near code32:1165
resetdinslensmlc Near code32:1179
ret2 Near code32:1318
savedata Near code32:1607
savedata1 Near code32:1682
savedatal0 Near code32:1629
savedatal0c Near code32:1630
savedatal1 Near code32:166E
savedatal1d Near code32:16AE
savedatal2 Near code32:16FD
savedatan Near code32:1684
savedatanfm Near code32:16A3
savesong Near code32:1525
savetrak Dword code32:09FA
selb Word code32:3065
selbp Dword code32:305F
selbps Dword code32:306F
selbs Word code32:3069
seldn Near code32:3190
select Near code32:3077
selectdone Near code32:3203
selectexit Near code32:3247
selectf0 Near code32:30F1
selectfind Near code32:3143
selectfindf0 Near code32:3169
selectfindml Near code32:3154
selectl0 Near code32:30F9
selectl1 Near code32:3122
selectml Near code32:30C6
selectml2 Near code32:3126
selend Near code32:3259
selendf0 Near code32:326E
selhome Near code32:3251
seli Byte code32:3068
sellist Byte code32:3024
seln Word code32:3063
selo Byte code32:3067
selos Byte code32:306D
selpgdn Near code32:31C5
selpgup Near code32:31BF
selpgupdn Near code32:31C9
selrout Dword code32:3037
sels Dword code32:305B
selup Near code32:318A
selupdn Near code32:3194
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 83
Symbol Table
setdinslens Near code32:1133
setdinslensml Near code32:113E
setdirs Near code32:0D49
setdirsl0 Near code32:0D99
setdirsl1 Near code32:0DA5
setdirsl1d Near code32:0DB5
setdirsrout Near code32:0DD1
setfminsval Near code32:32F0
setins Near code32:1279
setinsf0 Near code32:1288
setpat Near code32:33B4
setpatf0 Near code32:3460
setpatl0 Near code32:33C2
setpatl1 Near code32:33C7
setpatl1c Near code32:33E8
setpatl1f0 Near code32:33E0
setpatl1f1 Near code32:33E3
setpatl2 Near code32:3498
setpatrout Near code32:34A1
setupscreen Near code32:0F2D
setupscreenf0 Near code32:0F5A
setupscreenstr Byte code32:0F28
smpbase Dword code32:1111
songfile Byte code32:0857
statline Byte code32:29D3
strcatl Near code32:0BA7
strcpyl Near code32:0B8D
strhtnml Near code32:0BEB
strhtnmlc Near code32:0BFB
strhtnmld Near code32:0C02
strltuml Near code32:0BCD
strltumld Near code32:0BE2
strltumlf0 Near code32:0BDF
svdinsoff Dword code32:111F
svndins Byte code32:111C
svnfmins Byte code32:111D
svnord Byte code32:111A
svnpat Byte code32:111B
svpatlen Dword code32:15F3
svrouttbl Dword code32:15F7
togglereinstall Near code32:1443
togglesd Near code32:143B
togglesfm Near code32:144E
v86r_ah Byte code32:---- Extern
v86r_al Byte code32:---- Extern
v86r_ax Word code32:---- Extern
v86r_bh Byte code32:---- Extern
v86r_bl Byte code32:---- Extern
v86r_bp Word code32:---- Extern
v86r_bx Word code32:---- Extern
v86r_ch Byte code32:---- Extern
v86r_cl Byte code32:---- Extern
v86r_cx Word code32:---- Extern
v86r_dh Byte code32:---- Extern
v86r_di Word code32:---- Extern
v86r_dl Byte code32:---- Extern
v86r_ds Word code32:---- Extern
Turbo Assembler Version 3.1 01/25/98 23:51:15 Page 84
Symbol Table
v86r_dx Word code32:---- Extern
v86r_eax Dword code32:---- Extern
v86r_ebp Dword code32:---- Extern
v86r_ebx Dword code32:---- Extern
v86r_ecx Dword code32:---- Extern
v86r_edi Dword code32:---- Extern
v86r_edx Dword code32:---- Extern
v86r_es Word code32:---- Extern
v86r_esi Dword code32:---- Extern
v86r_flags Word code32:---- Extern
v86r_fs Word code32:---- Extern
v86r_gs Word code32:---- Extern
v86r_si Word code32:---- Extern
vgacolorz Near code32:09FE
workpatptr Dword code32:09EA
worktrak Dword code32:09F6
wpatstr Byte code32:23B7
zeroforplay Byte code32:110F
Macro Name
@gif
@gifal
@gifc
@gifs
@outb
@outw
@php
@rlp
Groups & Segments Bit Size Align Combine Class
code32 32 34B2 Para Public