/begin0
T 1
* 0000000C:00003733
# 
R 
L TOWNSILLUSION:CDDA Stop
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00003755
# 
R 
L TOWNSILLUSION:CDDA Pause
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00003D04
# 
R 
L TOWNSILLUSION:?
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00004458
# 
R 
L TOWNSILLUSION:INT 21H AH=First Param
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00004510
# 
R 
L TOWNSILLUSION:exit(); INT 21H AH=4CH
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00004550
# 
R 
L TOWNSILLUSION:Exit if BYTE PTR [0002B2AEH]!=0
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00004858
# 
R 
L TOWNSILLUSION:INT 21H EAX=[2B280H]
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00005172
# TOWNSILLUSION:Set Up YM2612 Timer
R 
L TOWNSILLUSION:Set Up YM2612 Timer
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:00005177
# TOWNSILLUSION:00H Initialize Sound BIOS
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:00005186
# TOWNSILLUSION:11H Write 1 byte YM2612
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00005573
# 
R 
L TOWNSILLUSION:Set Up YM2612 Interrupt and Handler
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:00005579
# TOWNSILLUSION:SoundBIOS Timer A Control 1
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:00005582
# TOWNSILLUSION:SoundBIOS Timer B Control 1
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:000056EB
# 
R 
L TOWNSILLUSION:SoundBIOS Call
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:00005770
# 
R 
L TOWNSILLUSION:SoundBIOS 43H Set Electric Volume
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:0000CF5A
# 
R 
L CDPLAYER:Monitor Current Position
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:0000CF91
# 
R 
L CDPLAYER:Copy Playing Track and In-Track Time
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:0000CFA6
# CDPLAYER:Playing Track
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000000C:0000CFB9
# CDPLAYER:In-Track Time
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:0000D21B
# 
R 
L CDPLAYER:INT 93H AX=53C0H Read SubQ
P 
% 0
M 0
/end
/begin0
T 1
* 0000000C:0000D23C
# 
R 
L CDPLAYER:BIOS error to ? error code
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:00000280
# 
R 
L EGB:ENTRY
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00000295
# EGB:(Prob)Jump to function
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:000021C4
# 
R 
L EGB:(Prob)Get VRAM bytes in rect
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:00002DD0
# 
R 
L EGB:DrawRect
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00002DD2
# X1Y1
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00002DDC
# X2Y2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003774
# EAX=(X1,Y1)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000377B
# Compare X1 and X2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003788
# Compare Y1 and Y2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003926
# EDI=(X2,Y2)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000392D
# SI=Y2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003931
# DI=X2-X1
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003939
# SI=Y2-Y1
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000396E
# EDX=(X2-X1)^2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003973
# EAX=(Y2-Y1)^2
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00003976
# EAX=dx*dx+dy*dy
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:00003B04
# 
R 
L EGB:DrawRect_?SubRoutine
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000411C
# ? buffer.  Probably for clipping.
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00004148
# (Prob)EGB_work
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000110:00004192
# 
R 
L LOOP(0110:422E)
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000441C
# Pointer to Xmin,Xmax
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00004458
# Source of AX to be MULed with BX
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00004467
# EAX may be broken by this point.
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:000044E0
# Prob Xmin
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:000044E8
# Prob Xmax
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00004551
# Pointer to Xmin,Xmax
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:00006043
# 
R 
L EGB:MOVSDx4?
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:0000B074
# 
R 
L EGB:CLAMP_Xmin_Xmax
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000B08A
# Left X
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:0000B08F
# Right X
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:0000B2AC
# 
R 
L EGB:(Prob)SQRT?
P 
% 0
M 0
/end
/begin0
T 1
* 00000110:0000F910
# 
R 
L MouseBIOS:Entry
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00010302
# Mouse BIOS Calling EGB Box-Read
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000110:00010304
# DS:ESI is param block. Ptr,DS,x1,y1,x2,y2
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00000000
# COMMENT TEST
R 
L DISKBIOS:INT_93H_ENTRY
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:000000C3
# 
R 
L DISKBIOS:Jump to Device
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001657
# 
R 
L CDROM:(Prob)Entry
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000016A1
# Clear outgoing CF
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000016DA
# CDROM:(Prob)Call function
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000016DD
# CDROM:Jump to Function (BX=Incoming_AH*2)
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001980
# 
R 
L CDROM:(Prob)AH=05H Read Sector HSG
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:0000198F
# Incoming AL
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:0000199D
# Incoming CH
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00001A40
# [BP+04H]=Outgoing BX
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:00001A74
# 
R 
L CDROM:AH=0EH
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001C21
# 
R 
L CDROM:(Prob)AH=50H_PlayCDDA
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00001D0F
# CDROM:[0031H]_IS_2ND_BYTE_OF_STATUS_BYTES
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00001D1E
# CDROM:07H=CDDAPlayDone?
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001D99
# 
R 
L CDROM:AX=52C0H CDDA Stop
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001E5E
# 
R 
L CDROM:(Prob)AH=54H Read TOC
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00001FE8
# 
R 
L CDROM:Check AL&0F0H=0C0H
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002087
# 
R 
L CDROM:(Prob)HSG to MSF
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:0000209E
# 
R 
L CDROM:BIN_TO_BCD
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000020B9
# 
R 
L CDROM:BCD to BIN
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002156
# 
R 
L CDROM:Issue Command 22H (Read Sector)
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002177
# 22H=Data Ready
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:00002193
# 
R 
L WAIT_FOR_SRQ
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000021A1
# 21H=Error
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002210
# 
R 
L CDROM:WAIT_DRQ_PUSH6+2BYTE_PARAM[0034H]_ISSUECMD[0033H]()
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002246
# First status byte must be no error.
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:0000224F
# ES:[DI]=0
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002270
# First track (must be 1)
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:00002278
# 
R 
L CDROM:Jump to error
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002299
# Last track number
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022A3
# CX=number of tracks
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022C6
# CD Length (min)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022D0
# CD Length (sec)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022DA
# CD Length (frame)
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:000022E2
# 
R 
L CDROM:ReadTOC Track Loop
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022EF
# 40H->Data Track  00H->Audio Track
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:000022FC
# Audio Track -> AH=1,BH=0
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002307
# ? Track -> AH=1,BH=0
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002312
# Data Track -> AH=2,BH=80H
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:00002316
# ES:[SI]=Buffer Top, Set Disc Type
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:0000234B
# 
R 
L CDROM:Pop CX and Return with error code
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:0000234C
# 
R 
L CDROM:Return with error code
P 
% 0
M 0
/end
/begin0
T 2
* 00000256:000023FF
# 
R 
L ERREND
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002407
# 
R 
L CDROM:ISSUE_CMD_A0H_THEN_READ_STATUS_[003CH]
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:0000253B
# 
R 
L CDROM:CLEAR_8BYTE_PARAM_BUFFER
P 
% 0
M 0
/end
/begin0
T 0
* 00000256:0000253D
# CDROM:This doesn't do anything.
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:0000255D
# 
R 
L CDROM:WAIT_DRQ_PUSH8BYTE_PARAM[0034H]_ISSUECMD[0033H]
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002635
# 
R 
L CDROM:WAIT_FOR_AND_READ_STATUS_TO[003CH]_IF_IRQ_CLEAR_IRQ
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000026BA
# 
R 
L CDROM:Set up DMA
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000026C5
# 
R 
L CDROM:(Prob)Set DMA Address
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000026DC
# 
R 
L CDROM:(Prob)Read DMA Address
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000026F3
# 
R 
L CDROM:Set up DMA
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002761
# 
R 
L CDROM:Wait for DMA transfer start?
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000027A5
# 
R 
L CDROM:STATUS_BYTES_TO_BIOS_ERROR_CODE
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:000028BC
# 
R 
L CDROM:Command A0H
P 
% 0
M 0
/end
/begin0
T 1
* 00000256:00002906
# 
R 
L CDROM:(Prob)Wait 30us
P 
% 0
M 0
/end
/begin0
T 0
* 00000A54:00003A03
# CD-ROM BIOS Command Read Sector HSG
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00000A54:00003B32
# 
R 
L TOWNSCD:Issue CD-ROM BIOS Command
P 
% 0
M 0
/end
/begin0
T 0
* 00005359:000000F0
# Why is this guy return 1?
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005359:000000F5
# Return Code 1.  Is it ok or not?
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005359:00000100
# Looks like the RUN386 is exiting inside this function.
R 
L 
P 
% 0
M 0
/end
/begin0
T 4
* 00005359:0000017B
# 
R 
L RUN386:?JumpTable
P 
% 34
M 0
/end
/begin0
T 1
* 0000576B:0000000E
# 
R 
L RUN386:OPEN_FILE
P 
% 0
M 0
/end
/begin0
T 1
* 0000576B:00000022
# 
R 
L RUN386:CLOSE_FILE
P 
% 0
M 0
/end
/begin0
T 1
* 0000576B:00000037
# 
R 
L RUN386:FREAD
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000003A
# BX=File Handle
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000003D
# CX=Number of bytes
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:00000040
# DS:DX=buffer pointer
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:00000043
# INT 21H AH=3FH READ_FROM_FILE
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 0000576B:00000068
# 
R 
L RUN386:SEEK
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000006B
# BX=File Handle
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000006E
# AL=Origin 00:SEEK_SET 01:SEEK_CUR 02:SEEK_END
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:00000071
# DX=Number of bytes(low)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:00000075
# CX=Number of bytes(high)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000007C
# INT 21H AH=42H SEEK
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 0000576B:0000018C
# INT 21H AH=30H GET_DOS_VERSION
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 0000576B:0000024C
# 
R 
L RUN386:CPU Test. MUL R32
P 
% 0
M 0
/end
/begin0
T 1
* 0000576B:00001E21
# 
R 
L RUN386:TEST_INT_6(UNDEFINED_INSTRUCTION)
P 
% 0
M 0
/end
/begin0
T 4
* 0000576B:00001E48
# 
R 
L Unused
P 
% 1
M 0
/end
/begin0
T 1
* 0000576B:00001E59
# 
R 
L RUN386:TEMPORARY_INT_6(UNDEFINED_INST)_HANDLER
P 
% 0
M 0
/end
/begin0
T 0
* 000059FD:00000016
# .EXP Header Read Buffer (1E+5A bytes)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 000059FD:00000022
# Receive File Pointer
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 000059FD:00000059
# 
R 
L NO_ERROR_IN_HEADE_READING
P 
% 0
M 0
/end
/begin0
T 0
* 000059FD:00000072
# SEEK_SET
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 000059FD:0000007F
# File Pointer
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 000059FD:00000203
# 
R 
L Return 1;
P 
% 0
M 0
/end
/begin0
T 1
* 000059FD:0000020A
# 
R 
L RUN386:? FUNCTION
P 
% 0
M 0
/end
/begin0
T 2
* 000059FD:00000265
# 
R 
L RUN386:Return from INT 6 test
P 
% 0
M 0
/end
/begin0
T 2
* 000059FD:000004D9
# 
R 
L Return 1;
P 
% 0
M 0
/end
/begin0
T 1
* 00005B24:00000943
# 
R 
L RUN386:READ_EXP_HEADER
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:0000094C
# INT 0 if stack overflow
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:0000094E
# Stack frame 1E bytes for .EXP header.
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:0000096B
# Return 1 (Prob:Cannot Open File)
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:00000982
# Read first 1EH bytes of the .EXP
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:0000099F
# 4D 5A='MZ'
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:000009B9
# CX=SEEK_SET
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:000009FF
# [BP+10H] is larger buffer for header?
R 
L 
P 
% 0
M 0
/end
/begin0
T 0
* 00005B24:00000A02
# For TMENU.EXP run, DI=30F6
R 
L 
P 
% 0
M 0
/end
/begin0
T 2
* 00005B24:00000A8C
# 
R 
L Return 0;
P 
% 0
M 0
/end
/begin0
T 2
* 00005B24:00000A90
# 
R 
L FCLOSE_AND_RETURN_3
P 
% 0
M 0
/end
/begin0
T 2
* 00005B24:00000A9F
# 
R 
L FCLOSE_AND_RETURN_5
P 
% 0
M 0
/end
/begin0
T 2
* 00005B24:00000AAF
# 
R 
L Return AX;
P 
% 0
M 0
/end
/begin0
T 0
* 00005DD3:00000452
# INT 21H AH=62H Get PSP address
R 
L 
P 
% 0
M 0
/end
/begin0
T 1
* 00005F89:00000004
# 
R 
L RUN386:(PROB)Clean Up and Exit
P 
% 0
M 0
/end
/begin0
T 1
* 00005FA9:00000008
# 
R 
L RUN386:NOP
P 
% 0
M 0
/end
/begin0
T 1
* 00005FD8:00000002
# 
R 
L RUN386:CALL CALL INT 21H
P 
% 0
M 0
/end
/begin0
T 1
* 00005FD8:00000080
# 
R 
L RUN386:EXIT() INT 21H AH=4CH
P 
% 0
M 0
/end
/begin0
T 1
* 000060F7:00000002
# 
R 
L RUN386:CALL INT 21H
P 
% 0
M 0
/end
/begin0
T 1
* 0000FC00:00001686
# 
R 
L SYSROM:Read CMOS to Buffer
P 
% 0
M 0
/end
/begin0
T 1
* 0000FC00:0000170A
# 
R 
L SYSROM:Clear CMOS
P 
% 0
M 0
/end
