diff --git a/build b/build new file mode 100755 index 0000000..1bc3c95 --- /dev/null +++ b/build @@ -0,0 +1 @@ +cc -Iinc src/*.c -o dpvm diff --git a/inc/mz.h b/inc/mz.h new file mode 100644 index 0000000..1e05b0b --- /dev/null +++ b/inc/mz.h @@ -0,0 +1,36 @@ +#ifndef MZ_H +#define MZ_H + +#include +#include + +typedef struct { // pointer into program data into which load segment is added + uint16_t offset, + segment; +} __attribute__((packed)) reloc; + +typedef struct { // no endian checks - this will only work on x86+vm anyway + uint16_t mz, + bytes, + pages, + relsz, + len, + minalloc, // can easily ignore - we have 895k free + maxalloc, + ss, + sp, + sum, + ip, + cs, + rel, // pointer to + overlay; // zero if main binary + reloc r[]; +} __attribute__((packed)) mz; + +typedef struct { + uint16_t ss, sp, ip, cs; +} mz_start; + +uint32_t loadmz(mz*, uint8_t*, uint32_t, uint32_t, mz_start*); + +#endif diff --git a/it/IT.EXE b/it/IT.EXE index f34f422..71d2ebb 100644 Binary files a/it/IT.EXE and b/it/IT.EXE differ diff --git a/it/IT.MAP b/it/IT.MAP index 32609c4..dc13518 100644 --- a/it/IT.MAP +++ b/it/IT.MAP @@ -7,120 +7,120 @@ 275C0H 36FBFH 0FA00H PATTERNDATA DATA 36FC0H 3D01FH 06060H SCREENDATA DATA 3D020H 3D34BH 0032CH INFOLINE CODE - 3D34CH 459B2H 08667H DISK CODE - 459B3H 466CBH 00D19H SCREEN CODE - 466D0H 475C6H 00EF7H MOUSE CODE - 475C8H 47936H 0036FH MAIN CODE - 47937H 484B9H 00B83H STARTUP CODE - 484BAH 4DE41H 05988H PATTERN CODE - 4DE44H 5B402H 0D5BFH MUSIC CODE - 5B403H 5B899H 00497H GLBL CODE - 5B89AH 5D736H 01E9DH INFOPAGE CODE - 5D738H 5DB2BH 003F4H EMS CODE - 5DB2CH 5DCDAH 001AFH ERROR CODE - 5DCDCH 61361H 03686H INST CODE - 61362H 6315BH 01DFAH FUNCTIONS CODE - 6315CH 654E3H 02388H HELP CODE - 654E4H 65FD0H 00AEDH KEYBOARD CODE - 65FE0H 6681DH 0083EH MMTSR CODE - 6681EH 68BB0H 02393H MESSAGE CODE - 68BB1H 68E26H 00276H VESA CODE - 68E30H 69E2FH 01000H STACKSEG STACK + 3D34CH 459BEH 08673H DISK CODE + 459BFH 466D7H 00D19H SCREEN CODE + 466E0H 475D6H 00EF7H MOUSE CODE + 475D8H 47946H 0036FH MAIN CODE + 47947H 484C9H 00B83H STARTUP CODE + 484CAH 4DE51H 05988H PATTERN CODE + 4DE54H 5B412H 0D5BFH MUSIC CODE + 5B413H 5B8A9H 00497H GLBL CODE + 5B8AAH 5D746H 01E9DH INFOPAGE CODE + 5D748H 5DB3BH 003F4H EMS CODE + 5DB3CH 5DCEAH 001AFH ERROR CODE + 5DCECH 61371H 03686H INST CODE + 61372H 6316BH 01DFAH FUNCTIONS CODE + 6316CH 654F3H 02388H HELP CODE + 654F4H 65FE0H 00AEDH KEYBOARD CODE + 65FF0H 6682DH 0083EH MMTSR CODE + 6682EH 68BC0H 02393H MESSAGE CODE + 68BC1H 68E36H 00276H VESA CODE + 68E40H 69E3FH 01000H STACKSEG STACK Detailed map of segments - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_DISK.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_DISPL.ASM ACBP=28 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_EMS.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_F.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_G.ASM ACBP=28 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_H.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_I.ASM ACBP=29 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_M.ASM ACBP=28 - 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_NET.ASM ACBP=29 - 0000:0000 63DC C=DATA S=OBJECT1 G=(none) M=IT_OBJ1.ASM ACBP=28 - 0000:63DC 0000 C=DATA S=OBJECT1 G=(none) M=IT_PE.ASM ACBP=29 - 0000:63DC 0000 C=DATA S=OBJECT1 G=(none) M=IT_FOUR.ASM ACBP=29 - 063E:0000 00010000 C=DATA S=DISKDATA G=(none) M=IT_DISK.ASM ACBP=6B - 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_I.ASM ACBP=69 - 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_NET.ASM ACBP=69 - 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_FOUR.ASM ACBP=69 - 163E:0000 0000 C=DATA S=SONGDATA G=(none) M=IT_MUSIC.ASM ACBP=69 - 163E:0000 0000 C=DATA S=SONGDATA G=(none) M=IT_NET.ASM ACBP=69 - 163E:0000 000111E0 C=DATA S=SONGDATA G=(none) M=IT_MDATA.ASM ACBP=68 - 275C:0000 FA00 C=DATA S=PATTERNDATA G=(none) M=IT_PE.ASM ACBP=69 - 36FC:0000 6060 C=DATA S=SCREENDATA G=(none) M=IT_S.ASM ACBP=69 - 3D02:0000 0000 C=CODE S=INFOLINE G=(none) M=IT.ASM ACBP=28 - 3D02:0000 032C C=CODE S=INFOLINE G=(none) M=IT_L.ASM ACBP=A8 - 3D34:000C 0000 C=CODE S=DISK G=(none) M=IT.ASM ACBP=28 - 3D34:000C 77B1 C=CODE S=DISK G=(none) M=IT_DISK.ASM ACBP=28 - 3D34:77BD 0000 C=CODE S=DISK G=(none) M=IT_F.ASM ACBP=29 - 3D34:77C0 0EB3 C=CODE S=DISK G=(none) M=IT_NET.ASM ACBP=A8 - 3D34:8673 0000 C=CODE S=DISK G=(none) M=IT_PE.ASM ACBP=29 - 459B:0003 0000 C=CODE S=SCREEN G=(none) M=IT.ASM ACBP=29 - 459B:0003 0000 C=CODE S=SCREEN G=(none) M=IT_F.ASM ACBP=29 - 459B:0003 0D19 C=CODE S=SCREEN G=(none) M=IT_S.ASM ACBP=28 - 466D:0000 0000 C=CODE S=MOUSE G=(none) M=IT.ASM ACBP=29 - 466D:0000 0000 C=CODE S=MOUSE G=(none) M=IT_S.ASM ACBP=29 - 466D:0000 0EF7 C=CODE S=MOUSE G=(none) M=IT_MOUSE.ASM ACBP=68 - 475C:0008 0000 C=CODE S=MAIN G=(none) M=IT.ASM ACBP=A8 - 475C:0008 036F C=CODE S=MAIN G=(none) M=IT_M.ASM ACBP=A8 - 4793:0007 0B83 C=CODE S=STARTUP G=(none) M=IT.ASM ACBP=28 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_DISK.ASM ACBP=29 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_DISPL.ASM ACBP=48 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_F.ASM ACBP=29 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_G.ASM ACBP=28 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_I.ASM ACBP=29 - 484B:000A 0000 C=CODE S=PATTERN G=(none) M=IT_NET.ASM ACBP=28 - 484B:000A 5988 C=CODE S=PATTERN G=(none) M=IT_PE.ASM ACBP=48 - 4DE4:0004 0000 C=CODE S=MUSIC G=(none) M=IT_DISK.ASM ACBP=29 - 4DE4:0004 0000 C=CODE S=MUSIC G=(none) M=IT_F.ASM ACBP=29 - 4DE4:0004 D5BF C=CODE S=MUSIC G=(none) M=IT_MUSIC.ASM ACBP=A8 - 4DE4:D5C3 0000 C=CODE S=MUSIC G=(none) M=IT_NET.ASM ACBP=28 - 5B40:0003 0000 C=CODE S=GLBL G=(none) M=IT_DISPL.ASM ACBP=28 - 5B40:0003 0497 C=CODE S=GLBL G=(none) M=IT_G.ASM ACBP=28 - 5B40:049A 0000 C=CODE S=GLBL G=(none) M=IT_L.ASM ACBP=29 - 5B89:000A 1B7C C=CODE S=INFOPAGE G=(none) M=IT_DISPL.ASM ACBP=28 - 5B89:1B86 0321 C=CODE S=INFOPAGE G=(none) M=IT_FOUR.ASM ACBP=28 - 5D73:0008 03F4 C=CODE S=EMS G=(none) M=IT_EMS.ASM ACBP=48 - 5DB2:000C 01AF C=CODE S=ERROR G=(none) M=IT_ERR.ASM ACBP=28 - 5DCD:000C 0000 C=CODE S=INST G=(none) M=IT_F.ASM ACBP=29 - 5DCD:000C 0000 C=CODE S=INST G=(none) M=IT_G.ASM ACBP=28 - 5DCD:000C 3686 C=CODE S=INST G=(none) M=IT_I.ASM ACBP=48 - 5DCD:3692 0000 C=CODE S=INST G=(none) M=IT_PE.ASM ACBP=29 - 6136:0002 1DFA C=CODE S=FUNCTIONS G=(none) M=IT_F.ASM ACBP=28 - 6315:000C 2388 C=CODE S=HELP G=(none) M=IT_H.ASM ACBP=28 - 654E:0004 0AED C=CODE S=KEYBOARD G=(none) M=IT_K.ASM ACBP=28 - 65FE:0000 083E C=CODE S=MMTSR G=(none) M=IT_MMTSR.ASM ACBP=68 - 6681:000E 2393 C=CODE S=MESSAGE G=(none) M=IT_MSG.ASM ACBP=28 - 68BB:0001 0276 C=CODE S=VESA G=(none) M=IT_VESA.ASM ACBP=28 - 68E3:0000 1000 C=STACK S=STACKSEG G=(none) M=IT.ASM ACBP=75 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_DISK.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_DISPL.ASM ACBP=28 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_EMS.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_F.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_G.ASM ACBP=28 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_H.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_I.ASM ACBP=29 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_M.ASM ACBP=28 + 0000:0000 0000 C=DATA S=OBJECT1 G=(none) M=IT_NET.ASM ACBP=29 + 0000:0000 63DC C=DATA S=OBJECT1 G=(none) M=IT_OBJ1.ASM ACBP=28 + 0000:63DC 0000 C=DATA S=OBJECT1 G=(none) M=IT_PE.ASM ACBP=29 + 0000:63DC 0000 C=DATA S=OBJECT1 G=(none) M=IT_FOUR.ASM ACBP=29 + 063E:0000 00010000 C=DATA S=DISKDATA G=(none) M=IT_DISK.ASM ACBP=6B + 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_I.ASM ACBP=69 + 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_NET.ASM ACBP=69 + 163E:0000 0000 C=DATA S=DISKDATA G=(none) M=IT_FOUR.ASM ACBP=69 + 163E:0000 0000 C=DATA S=SONGDATA G=(none) M=IT_MUSIC.ASM ACBP=69 + 163E:0000 0000 C=DATA S=SONGDATA G=(none) M=IT_NET.ASM ACBP=69 + 163E:0000 000111E0 C=DATA S=SONGDATA G=(none) M=IT_MDATA.ASM ACBP=68 + 275C:0000 FA00 C=DATA S=PATTERNDATA G=(none) M=IT_PE.ASM ACBP=69 + 36FC:0000 6060 C=DATA S=SCREENDATA G=(none) M=IT_S.ASM ACBP=69 + 3D02:0000 0000 C=CODE S=INFOLINE G=(none) M=IT.ASM ACBP=28 + 3D02:0000 032C C=CODE S=INFOLINE G=(none) M=IT_L.ASM ACBP=A8 + 3D34:000C 0000 C=CODE S=DISK G=(none) M=IT.ASM ACBP=28 + 3D34:000C 77B1 C=CODE S=DISK G=(none) M=IT_DISK.ASM ACBP=28 + 3D34:77BD 0000 C=CODE S=DISK G=(none) M=IT_F.ASM ACBP=29 + 3D34:77CC 0EB3 C=CODE S=DISK G=(none) M=IT_NET.ASM ACBP=A8 + 3D34:867F 0000 C=CODE S=DISK G=(none) M=IT_PE.ASM ACBP=29 + 459B:000F 0000 C=CODE S=SCREEN G=(none) M=IT.ASM ACBP=29 + 459B:000F 0000 C=CODE S=SCREEN G=(none) M=IT_F.ASM ACBP=29 + 459B:000F 0D19 C=CODE S=SCREEN G=(none) M=IT_S.ASM ACBP=28 + 466E:0000 0000 C=CODE S=MOUSE G=(none) M=IT.ASM ACBP=29 + 466E:0000 0000 C=CODE S=MOUSE G=(none) M=IT_S.ASM ACBP=29 + 466E:0000 0EF7 C=CODE S=MOUSE G=(none) M=IT_MOUSE.ASM ACBP=68 + 475D:0008 0000 C=CODE S=MAIN G=(none) M=IT.ASM ACBP=A8 + 475D:0008 036F C=CODE S=MAIN G=(none) M=IT_M.ASM ACBP=A8 + 4794:0007 0B83 C=CODE S=STARTUP G=(none) M=IT.ASM ACBP=28 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_DISK.ASM ACBP=29 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_DISPL.ASM ACBP=48 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_F.ASM ACBP=29 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_G.ASM ACBP=28 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_I.ASM ACBP=29 + 484C:000A 0000 C=CODE S=PATTERN G=(none) M=IT_NET.ASM ACBP=28 + 484C:000A 5988 C=CODE S=PATTERN G=(none) M=IT_PE.ASM ACBP=48 + 4DE5:0004 0000 C=CODE S=MUSIC G=(none) M=IT_DISK.ASM ACBP=29 + 4DE5:0004 0000 C=CODE S=MUSIC G=(none) M=IT_F.ASM ACBP=29 + 4DE5:0004 D5BF C=CODE S=MUSIC G=(none) M=IT_MUSIC.ASM ACBP=A8 + 4DE5:D5C3 0000 C=CODE S=MUSIC G=(none) M=IT_NET.ASM ACBP=28 + 5B41:0003 0000 C=CODE S=GLBL G=(none) M=IT_DISPL.ASM ACBP=28 + 5B41:0003 0497 C=CODE S=GLBL G=(none) M=IT_G.ASM ACBP=28 + 5B41:049A 0000 C=CODE S=GLBL G=(none) M=IT_L.ASM ACBP=29 + 5B8A:000A 1B7C C=CODE S=INFOPAGE G=(none) M=IT_DISPL.ASM ACBP=28 + 5B8A:1B86 0321 C=CODE S=INFOPAGE G=(none) M=IT_FOUR.ASM ACBP=28 + 5D74:0008 03F4 C=CODE S=EMS G=(none) M=IT_EMS.ASM ACBP=48 + 5DB3:000C 01AF C=CODE S=ERROR G=(none) M=IT_ERR.ASM ACBP=28 + 5DCE:000C 0000 C=CODE S=INST G=(none) M=IT_F.ASM ACBP=29 + 5DCE:000C 0000 C=CODE S=INST G=(none) M=IT_G.ASM ACBP=28 + 5DCE:000C 3686 C=CODE S=INST G=(none) M=IT_I.ASM ACBP=48 + 5DCE:3692 0000 C=CODE S=INST G=(none) M=IT_PE.ASM ACBP=29 + 6137:0002 1DFA C=CODE S=FUNCTIONS G=(none) M=IT_F.ASM ACBP=28 + 6316:000C 2388 C=CODE S=HELP G=(none) M=IT_H.ASM ACBP=28 + 654F:0004 0AED C=CODE S=KEYBOARD G=(none) M=IT_K.ASM ACBP=28 + 65FF:0000 083E C=CODE S=MMTSR G=(none) M=IT_MMTSR.ASM ACBP=68 + 6682:000E 2393 C=CODE S=MESSAGE G=(none) M=IT_MSG.ASM ACBP=28 + 68BC:0001 0276 C=CODE S=VESA G=(none) M=IT_VESA.ASM ACBP=28 + 68E4:0000 1000 C=STACK S=STACKSEG G=(none) M=IT.ASM ACBP=75 Address Publics by Name - 466D:00DCA ADDMOUSEQUEUE - 484B:002D8 AMPLIFICATION - 484B:00030 BASEOCTAVE - 484B:00D78 CENTRALISECURSOR - 459B:006A3 CHARACTERGENERATIONOFFSET + 466E:00DCA ADDMOUSEQUEUE + 484C:002D8 AMPLIFICATION + 484C:00030 BASEOCTAVE + 484C:00D78 CENTRALISECURSOR + 459B:006AF CHARACTERGENERATIONOFFSET 3D02:00243 CLEARINFOLINE - 466D:00EDA CMDLINEDISABLEMOUSE - 484B:00D77 COMMANDTOVALUE - 4793:00A9F CRASHRECOVERY - 5B40:00003 CURRENTMODE - 4DE4:00352 CURRENTPATTERN + 466E:00EDA CMDLINEDISABLEMOUSE + 484C:00D77 COMMANDTOVALUE + 4794:00A9F CRASHRECOVERY + 5B41:00003 CURRENTMODE + 4DE5:00352 CURRENTPATTERN 3D34:00010 DISKDATAAREA 3D34:00F34 DISKOPTIONS - 5B89:01881 DISPLAYMINUS - 5B89:01878 DISPLAYPLUS - 5B89:01A40 DISPLAYUPDATESCREEN - 5B89:01AAC DISPLAY_GETDISPLAYWINDOWDATA - 5B89:01B11 DISPLAY_SELECTDISPLAYLIST - 4793:00B0F DOSSHELL - 5B89:0179F DRAWDISPLAYDATA - 466D:00B86 DRAWMOUSE + 5B8A:01881 DISPLAYMINUS + 5B8A:01878 DISPLAYPLUS + 5B8A:01A40 DISPLAYUPDATESCREEN + 5B8A:01AAC DISPLAY_GETDISPLAYWINDOWDATA + 5B8A:01B11 DISPLAY_SELECTDISPLAYLIST + 4794:00B0F DOSSHELL + 5B8A:0179F DRAWDISPLAYDATA + 466E:00B86 DRAWMOUSE 3D34:06753 D_CLEARFILENAME 3D34:03466 D_CLEARFILESPECIFIER 3D34:06403 idle D_DELETESAMPLEFILE @@ -200,421 +200,421 @@ Detailed map of segments 0000:0100A EMSERRORVALUE6 0000:01008 EMSERRORVALUE7 0000:01010 EMSERRORVALUE8 - 5DB2:0018F ERROR_INITHANDLER - 5DB2:001AA ERROR_UNINITHANDLER - 5D73:001FD E_ALLOCATEBLOCKEMS - 5D73:00374 E_ALLOCATEEMS - 5D73:003BA E_EMSAVAILABLE - 5D73:001D5 E_GETEMSPAGEFRAME - 5D73:003F2 E_GETEMSVERSION - 5D73:000EB E_GETFREEEMS - 5D73:003F7 E_GETINTERNALEMSHANDLE - 5D73:0002A E_INITEMS - 5D73:001DA E_MAPALIGNEDBLOCKEMS - 5D73:00180 E_MAPAVAILABLEEMSMEMORY - 5D73:0019B E_MAPEMSMEMORY - 5D73:002E7 E_RELEASEBLOCKEMS - 5D73:00109 E_RELEASEEMS - 5D73:003DC E_RESTOREEMSPAGEFRAME - 5D73:003C1 E_SAVEEMSPAGEFRAME - 5D73:001C4 E_UNINITEMS - 484B:00D7B FASTVOLUMEAMPLIFICATION + 5DB3:0018F ERROR_INITHANDLER + 5DB3:001AA ERROR_UNINITHANDLER + 5D74:001FD E_ALLOCATEBLOCKEMS + 5D74:00374 E_ALLOCATEEMS + 5D74:003BA E_EMSAVAILABLE + 5D74:001D5 E_GETEMSPAGEFRAME + 5D74:003F2 E_GETEMSVERSION + 5D74:000EB E_GETFREEEMS + 5D74:003F7 E_GETINTERNALEMSHANDLE + 5D74:0002A E_INITEMS + 5D74:001DA E_MAPALIGNEDBLOCKEMS + 5D74:00180 E_MAPAVAILABLEEMSMEMORY + 5D74:0019B E_MAPEMSMEMORY + 5D74:002E7 E_RELEASEBLOCKEMS + 5D74:00109 E_RELEASEEMS + 5D74:003DC E_RESTOREEMSPAGEFRAME + 5D74:003C1 E_SAVEEMSPAGEFRAME + 5D74:001C4 E_UNINITEMS + 484C:00D7B FASTVOLUMEAMPLIFICATION 3D34:00066 FILENAME 3D34:000C4 FILESPECIFIER - 484B:00D7D FLAGS - 466D:00EE2 FORCEMOUSERESTORE - 5B89:01C8A FOURIER_CHANGEPALETTE - 5B89:01B86 FOURIER_CREATETABLE - 5B89:01DA5 FOURIER_DRAWSCREEN - 5B89:01E96 FOURIER_IDLELIST - 5B89:01E9A FOURIER_POSTFUNCTION - 5B89:01DA2 FOURIER_PREDRAWSCREEN - 5B89:01D40 FOURIER_START - 5B89:01BB1 FOURIER_TRANSFORM - 6136:01C35 F_CALCULATELENGTH - 6136:00369 F_CALLFARFUNCTION - 6136:00363 F_CALLFARPOSTFUNCTION - 6136:0035F F_CALLFARPREFUNCTION - 6136:003E0 F_CHARACTERDEFINITIONS - 6136:0195C F_CONFIGBUTTONSETUP - 6136:01518 F_DRAW3NUM - 6136:01700 F_DRAW5NUM - 6136:0036D F_DRAWBOXOBJECT - 6136:00427 F_DRAWBUTTONOBJECT - 6136:018B8 F_DRAWHEADER - 6136:00D61 F_DRAWINFOLINE - 6136:008D6 F_DRAWSCALABLETHUMBBAR - 6136:0191D F_DRAWSMCCHANNELS - 6136:00F92 F_DRAWSTRINGINPUT - 6136:00383 F_DRAWTEXTOBJECT - 6136:0080B F_DRAWTHUMBBAR - 6136:01346 F_DRAWTOGGLE - 6136:01C4C F_DRIVERSCREEN - 6136:01D44 F_FILEDOSSHELL - 6136:01CF4 F_FILELOAD - 6136:01CE0 F_FILEMENU - 6136:01D06 F_FILENEW - 6136:01D5B F_FILEQUIT - 6136:01D32 F_FILESAVEAS - 6136:01D1B F_FILESAVECURRENT - 6136:010E1 F_GOTOEMPTYLIST - 6136:01B91 F_HELP - 6136:01BB7 F_INFOPAGE - 6136:00344 F_INSTRUMENTBUTTONHANDLER - 6136:01CAA F_INSTRUMENTLIBRARY - 6136:01C98 F_INSTRUMENTLIST - 6136:01C72 F_INSTRUMENTMENU - 6136:01B44 F_MAINMENU - 6136:01B84 F_MESSAGEEDITOR - 6136:01DB2 F_MIDI_DOWN - 6136:01DDC F_MIDI_PGDN - 6136:01DC4 F_MIDI_PGUP - 6136:01D99 F_MIDI_UP - 6136:01A9E F_NEWSONG - 6136:00341 F_NOTHING - 6136:01BA3 F_PLAYBACKMENU - 6136:01BFF F_PLAYMARK - 6136:01BED F_PLAYORDER - 6136:01BDB F_PLAYPATTERN - 6136:01BC9 F_PLAYSONG - 6136:015B1 F_POST3NUM - 6136:01798 F_POST5NUM - 6136:00505 F_POSTBUTTONOBJECT - 6136:003C8 F_POSTEXITOBJECT - 6136:00B22 F_POSTSCALABLETHUMBBAR - 6136:0102A F_POSTSTRINGINPUT - 6136:00B6E F_POSTTHUMBBAR - 6136:013EF F_POSTTOGGLE - 6136:01592 F_PRE3NUM - 6136:01779 F_PRE5NUM - 6136:004CC F_PREBUTTONOBJECT - 6136:00A71 F_PRESCALABLETHUMBBAR - 6136:01006 F_PRESTRINGINPUT - 6136:009BF F_PRETHUMBBAR - 6136:013BC F_PRETOGGLE - 6136:00DE8 F_REDRAWSCREEN - 6136:01C23 F_REINITSOUNDCARD - 6136:01CBC F_RELOADGRAVIS - 6136:01A96 F_RESET5NUMINPUTPOS - 6136:00DEC F_RETURN0 - 6136:00EDD F_RETURN1 - 6136:00DF9 F_RETURN192 - 6136:00DF2 F_RETURN64 - 6136:01CCE F_SAMPLELIBRARY - 6136:01C86 F_SAMPLELIST - 6136:01C5E F_SAMPLEMENU - 6136:01A86 F_SETAMIGA - 6136:019DF F_SETCONTROLINSTRUMENT - 6136:019CF F_SETCONTROLSAMPLE - 6136:003D8 F_SETDIRECTMODE - 6136:01A76 F_SETLINEAR - 6136:01A61 F_SETMONO - 6136:01A4C F_SETSTEREO - 6136:00DA6 F_SHOWCHANNELS - 6136:01D72 F_SHOWMIDIZXXINPUT - 6136:01C11 F_STOP - 6136:01B77 F_VIEWORDERPAN - 6136:01B5D F_VIEWPATTERN - 6136:01B6A F_VIEWVARIABLES - 4793:00ACB GETENVIRONMENT - 466D:00DC5 GETKEYBOARDLOCK - 4793:00A28 GETSTARTUPKEYLIST + 484C:00D7D FLAGS + 466E:00EE2 FORCEMOUSERESTORE + 5B8A:01C8A FOURIER_CHANGEPALETTE + 5B8A:01B86 FOURIER_CREATETABLE + 5B8A:01DA5 FOURIER_DRAWSCREEN + 5B8A:01E96 FOURIER_IDLELIST + 5B8A:01E9A FOURIER_POSTFUNCTION + 5B8A:01DA2 FOURIER_PREDRAWSCREEN + 5B8A:01D40 FOURIER_START + 5B8A:01BB1 FOURIER_TRANSFORM + 6137:01C35 F_CALCULATELENGTH + 6137:00369 F_CALLFARFUNCTION + 6137:00363 F_CALLFARPOSTFUNCTION + 6137:0035F F_CALLFARPREFUNCTION + 6137:003E0 F_CHARACTERDEFINITIONS + 6137:0195C F_CONFIGBUTTONSETUP + 6137:01518 F_DRAW3NUM + 6137:01700 F_DRAW5NUM + 6137:0036D F_DRAWBOXOBJECT + 6137:00427 F_DRAWBUTTONOBJECT + 6137:018B8 F_DRAWHEADER + 6137:00D61 F_DRAWINFOLINE + 6137:008D6 F_DRAWSCALABLETHUMBBAR + 6137:0191D F_DRAWSMCCHANNELS + 6137:00F92 F_DRAWSTRINGINPUT + 6137:00383 F_DRAWTEXTOBJECT + 6137:0080B F_DRAWTHUMBBAR + 6137:01346 F_DRAWTOGGLE + 6137:01C4C F_DRIVERSCREEN + 6137:01D44 F_FILEDOSSHELL + 6137:01CF4 F_FILELOAD + 6137:01CE0 F_FILEMENU + 6137:01D06 F_FILENEW + 6137:01D5B F_FILEQUIT + 6137:01D32 F_FILESAVEAS + 6137:01D1B F_FILESAVECURRENT + 6137:010E1 F_GOTOEMPTYLIST + 6137:01B91 F_HELP + 6137:01BB7 F_INFOPAGE + 6137:00344 F_INSTRUMENTBUTTONHANDLER + 6137:01CAA F_INSTRUMENTLIBRARY + 6137:01C98 F_INSTRUMENTLIST + 6137:01C72 F_INSTRUMENTMENU + 6137:01B44 F_MAINMENU + 6137:01B84 F_MESSAGEEDITOR + 6137:01DB2 F_MIDI_DOWN + 6137:01DDC F_MIDI_PGDN + 6137:01DC4 F_MIDI_PGUP + 6137:01D99 F_MIDI_UP + 6137:01A9E F_NEWSONG + 6137:00341 F_NOTHING + 6137:01BA3 F_PLAYBACKMENU + 6137:01BFF F_PLAYMARK + 6137:01BED F_PLAYORDER + 6137:01BDB F_PLAYPATTERN + 6137:01BC9 F_PLAYSONG + 6137:015B1 F_POST3NUM + 6137:01798 F_POST5NUM + 6137:00505 F_POSTBUTTONOBJECT + 6137:003C8 F_POSTEXITOBJECT + 6137:00B22 F_POSTSCALABLETHUMBBAR + 6137:0102A F_POSTSTRINGINPUT + 6137:00B6E F_POSTTHUMBBAR + 6137:013EF F_POSTTOGGLE + 6137:01592 F_PRE3NUM + 6137:01779 F_PRE5NUM + 6137:004CC F_PREBUTTONOBJECT + 6137:00A71 F_PRESCALABLETHUMBBAR + 6137:01006 F_PRESTRINGINPUT + 6137:009BF F_PRETHUMBBAR + 6137:013BC F_PRETOGGLE + 6137:00DE8 F_REDRAWSCREEN + 6137:01C23 F_REINITSOUNDCARD + 6137:01CBC F_RELOADGRAVIS + 6137:01A96 F_RESET5NUMINPUTPOS + 6137:00DEC F_RETURN0 + 6137:00EDD F_RETURN1 + 6137:00DF9 F_RETURN192 + 6137:00DF2 F_RETURN64 + 6137:01CCE F_SAMPLELIBRARY + 6137:01C86 F_SAMPLELIST + 6137:01C5E F_SAMPLEMENU + 6137:01A86 F_SETAMIGA + 6137:019DF F_SETCONTROLINSTRUMENT + 6137:019CF F_SETCONTROLSAMPLE + 6137:003D8 F_SETDIRECTMODE + 6137:01A76 F_SETLINEAR + 6137:01A61 F_SETMONO + 6137:01A4C F_SETSTEREO + 6137:00DA6 F_SHOWCHANNELS + 6137:01D72 F_SHOWMIDIZXXINPUT + 6137:01C11 F_STOP + 6137:01B77 F_VIEWORDERPAN + 6137:01B5D F_VIEWPATTERN + 6137:01B6A F_VIEWVARIABLES + 4794:00ACB GETENVIRONMENT + 466E:00DC5 GETKEYBOARDLOCK + 4794:00A28 GETSTARTUPKEYLIST 3D02:00326 GETTIMERCOUNTER - 5B40:00341 GLBL_ALT_F1 - 5B40:0034D GLBL_ALT_F2 - 5B40:00359 GLBL_ALT_F3 - 5B40:00365 GLBL_ALT_F4 - 5B40:00371 GLBL_ALT_F5 - 5B40:0037D GLBL_ALT_F6 - 5B40:00389 GLBL_ALT_F7 - 5B40:00395 GLBL_ALT_F8 - 5B40:0029A GLBL_CTRL_F1 - 5B40:002ED GLBL_CTRL_F12 - 5B40:002AD GLBL_CTRL_F3 - 5B40:002C5 GLBL_CTRL_F4 - 5B40:002DD GLBL_CTRL_F5 - 5B40:0048C GLBL_DRIVERSCREEN - 5B40:00231 GLBL_F10 - 5B40:00256 GLBL_F11 - 5B40:0025E GLBL_F11_2 - 5B40:00287 GLBL_F12 - 5B40:00069 GLBL_F2 - 5B40:00074 GLBL_F2_2 - 5B40:000DC GLBL_F3 - 5B40:000F4 GLBL_F4 - 5B40:00112 GLBL_F4_2 - 5B40:00132 GLBL_F5 - 5B40:00182 GLBL_F6 - 5B40:00208 GLBL_F8 - 5B40:00211 GLBL_F9 - 5B40:0033C GLBL_GETCURRENTMODE - 5B40:00300 GLBL_GETHEADERMODE - 5B40:003A1 GLBL_LEFTBRACE - 5B40:003C7 GLBL_LEFTSQUAREBRACKET - 5B40:001AF GLBL_LOADINSTRUMENT - 5B40:00197 GLBL_LOADSAMPLE - 5B40:00411 GLBL_RESTOREMODE - 5B40:003B4 GLBL_RIGHTBRACE - 5B40:003DA GLBL_RIGHTSQUAREBRACKET - 5B40:003ED GLBL_SAVEMODE - 5B40:00337 GLBL_SETCURRENTMODE - 5B40:001C7 GLBL_SHIFT_F1 - 5B40:001F2 GLBL_SHIFT_F6 - 5B40:001DA GLBL_SHIFT_F9 - 5B40:00479 GLBL_TIMERSCREEN + 5B41:00341 GLBL_ALT_F1 + 5B41:0034D GLBL_ALT_F2 + 5B41:00359 GLBL_ALT_F3 + 5B41:00365 GLBL_ALT_F4 + 5B41:00371 GLBL_ALT_F5 + 5B41:0037D GLBL_ALT_F6 + 5B41:00389 GLBL_ALT_F7 + 5B41:00395 GLBL_ALT_F8 + 5B41:0029A GLBL_CTRL_F1 + 5B41:002ED GLBL_CTRL_F12 + 5B41:002AD GLBL_CTRL_F3 + 5B41:002C5 GLBL_CTRL_F4 + 5B41:002DD GLBL_CTRL_F5 + 5B41:0048C GLBL_DRIVERSCREEN + 5B41:00231 GLBL_F10 + 5B41:00256 GLBL_F11 + 5B41:0025E GLBL_F11_2 + 5B41:00287 GLBL_F12 + 5B41:00069 GLBL_F2 + 5B41:00074 GLBL_F2_2 + 5B41:000DC GLBL_F3 + 5B41:000F4 GLBL_F4 + 5B41:00112 GLBL_F4_2 + 5B41:00132 GLBL_F5 + 5B41:00182 GLBL_F6 + 5B41:00208 GLBL_F8 + 5B41:00211 GLBL_F9 + 5B41:0033C GLBL_GETCURRENTMODE + 5B41:00300 GLBL_GETHEADERMODE + 5B41:003A1 GLBL_LEFTBRACE + 5B41:003C7 GLBL_LEFTSQUAREBRACKET + 5B41:001AF GLBL_LOADINSTRUMENT + 5B41:00197 GLBL_LOADSAMPLE + 5B41:00411 GLBL_RESTOREMODE + 5B41:003B4 GLBL_RIGHTBRACE + 5B41:003DA GLBL_RIGHTSQUAREBRACKET + 5B41:003ED GLBL_SAVEMODE + 5B41:00337 GLBL_SETCURRENTMODE + 5B41:001C7 GLBL_SHIFT_F1 + 5B41:001F2 GLBL_SHIFT_F6 + 5B41:001DA GLBL_SHIFT_F9 + 5B41:00479 GLBL_TIMERSCREEN 0000:01E1D GLOBALKEYLIST 0000:01E1E HELPKEYVALUE - 6315:0228C H_DRAWHELP - 6315:022FD H_HELP - 6315:0232F H_HELPDOWN - 6315:02377 H_HELPESC - 6315:0236D H_HELPPGDN - 6315:0235A H_HELPPGUP - 6315:0231F H_HELPUP - 6315:0238C H_SETHELPCONTEXT + 6316:0228C H_DRAWHELP + 6316:022FD H_HELP + 6316:0232F H_HELPDOWN + 6316:02377 H_HELPESC + 6316:0236D H_HELPPGDN + 6316:0235A H_HELPPGUP + 6316:0231F H_HELPUP + 6316:0238C H_SETHELPCONTEXT 3D02:00227 IDLEUPDATEINFOLINE - 466D:00C8F INITMOUSE + 466E:00C8F INITMOUSE 3D02:00110 INITTIMERHANDLER - 5DCD:0000C INSTRUMENTAMPLIFICATION + 5DCE:0000C INSTRUMENTAMPLIFICATION 3D34:00264 INSTRUMENTDIRECTORY - 5DCD:0013D INSTRUMENTEDIT - 5DCD:0000E INSTRUMENTSCREEN - 4793:00A23 ISSTARTUPKEYLIST - 5DCD:01AB6 I_AMPLIFYSAMPLE - 5DCD:01116 I_CALCULATEC5SPEED - 5DCD:019CF I_CENTERSAMPLE - 5DCD:00E8D I_CHECKLOOPVALUES - 5DCD:00ECB I_CHECKSUSLOOPVALUES - 5DCD:01372 idle I_CLEARSAMPLENAME - 5DCD:034BD I_CLEARTABLES - 5DCD:01174 I_CONVERTSAMPLE - 5DCD:028EF I_COPYINSTRUMENT - 5DCD:01320 I_CUTSAMPLE - 5DCD:0124F I_CUTSAMPLEBEFORELOOP - 5DCD:0353D I_DECREASEPLAYCHANNEL - 5DCD:01131 I_DELETEINSTRUMENT - 5DCD:010DE I_DELETESAMPLE - 5DCD:027C1 I_DOUBLESAMPLESPEED - 5DCD:029F5 I_DRAWENVELOPE - 5DCD:01F7A I_DRAWINSTRUMENTWINDOW - 5DCD:0233F I_DRAWNOTEWINDOW - 5DCD:035A1 I_DRAWPITCHPANCENTER - 5DCD:00A71 I_DRAWSAMPLELIST - 5DCD:00F09 I_DRAWWAVEFORM - 5DCD:02781 I_EXCHANGEINSTRUMENTS - 5DCD:015D7 I_EXCHANGESAMPLES - 5DCD:00987 I_GETINSTRUMENTOFFSET - 5DCD:00981 I_GETINSTRUMENTSCREEN - 5DCD:0368C I_GETPRESETENVELOPEOFFSET - 5DCD:0099A I_GETSAMPLEOFFSET - 5DCD:027E1 I_HALVESAMPLESPEED - 5DCD:03635 I_IDLEUPDATEENVELOPE - 5DCD:03522 I_INCREASEPLAYCHANNEL - 5DCD:033D6 I_INSTRUMENTLISTNOTEOFF - 5DCD:033A9 I_INSTRUMENTLISTSPACE - 5DCD:011DC I_INVERTSAMPLE - 5DCD:02B39 I_MAPENVELOPE - 5DCD:02157 I_PLAYNOTE - 5DCD:03505 I_PLAYSAMPLE - 5DCD:02A8D I_POSTENVELOPE - 5DCD:021EA I_POSTINSTRUMENTWINDOW - 5DCD:02437 I_POSTNOTEWINDOW - 5DCD:035E3 I_POSTPITCHPANCENTER - 5DCD:00BC3 I_POSTSAMPLELIST - 5DCD:02A85 I_PREENVELOPE - 5DCD:02035 I_PREINSTRUMENTWINDOW - 5DCD:023FB I_PRENOTEWINDOW - 5DCD:035D3 I_PREPITCHPANCENTER - 5DCD:00B68 I_PRESAMPLELIST - 5DCD:0111A I_PRINTC5FREQUENCY - 5DCD:0282E I_REPLACEINSTRUMENT - 5DCD:016A0 I_REPLACESAMPLE - 5DCD:0196A I_RESIZESAMPLE - 5DCD:01972 I_RESIZESAMPLENOINT - 5DCD:01BEE I_REVERSESAMPLE - 5DCD:03675 I_SAMPLEBUTTONHANDLER - 5DCD:00D5D I_SAMPLEDOWN - 5DCD:02813 I_SAMPLESPEEDSEMIDOWN - 5DCD:027F2 I_SAMPLESPEEDSEMIUP - 5DCD:00D7A I_SAMPLEUP - 5DCD:028A5 I_SCALEINSTRUMENTVOLUMES - 5DCD:0285B I_SCALESAMPLEVOLUMES - 5DCD:009C2 I_SELECTSCREEN - 5DCD:0343E I_SHOWINSTRUMENTPLAY - 5DCD:00E25 I_SHOWSAMPLEINFO - 5DCD:033F2 I_SHOWSAMPLEPLAY - 5DCD:02917 I_SWAPINSTRUMENTS - 5DCD:0161C I_SWAPSAMPLES - 5DCD:034CA I_TAGINSTRUMENT - 5DCD:034D1 I_TAGSAMPLE - 5DCD:03589 I_TOGGLEMULTICHANNEL - 5DCD:01DA6 I_TOGGLESAMPLEQUALITY - 5DCD:02966 I_UPDATEINSTRUMENT - 654E:00966 K_CLEARKEYBOARDQUEUE - 654E:009A6 K_DRAWTABLES - 654E:0070B K_GETKEY - 654E:005EA K_INITKEYBOARD - 654E:00693 K_INSTALLDOSHANDLER - 654E:00A46 K_INSTALLKEYBOARDTYPE - 654E:00977 K_ISANYKEYDOWN - 654E:0098F K_ISKEYDOWN - 654E:006D7 K_ISKEYWAITING - 654E:00A9B K_REMOVEKEYBOARDTYPE - 654E:00996 K_RESETKEYBOARDTABLES - 654E:00AAD K_SETSCROLLLOCK - 654E:00A23 K_SHOWMIDIINPUT - 654E:00651 K_UNINITKEYBOARD - 654E:006B3 K_UNINSTALLDOSHANDLER - 484B:00FEF LASTINSTRUMENT - 484B:00086 idle LASTKEYBOARD1 + 5DCE:0013D INSTRUMENTEDIT + 5DCE:0000E INSTRUMENTSCREEN + 4794:00A23 ISSTARTUPKEYLIST + 5DCE:01AB6 I_AMPLIFYSAMPLE + 5DCE:01116 I_CALCULATEC5SPEED + 5DCE:019CF I_CENTERSAMPLE + 5DCE:00E8D I_CHECKLOOPVALUES + 5DCE:00ECB I_CHECKSUSLOOPVALUES + 5DCE:01372 idle I_CLEARSAMPLENAME + 5DCE:034BD I_CLEARTABLES + 5DCE:01174 I_CONVERTSAMPLE + 5DCE:028EF I_COPYINSTRUMENT + 5DCE:01320 I_CUTSAMPLE + 5DCE:0124F I_CUTSAMPLEBEFORELOOP + 5DCE:0353D I_DECREASEPLAYCHANNEL + 5DCE:01131 I_DELETEINSTRUMENT + 5DCE:010DE I_DELETESAMPLE + 5DCE:027C1 I_DOUBLESAMPLESPEED + 5DCE:029F5 I_DRAWENVELOPE + 5DCE:01F7A I_DRAWINSTRUMENTWINDOW + 5DCE:0233F I_DRAWNOTEWINDOW + 5DCE:035A1 I_DRAWPITCHPANCENTER + 5DCE:00A71 I_DRAWSAMPLELIST + 5DCE:00F09 I_DRAWWAVEFORM + 5DCE:02781 I_EXCHANGEINSTRUMENTS + 5DCE:015D7 I_EXCHANGESAMPLES + 5DCE:00987 I_GETINSTRUMENTOFFSET + 5DCE:00981 I_GETINSTRUMENTSCREEN + 5DCE:0368C I_GETPRESETENVELOPEOFFSET + 5DCE:0099A I_GETSAMPLEOFFSET + 5DCE:027E1 I_HALVESAMPLESPEED + 5DCE:03635 I_IDLEUPDATEENVELOPE + 5DCE:03522 I_INCREASEPLAYCHANNEL + 5DCE:033D6 I_INSTRUMENTLISTNOTEOFF + 5DCE:033A9 I_INSTRUMENTLISTSPACE + 5DCE:011DC I_INVERTSAMPLE + 5DCE:02B39 I_MAPENVELOPE + 5DCE:02157 I_PLAYNOTE + 5DCE:03505 I_PLAYSAMPLE + 5DCE:02A8D I_POSTENVELOPE + 5DCE:021EA I_POSTINSTRUMENTWINDOW + 5DCE:02437 I_POSTNOTEWINDOW + 5DCE:035E3 I_POSTPITCHPANCENTER + 5DCE:00BC3 I_POSTSAMPLELIST + 5DCE:02A85 I_PREENVELOPE + 5DCE:02035 I_PREINSTRUMENTWINDOW + 5DCE:023FB I_PRENOTEWINDOW + 5DCE:035D3 I_PREPITCHPANCENTER + 5DCE:00B68 I_PRESAMPLELIST + 5DCE:0111A I_PRINTC5FREQUENCY + 5DCE:0282E I_REPLACEINSTRUMENT + 5DCE:016A0 I_REPLACESAMPLE + 5DCE:0196A I_RESIZESAMPLE + 5DCE:01972 I_RESIZESAMPLENOINT + 5DCE:01BEE I_REVERSESAMPLE + 5DCE:03675 I_SAMPLEBUTTONHANDLER + 5DCE:00D5D I_SAMPLEDOWN + 5DCE:02813 I_SAMPLESPEEDSEMIDOWN + 5DCE:027F2 I_SAMPLESPEEDSEMIUP + 5DCE:00D7A I_SAMPLEUP + 5DCE:028A5 I_SCALEINSTRUMENTVOLUMES + 5DCE:0285B I_SCALESAMPLEVOLUMES + 5DCE:009C2 I_SELECTSCREEN + 5DCE:0343E I_SHOWINSTRUMENTPLAY + 5DCE:00E25 I_SHOWSAMPLEINFO + 5DCE:033F2 I_SHOWSAMPLEPLAY + 5DCE:02917 I_SWAPINSTRUMENTS + 5DCE:0161C I_SWAPSAMPLES + 5DCE:034CA I_TAGINSTRUMENT + 5DCE:034D1 I_TAGSAMPLE + 5DCE:03589 I_TOGGLEMULTICHANNEL + 5DCE:01DA6 I_TOGGLESAMPLEQUALITY + 5DCE:02966 I_UPDATEINSTRUMENT + 654F:00966 K_CLEARKEYBOARDQUEUE + 654F:009A6 K_DRAWTABLES + 654F:0070B K_GETKEY + 654F:005EA K_INITKEYBOARD + 654F:00693 K_INSTALLDOSHANDLER + 654F:00A46 K_INSTALLKEYBOARDTYPE + 654F:00977 K_ISANYKEYDOWN + 654F:0098F K_ISKEYDOWN + 654F:006D7 K_ISKEYWAITING + 654F:00A9B K_REMOVEKEYBOARDTYPE + 654F:00996 K_RESETKEYBOARDTABLES + 654F:00AAD K_SETSCROLLLOCK + 654F:00A23 K_SHOWMIDIINPUT + 654F:00651 K_UNINITKEYBOARD + 654F:006B3 K_UNINSTALLDOSHANDLER + 484C:00FEF LASTINSTRUMENT + 484C:00086 idle LASTKEYBOARD1 0000:02184 idle LOGOCHARACTER 3D34:05FB5 LSWINDOW_DOWN 3D34:05FA1 LSWINDOW_UP - 5DCD:00127 MAXNODE - 484B:00024 MAXROW - 484B:00D79 MIDIAMPLIFICATION - 654E:00AB6 MIDIBUFFEREMPTY - 484B:00D7A MIDICENTRALNOTE - 4DE4:09966 MIDIDATAAREA - 654E:00ABD MIDISEND - 5DCD:0207B MIDI_ALLOCATECHANNEL - 5DCD:020CD MIDI_CLEARTABLE - 5DCD:020C3 MIDI_FINDCHANNEL - 5DCD:020BB MIDI_GETCHANNEL - 5DCD:020E2 MIDI_NOTEOFF - 5DCD:0210F MIDI_PLAYNOTE - 5DCD:034D8 MIDI_PLAYSAMPLE - 484B:056C4 MIDI_SETINSTRUMENT - 65FE:00001 MMTSR_INSTALLMMTSR - 65FE:0006F MMTSR_UNINSTALLMMTSR - 484B:0060B MODIFIED - 466D:00E3D MOUSEADDEVENT - 466D:00000 MOUSECHARACTERGENERATIONOFFSET - 466D:00E61 MOUSECLEAREVENTS - 466D:00E73 MOUSEGETSTATUS - 466D:00DF5 MOUSEINPUT - 466D:00E6A MOUSEREMOVEEVENTS - 466D:00D9B MOUSERESTOREEVENTS - 466D:00D76 MOUSESAVEEVENTS - 466D:00CF1 MOUSESECONDSETDISABLE - 466D:00CEA MOUSESECONDSETENABLE - 466D:00D27 MOUSESETXY - 466D:00CF8 MOUSETOGGLE - 466D:00E86 MOUSEUPDATEDISABLE - 466D:00E7F MOUSEUPDATEENABLE - 6681:01FE5 MSG_DRAWMESSAGE - 6681:0237D MSG_GETMESSAGELENGTH - 6681:02392 MSG_GETMESSAGEOFFSET - 6681:020BE MSG_POSTMESSAGE - 6681:0208F MSG_PREMESSAGE - 6681:01FCB MSG_RESETMESSAGE - 484B:00034 MULTICHANNELINFO - 4DE4:0BDDD MUSIC_ALLOCATEPATTERN - 4DE4:0BEA5 MUSIC_ALLOCATESAMPLE - 4DE4:0D1D6 MUSIC_ASSIGNSAMPLETOINSTRUMENT - 4DE4:0C17E MUSIC_AUTODETECTSOUNDCARD - 4DE4:0C056 MUSIC_CLEARALLINSTRUMENTS - 4DE4:0C001 MUSIC_CLEARALLSAMPLENAMES - 4DE4:0C034 MUSIC_CLEARINSTRUMENT - 4DE4:0BFDE MUSIC_CLEARSAMPLENAME - 4DE4:0D165 MUSIC_DECREASESPEED - 4DE4:0D27F MUSIC_DECREASEVOLUME - 4DE4:0D3B5 MUSIC_GETDELAY - 4DE4:0D1C5 MUSIC_GETDISPLAYVARIABLES - 4DE4:0D3A0 MUSIC_GETDRIVERSCREEN - 4DE4:0D3A5 MUSIC_GETDRIVERVARIABLE - 4DE4:0D336 MUSIC_GETFREESOUNDCARDMEMORY - 4DE4:0CF8F MUSIC_GETHOSTCHANNELINFORMATIONTABLE - 4DE4:0C254 MUSIC_GETINSTRUMENTMODE - 4DE4:0D37C MUSIC_GETLASTCHANNEL - 4DE4:0D546 MUSIC_GETMIDIDATAAREA - 4DE4:0CBEC MUSIC_GETNUMBEROFINSTRUMENTS - 4DE4:0CBC4 MUSIC_GETNUMBEROFSAMPLES - 4DE4:0D33C MUSIC_GETNUMCHANNELS - 4DE4:0BD38 MUSIC_GETPATTERN - 4DE4:0D518 MUSIC_GETPATTERNLENGTH - 4DE4:0BD80 MUSIC_GETPATTERNLOCATION - 4DE4:0BD89 MUSIC_GETPATTERNLOCATIONNOCOUNT - 4DE4:0D341 MUSIC_GETPITCHTABLE - 4DE4:0CC9A MUSIC_GETPLAYMODE - 4DE4:0CCB2 MUSIC_GETPLAYMODE2 - 4DE4:0CC22 MUSIC_GETSAMPLELOCATION - 4DE4:0CF95 MUSIC_GETSLAVECHANNELINFORMATIONTABLE - 4DE4:0C082 MUSIC_GETSONGSEGMENT - 4DE4:0BC51 MUSIC_GETWAVEFORM - 4DE4:0D14C MUSIC_INCREASESPEED - 4DE4:0D263 MUSIC_INCREASEVOLUME - 4DE4:0D360 MUSIC_INITMIXTABLE - 4DE4:0BCAF MUSIC_INITMUSIC - 4DE4:0D115 MUSIC_INITMUTETABLE - 4DE4:0D134 MUSIC_INITSTEREO - 4DE4:0CD6D MUSIC_KBPLAYSONG - 4DE4:0CFCA MUSIC_LASTORDER - 4DE4:0CF9E MUSIC_NEXTORDER - 4DE4:0D35B MUSIC_PATTERNSTORAGE - 4DE4:0CEB7 MUSIC_PLAYNOTE - 4DE4:0CD2C MUSIC_PLAYPARTSONG - 4DE4:0CCCB MUSIC_PLAYPATTERN - 4DE4:0CF39 MUSIC_PLAYSAMPLE - 4DE4:0CCF5 MUSIC_PLAYSONG - 4DE4:0BC61 MUSIC_POLL - 4DE4:0D298 MUSIC_REGETLOOPINFORMATION - 4DE4:0BC9F MUSIC_REINITSOUNDCARD - 4DE4:0C023 MUSIC_RELEASEALLPATTERNS - 4DE4:0C012 MUSIC_RELEASEALLSAMPLES - 4DE4:0BCF4 MUSIC_RELEASEPATTERN - 4DE4:0BF62 MUSIC_RELEASESAMPLE - 4DE4:0D25C MUSIC_REVERSECHANNELS - 4DE4:0D51D MUSIC_SAVEMIDICONFIG - 4DE4:0D1BF MUSIC_SETADDRESS - 4DE4:0D1AC MUSIC_SETDMA - 4DE4:0D3AA MUSIC_SETDRIVERVARIABLE - 4DE4:0D006 MUSIC_SETGLOBALVOLUME - 4DE4:0D1B9 MUSIC_SETIRQ - 4DE4:0D256 MUSIC_SETLIMIT - 4DE4:0D1B3 MUSIC_SETMIXSPEED - 4DE4:0D3AF MUSIC_SETNEXTORDER - 4DE4:0D17E MUSIC_SETSOUNDCARD - 4DE4:0D1A1 MUSIC_SETSOUNDCARDDRIVER - 4DE4:0C232 MUSIC_SHOWAUTODETECTSOUNDCARD - 4DE4:0D4FA MUSIC_SHOWTIME - 4DE4:0D0B1 MUSIC_SOLOCHANNEL - 4DE4:0D2E5 MUSIC_SOUNDCARDLOADALLSAMPLES - 4DE4:0D2CE MUSIC_SOUNDCARDLOADSAMPLE - 4DE4:0CDC0 MUSIC_STOP - 4DE4:0D421 MUSIC_TIMESONG - 4DE4:0D079 MUSIC_TOGGLECHANNEL - 4DE4:0D54C MUSIC_TOGGLEORDERUPDATE - 4DE4:0D347 MUSIC_TOGGLEREVERSE - 4DE4:0D561 MUSIC_TOGGLESOLOINSTRUMENT - 4DE4:0D56C MUSIC_TOGGLESOLOSAMPLE - 4DE4:0C061 MUSIC_UNINITMUSIC - 4DE4:0D0AA MUSIC_UNMUTEALL - 4DE4:0CEAF MUSIC_UPDATEPATTERNOFFSET - 475C:000F1 M_FUNCTIONDIVIDER - 475C:00169 M_FUNCTIONHANDLER - 475C:00363 M_OBJECT1LIST - 475C:00360 M_OBJECT1LISTDEFAULT - 3D34:085C9 NETWORK_ADDWORDTOQUEUE - 3D34:07B02 NETWORK_DRAWDRIVERSCREEN - 3D34:07A63 NETWORK_DRIVERSCREEN - 3D34:08613 NETWORK_ENSURENONETWORK - 3D34:08496 NETWORK_FINISHEDSENDQUEUE - 3D34:0846A NETWORK_GETSENDQUEUE - 3D34:07D45 NETWORK_POLL - 3D34:07BD5 NETWORK_POSTDRIVERSCREEN - 3D34:07B7F NETWORK_PREDRIVERSCREEN - 3D34:084D6 NETWORK_QUEUESAMPLEDATA - 3D34:08647 NETWORK_SENDINSTRUMENTHEADER - 3D34:08630 NETWORK_SENDSAMPLEHEADER - 3D34:0865E NETWORK_SENDSONGDATAINFORMATION - 3D34:07D7B NETWORK_SHUTDOWN - 3D34:085EF NETWORK_UPDATEPATTERN - 3D34:085DA NETWORK_UPDATEPATTERNIFIDLE - 466D:00E78 NEWCHARACTERSET - 5DCD:00121 NEWSAMPLESIZE - 5DCD:00135 NODEHELD - 484B:00026 NUMBEROFROWS + 5DCE:00127 MAXNODE + 484C:00024 MAXROW + 484C:00D79 MIDIAMPLIFICATION + 654F:00AB6 MIDIBUFFEREMPTY + 484C:00D7A MIDICENTRALNOTE + 4DE5:09966 MIDIDATAAREA + 654F:00ABD MIDISEND + 5DCE:0207B MIDI_ALLOCATECHANNEL + 5DCE:020CD MIDI_CLEARTABLE + 5DCE:020C3 MIDI_FINDCHANNEL + 5DCE:020BB MIDI_GETCHANNEL + 5DCE:020E2 MIDI_NOTEOFF + 5DCE:0210F MIDI_PLAYNOTE + 5DCE:034D8 MIDI_PLAYSAMPLE + 484C:056C4 MIDI_SETINSTRUMENT + 65FF:00001 MMTSR_INSTALLMMTSR + 65FF:0006F MMTSR_UNINSTALLMMTSR + 484C:0060B MODIFIED + 466E:00E3D MOUSEADDEVENT + 466E:00000 MOUSECHARACTERGENERATIONOFFSET + 466E:00E61 MOUSECLEAREVENTS + 466E:00E73 MOUSEGETSTATUS + 466E:00DF5 MOUSEINPUT + 466E:00E6A MOUSEREMOVEEVENTS + 466E:00D9B MOUSERESTOREEVENTS + 466E:00D76 MOUSESAVEEVENTS + 466E:00CF1 MOUSESECONDSETDISABLE + 466E:00CEA MOUSESECONDSETENABLE + 466E:00D27 MOUSESETXY + 466E:00CF8 MOUSETOGGLE + 466E:00E86 MOUSEUPDATEDISABLE + 466E:00E7F MOUSEUPDATEENABLE + 6682:01FE5 MSG_DRAWMESSAGE + 6682:0237D MSG_GETMESSAGELENGTH + 6682:02392 MSG_GETMESSAGEOFFSET + 6682:020BE MSG_POSTMESSAGE + 6682:0208F MSG_PREMESSAGE + 6682:01FCB MSG_RESETMESSAGE + 484C:00034 MULTICHANNELINFO + 4DE5:0BDDD MUSIC_ALLOCATEPATTERN + 4DE5:0BEA5 MUSIC_ALLOCATESAMPLE + 4DE5:0D1D6 MUSIC_ASSIGNSAMPLETOINSTRUMENT + 4DE5:0C17E MUSIC_AUTODETECTSOUNDCARD + 4DE5:0C056 MUSIC_CLEARALLINSTRUMENTS + 4DE5:0C001 MUSIC_CLEARALLSAMPLENAMES + 4DE5:0C034 MUSIC_CLEARINSTRUMENT + 4DE5:0BFDE MUSIC_CLEARSAMPLENAME + 4DE5:0D165 MUSIC_DECREASESPEED + 4DE5:0D27F MUSIC_DECREASEVOLUME + 4DE5:0D3B5 MUSIC_GETDELAY + 4DE5:0D1C5 MUSIC_GETDISPLAYVARIABLES + 4DE5:0D3A0 MUSIC_GETDRIVERSCREEN + 4DE5:0D3A5 MUSIC_GETDRIVERVARIABLE + 4DE5:0D336 MUSIC_GETFREESOUNDCARDMEMORY + 4DE5:0CF8F MUSIC_GETHOSTCHANNELINFORMATIONTABLE + 4DE5:0C254 MUSIC_GETINSTRUMENTMODE + 4DE5:0D37C MUSIC_GETLASTCHANNEL + 4DE5:0D546 MUSIC_GETMIDIDATAAREA + 4DE5:0CBEC MUSIC_GETNUMBEROFINSTRUMENTS + 4DE5:0CBC4 MUSIC_GETNUMBEROFSAMPLES + 4DE5:0D33C MUSIC_GETNUMCHANNELS + 4DE5:0BD38 MUSIC_GETPATTERN + 4DE5:0D518 MUSIC_GETPATTERNLENGTH + 4DE5:0BD80 MUSIC_GETPATTERNLOCATION + 4DE5:0BD89 MUSIC_GETPATTERNLOCATIONNOCOUNT + 4DE5:0D341 MUSIC_GETPITCHTABLE + 4DE5:0CC9A MUSIC_GETPLAYMODE + 4DE5:0CCB2 MUSIC_GETPLAYMODE2 + 4DE5:0CC22 MUSIC_GETSAMPLELOCATION + 4DE5:0CF95 MUSIC_GETSLAVECHANNELINFORMATIONTABLE + 4DE5:0C082 MUSIC_GETSONGSEGMENT + 4DE5:0BC51 MUSIC_GETWAVEFORM + 4DE5:0D14C MUSIC_INCREASESPEED + 4DE5:0D263 MUSIC_INCREASEVOLUME + 4DE5:0D360 MUSIC_INITMIXTABLE + 4DE5:0BCAF MUSIC_INITMUSIC + 4DE5:0D115 MUSIC_INITMUTETABLE + 4DE5:0D134 MUSIC_INITSTEREO + 4DE5:0CD6D MUSIC_KBPLAYSONG + 4DE5:0CFCA MUSIC_LASTORDER + 4DE5:0CF9E MUSIC_NEXTORDER + 4DE5:0D35B MUSIC_PATTERNSTORAGE + 4DE5:0CEB7 MUSIC_PLAYNOTE + 4DE5:0CD2C MUSIC_PLAYPARTSONG + 4DE5:0CCCB MUSIC_PLAYPATTERN + 4DE5:0CF39 MUSIC_PLAYSAMPLE + 4DE5:0CCF5 MUSIC_PLAYSONG + 4DE5:0BC61 MUSIC_POLL + 4DE5:0D298 MUSIC_REGETLOOPINFORMATION + 4DE5:0BC9F MUSIC_REINITSOUNDCARD + 4DE5:0C023 MUSIC_RELEASEALLPATTERNS + 4DE5:0C012 MUSIC_RELEASEALLSAMPLES + 4DE5:0BCF4 MUSIC_RELEASEPATTERN + 4DE5:0BF62 MUSIC_RELEASESAMPLE + 4DE5:0D25C MUSIC_REVERSECHANNELS + 4DE5:0D51D MUSIC_SAVEMIDICONFIG + 4DE5:0D1BF MUSIC_SETADDRESS + 4DE5:0D1AC MUSIC_SETDMA + 4DE5:0D3AA MUSIC_SETDRIVERVARIABLE + 4DE5:0D006 MUSIC_SETGLOBALVOLUME + 4DE5:0D1B9 MUSIC_SETIRQ + 4DE5:0D256 MUSIC_SETLIMIT + 4DE5:0D1B3 MUSIC_SETMIXSPEED + 4DE5:0D3AF MUSIC_SETNEXTORDER + 4DE5:0D17E MUSIC_SETSOUNDCARD + 4DE5:0D1A1 MUSIC_SETSOUNDCARDDRIVER + 4DE5:0C232 MUSIC_SHOWAUTODETECTSOUNDCARD + 4DE5:0D4FA MUSIC_SHOWTIME + 4DE5:0D0B1 MUSIC_SOLOCHANNEL + 4DE5:0D2E5 MUSIC_SOUNDCARDLOADALLSAMPLES + 4DE5:0D2CE MUSIC_SOUNDCARDLOADSAMPLE + 4DE5:0CDC0 MUSIC_STOP + 4DE5:0D421 MUSIC_TIMESONG + 4DE5:0D079 MUSIC_TOGGLECHANNEL + 4DE5:0D54C MUSIC_TOGGLEORDERUPDATE + 4DE5:0D347 MUSIC_TOGGLEREVERSE + 4DE5:0D561 MUSIC_TOGGLESOLOINSTRUMENT + 4DE5:0D56C MUSIC_TOGGLESOLOSAMPLE + 4DE5:0C061 MUSIC_UNINITMUSIC + 4DE5:0D0AA MUSIC_UNMUTEALL + 4DE5:0CEAF MUSIC_UPDATEPATTERNOFFSET + 475D:000F1 M_FUNCTIONDIVIDER + 475D:00169 M_FUNCTIONHANDLER + 475D:00363 M_OBJECT1LIST + 475D:00360 M_OBJECT1LISTDEFAULT + 3D34:085D5 NETWORK_ADDWORDTOQUEUE + 3D34:07B0E NETWORK_DRAWDRIVERSCREEN + 3D34:07A6F NETWORK_DRIVERSCREEN + 3D34:0861F NETWORK_ENSURENONETWORK + 3D34:084A2 NETWORK_FINISHEDSENDQUEUE + 3D34:08476 NETWORK_GETSENDQUEUE + 3D34:07D51 NETWORK_POLL + 3D34:07BE1 NETWORK_POSTDRIVERSCREEN + 3D34:07B8B NETWORK_PREDRIVERSCREEN + 3D34:084E2 NETWORK_QUEUESAMPLEDATA + 3D34:08653 NETWORK_SENDINSTRUMENTHEADER + 3D34:0863C NETWORK_SENDSAMPLEHEADER + 3D34:0866A NETWORK_SENDSONGDATAINFORMATION + 3D34:07D87 NETWORK_SHUTDOWN + 3D34:085FB NETWORK_UPDATEPATTERN + 3D34:085E6 NETWORK_UPDATEPATTERNIFIDLE + 466E:00E78 NEWCHARACTERSET + 5DCE:00121 NEWSAMPLESIZE + 5DCE:00135 NODEHELD + 484C:00026 NUMBEROFROWS 0000:00000 O1_AUTODETECTLIST 0000:00325 O1_C5FREQUENCYLIST 0000:0373C O1_CONFIGUREITLIST @@ -711,118 +711,118 @@ Detailed map of segments 0000:05AF5 O1_UNDOLIST 0000:05A7B O1_VIEWINSTRUMENTLIBRARY 0000:003B9 O1_VIEWSAMPLELIBRARY - 484B:0001A ORDER + 484C:0001A ORDER 0000:01E87 ORDERKEYVALUE - 459B:00028 PALETTEDEFS - 484B:0000A PATTERNDATAAREA - 484B:0087E PATTERNLENGTHEND - 484B:0087C PATTERNLENGTHSTART - 484B:0060C PATTERNMODIFIED - 484B:0001E PATTERNNUMBER - 484B:0087A PATTERNSETLENGTH - 484B:05625 PECHECKMODIFIED - 484B:02769 PEFUNCTION_DECREASEOCTAVE - 484B:05524 PEFUNCTION_DRAWUNDO - 484B:02779 PEFUNCTION_INCREASEOCTAVE - 484B:031B4 PEFUNCTION_OUTOFMEMORYMESSAGE - 484B:05577 PEFUNCTION_POSTUNDO - 484B:0555A PEFUNCTION_PREUNDO - 484B:03A6D PEFUNCTION_STORECURRENTPATTERN - 484B:05643 PERESETMODIFIED - 484B:054EB idle PE_CLEARUNDOBUFFER - 484B:01054 PE_CONVAX2NUM - 484B:0513F PE_DELETEINSTRUMENT - 484B:012E6 PE_DRAWORDERLIST - 484B:01673 PE_DRAWPATTERNEDIT - 484B:05372 PE_F7 - 484B:011E0 PE_FILLHEADER - 484B:012C9 PE_FILLSPEEDTEMPO - 484B:046A4 PE_GETCURRENTPATTERN - 484B:04FBC PE_GETLASTINSTRUMENT - 484B:0109C PE_GETMAXORDER - 484B:011B9 PE_GETMAXPATTERN - 484B:0543D PE_GETPATTERNCONFIGOFFSET - 484B:03A97 PE_GOTOPATTERN - 484B:015DB PE_INITPATTERNEDIT - 484B:0508C PE_INSERTINSTRUMENT - 484B:0597F PE_NEWPATTERN - 484B:013BA PE_POSTORDERLIST - 484B:01D00 PE_POSTPATTERNEDIT - 484B:01376 PE_PREORDERLIST - 484B:01B41 PE_PREPATTERNEDIT - 484B:0114E PE_RESETORDERPATTERN - 484B:05966 PE_RESTORECURRENTPATTERN - 484B:058FC PE_RESTOREMIDINOTE - 484B:05948 PE_SAVECURRENTPATTERN - 484B:02A4C PE_SETCOMMANDCURSOR - 484B:05940 PE_SETPATTERNMODIFIED - 484B:052FE PE_SHOWORDER - 484B:04FC4 PE_SWAPINSTRUMENTS - 484B:041C6 PE_TRANSLATE669PATTERN - 484B:058C0 PE_TRANSLATEMIDI - 484B:0414C PE_TRANSLATEMODPATTERN - 484B:040EC PE_TRANSLATEMTMPATTERN - 484B:042D9 PE_TRANSLATES3MPATTERN - 484B:03E98 PE_TRANSLATEXMPATTERN - 484B:015A4 PE_UNINITPATTERNEDIT - 484B:051ED PE_UPDATEINSTRUMENTS - 5B89:0184A POSTDISPLAYDATA - 4793:009C5 QUIT - 4793:00AF2 REFRESH - 475C:000F0 RELEASETIMESLICE - 466D:008C8 RESTOREMOUSE - 466D:00922 RESTOREMOUSEGRAPHICS - 484B:00CA8 ROWHILIGHT1 - 484B:00CA9 ROWHILIGHT2 - 5DCD:00145 SAMPLEAMPLIFICATION + 459B:00034 PALETTEDEFS + 484C:0000A PATTERNDATAAREA + 484C:0087E PATTERNLENGTHEND + 484C:0087C PATTERNLENGTHSTART + 484C:0060C PATTERNMODIFIED + 484C:0001E PATTERNNUMBER + 484C:0087A PATTERNSETLENGTH + 484C:05625 PECHECKMODIFIED + 484C:02769 PEFUNCTION_DECREASEOCTAVE + 484C:05524 PEFUNCTION_DRAWUNDO + 484C:02779 PEFUNCTION_INCREASEOCTAVE + 484C:031B4 PEFUNCTION_OUTOFMEMORYMESSAGE + 484C:05577 PEFUNCTION_POSTUNDO + 484C:0555A PEFUNCTION_PREUNDO + 484C:03A6D PEFUNCTION_STORECURRENTPATTERN + 484C:05643 PERESETMODIFIED + 484C:054EB idle PE_CLEARUNDOBUFFER + 484C:01054 PE_CONVAX2NUM + 484C:0513F PE_DELETEINSTRUMENT + 484C:012E6 PE_DRAWORDERLIST + 484C:01673 PE_DRAWPATTERNEDIT + 484C:05372 PE_F7 + 484C:011E0 PE_FILLHEADER + 484C:012C9 PE_FILLSPEEDTEMPO + 484C:046A4 PE_GETCURRENTPATTERN + 484C:04FBC PE_GETLASTINSTRUMENT + 484C:0109C PE_GETMAXORDER + 484C:011B9 PE_GETMAXPATTERN + 484C:0543D PE_GETPATTERNCONFIGOFFSET + 484C:03A97 PE_GOTOPATTERN + 484C:015DB PE_INITPATTERNEDIT + 484C:0508C PE_INSERTINSTRUMENT + 484C:0597F PE_NEWPATTERN + 484C:013BA PE_POSTORDERLIST + 484C:01D00 PE_POSTPATTERNEDIT + 484C:01376 PE_PREORDERLIST + 484C:01B41 PE_PREPATTERNEDIT + 484C:0114E PE_RESETORDERPATTERN + 484C:05966 PE_RESTORECURRENTPATTERN + 484C:058FC PE_RESTOREMIDINOTE + 484C:05948 PE_SAVECURRENTPATTERN + 484C:02A4C PE_SETCOMMANDCURSOR + 484C:05940 PE_SETPATTERNMODIFIED + 484C:052FE PE_SHOWORDER + 484C:04FC4 PE_SWAPINSTRUMENTS + 484C:041C6 PE_TRANSLATE669PATTERN + 484C:058C0 PE_TRANSLATEMIDI + 484C:0414C PE_TRANSLATEMODPATTERN + 484C:040EC PE_TRANSLATEMTMPATTERN + 484C:042D9 PE_TRANSLATES3MPATTERN + 484C:03E98 PE_TRANSLATEXMPATTERN + 484C:015A4 PE_UNINITPATTERNEDIT + 484C:051ED PE_UPDATEINSTRUMENTS + 5B8A:0184A POSTDISPLAYDATA + 4794:009C5 QUIT + 4794:00AF2 REFRESH + 475D:000F0 RELEASETIMESLICE + 466E:008C8 RESTOREMOUSE + 466E:00922 RESTOREMOUSEGRAPHICS + 484C:00CA8 ROWHILIGHT1 + 484C:00CA9 ROWHILIGHT2 + 5DCE:00145 SAMPLEAMPLIFICATION 3D34:0021E SAMPLEDIRECTORY 3D34:002AB SAMPLENAME - 5DCD:00011 SAMPLENUMBER - 5DCD:0011D SAMPLENUMBERINPUT + 5DCE:00011 SAMPLENUMBER + 5DCE:0011D SAMPLENUMBERINPUT 3D02:0024E SETINFOLINE 3D02:00264 SETINFOLINE2 - 466D:00DC0 SETKEYBOARDLOCK - 466D:00E8D SETMOUSECURSORTYPE + 466E:00DC0 SETKEYBOARDLOCK + 466E:00E8D SETMOUSECURSORTYPE 3D02:000F8 SHOWUSAGETIME - 484B:00032 SKIPVALUE - 4DE4:09964 SONGDATAAREA + 484C:00032 SKIPVALUE + 4DE5:09964 SONGDATAAREA 3D34:001D8 SONGDIRECTORY 3D02:00317 STARTCLOCK - 459B:00975 S_CLEARSCREEN - 459B:00CA5 S_DEFINEHIASCII - 459B:008B7 S_DEFINESMALLNUMBERS - 459B:00AA8 S_DIRECTDRAWSTRING - 459B:0098A S_DRAWBOX - 459B:00C62 S_DRAWSMALLBOX - 459B:00ABD S_DRAWSTRING - 459B:00BE2 S_GENERATECHARACTERS - 459B:00960 S_GETDESTINATION - 459B:00BD9 S_GETGENERATIONTABLEOFFSET - 459B:00C7E S_GETPALETTEOFFSET - 459B:00A99 S_HILIGHT - 459B:006B7 S_INITSCREEN - 459B:00CE5 S_INVERTCURSOR - 459B:00871 S_REDEFINECHARACTERS - 459B:0084B S_RESETSEQUENCER - 459B:0078C S_RESTORESCREEN - 459B:0076A S_SAVESCREEN - 459B:00A59 S_SETDIRECTMODE - 459B:007FD S_SETPALETTE - 459B:007F9 S_SETPALETTE2 - 459B:00825 S_SETSEQUENCER - 459B:0094F S_UNINITSCREEN - 459B:009F8 S_UPDATESCREEN - 459B:00C84 S_USEPRESETPALETTE - 6136:000D8 THUMBSTRINGENTER - 466D:00CE5 UNINITMOUSE + 459B:00981 S_CLEARSCREEN + 459B:00CB1 S_DEFINEHIASCII + 459B:008C3 S_DEFINESMALLNUMBERS + 459B:00AB4 S_DIRECTDRAWSTRING + 459B:00996 S_DRAWBOX + 459B:00C6E S_DRAWSMALLBOX + 459B:00AC9 S_DRAWSTRING + 459B:00BEE S_GENERATECHARACTERS + 459B:0096C S_GETDESTINATION + 459B:00BE5 S_GETGENERATIONTABLEOFFSET + 459B:00C8A S_GETPALETTEOFFSET + 459B:00AA5 S_HILIGHT + 459B:006C3 S_INITSCREEN + 459B:00CF1 S_INVERTCURSOR + 459B:0087D S_REDEFINECHARACTERS + 459B:00857 S_RESETSEQUENCER + 459B:00798 S_RESTORESCREEN + 459B:00776 S_SAVESCREEN + 459B:00A65 S_SETDIRECTMODE + 459B:00809 S_SETPALETTE + 459B:00805 S_SETPALETTE2 + 459B:00831 S_SETSEQUENCER + 459B:0095B S_UNINITSCREEN + 459B:00A04 S_UPDATESCREEN + 459B:00C90 S_USEPRESETPALETTE + 6137:000D8 THUMBSTRINGENTER + 466E:00CE5 UNINITMOUSE 3D02:0012C UNINITTIMERHANDLER 3D02:00152 UPDATEINFOLINE - 5DCD:03671 UPDATEWAVEFORM - 68BB:00201 VESA_DETECT - 68BB:00244 idle VESA_GETINFO - 68BB:0025B VESA_SETBLOCK - 68BB:00221 VESA_SETMODE - 459B:006A5 VGAFLAGS + 5DCE:03671 UPDATEWAVEFORM + 68BC:00201 VESA_DETECT + 68BC:00244 idle VESA_GETINFO + 68BC:0025B VESA_SETBLOCK + 68BC:00221 VESA_SETMODE + 459B:006B1 VGAFLAGS Address Publics by Value @@ -944,22 +944,22 @@ Detailed map of segments 3D02:0012C UNINITTIMERHANDLER 3D02:00110 INITTIMERHANDLER 3D02:000F8 SHOWUSAGETIME - 3D34:0865E NETWORK_SENDSONGDATAINFORMATION - 3D34:08647 NETWORK_SENDINSTRUMENTHEADER - 3D34:08630 NETWORK_SENDSAMPLEHEADER - 3D34:08613 NETWORK_ENSURENONETWORK - 3D34:085EF NETWORK_UPDATEPATTERN - 3D34:085DA NETWORK_UPDATEPATTERNIFIDLE - 3D34:085C9 NETWORK_ADDWORDTOQUEUE - 3D34:084D6 NETWORK_QUEUESAMPLEDATA - 3D34:08496 NETWORK_FINISHEDSENDQUEUE - 3D34:0846A NETWORK_GETSENDQUEUE - 3D34:07D7B NETWORK_SHUTDOWN - 3D34:07D45 NETWORK_POLL - 3D34:07BD5 NETWORK_POSTDRIVERSCREEN - 3D34:07B7F NETWORK_PREDRIVERSCREEN - 3D34:07B02 NETWORK_DRAWDRIVERSCREEN - 3D34:07A63 NETWORK_DRIVERSCREEN + 3D34:0866A NETWORK_SENDSONGDATAINFORMATION + 3D34:08653 NETWORK_SENDINSTRUMENTHEADER + 3D34:0863C NETWORK_SENDSAMPLEHEADER + 3D34:0861F NETWORK_ENSURENONETWORK + 3D34:085FB NETWORK_UPDATEPATTERN + 3D34:085E6 NETWORK_UPDATEPATTERNIFIDLE + 3D34:085D5 NETWORK_ADDWORDTOQUEUE + 3D34:084E2 NETWORK_QUEUESAMPLEDATA + 3D34:084A2 NETWORK_FINISHEDSENDQUEUE + 3D34:08476 NETWORK_GETSENDQUEUE + 3D34:07D87 NETWORK_SHUTDOWN + 3D34:07D51 NETWORK_POLL + 3D34:07BE1 NETWORK_POSTDRIVERSCREEN + 3D34:07B8B NETWORK_PREDRIVERSCREEN + 3D34:07B0E NETWORK_DRAWDRIVERSCREEN + 3D34:07A6F NETWORK_DRIVERSCREEN 3D34:07712 D_SLOWINSTRUMENTSORT 3D34:07670 D_SLOWSAMPLESORT 3D34:0755A D_DRAWTIMER @@ -1041,514 +1041,514 @@ Detailed map of segments 3D34:000C4 FILESPECIFIER 3D34:00066 FILENAME 3D34:00010 DISKDATAAREA - 459B:00CE5 S_INVERTCURSOR - 459B:00CA5 S_DEFINEHIASCII - 459B:00C84 S_USEPRESETPALETTE - 459B:00C7E S_GETPALETTEOFFSET - 459B:00C62 S_DRAWSMALLBOX - 459B:00BE2 S_GENERATECHARACTERS - 459B:00BD9 S_GETGENERATIONTABLEOFFSET - 459B:00ABD S_DRAWSTRING - 459B:00AA8 S_DIRECTDRAWSTRING - 459B:00A99 S_HILIGHT - 459B:00A59 S_SETDIRECTMODE - 459B:009F8 S_UPDATESCREEN - 459B:0098A S_DRAWBOX - 459B:00975 S_CLEARSCREEN - 459B:00960 S_GETDESTINATION - 459B:0094F S_UNINITSCREEN - 459B:008B7 S_DEFINESMALLNUMBERS - 459B:00871 S_REDEFINECHARACTERS - 459B:0084B S_RESETSEQUENCER - 459B:00825 S_SETSEQUENCER - 459B:007FD S_SETPALETTE - 459B:007F9 S_SETPALETTE2 - 459B:0078C S_RESTORESCREEN - 459B:0076A S_SAVESCREEN - 459B:006B7 S_INITSCREEN - 459B:006A5 VGAFLAGS - 459B:006A3 CHARACTERGENERATIONOFFSET - 459B:00028 PALETTEDEFS - 466D:00EE2 FORCEMOUSERESTORE - 466D:00EDA CMDLINEDISABLEMOUSE - 466D:00E8D SETMOUSECURSORTYPE - 466D:00E86 MOUSEUPDATEDISABLE - 466D:00E7F MOUSEUPDATEENABLE - 466D:00E78 NEWCHARACTERSET - 466D:00E73 MOUSEGETSTATUS - 466D:00E6A MOUSEREMOVEEVENTS - 466D:00E61 MOUSECLEAREVENTS - 466D:00E3D MOUSEADDEVENT - 466D:00DF5 MOUSEINPUT - 466D:00DCA ADDMOUSEQUEUE - 466D:00DC5 GETKEYBOARDLOCK - 466D:00DC0 SETKEYBOARDLOCK - 466D:00D9B MOUSERESTOREEVENTS - 466D:00D76 MOUSESAVEEVENTS - 466D:00D27 MOUSESETXY - 466D:00CF8 MOUSETOGGLE - 466D:00CF1 MOUSESECONDSETDISABLE - 466D:00CEA MOUSESECONDSETENABLE - 466D:00CE5 UNINITMOUSE - 466D:00C8F INITMOUSE - 466D:00B86 DRAWMOUSE - 466D:00922 RESTOREMOUSEGRAPHICS - 466D:008C8 RESTOREMOUSE - 466D:00000 MOUSECHARACTERGENERATIONOFFSET - 475C:00363 M_OBJECT1LIST - 475C:00360 M_OBJECT1LISTDEFAULT - 475C:00169 M_FUNCTIONHANDLER - 475C:000F1 M_FUNCTIONDIVIDER - 475C:000F0 RELEASETIMESLICE - 4793:00B0F DOSSHELL - 4793:00AF2 REFRESH - 4793:00ACB GETENVIRONMENT - 4793:00A9F CRASHRECOVERY - 4793:00A28 GETSTARTUPKEYLIST - 4793:00A23 ISSTARTUPKEYLIST - 4793:009C5 QUIT - 484B:0597F PE_NEWPATTERN - 484B:05966 PE_RESTORECURRENTPATTERN - 484B:05948 PE_SAVECURRENTPATTERN - 484B:05940 PE_SETPATTERNMODIFIED - 484B:058FC PE_RESTOREMIDINOTE - 484B:058C0 PE_TRANSLATEMIDI - 484B:056C4 MIDI_SETINSTRUMENT - 484B:05643 PERESETMODIFIED - 484B:05625 PECHECKMODIFIED - 484B:05577 PEFUNCTION_POSTUNDO - 484B:0555A PEFUNCTION_PREUNDO - 484B:05524 PEFUNCTION_DRAWUNDO - 484B:054EB idle PE_CLEARUNDOBUFFER - 484B:0543D PE_GETPATTERNCONFIGOFFSET - 484B:05372 PE_F7 - 484B:052FE PE_SHOWORDER - 484B:051ED PE_UPDATEINSTRUMENTS - 484B:0513F PE_DELETEINSTRUMENT - 484B:0508C PE_INSERTINSTRUMENT - 484B:04FC4 PE_SWAPINSTRUMENTS - 484B:04FBC PE_GETLASTINSTRUMENT - 484B:046A4 PE_GETCURRENTPATTERN - 484B:042D9 PE_TRANSLATES3MPATTERN - 484B:041C6 PE_TRANSLATE669PATTERN - 484B:0414C PE_TRANSLATEMODPATTERN - 484B:040EC PE_TRANSLATEMTMPATTERN - 484B:03E98 PE_TRANSLATEXMPATTERN - 484B:03A97 PE_GOTOPATTERN - 484B:03A6D PEFUNCTION_STORECURRENTPATTERN - 484B:031B4 PEFUNCTION_OUTOFMEMORYMESSAGE - 484B:02A4C PE_SETCOMMANDCURSOR - 484B:02779 PEFUNCTION_INCREASEOCTAVE - 484B:02769 PEFUNCTION_DECREASEOCTAVE - 484B:01D00 PE_POSTPATTERNEDIT - 484B:01B41 PE_PREPATTERNEDIT - 484B:01673 PE_DRAWPATTERNEDIT - 484B:015DB PE_INITPATTERNEDIT - 484B:015A4 PE_UNINITPATTERNEDIT - 484B:013BA PE_POSTORDERLIST - 484B:01376 PE_PREORDERLIST - 484B:012E6 PE_DRAWORDERLIST - 484B:012C9 PE_FILLSPEEDTEMPO - 484B:011E0 PE_FILLHEADER - 484B:011B9 PE_GETMAXPATTERN - 484B:0114E PE_RESETORDERPATTERN - 484B:0109C PE_GETMAXORDER - 484B:01054 PE_CONVAX2NUM - 484B:00FEF LASTINSTRUMENT - 484B:00D7D FLAGS - 484B:00D7B FASTVOLUMEAMPLIFICATION - 484B:00D7A MIDICENTRALNOTE - 484B:00D79 MIDIAMPLIFICATION - 484B:00D78 CENTRALISECURSOR - 484B:00D77 COMMANDTOVALUE - 484B:00CA9 ROWHILIGHT2 - 484B:00CA8 ROWHILIGHT1 - 484B:0087E PATTERNLENGTHEND - 484B:0087C PATTERNLENGTHSTART - 484B:0087A PATTERNSETLENGTH - 484B:0060C PATTERNMODIFIED - 484B:0060B MODIFIED - 484B:002D8 AMPLIFICATION - 484B:00086 idle LASTKEYBOARD1 - 484B:00034 MULTICHANNELINFO - 484B:00032 SKIPVALUE - 484B:00030 BASEOCTAVE - 484B:00026 NUMBEROFROWS - 484B:00024 MAXROW - 484B:0001E PATTERNNUMBER - 484B:0001A ORDER - 484B:0000A PATTERNDATAAREA - 4DE4:0D56C MUSIC_TOGGLESOLOSAMPLE - 4DE4:0D561 MUSIC_TOGGLESOLOINSTRUMENT - 4DE4:0D54C MUSIC_TOGGLEORDERUPDATE - 4DE4:0D546 MUSIC_GETMIDIDATAAREA - 4DE4:0D51D MUSIC_SAVEMIDICONFIG - 4DE4:0D518 MUSIC_GETPATTERNLENGTH - 4DE4:0D4FA MUSIC_SHOWTIME - 4DE4:0D421 MUSIC_TIMESONG - 4DE4:0D3B5 MUSIC_GETDELAY - 4DE4:0D3AF MUSIC_SETNEXTORDER - 4DE4:0D3AA MUSIC_SETDRIVERVARIABLE - 4DE4:0D3A5 MUSIC_GETDRIVERVARIABLE - 4DE4:0D3A0 MUSIC_GETDRIVERSCREEN - 4DE4:0D37C MUSIC_GETLASTCHANNEL - 4DE4:0D360 MUSIC_INITMIXTABLE - 4DE4:0D35B MUSIC_PATTERNSTORAGE - 4DE4:0D347 MUSIC_TOGGLEREVERSE - 4DE4:0D341 MUSIC_GETPITCHTABLE - 4DE4:0D33C MUSIC_GETNUMCHANNELS - 4DE4:0D336 MUSIC_GETFREESOUNDCARDMEMORY - 4DE4:0D2E5 MUSIC_SOUNDCARDLOADALLSAMPLES - 4DE4:0D2CE MUSIC_SOUNDCARDLOADSAMPLE - 4DE4:0D298 MUSIC_REGETLOOPINFORMATION - 4DE4:0D27F MUSIC_DECREASEVOLUME - 4DE4:0D263 MUSIC_INCREASEVOLUME - 4DE4:0D25C MUSIC_REVERSECHANNELS - 4DE4:0D256 MUSIC_SETLIMIT - 4DE4:0D1D6 MUSIC_ASSIGNSAMPLETOINSTRUMENT - 4DE4:0D1C5 MUSIC_GETDISPLAYVARIABLES - 4DE4:0D1BF MUSIC_SETADDRESS - 4DE4:0D1B9 MUSIC_SETIRQ - 4DE4:0D1B3 MUSIC_SETMIXSPEED - 4DE4:0D1AC MUSIC_SETDMA - 4DE4:0D1A1 MUSIC_SETSOUNDCARDDRIVER - 4DE4:0D17E MUSIC_SETSOUNDCARD - 4DE4:0D165 MUSIC_DECREASESPEED - 4DE4:0D14C MUSIC_INCREASESPEED - 4DE4:0D134 MUSIC_INITSTEREO - 4DE4:0D115 MUSIC_INITMUTETABLE - 4DE4:0D0B1 MUSIC_SOLOCHANNEL - 4DE4:0D0AA MUSIC_UNMUTEALL - 4DE4:0D079 MUSIC_TOGGLECHANNEL - 4DE4:0D006 MUSIC_SETGLOBALVOLUME - 4DE4:0CFCA MUSIC_LASTORDER - 4DE4:0CF9E MUSIC_NEXTORDER - 4DE4:0CF95 MUSIC_GETSLAVECHANNELINFORMATIONTABLE - 4DE4:0CF8F MUSIC_GETHOSTCHANNELINFORMATIONTABLE - 4DE4:0CF39 MUSIC_PLAYSAMPLE - 4DE4:0CEB7 MUSIC_PLAYNOTE - 4DE4:0CEAF MUSIC_UPDATEPATTERNOFFSET - 4DE4:0CDC0 MUSIC_STOP - 4DE4:0CD6D MUSIC_KBPLAYSONG - 4DE4:0CD2C MUSIC_PLAYPARTSONG - 4DE4:0CCF5 MUSIC_PLAYSONG - 4DE4:0CCCB MUSIC_PLAYPATTERN - 4DE4:0CCB2 MUSIC_GETPLAYMODE2 - 4DE4:0CC9A MUSIC_GETPLAYMODE - 4DE4:0CC22 MUSIC_GETSAMPLELOCATION - 4DE4:0CBEC MUSIC_GETNUMBEROFINSTRUMENTS - 4DE4:0CBC4 MUSIC_GETNUMBEROFSAMPLES - 4DE4:0C254 MUSIC_GETINSTRUMENTMODE - 4DE4:0C232 MUSIC_SHOWAUTODETECTSOUNDCARD - 4DE4:0C17E MUSIC_AUTODETECTSOUNDCARD - 4DE4:0C082 MUSIC_GETSONGSEGMENT - 4DE4:0C061 MUSIC_UNINITMUSIC - 4DE4:0C056 MUSIC_CLEARALLINSTRUMENTS - 4DE4:0C034 MUSIC_CLEARINSTRUMENT - 4DE4:0C023 MUSIC_RELEASEALLPATTERNS - 4DE4:0C012 MUSIC_RELEASEALLSAMPLES - 4DE4:0C001 MUSIC_CLEARALLSAMPLENAMES - 4DE4:0BFDE MUSIC_CLEARSAMPLENAME - 4DE4:0BF62 MUSIC_RELEASESAMPLE - 4DE4:0BEA5 MUSIC_ALLOCATESAMPLE - 4DE4:0BDDD MUSIC_ALLOCATEPATTERN - 4DE4:0BD89 MUSIC_GETPATTERNLOCATIONNOCOUNT - 4DE4:0BD80 MUSIC_GETPATTERNLOCATION - 4DE4:0BD38 MUSIC_GETPATTERN - 4DE4:0BCF4 MUSIC_RELEASEPATTERN - 4DE4:0BCAF MUSIC_INITMUSIC - 4DE4:0BC9F MUSIC_REINITSOUNDCARD - 4DE4:0BC61 MUSIC_POLL - 4DE4:0BC51 MUSIC_GETWAVEFORM - 4DE4:09966 MIDIDATAAREA - 4DE4:09964 SONGDATAAREA - 4DE4:00352 CURRENTPATTERN - 5B40:0048C GLBL_DRIVERSCREEN - 5B40:00479 GLBL_TIMERSCREEN - 5B40:00411 GLBL_RESTOREMODE - 5B40:003ED GLBL_SAVEMODE - 5B40:003DA GLBL_RIGHTSQUAREBRACKET - 5B40:003C7 GLBL_LEFTSQUAREBRACKET - 5B40:003B4 GLBL_RIGHTBRACE - 5B40:003A1 GLBL_LEFTBRACE - 5B40:00395 GLBL_ALT_F8 - 5B40:00389 GLBL_ALT_F7 - 5B40:0037D GLBL_ALT_F6 - 5B40:00371 GLBL_ALT_F5 - 5B40:00365 GLBL_ALT_F4 - 5B40:00359 GLBL_ALT_F3 - 5B40:0034D GLBL_ALT_F2 - 5B40:00341 GLBL_ALT_F1 - 5B40:0033C GLBL_GETCURRENTMODE - 5B40:00337 GLBL_SETCURRENTMODE - 5B40:00300 GLBL_GETHEADERMODE - 5B40:002ED GLBL_CTRL_F12 - 5B40:002DD GLBL_CTRL_F5 - 5B40:002C5 GLBL_CTRL_F4 - 5B40:002AD GLBL_CTRL_F3 - 5B40:0029A GLBL_CTRL_F1 - 5B40:00287 GLBL_F12 - 5B40:0025E GLBL_F11_2 - 5B40:00256 GLBL_F11 - 5B40:00231 GLBL_F10 - 5B40:00211 GLBL_F9 - 5B40:00208 GLBL_F8 - 5B40:001F2 GLBL_SHIFT_F6 - 5B40:001DA GLBL_SHIFT_F9 - 5B40:001C7 GLBL_SHIFT_F1 - 5B40:001AF GLBL_LOADINSTRUMENT - 5B40:00197 GLBL_LOADSAMPLE - 5B40:00182 GLBL_F6 - 5B40:00132 GLBL_F5 - 5B40:00112 GLBL_F4_2 - 5B40:000F4 GLBL_F4 - 5B40:000DC GLBL_F3 - 5B40:00074 GLBL_F2_2 - 5B40:00069 GLBL_F2 - 5B40:00003 CURRENTMODE - 5B89:01E9A FOURIER_POSTFUNCTION - 5B89:01E96 FOURIER_IDLELIST - 5B89:01DA5 FOURIER_DRAWSCREEN - 5B89:01DA2 FOURIER_PREDRAWSCREEN - 5B89:01D40 FOURIER_START - 5B89:01C8A FOURIER_CHANGEPALETTE - 5B89:01BB1 FOURIER_TRANSFORM - 5B89:01B86 FOURIER_CREATETABLE - 5B89:01B11 DISPLAY_SELECTDISPLAYLIST - 5B89:01AAC DISPLAY_GETDISPLAYWINDOWDATA - 5B89:01A40 DISPLAYUPDATESCREEN - 5B89:01881 DISPLAYMINUS - 5B89:01878 DISPLAYPLUS - 5B89:0184A POSTDISPLAYDATA - 5B89:0179F DRAWDISPLAYDATA - 5D73:003F7 E_GETINTERNALEMSHANDLE - 5D73:003F2 E_GETEMSVERSION - 5D73:003DC E_RESTOREEMSPAGEFRAME - 5D73:003C1 E_SAVEEMSPAGEFRAME - 5D73:003BA E_EMSAVAILABLE - 5D73:00374 E_ALLOCATEEMS - 5D73:002E7 E_RELEASEBLOCKEMS - 5D73:001FD E_ALLOCATEBLOCKEMS - 5D73:001DA E_MAPALIGNEDBLOCKEMS - 5D73:001D5 E_GETEMSPAGEFRAME - 5D73:001C4 E_UNINITEMS - 5D73:0019B E_MAPEMSMEMORY - 5D73:00180 E_MAPAVAILABLEEMSMEMORY - 5D73:00109 E_RELEASEEMS - 5D73:000EB E_GETFREEEMS - 5D73:0002A E_INITEMS - 5DB2:001AA ERROR_UNINITHANDLER - 5DB2:0018F ERROR_INITHANDLER - 5DCD:0368C I_GETPRESETENVELOPEOFFSET - 5DCD:03675 I_SAMPLEBUTTONHANDLER - 5DCD:03671 UPDATEWAVEFORM - 5DCD:03635 I_IDLEUPDATEENVELOPE - 5DCD:035E3 I_POSTPITCHPANCENTER - 5DCD:035D3 I_PREPITCHPANCENTER - 5DCD:035A1 I_DRAWPITCHPANCENTER - 5DCD:03589 I_TOGGLEMULTICHANNEL - 5DCD:0353D I_DECREASEPLAYCHANNEL - 5DCD:03522 I_INCREASEPLAYCHANNEL - 5DCD:03505 I_PLAYSAMPLE - 5DCD:034D8 MIDI_PLAYSAMPLE - 5DCD:034D1 I_TAGSAMPLE - 5DCD:034CA I_TAGINSTRUMENT - 5DCD:034BD I_CLEARTABLES - 5DCD:0343E I_SHOWINSTRUMENTPLAY - 5DCD:033F2 I_SHOWSAMPLEPLAY - 5DCD:033D6 I_INSTRUMENTLISTNOTEOFF - 5DCD:033A9 I_INSTRUMENTLISTSPACE - 5DCD:02B39 I_MAPENVELOPE - 5DCD:02A8D I_POSTENVELOPE - 5DCD:02A85 I_PREENVELOPE - 5DCD:029F5 I_DRAWENVELOPE - 5DCD:02966 I_UPDATEINSTRUMENT - 5DCD:02917 I_SWAPINSTRUMENTS - 5DCD:028EF I_COPYINSTRUMENT - 5DCD:028A5 I_SCALEINSTRUMENTVOLUMES - 5DCD:0285B I_SCALESAMPLEVOLUMES - 5DCD:0282E I_REPLACEINSTRUMENT - 5DCD:02813 I_SAMPLESPEEDSEMIDOWN - 5DCD:027F2 I_SAMPLESPEEDSEMIUP - 5DCD:027E1 I_HALVESAMPLESPEED - 5DCD:027C1 I_DOUBLESAMPLESPEED - 5DCD:02781 I_EXCHANGEINSTRUMENTS - 5DCD:02437 I_POSTNOTEWINDOW - 5DCD:023FB I_PRENOTEWINDOW - 5DCD:0233F I_DRAWNOTEWINDOW - 5DCD:021EA I_POSTINSTRUMENTWINDOW - 5DCD:02157 I_PLAYNOTE - 5DCD:0210F MIDI_PLAYNOTE - 5DCD:020E2 MIDI_NOTEOFF - 5DCD:020CD MIDI_CLEARTABLE - 5DCD:020C3 MIDI_FINDCHANNEL - 5DCD:020BB MIDI_GETCHANNEL - 5DCD:0207B MIDI_ALLOCATECHANNEL - 5DCD:02035 I_PREINSTRUMENTWINDOW - 5DCD:01F7A I_DRAWINSTRUMENTWINDOW - 5DCD:01DA6 I_TOGGLESAMPLEQUALITY - 5DCD:01BEE I_REVERSESAMPLE - 5DCD:01AB6 I_AMPLIFYSAMPLE - 5DCD:019CF I_CENTERSAMPLE - 5DCD:01972 I_RESIZESAMPLENOINT - 5DCD:0196A I_RESIZESAMPLE - 5DCD:016A0 I_REPLACESAMPLE - 5DCD:0161C I_SWAPSAMPLES - 5DCD:015D7 I_EXCHANGESAMPLES - 5DCD:01372 idle I_CLEARSAMPLENAME - 5DCD:01320 I_CUTSAMPLE - 5DCD:0124F I_CUTSAMPLEBEFORELOOP - 5DCD:011DC I_INVERTSAMPLE - 5DCD:01174 I_CONVERTSAMPLE - 5DCD:01131 I_DELETEINSTRUMENT - 5DCD:0111A I_PRINTC5FREQUENCY - 5DCD:01116 I_CALCULATEC5SPEED - 5DCD:010DE I_DELETESAMPLE - 5DCD:00F09 I_DRAWWAVEFORM - 5DCD:00ECB I_CHECKSUSLOOPVALUES - 5DCD:00E8D I_CHECKLOOPVALUES - 5DCD:00E25 I_SHOWSAMPLEINFO - 5DCD:00D7A I_SAMPLEUP - 5DCD:00D5D I_SAMPLEDOWN - 5DCD:00BC3 I_POSTSAMPLELIST - 5DCD:00B68 I_PRESAMPLELIST - 5DCD:00A71 I_DRAWSAMPLELIST - 5DCD:009C2 I_SELECTSCREEN - 5DCD:0099A I_GETSAMPLEOFFSET - 5DCD:00987 I_GETINSTRUMENTOFFSET - 5DCD:00981 I_GETINSTRUMENTSCREEN - 5DCD:00145 SAMPLEAMPLIFICATION - 5DCD:0013D INSTRUMENTEDIT - 5DCD:00135 NODEHELD - 5DCD:00127 MAXNODE - 5DCD:00121 NEWSAMPLESIZE - 5DCD:0011D SAMPLENUMBERINPUT - 5DCD:00011 SAMPLENUMBER - 5DCD:0000E INSTRUMENTSCREEN - 5DCD:0000C INSTRUMENTAMPLIFICATION - 6136:01DDC F_MIDI_PGDN - 6136:01DC4 F_MIDI_PGUP - 6136:01DB2 F_MIDI_DOWN - 6136:01D99 F_MIDI_UP - 6136:01D72 F_SHOWMIDIZXXINPUT - 6136:01D5B F_FILEQUIT - 6136:01D44 F_FILEDOSSHELL - 6136:01D32 F_FILESAVEAS - 6136:01D1B F_FILESAVECURRENT - 6136:01D06 F_FILENEW - 6136:01CF4 F_FILELOAD - 6136:01CE0 F_FILEMENU - 6136:01CCE F_SAMPLELIBRARY - 6136:01CBC F_RELOADGRAVIS - 6136:01CAA F_INSTRUMENTLIBRARY - 6136:01C98 F_INSTRUMENTLIST - 6136:01C86 F_SAMPLELIST - 6136:01C72 F_INSTRUMENTMENU - 6136:01C5E F_SAMPLEMENU - 6136:01C4C F_DRIVERSCREEN - 6136:01C35 F_CALCULATELENGTH - 6136:01C23 F_REINITSOUNDCARD - 6136:01C11 F_STOP - 6136:01BFF F_PLAYMARK - 6136:01BED F_PLAYORDER - 6136:01BDB F_PLAYPATTERN - 6136:01BC9 F_PLAYSONG - 6136:01BB7 F_INFOPAGE - 6136:01BA3 F_PLAYBACKMENU - 6136:01B91 F_HELP - 6136:01B84 F_MESSAGEEDITOR - 6136:01B77 F_VIEWORDERPAN - 6136:01B6A F_VIEWVARIABLES - 6136:01B5D F_VIEWPATTERN - 6136:01B44 F_MAINMENU - 6136:01A9E F_NEWSONG - 6136:01A96 F_RESET5NUMINPUTPOS - 6136:01A86 F_SETAMIGA - 6136:01A76 F_SETLINEAR - 6136:01A61 F_SETMONO - 6136:01A4C F_SETSTEREO - 6136:019DF F_SETCONTROLINSTRUMENT - 6136:019CF F_SETCONTROLSAMPLE - 6136:0195C F_CONFIGBUTTONSETUP - 6136:0191D F_DRAWSMCCHANNELS - 6136:018B8 F_DRAWHEADER - 6136:01798 F_POST5NUM - 6136:01779 F_PRE5NUM - 6136:01700 F_DRAW5NUM - 6136:015B1 F_POST3NUM - 6136:01592 F_PRE3NUM - 6136:01518 F_DRAW3NUM - 6136:013EF F_POSTTOGGLE - 6136:013BC F_PRETOGGLE - 6136:01346 F_DRAWTOGGLE - 6136:010E1 F_GOTOEMPTYLIST - 6136:0102A F_POSTSTRINGINPUT - 6136:01006 F_PRESTRINGINPUT - 6136:00F92 F_DRAWSTRINGINPUT - 6136:00EDD F_RETURN1 - 6136:00DF9 F_RETURN192 - 6136:00DF2 F_RETURN64 - 6136:00DEC F_RETURN0 - 6136:00DE8 F_REDRAWSCREEN - 6136:00DA6 F_SHOWCHANNELS - 6136:00D61 F_DRAWINFOLINE - 6136:00B6E F_POSTTHUMBBAR - 6136:00B22 F_POSTSCALABLETHUMBBAR - 6136:00A71 F_PRESCALABLETHUMBBAR - 6136:009BF F_PRETHUMBBAR - 6136:008D6 F_DRAWSCALABLETHUMBBAR - 6136:0080B F_DRAWTHUMBBAR - 6136:00505 F_POSTBUTTONOBJECT - 6136:004CC F_PREBUTTONOBJECT - 6136:00427 F_DRAWBUTTONOBJECT - 6136:003E0 F_CHARACTERDEFINITIONS - 6136:003D8 F_SETDIRECTMODE - 6136:003C8 F_POSTEXITOBJECT - 6136:00383 F_DRAWTEXTOBJECT - 6136:0036D F_DRAWBOXOBJECT - 6136:00369 F_CALLFARFUNCTION - 6136:00363 F_CALLFARPOSTFUNCTION - 6136:0035F F_CALLFARPREFUNCTION - 6136:00344 F_INSTRUMENTBUTTONHANDLER - 6136:00341 F_NOTHING - 6136:000D8 THUMBSTRINGENTER - 6315:0238C H_SETHELPCONTEXT - 6315:02377 H_HELPESC - 6315:0236D H_HELPPGDN - 6315:0235A H_HELPPGUP - 6315:0232F H_HELPDOWN - 6315:0231F H_HELPUP - 6315:022FD H_HELP - 6315:0228C H_DRAWHELP - 654E:00ABD MIDISEND - 654E:00AB6 MIDIBUFFEREMPTY - 654E:00AAD K_SETSCROLLLOCK - 654E:00A9B K_REMOVEKEYBOARDTYPE - 654E:00A46 K_INSTALLKEYBOARDTYPE - 654E:00A23 K_SHOWMIDIINPUT - 654E:009A6 K_DRAWTABLES - 654E:00996 K_RESETKEYBOARDTABLES - 654E:0098F K_ISKEYDOWN - 654E:00977 K_ISANYKEYDOWN - 654E:00966 K_CLEARKEYBOARDQUEUE - 654E:0070B K_GETKEY - 654E:006D7 K_ISKEYWAITING - 654E:006B3 K_UNINSTALLDOSHANDLER - 654E:00693 K_INSTALLDOSHANDLER - 654E:00651 K_UNINITKEYBOARD - 654E:005EA K_INITKEYBOARD - 65FE:0006F MMTSR_UNINSTALLMMTSR - 65FE:00001 MMTSR_INSTALLMMTSR - 6681:02392 MSG_GETMESSAGEOFFSET - 6681:0237D MSG_GETMESSAGELENGTH - 6681:020BE MSG_POSTMESSAGE - 6681:0208F MSG_PREMESSAGE - 6681:01FE5 MSG_DRAWMESSAGE - 6681:01FCB MSG_RESETMESSAGE - 68BB:0025B VESA_SETBLOCK - 68BB:00244 idle VESA_GETINFO - 68BB:00221 VESA_SETMODE - 68BB:00201 VESA_DETECT + 459B:00CF1 S_INVERTCURSOR + 459B:00CB1 S_DEFINEHIASCII + 459B:00C90 S_USEPRESETPALETTE + 459B:00C8A S_GETPALETTEOFFSET + 459B:00C6E S_DRAWSMALLBOX + 459B:00BEE S_GENERATECHARACTERS + 459B:00BE5 S_GETGENERATIONTABLEOFFSET + 459B:00AC9 S_DRAWSTRING + 459B:00AB4 S_DIRECTDRAWSTRING + 459B:00AA5 S_HILIGHT + 459B:00A65 S_SETDIRECTMODE + 459B:00A04 S_UPDATESCREEN + 459B:00996 S_DRAWBOX + 459B:00981 S_CLEARSCREEN + 459B:0096C S_GETDESTINATION + 459B:0095B S_UNINITSCREEN + 459B:008C3 S_DEFINESMALLNUMBERS + 459B:0087D S_REDEFINECHARACTERS + 459B:00857 S_RESETSEQUENCER + 459B:00831 S_SETSEQUENCER + 459B:00809 S_SETPALETTE + 459B:00805 S_SETPALETTE2 + 459B:00798 S_RESTORESCREEN + 459B:00776 S_SAVESCREEN + 459B:006C3 S_INITSCREEN + 459B:006B1 VGAFLAGS + 459B:006AF CHARACTERGENERATIONOFFSET + 459B:00034 PALETTEDEFS + 466E:00EE2 FORCEMOUSERESTORE + 466E:00EDA CMDLINEDISABLEMOUSE + 466E:00E8D SETMOUSECURSORTYPE + 466E:00E86 MOUSEUPDATEDISABLE + 466E:00E7F MOUSEUPDATEENABLE + 466E:00E78 NEWCHARACTERSET + 466E:00E73 MOUSEGETSTATUS + 466E:00E6A MOUSEREMOVEEVENTS + 466E:00E61 MOUSECLEAREVENTS + 466E:00E3D MOUSEADDEVENT + 466E:00DF5 MOUSEINPUT + 466E:00DCA ADDMOUSEQUEUE + 466E:00DC5 GETKEYBOARDLOCK + 466E:00DC0 SETKEYBOARDLOCK + 466E:00D9B MOUSERESTOREEVENTS + 466E:00D76 MOUSESAVEEVENTS + 466E:00D27 MOUSESETXY + 466E:00CF8 MOUSETOGGLE + 466E:00CF1 MOUSESECONDSETDISABLE + 466E:00CEA MOUSESECONDSETENABLE + 466E:00CE5 UNINITMOUSE + 466E:00C8F INITMOUSE + 466E:00B86 DRAWMOUSE + 466E:00922 RESTOREMOUSEGRAPHICS + 466E:008C8 RESTOREMOUSE + 466E:00000 MOUSECHARACTERGENERATIONOFFSET + 475D:00363 M_OBJECT1LIST + 475D:00360 M_OBJECT1LISTDEFAULT + 475D:00169 M_FUNCTIONHANDLER + 475D:000F1 M_FUNCTIONDIVIDER + 475D:000F0 RELEASETIMESLICE + 4794:00B0F DOSSHELL + 4794:00AF2 REFRESH + 4794:00ACB GETENVIRONMENT + 4794:00A9F CRASHRECOVERY + 4794:00A28 GETSTARTUPKEYLIST + 4794:00A23 ISSTARTUPKEYLIST + 4794:009C5 QUIT + 484C:0597F PE_NEWPATTERN + 484C:05966 PE_RESTORECURRENTPATTERN + 484C:05948 PE_SAVECURRENTPATTERN + 484C:05940 PE_SETPATTERNMODIFIED + 484C:058FC PE_RESTOREMIDINOTE + 484C:058C0 PE_TRANSLATEMIDI + 484C:056C4 MIDI_SETINSTRUMENT + 484C:05643 PERESETMODIFIED + 484C:05625 PECHECKMODIFIED + 484C:05577 PEFUNCTION_POSTUNDO + 484C:0555A PEFUNCTION_PREUNDO + 484C:05524 PEFUNCTION_DRAWUNDO + 484C:054EB idle PE_CLEARUNDOBUFFER + 484C:0543D PE_GETPATTERNCONFIGOFFSET + 484C:05372 PE_F7 + 484C:052FE PE_SHOWORDER + 484C:051ED PE_UPDATEINSTRUMENTS + 484C:0513F PE_DELETEINSTRUMENT + 484C:0508C PE_INSERTINSTRUMENT + 484C:04FC4 PE_SWAPINSTRUMENTS + 484C:04FBC PE_GETLASTINSTRUMENT + 484C:046A4 PE_GETCURRENTPATTERN + 484C:042D9 PE_TRANSLATES3MPATTERN + 484C:041C6 PE_TRANSLATE669PATTERN + 484C:0414C PE_TRANSLATEMODPATTERN + 484C:040EC PE_TRANSLATEMTMPATTERN + 484C:03E98 PE_TRANSLATEXMPATTERN + 484C:03A97 PE_GOTOPATTERN + 484C:03A6D PEFUNCTION_STORECURRENTPATTERN + 484C:031B4 PEFUNCTION_OUTOFMEMORYMESSAGE + 484C:02A4C PE_SETCOMMANDCURSOR + 484C:02779 PEFUNCTION_INCREASEOCTAVE + 484C:02769 PEFUNCTION_DECREASEOCTAVE + 484C:01D00 PE_POSTPATTERNEDIT + 484C:01B41 PE_PREPATTERNEDIT + 484C:01673 PE_DRAWPATTERNEDIT + 484C:015DB PE_INITPATTERNEDIT + 484C:015A4 PE_UNINITPATTERNEDIT + 484C:013BA PE_POSTORDERLIST + 484C:01376 PE_PREORDERLIST + 484C:012E6 PE_DRAWORDERLIST + 484C:012C9 PE_FILLSPEEDTEMPO + 484C:011E0 PE_FILLHEADER + 484C:011B9 PE_GETMAXPATTERN + 484C:0114E PE_RESETORDERPATTERN + 484C:0109C PE_GETMAXORDER + 484C:01054 PE_CONVAX2NUM + 484C:00FEF LASTINSTRUMENT + 484C:00D7D FLAGS + 484C:00D7B FASTVOLUMEAMPLIFICATION + 484C:00D7A MIDICENTRALNOTE + 484C:00D79 MIDIAMPLIFICATION + 484C:00D78 CENTRALISECURSOR + 484C:00D77 COMMANDTOVALUE + 484C:00CA9 ROWHILIGHT2 + 484C:00CA8 ROWHILIGHT1 + 484C:0087E PATTERNLENGTHEND + 484C:0087C PATTERNLENGTHSTART + 484C:0087A PATTERNSETLENGTH + 484C:0060C PATTERNMODIFIED + 484C:0060B MODIFIED + 484C:002D8 AMPLIFICATION + 484C:00086 idle LASTKEYBOARD1 + 484C:00034 MULTICHANNELINFO + 484C:00032 SKIPVALUE + 484C:00030 BASEOCTAVE + 484C:00026 NUMBEROFROWS + 484C:00024 MAXROW + 484C:0001E PATTERNNUMBER + 484C:0001A ORDER + 484C:0000A PATTERNDATAAREA + 4DE5:0D56C MUSIC_TOGGLESOLOSAMPLE + 4DE5:0D561 MUSIC_TOGGLESOLOINSTRUMENT + 4DE5:0D54C MUSIC_TOGGLEORDERUPDATE + 4DE5:0D546 MUSIC_GETMIDIDATAAREA + 4DE5:0D51D MUSIC_SAVEMIDICONFIG + 4DE5:0D518 MUSIC_GETPATTERNLENGTH + 4DE5:0D4FA MUSIC_SHOWTIME + 4DE5:0D421 MUSIC_TIMESONG + 4DE5:0D3B5 MUSIC_GETDELAY + 4DE5:0D3AF MUSIC_SETNEXTORDER + 4DE5:0D3AA MUSIC_SETDRIVERVARIABLE + 4DE5:0D3A5 MUSIC_GETDRIVERVARIABLE + 4DE5:0D3A0 MUSIC_GETDRIVERSCREEN + 4DE5:0D37C MUSIC_GETLASTCHANNEL + 4DE5:0D360 MUSIC_INITMIXTABLE + 4DE5:0D35B MUSIC_PATTERNSTORAGE + 4DE5:0D347 MUSIC_TOGGLEREVERSE + 4DE5:0D341 MUSIC_GETPITCHTABLE + 4DE5:0D33C MUSIC_GETNUMCHANNELS + 4DE5:0D336 MUSIC_GETFREESOUNDCARDMEMORY + 4DE5:0D2E5 MUSIC_SOUNDCARDLOADALLSAMPLES + 4DE5:0D2CE MUSIC_SOUNDCARDLOADSAMPLE + 4DE5:0D298 MUSIC_REGETLOOPINFORMATION + 4DE5:0D27F MUSIC_DECREASEVOLUME + 4DE5:0D263 MUSIC_INCREASEVOLUME + 4DE5:0D25C MUSIC_REVERSECHANNELS + 4DE5:0D256 MUSIC_SETLIMIT + 4DE5:0D1D6 MUSIC_ASSIGNSAMPLETOINSTRUMENT + 4DE5:0D1C5 MUSIC_GETDISPLAYVARIABLES + 4DE5:0D1BF MUSIC_SETADDRESS + 4DE5:0D1B9 MUSIC_SETIRQ + 4DE5:0D1B3 MUSIC_SETMIXSPEED + 4DE5:0D1AC MUSIC_SETDMA + 4DE5:0D1A1 MUSIC_SETSOUNDCARDDRIVER + 4DE5:0D17E MUSIC_SETSOUNDCARD + 4DE5:0D165 MUSIC_DECREASESPEED + 4DE5:0D14C MUSIC_INCREASESPEED + 4DE5:0D134 MUSIC_INITSTEREO + 4DE5:0D115 MUSIC_INITMUTETABLE + 4DE5:0D0B1 MUSIC_SOLOCHANNEL + 4DE5:0D0AA MUSIC_UNMUTEALL + 4DE5:0D079 MUSIC_TOGGLECHANNEL + 4DE5:0D006 MUSIC_SETGLOBALVOLUME + 4DE5:0CFCA MUSIC_LASTORDER + 4DE5:0CF9E MUSIC_NEXTORDER + 4DE5:0CF95 MUSIC_GETSLAVECHANNELINFORMATIONTABLE + 4DE5:0CF8F MUSIC_GETHOSTCHANNELINFORMATIONTABLE + 4DE5:0CF39 MUSIC_PLAYSAMPLE + 4DE5:0CEB7 MUSIC_PLAYNOTE + 4DE5:0CEAF MUSIC_UPDATEPATTERNOFFSET + 4DE5:0CDC0 MUSIC_STOP + 4DE5:0CD6D MUSIC_KBPLAYSONG + 4DE5:0CD2C MUSIC_PLAYPARTSONG + 4DE5:0CCF5 MUSIC_PLAYSONG + 4DE5:0CCCB MUSIC_PLAYPATTERN + 4DE5:0CCB2 MUSIC_GETPLAYMODE2 + 4DE5:0CC9A MUSIC_GETPLAYMODE + 4DE5:0CC22 MUSIC_GETSAMPLELOCATION + 4DE5:0CBEC MUSIC_GETNUMBEROFINSTRUMENTS + 4DE5:0CBC4 MUSIC_GETNUMBEROFSAMPLES + 4DE5:0C254 MUSIC_GETINSTRUMENTMODE + 4DE5:0C232 MUSIC_SHOWAUTODETECTSOUNDCARD + 4DE5:0C17E MUSIC_AUTODETECTSOUNDCARD + 4DE5:0C082 MUSIC_GETSONGSEGMENT + 4DE5:0C061 MUSIC_UNINITMUSIC + 4DE5:0C056 MUSIC_CLEARALLINSTRUMENTS + 4DE5:0C034 MUSIC_CLEARINSTRUMENT + 4DE5:0C023 MUSIC_RELEASEALLPATTERNS + 4DE5:0C012 MUSIC_RELEASEALLSAMPLES + 4DE5:0C001 MUSIC_CLEARALLSAMPLENAMES + 4DE5:0BFDE MUSIC_CLEARSAMPLENAME + 4DE5:0BF62 MUSIC_RELEASESAMPLE + 4DE5:0BEA5 MUSIC_ALLOCATESAMPLE + 4DE5:0BDDD MUSIC_ALLOCATEPATTERN + 4DE5:0BD89 MUSIC_GETPATTERNLOCATIONNOCOUNT + 4DE5:0BD80 MUSIC_GETPATTERNLOCATION + 4DE5:0BD38 MUSIC_GETPATTERN + 4DE5:0BCF4 MUSIC_RELEASEPATTERN + 4DE5:0BCAF MUSIC_INITMUSIC + 4DE5:0BC9F MUSIC_REINITSOUNDCARD + 4DE5:0BC61 MUSIC_POLL + 4DE5:0BC51 MUSIC_GETWAVEFORM + 4DE5:09966 MIDIDATAAREA + 4DE5:09964 SONGDATAAREA + 4DE5:00352 CURRENTPATTERN + 5B41:0048C GLBL_DRIVERSCREEN + 5B41:00479 GLBL_TIMERSCREEN + 5B41:00411 GLBL_RESTOREMODE + 5B41:003ED GLBL_SAVEMODE + 5B41:003DA GLBL_RIGHTSQUAREBRACKET + 5B41:003C7 GLBL_LEFTSQUAREBRACKET + 5B41:003B4 GLBL_RIGHTBRACE + 5B41:003A1 GLBL_LEFTBRACE + 5B41:00395 GLBL_ALT_F8 + 5B41:00389 GLBL_ALT_F7 + 5B41:0037D GLBL_ALT_F6 + 5B41:00371 GLBL_ALT_F5 + 5B41:00365 GLBL_ALT_F4 + 5B41:00359 GLBL_ALT_F3 + 5B41:0034D GLBL_ALT_F2 + 5B41:00341 GLBL_ALT_F1 + 5B41:0033C GLBL_GETCURRENTMODE + 5B41:00337 GLBL_SETCURRENTMODE + 5B41:00300 GLBL_GETHEADERMODE + 5B41:002ED GLBL_CTRL_F12 + 5B41:002DD GLBL_CTRL_F5 + 5B41:002C5 GLBL_CTRL_F4 + 5B41:002AD GLBL_CTRL_F3 + 5B41:0029A GLBL_CTRL_F1 + 5B41:00287 GLBL_F12 + 5B41:0025E GLBL_F11_2 + 5B41:00256 GLBL_F11 + 5B41:00231 GLBL_F10 + 5B41:00211 GLBL_F9 + 5B41:00208 GLBL_F8 + 5B41:001F2 GLBL_SHIFT_F6 + 5B41:001DA GLBL_SHIFT_F9 + 5B41:001C7 GLBL_SHIFT_F1 + 5B41:001AF GLBL_LOADINSTRUMENT + 5B41:00197 GLBL_LOADSAMPLE + 5B41:00182 GLBL_F6 + 5B41:00132 GLBL_F5 + 5B41:00112 GLBL_F4_2 + 5B41:000F4 GLBL_F4 + 5B41:000DC GLBL_F3 + 5B41:00074 GLBL_F2_2 + 5B41:00069 GLBL_F2 + 5B41:00003 CURRENTMODE + 5B8A:01E9A FOURIER_POSTFUNCTION + 5B8A:01E96 FOURIER_IDLELIST + 5B8A:01DA5 FOURIER_DRAWSCREEN + 5B8A:01DA2 FOURIER_PREDRAWSCREEN + 5B8A:01D40 FOURIER_START + 5B8A:01C8A FOURIER_CHANGEPALETTE + 5B8A:01BB1 FOURIER_TRANSFORM + 5B8A:01B86 FOURIER_CREATETABLE + 5B8A:01B11 DISPLAY_SELECTDISPLAYLIST + 5B8A:01AAC DISPLAY_GETDISPLAYWINDOWDATA + 5B8A:01A40 DISPLAYUPDATESCREEN + 5B8A:01881 DISPLAYMINUS + 5B8A:01878 DISPLAYPLUS + 5B8A:0184A POSTDISPLAYDATA + 5B8A:0179F DRAWDISPLAYDATA + 5D74:003F7 E_GETINTERNALEMSHANDLE + 5D74:003F2 E_GETEMSVERSION + 5D74:003DC E_RESTOREEMSPAGEFRAME + 5D74:003C1 E_SAVEEMSPAGEFRAME + 5D74:003BA E_EMSAVAILABLE + 5D74:00374 E_ALLOCATEEMS + 5D74:002E7 E_RELEASEBLOCKEMS + 5D74:001FD E_ALLOCATEBLOCKEMS + 5D74:001DA E_MAPALIGNEDBLOCKEMS + 5D74:001D5 E_GETEMSPAGEFRAME + 5D74:001C4 E_UNINITEMS + 5D74:0019B E_MAPEMSMEMORY + 5D74:00180 E_MAPAVAILABLEEMSMEMORY + 5D74:00109 E_RELEASEEMS + 5D74:000EB E_GETFREEEMS + 5D74:0002A E_INITEMS + 5DB3:001AA ERROR_UNINITHANDLER + 5DB3:0018F ERROR_INITHANDLER + 5DCE:0368C I_GETPRESETENVELOPEOFFSET + 5DCE:03675 I_SAMPLEBUTTONHANDLER + 5DCE:03671 UPDATEWAVEFORM + 5DCE:03635 I_IDLEUPDATEENVELOPE + 5DCE:035E3 I_POSTPITCHPANCENTER + 5DCE:035D3 I_PREPITCHPANCENTER + 5DCE:035A1 I_DRAWPITCHPANCENTER + 5DCE:03589 I_TOGGLEMULTICHANNEL + 5DCE:0353D I_DECREASEPLAYCHANNEL + 5DCE:03522 I_INCREASEPLAYCHANNEL + 5DCE:03505 I_PLAYSAMPLE + 5DCE:034D8 MIDI_PLAYSAMPLE + 5DCE:034D1 I_TAGSAMPLE + 5DCE:034CA I_TAGINSTRUMENT + 5DCE:034BD I_CLEARTABLES + 5DCE:0343E I_SHOWINSTRUMENTPLAY + 5DCE:033F2 I_SHOWSAMPLEPLAY + 5DCE:033D6 I_INSTRUMENTLISTNOTEOFF + 5DCE:033A9 I_INSTRUMENTLISTSPACE + 5DCE:02B39 I_MAPENVELOPE + 5DCE:02A8D I_POSTENVELOPE + 5DCE:02A85 I_PREENVELOPE + 5DCE:029F5 I_DRAWENVELOPE + 5DCE:02966 I_UPDATEINSTRUMENT + 5DCE:02917 I_SWAPINSTRUMENTS + 5DCE:028EF I_COPYINSTRUMENT + 5DCE:028A5 I_SCALEINSTRUMENTVOLUMES + 5DCE:0285B I_SCALESAMPLEVOLUMES + 5DCE:0282E I_REPLACEINSTRUMENT + 5DCE:02813 I_SAMPLESPEEDSEMIDOWN + 5DCE:027F2 I_SAMPLESPEEDSEMIUP + 5DCE:027E1 I_HALVESAMPLESPEED + 5DCE:027C1 I_DOUBLESAMPLESPEED + 5DCE:02781 I_EXCHANGEINSTRUMENTS + 5DCE:02437 I_POSTNOTEWINDOW + 5DCE:023FB I_PRENOTEWINDOW + 5DCE:0233F I_DRAWNOTEWINDOW + 5DCE:021EA I_POSTINSTRUMENTWINDOW + 5DCE:02157 I_PLAYNOTE + 5DCE:0210F MIDI_PLAYNOTE + 5DCE:020E2 MIDI_NOTEOFF + 5DCE:020CD MIDI_CLEARTABLE + 5DCE:020C3 MIDI_FINDCHANNEL + 5DCE:020BB MIDI_GETCHANNEL + 5DCE:0207B MIDI_ALLOCATECHANNEL + 5DCE:02035 I_PREINSTRUMENTWINDOW + 5DCE:01F7A I_DRAWINSTRUMENTWINDOW + 5DCE:01DA6 I_TOGGLESAMPLEQUALITY + 5DCE:01BEE I_REVERSESAMPLE + 5DCE:01AB6 I_AMPLIFYSAMPLE + 5DCE:019CF I_CENTERSAMPLE + 5DCE:01972 I_RESIZESAMPLENOINT + 5DCE:0196A I_RESIZESAMPLE + 5DCE:016A0 I_REPLACESAMPLE + 5DCE:0161C I_SWAPSAMPLES + 5DCE:015D7 I_EXCHANGESAMPLES + 5DCE:01372 idle I_CLEARSAMPLENAME + 5DCE:01320 I_CUTSAMPLE + 5DCE:0124F I_CUTSAMPLEBEFORELOOP + 5DCE:011DC I_INVERTSAMPLE + 5DCE:01174 I_CONVERTSAMPLE + 5DCE:01131 I_DELETEINSTRUMENT + 5DCE:0111A I_PRINTC5FREQUENCY + 5DCE:01116 I_CALCULATEC5SPEED + 5DCE:010DE I_DELETESAMPLE + 5DCE:00F09 I_DRAWWAVEFORM + 5DCE:00ECB I_CHECKSUSLOOPVALUES + 5DCE:00E8D I_CHECKLOOPVALUES + 5DCE:00E25 I_SHOWSAMPLEINFO + 5DCE:00D7A I_SAMPLEUP + 5DCE:00D5D I_SAMPLEDOWN + 5DCE:00BC3 I_POSTSAMPLELIST + 5DCE:00B68 I_PRESAMPLELIST + 5DCE:00A71 I_DRAWSAMPLELIST + 5DCE:009C2 I_SELECTSCREEN + 5DCE:0099A I_GETSAMPLEOFFSET + 5DCE:00987 I_GETINSTRUMENTOFFSET + 5DCE:00981 I_GETINSTRUMENTSCREEN + 5DCE:00145 SAMPLEAMPLIFICATION + 5DCE:0013D INSTRUMENTEDIT + 5DCE:00135 NODEHELD + 5DCE:00127 MAXNODE + 5DCE:00121 NEWSAMPLESIZE + 5DCE:0011D SAMPLENUMBERINPUT + 5DCE:00011 SAMPLENUMBER + 5DCE:0000E INSTRUMENTSCREEN + 5DCE:0000C INSTRUMENTAMPLIFICATION + 6137:01DDC F_MIDI_PGDN + 6137:01DC4 F_MIDI_PGUP + 6137:01DB2 F_MIDI_DOWN + 6137:01D99 F_MIDI_UP + 6137:01D72 F_SHOWMIDIZXXINPUT + 6137:01D5B F_FILEQUIT + 6137:01D44 F_FILEDOSSHELL + 6137:01D32 F_FILESAVEAS + 6137:01D1B F_FILESAVECURRENT + 6137:01D06 F_FILENEW + 6137:01CF4 F_FILELOAD + 6137:01CE0 F_FILEMENU + 6137:01CCE F_SAMPLELIBRARY + 6137:01CBC F_RELOADGRAVIS + 6137:01CAA F_INSTRUMENTLIBRARY + 6137:01C98 F_INSTRUMENTLIST + 6137:01C86 F_SAMPLELIST + 6137:01C72 F_INSTRUMENTMENU + 6137:01C5E F_SAMPLEMENU + 6137:01C4C F_DRIVERSCREEN + 6137:01C35 F_CALCULATELENGTH + 6137:01C23 F_REINITSOUNDCARD + 6137:01C11 F_STOP + 6137:01BFF F_PLAYMARK + 6137:01BED F_PLAYORDER + 6137:01BDB F_PLAYPATTERN + 6137:01BC9 F_PLAYSONG + 6137:01BB7 F_INFOPAGE + 6137:01BA3 F_PLAYBACKMENU + 6137:01B91 F_HELP + 6137:01B84 F_MESSAGEEDITOR + 6137:01B77 F_VIEWORDERPAN + 6137:01B6A F_VIEWVARIABLES + 6137:01B5D F_VIEWPATTERN + 6137:01B44 F_MAINMENU + 6137:01A9E F_NEWSONG + 6137:01A96 F_RESET5NUMINPUTPOS + 6137:01A86 F_SETAMIGA + 6137:01A76 F_SETLINEAR + 6137:01A61 F_SETMONO + 6137:01A4C F_SETSTEREO + 6137:019DF F_SETCONTROLINSTRUMENT + 6137:019CF F_SETCONTROLSAMPLE + 6137:0195C F_CONFIGBUTTONSETUP + 6137:0191D F_DRAWSMCCHANNELS + 6137:018B8 F_DRAWHEADER + 6137:01798 F_POST5NUM + 6137:01779 F_PRE5NUM + 6137:01700 F_DRAW5NUM + 6137:015B1 F_POST3NUM + 6137:01592 F_PRE3NUM + 6137:01518 F_DRAW3NUM + 6137:013EF F_POSTTOGGLE + 6137:013BC F_PRETOGGLE + 6137:01346 F_DRAWTOGGLE + 6137:010E1 F_GOTOEMPTYLIST + 6137:0102A F_POSTSTRINGINPUT + 6137:01006 F_PRESTRINGINPUT + 6137:00F92 F_DRAWSTRINGINPUT + 6137:00EDD F_RETURN1 + 6137:00DF9 F_RETURN192 + 6137:00DF2 F_RETURN64 + 6137:00DEC F_RETURN0 + 6137:00DE8 F_REDRAWSCREEN + 6137:00DA6 F_SHOWCHANNELS + 6137:00D61 F_DRAWINFOLINE + 6137:00B6E F_POSTTHUMBBAR + 6137:00B22 F_POSTSCALABLETHUMBBAR + 6137:00A71 F_PRESCALABLETHUMBBAR + 6137:009BF F_PRETHUMBBAR + 6137:008D6 F_DRAWSCALABLETHUMBBAR + 6137:0080B F_DRAWTHUMBBAR + 6137:00505 F_POSTBUTTONOBJECT + 6137:004CC F_PREBUTTONOBJECT + 6137:00427 F_DRAWBUTTONOBJECT + 6137:003E0 F_CHARACTERDEFINITIONS + 6137:003D8 F_SETDIRECTMODE + 6137:003C8 F_POSTEXITOBJECT + 6137:00383 F_DRAWTEXTOBJECT + 6137:0036D F_DRAWBOXOBJECT + 6137:00369 F_CALLFARFUNCTION + 6137:00363 F_CALLFARPOSTFUNCTION + 6137:0035F F_CALLFARPREFUNCTION + 6137:00344 F_INSTRUMENTBUTTONHANDLER + 6137:00341 F_NOTHING + 6137:000D8 THUMBSTRINGENTER + 6316:0238C H_SETHELPCONTEXT + 6316:02377 H_HELPESC + 6316:0236D H_HELPPGDN + 6316:0235A H_HELPPGUP + 6316:0232F H_HELPDOWN + 6316:0231F H_HELPUP + 6316:022FD H_HELP + 6316:0228C H_DRAWHELP + 654F:00ABD MIDISEND + 654F:00AB6 MIDIBUFFEREMPTY + 654F:00AAD K_SETSCROLLLOCK + 654F:00A9B K_REMOVEKEYBOARDTYPE + 654F:00A46 K_INSTALLKEYBOARDTYPE + 654F:00A23 K_SHOWMIDIINPUT + 654F:009A6 K_DRAWTABLES + 654F:00996 K_RESETKEYBOARDTABLES + 654F:0098F K_ISKEYDOWN + 654F:00977 K_ISANYKEYDOWN + 654F:00966 K_CLEARKEYBOARDQUEUE + 654F:0070B K_GETKEY + 654F:006D7 K_ISKEYWAITING + 654F:006B3 K_UNINSTALLDOSHANDLER + 654F:00693 K_INSTALLDOSHANDLER + 654F:00651 K_UNINITKEYBOARD + 654F:005EA K_INITKEYBOARD + 65FF:0006F MMTSR_UNINSTALLMMTSR + 65FF:00001 MMTSR_INSTALLMMTSR + 6682:02392 MSG_GETMESSAGEOFFSET + 6682:0237D MSG_GETMESSAGELENGTH + 6682:020BE MSG_POSTMESSAGE + 6682:0208F MSG_PREMESSAGE + 6682:01FE5 MSG_DRAWMESSAGE + 6682:01FCB MSG_RESETMESSAGE + 68BC:0025B VESA_SETBLOCK + 68BC:00244 idle VESA_GETINFO + 68BC:00221 VESA_SETMODE + 68BC:00201 VESA_DETECT -Program entry point at 4793:0637 +Program entry point at 4794:0637 diff --git a/src/mz.c b/src/mz.c new file mode 100644 index 0000000..c500f83 --- /dev/null +++ b/src/mz.c @@ -0,0 +1,59 @@ +#include +#include + +#define m8 ((uint8_t*)m) // access mz by byte +uint32_t loadmz(mz* m, uint8_t* mem, uint32_t xsz, uint32_t seg, mz_start* z) { + + /*printf( + "mz\t%04X\n" + "bytes\t%u\n" + "pages\t%u\n" + "relsz\t%u\n" + "len\t%u\n" + "minall\t%u\n" + "maxall\t%u\n" + "ss\t%04X\n" + "sp\t%04X\n" + "sum\t%04X\n" + "ip\t%04X\n" + "cs\t%04X\n" + "rel*\t%04X\n" + "overlay\t%u\n" + ,m->mz + ,m->bytes + ,m->pages + ,m->relsz + ,m->len + ,m->minalloc + ,m->maxalloc + ,m->ss + ,m->sp + ,m->sum + ,m->ip + ,m->cs + ,m->rel + ,m->overlay + );*/ + + uint32_t sz = (((uint32_t)m->pages-1) << 9) + (m->bytes ? m->bytes : 512) - (m->len << 4); + + memcpy( // copy mz to memory + mem + (seg << 4), + m8 + (m->len << 4), + sz + ); + + for(int i = 0; i < m->relsz; i++) *(uint16_t*)( + mem + + (seg << 4) + + ((uint32_t)m->r[i].segment << 4) + + (uint32_t)m->r[i].offset + ) += seg; + + *z = (mz_start) { + m->ss+seg, + m->sp, + m->ip, + m->cs+seg + }; +} diff --git a/src/vm.c b/src/vm.c new file mode 100644 index 0000000..97ba3f2 --- /dev/null +++ b/src/vm.c @@ -0,0 +1,127 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define MSIZE 0x100000 // size of conventional memory + +/* x86 memory map + 0x00000 - 0x003FF IVT 0x400 + 0x00400 - 0x9FFFF FREE 0x9FC00 + 0xA0000 - 0xBFFFF VGA 0x20000 + 0xC0000 - 0xFFFFF FREE 0x40000 + + total freemem - 0xDFC00 - 916480 bytes/895.0K +*/ + +int main(int argc, char** argv) { + + struct stat s; + int ret = stat(argv[1], &s); + if(ret) exit(!!printf("invalid file!\n")); + + int kvm = open("/dev/kvm", O_RDWR | O_CLOEXEC); + + assert((ioctl(kvm, KVM_CHECK_EXTENSION, KVM_CAP_USER_MEMORY) ^ ioctl(kvm, KVM_GET_API_VERSION, NULL)) == 13); + + int vmfd = ioctl(kvm, KVM_CREATE_VM, (unsigned long)0), + vcpufd = ioctl(vmfd, KVM_CREATE_VCPU, (unsigned long)0), + codefd = open(argv[1], O_RDONLY); // load boot sector from file + + uint8_t* mem = mmap(NULL, MSIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); // allocate conventional memory for vm + + mz* mzbuf = malloc(s.st_size); + read(codefd, mzbuf, s.st_size); + close(codefd); + + mz_start ms; + uint32_t mzsz = loadmz(mzbuf, mem, s.st_size, 0x40, &ms); + free(mzbuf); + + printf("done\n"); + + struct kvm_userspace_memory_region memmap[2] = { + { + .guest_phys_addr = 0, + .memory_size = 0xA0000, + .userspace_addr = (uint64_t)mem, + }, + /*{ // implied map + .guest_phys_addr = 0xA0000, + .memory_size = 0x20000, + .userspace_addr = (uint64_t)mem, + },*/ + { + .guest_phys_addr = 0xC0000, + .memory_size = 0x40000, + .userspace_addr = (uint64_t)mem + 0xC0000, + }, + }; + + for(int i = 0; i < 2; i++) { + memmap[i].slot = i; // id of memory mapping + ioctl(vmfd, KVM_SET_USER_MEMORY_REGION, memmap + i); + } + + struct kvm_sregs sregs; + struct kvm_run* run; + size_t run_size = ioctl(kvm, KVM_GET_VCPU_MMAP_SIZE, NULL); // size of struct is. determined at runtime for some reason? + run = mmap(NULL, run_size, PROT_READ | PROT_WRITE, MAP_SHARED, vcpufd, 0); + + ioctl(vcpufd, KVM_GET_SREGS, &sregs); + + sregs.cs.base = ms.cs; + sregs.ss.base = ms.ss; + + sregs.cr0 = 0; + + sregs.cs.selector = 0; // probably protected mode related? + sregs.ss.selector = 0; + + ioctl(vcpufd, KVM_SET_SREGS, &sregs); + + struct kvm_regs regs = { + .rip = ms.ip, + .rsp = ms.sp, + .rflags = 0x2, + }; + + mem[((uint32_t)ms.cs << 4) + ms.ip] = 0xF4; // hlt + + ioctl(vcpufd, KVM_SET_REGS, ®s); + + printf("begin vm\n"); + + while(1) { + errno = 0; + ret = ioctl(vcpufd, KVM_RUN, NULL); + if(ret == -1) exit(!!printf("kvm error: %s\n", strerror(errno))); + switch (run->exit_reason) { + case KVM_EXIT_HLT: + exit(!printf("got instruction `hlt`, exiting\n")); + break; + case KVM_EXIT_IO: + + break; + case KVM_EXIT_INTR: + break; + case KVM_EXIT_INTERNAL_ERROR: + exit(printf("internal error %u\n", run->internal.suberror)); + break; + default: + exit(printf("vmexit %u\n", run->exit_reason)); + break; + } + } +}