home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / cdfm.zip / CDFMSB.LST < prev    next >
File List  |  1998-01-25  |  214KB  |  5,157 lines

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