; ; 浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; This file is generated by The Interactive Disassembler (IDA) FW ; Copyright (c) 1997 by DataRescue sprl, ; Professional version of IDA is at http://www.idapro.com ; 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; seg000:0000 ; File Name C:\NEOVGA.ROM seg000:0000 ; Format Binary seg000:0000 ; Base Address: C000h Range: C0000h - CC000h Loaded length: C000h seg000:0000 seg000:0000 p586n seg000:0000 seg000:0000 ;様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 seg000:0000 seg000:0000 seg000 segment byte public 'CODE' use16 seg000:0000 assume cs:seg000 seg000:0000 seg000:0000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing seg000:0000 db 55h ; U seg000:0001 db 0AAh ; seg000:0002 byte_0_2 db 60h ; DATA XREF: sub_0_4F85+9r seg000:0003 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0003 jmp vgainit seg000:0003 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0006 db 0 ; seg000:0007 db 0 ; seg000:0008 db 0 ; seg000:0009* db 0 seg000:000A*byte_0_A db 0 ; DATA XREF: seg000:15CCr seg000:000A* ; vgainit+CFw seg000:000B db 0 ; seg000:000C*byte_0_C db 1Dh ; DATA XREF: sub_0_4F85+15w seg000:000C* ; sub_0_4F85+20w seg000:000D*byte_0_D db 5 ; DATA XREF: vgainit+13Aw seg000:000E db 63h ; c seg000:000F db 4Ah ; J seg000:0010 db 0 ; seg000:0011 db 0 ; seg000:0012 db 0 ; seg000:0013 db 0 ; seg000:0014 db 0 ; seg000:0015 db 0 ; seg000:0016 db 0 ; seg000:0017 db 0 ; seg000:0018 db 30h ; 0 seg000:0019 db 0 ; seg000:001A db 0 ; seg000:001B db 0 ; seg000:001C db 0 ; seg000:001D db 0 ; seg000:001E aIbmuT db 'IBMu磔',0 seg000:0027 db 0 ; seg000:0028 db 0 ; seg000:0029 db 0 ; seg000:002A db 0 ; seg000:002B db 0 ; seg000:002C db 0 ; seg000:002D db 0 ; seg000:002E db 0 ; seg000:002F db 0 ; seg000:0030 aPcir db 'PCIR' seg000:0035 db 10h ; seg000:0036*byte_0_36 db 5 ; DATA XREF: bl03+Er seg000:0036* ; vgainit+135r seg000:0036* ; vgainit+149w seg000:0037 db 0 ; seg000:0038 db 0 ; seg000:0039 db 0 ; seg000:003A db 18h ; seg000:003B db 0 ; seg000:003C db 0 ; seg000:003D db 0 ; seg000:003E db 0 ; seg000:003F db 3 ; seg000:0040 db 60h ; ` seg000:0041 db 0 ; seg000:0042 db 9 ; seg000:0043 db 1 ; seg000:0044*byte_0_44 db 0 ; DATA XREF: vgainit+D4w seg000:0045*byte_0_45 db 80h ; DATA XREF: vgainit+CAw seg000:0046 db 0 ; seg000:0047 db 0 ; seg000:0048 aM db 'MagicGraph 256 AV 48K',0 seg000:005E aCopyright19949 db 'Copyright 1994-98 NeoMagic Corp. All Rights Reserved.',0 seg000:0094 aCigamoen db 'CiGaMoEn',0 seg000:009D aNmx5_def db 'nmx5.def',0 seg000:00A6 db 0 ; seg000:00A7 db 0 ; seg000:00A8 db 0 ; seg000:00A9 db 0 ; seg000:00AA word_0_AA dw 111h ; DATA XREF: bl03r seg000:00AC word_0_AC dw 1 ; DATA XREF: bl03+7r seg000:00AE db 0 ; seg000:00AF word_0_AF dw 2386h ; DATA XREF: sub_0_A78+C7r seg000:00AF ; sub_0_4791+1Cr seg000:00AF ; vgainit+129r seg000:00AF ; sub_0_B2A3+2r seg000:00AF ; sub_0_B2A3+113r seg000:00AF ; sub_0_B2A3+11Er seg000:00AF ; sub_0_B5E9+16r seg000:00AF ; sub_0_B5E9+24r seg000:00AF ; sub_0_B7B4+8r seg000:00AF ; sub_0_B7E0+F2r seg000:00AF ; sub_0_B7E0+10Er seg000:00B1 word_0_B1 dw 341h ; DATA XREF: seg000:03F6r seg000:00B1 ; sub_0_601+78r seg000:00B1 ; sub_0_601+263r seg000:00B1 ; seg000:106Ar seg000:00B1 ; sub_0_1BD0r sub_0_2037+43r seg000:00B1 ; sub_0_20BD+3r seg000:00B1 ; sub_0_2124+2r seg000:00B1 ; sub_0_22C0+4Cr seg000:00B1 ; sub_0_22C0+64r seg000:00B1 ; seg000:3035r seg000:00B1 ; seg000:3099r seg000:00B1 ; bl04+Cr vgainit+15Fr seg000:00B1 ; sub_0_B2A3+E9r seg000:00B1 ; sub_0_B2A3+FFr seg000:00B1 ; sub_0_B4C0+6r seg000:00B1 ; sub_0_B4C0+4Ar seg000:00B1 ; sub_0_B4C0+98r seg000:00B1 ; sub_0_B56F+64r seg000:00B1 ; sub_0_B5E9+1r seg000:00B1 ; sub_0_B7E0+1Fr seg000:00B1 ; sub_0_B7E0+47r seg000:00B1 ; sub_0_B7E0+B7r seg000:00B1 ; sub_0_B7E0+D8r seg000:00B1 ; sub_0_B7E0+102r seg000:00B3 word_0_B3 dw 0AE05h ; DATA XREF: sub_0_601+2A8r seg000:00B3 ; seg000:1301r seg000:00B3 ; sub_0_1BD0+43r seg000:00B3 ; sub_0_2037+1Ar seg000:00B3 ; seg000:301Dr seg000:00B3 ; bl07+35r bl07+40r seg000:00B3 ; bl07+4Br bl07+243r seg000:00B3 ; bl07+287r bl08+16r seg000:00B3 ; TV0609+C8r sub_0_4791+4r seg000:00B3 ; sub_0_4791+2Dr seg000:00B3 ; sub_0_B2A3+1B2r seg000:00B3 ; sub_0_B66D+16r seg000:00B3 ; sub_0_B7E0+8r seg000:00B3 ; sub_0_B7E0+3Br seg000:00B3 ; sub_0_B7E0+8Fr seg000:00B5 db 0F0h ; seg000:00B6 db 0 ; seg000:00B7 word_0_B7 dw 80h ; DATA XREF: sub_0_B6BC+4r seg000:00B9 byte_0_B9 db 3 ; DATA XREF: sub_0_B7E0+36r seg000:00BA byte_0_BA db 0ECh ; DATA XREF: getChrontelREG+11r seg000:00BA ; getChrontelREG+26r seg000:00BA ; setChrontelReg+11r seg000:00BA ; sub_0_4791+11r seg000:00BB db 9 ; seg000:00BC db 26h ; & seg000:00BD db 30h ; 0 seg000:00BE db 0 ; seg000:00BF db 25h ; % seg000:00C0* db 0 seg000:00C1 db 0Ah ; seg000:00C2 db 0 ; seg000:00C3 db 0Eh ; seg000:00C4 db 0 ; seg000:00C5 db 0Fh ; seg000:00C6 db 0 ; seg000:00C7 db 10h ; seg000:00C8 db 37h ; 7 seg000:00C9 db 11h ; seg000:00CA db 0 ; seg000:00CB db 12h ; seg000:00CC db 20h ; seg000:00CD db 15h ; seg000:00CE db 0 ; seg000:00CF db 16h ; seg000:00D0 db 0 ; seg000:00D1 db 19h ; seg000:00D2 db 3 ; seg000:00D3 db 1Ah ; seg000:00D4 db 0 ; seg000:00D5 db 1Bh ; seg000:00D6 db 38h ; 8 seg000:00D7 db 1Ch ; seg000:00D8 db 11h ; seg000:00D9 db 1Eh ; seg000:00DA db 0C0h ; seg000:00DB db 1Fh ; seg000:00DC db 4 ; seg000:00DD db 3Ah ; : seg000:00DE db 0 ; seg000:00DF db 3Bh ; ; seg000:00E0 db 0 ; seg000:00E1 db 3Ch ; < seg000:00E2 db 0 ; seg000:00E3 db 3Dh ; = seg000:00E4 db 0 ; seg000:00E5 db 3Eh ; > seg000:00E6 db 0 ; seg000:00E7 db 3Fh ; ? seg000:00E8 db 0 ; seg000:00E9 db 43h ; C seg000:00EA db 1 ; seg000:00EB db 47h ; G seg000:00EC db 0 ; seg000:00ED db 82h ; seg000:00EE db 0 ; seg000:00EF db 90h ; seg000:00F0 db 10h ; seg000:00F1 db 91h ; seg000:00F2 db 0 ; seg000:00F3 db 92h ; seg000:00F4 db 4 ; seg000:00F5 db 93h ; seg000:00F6 db 0C0h ; seg000:00F7 db 94h ; seg000:00F8 db 9 ; seg000:00F9 db 95h ; seg000:00FA db 40h ; @ seg000:00FB db 0A0h ; seg000:00FC db 2Ah ; * seg000:00FD db 0A1h ; seg000:00FE db 0 ; seg000:00FF db 0A2h ; seg000:0100 db 11h ; seg000:0101 word_0_101 dw 0A5h ; CODE XREF: seg000:61B6u seg000:0101 ; DATA XREF: seg000:62CAo seg000:0103 db 0A6h ; seg000:0104 db 2Ah ; * seg000:0105 db 0A7h ; seg000:0106 db 0 ; seg000:0107 db 0AEh ; seg000:0108 db 0 ; seg000:0109 db 0AFh ; seg000:010A db 1 ; seg000:010B db 0B0h ; seg000:010C db 0 ; seg000:010D db 0BDh ; seg000:010E db 2 ; seg000:010F db 0BEh ; seg000:0110 db 5Fh ; _ seg000:0111 db 0C4h ; seg000:0112 db 0 ; seg000:0113 db 0Dh ; seg000:0114 db 0 ; seg000:0115 db 0FFh ; seg000:0116 db 0FFh ; seg000:0117 db 0FFh ; seg000:0118 db 0FFh ; seg000:0119 db 0FFh ; seg000:011A db 0FFh ; seg000:011B db 0FFh ; seg000:011C db 0FFh ; seg000:011D db 0FFh ; seg000:011E db 0FFh ; seg000:011F db 1Ch ; seg000:0120 db 3 ; seg000:0121 db 1Dh ; seg000:0122 db 0 ; seg000:0123 db 1Eh ; seg000:0124 db 0 ; seg000:0125 db 1Fh ; seg000:0126 db 0 ; seg000:0127 db 21h ; ! seg000:0128 db 0 ; seg000:0129 db 23h ; # seg000:012A db 0 ; seg000:012B db 2Fh ; / seg000:012C db 0 ; seg000:012D db 81h ; seg000:012E db 37h ; 7 seg000:012F db 82h ; seg000:0130 db 2 ; seg000:0131 db 0BBh ; seg000:0132 db 0 ; seg000:0133 db 0CBh ; seg000:0134 db 4 ; seg000:0135 db 0FFh ; seg000:0136 db 0FFh ; seg000:0137 db 0FFh ; seg000:0138 db 0FFh ; seg000:0139 db 0FFh ; seg000:013A db 0FFh ; seg000:013B db 0FFh ; seg000:013C db 0FFh ; seg000:013D byte_0_13D db 1Eh ; DATA XREF: sub_0_3B9E+13r seg000:013D ; sub_0_B62F+Ar seg000:013E byte_0_13E db 1Eh ; DATA XREF: sub_0_3B9E+1Dr seg000:013F db 0Dh ; seg000:0140 db 8 ; seg000:0141 db 3 ; seg000:0142 db 3Eh ; > seg000:0143 db 8 ; seg000:0144 db 0Fh ; seg000:0145 db 15h ; seg000:0146 db 8 ; seg000:0147 db 4 ; seg000:0148 db 28h ; ( seg000:0149 db 8 ; seg000:014A db 8 ; seg000:014B db 17h ; seg000:014C db 8 ; seg000:014D db 4 ; seg000:014E db 5Fh ; _ seg000:014F db 8 ; seg000:0150 db 12h ; seg000:0151 db 1Bh ; seg000:0152 db 8 ; seg000:0153 db 4 ; seg000:0154 db 17h ; seg000:0155 db 8 ; seg000:0156 db 3 ; seg000:0157 db 3Dh ; = seg000:0158 db 8 ; seg000:0159 db 8 ; seg000:015A db 1Bh ; seg000:015B db 8 ; seg000:015C db 3 ; seg000:015D db 1Bh ; seg000:015E db 8 ; seg000:015F db 3 ; seg000:0160 db 1Dh ; seg000:0161 db 8 ; seg000:0162 db 3 ; seg000:0163 db 2Eh ; . seg000:0164 db 8 ; seg000:0165 db 5 ; seg000:0166 db 51h ; Q seg000:0167 db 8 ; seg000:0168 db 8 ; seg000:0169 db 29h ; ) seg000:016A db 8 ; seg000:016B db 3 ; seg000:016C db 2Ah ; * seg000:016D db 8 ; seg000:016E db 3 ; seg000:016F db 2Bh ; + seg000:0170 db 8 ; seg000:0171 db 3 ; seg000:0172 db 34h ; 4 seg000:0173 db 8 ; seg000:0174 db 3 ; seg000:0175 db 69h ; i seg000:0176 db 8 ; seg000:0177 db 6 ; seg000:0178 db 2Eh ; . seg000:0179 db 0 ; seg000:017A db 4 ; seg000:017B db 0Ah ; seg000:017C db 0 ; seg000:017D db 5 ; seg000:017E db 43h ; C seg000:017F db 0 ; seg000:0180 db 20h ; seg000:0181 db 0FFh ; seg000:0182 db 0FFh ; seg000:0183 db 0FFh ; seg000:0184 db 0FFh ; seg000:0185 db 0FFh ; seg000:0186 db 0FFh ; seg000:0187 db 0FFh ; seg000:0188 db 0FFh ; seg000:0189 db 0FFh ; seg000:018A db 0FFh ; seg000:018B db 0FFh ; seg000:018C db 0FFh ; seg000:018D db 0FFh ; seg000:018E db 0FFh ; seg000:018F db 0FFh ; seg000:0190 db 0FFh ; seg000:0191 db 0FFh ; seg000:0192 db 0FFh ; seg000:0193 db 1Eh ; seg000:0194 db 8 ; seg000:0195 db 5 ; seg000:0196 db 1Bh ; seg000:0197 db 8 ; seg000:0198 db 4 ; seg000:0199 db 17h ; seg000:019A db 8 ; seg000:019B db 3 ; seg000:019C db 2Bh ; + seg000:019D db 8 ; seg000:019E db 6 ; seg000:019F db 28h ; ( seg000:01A0 db 8 ; seg000:01A1 db 5 ; seg000:01A2 db 1Fh ; seg000:01A3 db 0 ; seg000:01A4 db 8 ; seg000:01A5 db 16h ; seg000:01A6 db 0 ; seg000:01A7 db 5 ; seg000:01A8 db 1Dh ; seg000:01A9 db 0 ; seg000:01AA db 6 ; seg000:01AB db 28h ; ( seg000:01AC db 0 ; seg000:01AD db 8 ; seg000:01AE db 26h ; & seg000:01AF db 0 ; seg000:01B0 db 7 ; seg000:01B1 db 19h ; seg000:01B2 db 0 ; seg000:01B3 db 4 ; seg000:01B4 db 1Bh ; seg000:01B5 db 0 ; seg000:01B6 db 4 ; seg000:01B7 db 1Ch ; seg000:01B8 db 0 ; seg000:01B9 db 4 ; seg000:01BA db 40h ; @ seg000:01BB db 0 ; seg000:01BC db 0Ah ; seg000:01BD db 2Bh ; + seg000:01BE db 0 ; seg000:01BF db 6 ; seg000:01C0 db 27h ; ' seg000:01C1 db 0 ; seg000:01C2 db 5 ; seg000:01C3 db 1Bh ; seg000:01C4 db 0 ; seg000:01C5 db 3 ; seg000:01C6 db 2Bh ; + seg000:01C7 db 0 ; seg000:01C8 db 5 ; seg000:01C9 db 2Dh ; - seg000:01CA db 0 ; seg000:01CB db 5 ; seg000:01CC db 1Fh ; seg000:01CD db 0 ; seg000:01CE db 3 ; seg000:01CF db 30h ; 0 seg000:01D0 db 0 ; seg000:01D1 db 5 ; seg000:01D2 db 0FFh ; seg000:01D3 db 0FFh ; seg000:01D4 db 0FFh ; seg000:01D5 db 30h ; 0 seg000:01D6 db 30h ; 0 seg000:01D7 db 31h ; 1 seg000:01D8 db 32h ; 2 seg000:01D9 db 0 ; seg000:01DA word_0_1DA dw 3515h ; DATA XREF: vgainit+F4r seg000:01DA ; sub_0_B2A3+10r seg000:01DA ; sub_0_B2A3+A8r seg000:01DC db 0ACh ; seg000:01DD db 4Fh ; O seg000:01DE db 0BCh ; seg000:01DF db 4Fh ; O seg000:01E0 db 0CAh ; seg000:01E1 db 4Fh ; O seg000:01E2 db 0FFh ; seg000:01E3 db 0FFh ; seg000:01E4 db 56h ; V seg000:01E5 db 49h ; I seg000:01E6 db 4Ah ; J seg000:01E7 db 41h ; A seg000:01E8 db 59h ; Y seg000:01E9 db 20h ; seg000:01EA db 4Dh ; M seg000:01EB db 49h ; I seg000:01EC db 4Eh ; N seg000:01ED db 54h ; T seg000:01EE db 20h ; seg000:01EF db 4Dh ; M seg000:01F0 db 50h ; P seg000:01F1 db 20h ; seg000:01F2 db 0Dh ; seg000:01F3 db 8 ; seg000:01F4 db 3 ; seg000:01F5 db 3Eh ; > seg000:01F6 db 8 ; seg000:01F7 db 0Fh ; seg000:01F8 db 15h ; seg000:01F9 db 8 ; seg000:01FA db 4 ; seg000:01FB db 28h ; ( seg000:01FC db 8 ; seg000:01FD db 8 ; seg000:01FE db 17h ; seg000:01FF db 8 ; seg000:0200 db 4 ; seg000:0201 db 5Fh ; _ seg000:0202 db 8 ; seg000:0203 db 12h ; seg000:0204 db 1Bh ; seg000:0205 db 8 ; seg000:0206 db 4 ; seg000:0207 db 17h ; seg000:0208 db 8 ; seg000:0209 db 3 ; seg000:020A db 3Dh ; = seg000:020B db 8 ; seg000:020C db 8 ; seg000:020D db 1Bh ; seg000:020E db 8 ; seg000:020F db 3 ; seg000:0210 db 0Dh ; seg000:0211 db 0 ; seg000:0212 db 3 ; seg000:0213 db 0Eh ; seg000:0214 db 0 ; seg000:0215 db 3 ; seg000:0216 db 2Ah ; * seg000:0217 db 0 ; seg000:0218 db 0Ah ; seg000:0219 db 28h ; ( seg000:021A db 0 ; seg000:021B db 8 ; seg000:021C db 14h ; seg000:021D db 0 ; seg000:021E db 3 ; seg000:021F db 1Ah ; seg000:0220 db 0 ; seg000:0221 db 4 ; seg000:0222 db 15h ; seg000:0223 db 0 ; seg000:0224 db 3 ; seg000:0225 db 20h ; seg000:0226 db 0 ; seg000:0227 db 4 ; seg000:0228 db 0FFh ; seg000:0229 db 0FFh ; seg000:022A db 0FFh ; seg000:022B seg000:022B ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:022B seg000:022B ; S u b r o u t i n e seg000:022B seg000:022B VGAwGR15shift proc near ; CODE XREF: seg000:15DDp seg000:022B ; seg000:1606p seg000:022B ; seg000:18F0p seg000:022B ; seg000:191Bp seg000:022B ; seg000:1988p seg000:022B ; seg000:19A3p seg000:022B ; seg000:19C0p seg000:022B ; seg000:1A1Bp seg000:022B ; seg000:1A3Dp seg000:022B ; seg000:1B83p seg000:022B ; seg000:5938p seg000:022B ; seg000:5948p seg000:022B ; seg000:6170p seg000:022B push ax seg000:022C mov al, 15h seg000:022E mov ah, dl seg000:0230 shl ah, 2 seg000:0233 call VGAwGR seg000:0236 pop ax seg000:0237 retn seg000:0237 VGAwGR15shift endp seg000:0237 seg000:0238 seg000:0238 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0238 seg000:0238 ; S u b r o u t i n e seg000:0238 seg000:0238 VGAwGR15 proc near ; CODE XREF: seg000:1ABEp seg000:0238 push ax seg000:0239 mov al, 15h seg000:023B mov ah, dl seg000:023D call VGAwGR seg000:0240 pop ax seg000:0241 retn seg000:0241 VGAwGR15 endp seg000:0241 seg000:0242 seg000:0242 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0242 seg000:0242 ; S u b r o u t i n e seg000:0242 seg000:0242 sub_0_242 proc near ; CODE XREF: sub_0_16F0+9p seg000:0242 push ax seg000:0243 push dx seg000:0244 mov dx, 3CEh seg000:0247 mov al, 11h seg000:0249 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0249 ; seg000:024A in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:024A ; seg000:024B and ah, 0FCh seg000:024E or ah, 1 seg000:0251 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0251 ; enable set/reset seg000:0252 pop dx seg000:0253 pop ax seg000:0254 retn seg000:0254 sub_0_242 endp seg000:0254 seg000:0255 seg000:0255 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0255 seg000:0255 ; S u b r o u t i n e seg000:0255 seg000:0255 sub_0_255 proc near ; CODE XREF: seg000:1B17p seg000:0255 ; sub_0_1B23+8p seg000:0255 push ax seg000:0256 push dx seg000:0257 mov al, 15h seg000:0259 mov dx, 3CEh seg000:025C out dx, al ; EGA: graph 1 and 2 addr reg: seg000:025C ; seg000:025D in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:025D ; seg000:025E add ah, 4 seg000:0261 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0261 ; read map select. seg000:0261 ; Data bits 0-2 select map # for read mode 00. seg000:0262 pop dx seg000:0263 pop ax seg000:0264 retn seg000:0264 sub_0_255 endp seg000:0264 seg000:0265 seg000:0265 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0265 seg000:0265 ; S u b r o u t i n e seg000:0265 seg000:0265 sub_0_265 proc near ; CODE XREF: sub_0_16F0+3Fp seg000:0265 push ax seg000:0266 push dx seg000:0267 mov dx, 3CEh seg000:026A mov al, 11h seg000:026C out dx, al ; EGA: graph 1 and 2 addr reg: seg000:026C ; seg000:026D in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:026D ; seg000:026E and ah, 0FCh seg000:0271 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0271 ; seg000:0272 pop dx seg000:0273 pop ax seg000:0274 retn seg000:0274 sub_0_265 endp seg000:0274 seg000:0275 seg000:0275 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0275 seg000:0275 ; S u b r o u t i n e seg000:0275 seg000:0275 sub_0_275 proc near ; CODE XREF: sub_0_16F0+45p seg000:0275 ; sub_0_1818+59p seg000:0275 ; sub_0_189A+1Fp seg000:0275 push ax seg000:0276 push dx seg000:0277 push ax seg000:0278 mov al, 15h seg000:027A call VGAwGR seg000:027D pop ax seg000:027E mov ah, al seg000:0280 mov al, 16h seg000:0282 call VGAwGR seg000:0285 pop dx seg000:0286 pop ax seg000:0287 retn seg000:0287 sub_0_275 endp seg000:0287 seg000:0288 seg000:0288 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0288 seg000:0288 ; S u b r o u t i n e seg000:0288 seg000:0288 sub_0_288 proc near ; CODE XREF: int_10_entry+23p seg000:0288 push ax seg000:0289 push dx seg000:028A push bx seg000:028B mov dx, 3CEh seg000:028E mov al, 9 seg000:0290 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0290 ; seg000:0291 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0291 ; seg000:0292 mov bx, ax seg000:0294 mov ah, 26h ; '&' seg000:0296 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0296 ; seg000:0297 pushf seg000:0298 cli seg000:0299 call getCRbase seg000:029C mov al, 1Dh seg000:029E out dx, al seg000:029F in ax, dx seg000:02A0 or ah, ah seg000:02A2 jnz loc_0_2B6 seg000:02A4 push ax seg000:02A5 mov al, 21h ; '!' seg000:02A7 out dx, al seg000:02A8 in ax, dx seg000:02A9 and ah, 0BFh seg000:02AC cmp bh, 26h ; '&' seg000:02AF jnz loc_0_2B4 seg000:02B1 or ah, 40h seg000:02B4 seg000:02B4 loc_0_2B4: ; CODE XREF: sub_0_288+27j seg000:02B4 out dx, ax seg000:02B5 pop ax seg000:02B6 seg000:02B6 loc_0_2B6: ; CODE XREF: sub_0_288+1Aj seg000:02B6 inc ah seg000:02B8 and ah, 0Fh seg000:02BB out dx, ax seg000:02BC popf seg000:02BD pop bx seg000:02BE pop dx seg000:02BF pop ax seg000:02C0 retn seg000:02C0 sub_0_288 endp seg000:02C0 seg000:02C1 seg000:02C1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:02C1 seg000:02C1 ; S u b r o u t i n e seg000:02C1 seg000:02C1 sub_0_2C1 proc near ; CODE XREF: int_10_entry+5Ap seg000:02C1 push ax seg000:02C2 push dx seg000:02C3 pushf seg000:02C4 cli seg000:02C5 call getCRbase seg000:02C8 mov al, 1Dh seg000:02CA out dx, al seg000:02CB in ax, dx seg000:02CC and ah, 0Fh seg000:02CF jz loc_0_2E5 seg000:02D1 dec ah seg000:02D3 out dx, ax seg000:02D4 jnz loc_0_2ED seg000:02D6 mov al, 21h ; '!' seg000:02D8 out dx, al ; COM: line status register bits: seg000:02D8 ; 0: 1=data ready (DR) seg000:02D8 ; 1: 1=overrun error (OE) seg000:02D8 ; 2: 1=parity error (PE) seg000:02D8 ; 3: 1=Bad stop bit in character seg000:02D8 ; 4: 1=break indicated (BI) seg000:02D8 ; 5: 1=transmitter holding register empty seg000:02D8 ; 6: 1=transmitter empty seg000:02D9 in ax, dx seg000:02DA mov bh, ah seg000:02DC and ah, 0BFh seg000:02DF out dx, ax ; COM: line status register bits: seg000:02DF ; 0: 1=data ready (DR) seg000:02DF ; 1: 1=overrun error (OE) seg000:02DF ; 2: 1=parity error (PE) seg000:02DF ; 3: 1=Bad stop bit in character seg000:02DF ; 4: 1=break indicated (BI) seg000:02DF ; 5: 1=transmitter holding register empty seg000:02DF ; 6: 1=transmitter empty seg000:02E0 test bh, 40h seg000:02E3 jnz loc_0_2ED seg000:02E5 seg000:02E5 loc_0_2E5: ; CODE XREF: sub_0_2C1+Ej seg000:02E5 xor ah, ah seg000:02E7 mov al, 9 seg000:02E9 mov dx, 3CEh seg000:02EC out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:02EC ; seg000:02ED seg000:02ED loc_0_2ED: ; CODE XREF: sub_0_2C1+13j seg000:02ED ; sub_0_2C1+22j seg000:02ED popf seg000:02EE pop dx seg000:02EF pop ax seg000:02F0 retn seg000:02F0 sub_0_2C1 endp seg000:02F0 seg000:02F1 seg000:02F1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:02F1 seg000:02F1 ; S u b r o u t i n e seg000:02F1 seg000:02F1 sub_0_2F1 proc near ; CODE XREF: sub_0_A58+7p seg000:02F1 ; sub_0_19DA+7p seg000:02F1 ; sub_0_2037+1p seg000:02F1 ; sub_0_2037+29p seg000:02F1 ; sub_0_2151+B0p seg000:02F1 ; sub_0_2151+E3p seg000:02F1 ; seg000:2B0Ap seg000:02F1 ; seg000:2C1Ap seg000:02F1 ; sub_0_2CA4+5p seg000:02F1 ; sub_0_2E8E+1p seg000:02F1 ; sub_0_3E3F+3p seg000:02F1 ; sub_0_51A4+2p seg000:02F1 ; sub_0_51B2+1p seg000:02F1 ; sub_0_51CA+1p seg000:02F1 ; sub_0_5316p seg000:55F1p seg000:02F1 ; seg000:5679p seg000:02F1 ; seg000:56C5p seg000:02F1 ; seg000:572Cp seg000:02F1 ; seg000:578Bp seg000:02F1 ; seg000:57FDp seg000:02F1 ; seg000:5864p seg000:02F1 ; seg000:5C73p seg000:02F1 ; sub_0_5D9D+6p seg000:02F1 ; sub_0_5D9D+70p seg000:02F1 ; sub_0_5F77+6p seg000:02F1 ; sub_0_6220+15p seg000:02F1 ; sub_0_6300+Fp seg000:02F1 ; seg000:655Fp seg000:02F1 ; seg000:6580p seg000:02F1 ; sub_0_67A9+1p seg000:02F1 ; seg000:6AE1p seg000:02F1 ; sub_0_6FA2+18p seg000:02F1 ; seg000:7309p seg000:02F1 push ax seg000:02F2 push ds seg000:02F3 mov ax, 40h ; '@' seg000:02F6 mov ds, ax seg000:02F8 assume ds:nothing seg000:02F8 mov bl, ds:49h seg000:02FC pop ds seg000:02FD assume ds:nothing seg000:02FD pop ax seg000:02FE cmp bl, 6Ah ; 'j' seg000:0301 jnz loc_0_305 seg000:0303 mov bl, 22h ; '"' seg000:0305 seg000:0305 loc_0_305: ; CODE XREF: sub_0_2F1+10j seg000:0305 cmp bl, 72h ; 'r' seg000:0308 jnz locret_0_30C seg000:030A mov bl, 12h seg000:030C seg000:030C locret_0_30C: ; CODE XREF: sub_0_2F1+17j seg000:030C retn seg000:030C sub_0_2F1 endp seg000:030C seg000:030D seg000:030D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:030D seg000:030D ; S u b r o u t i n e seg000:030D seg000:030D getCR23BiosM proc near ; CODE XREF: sub_0_601+37p seg000:030D ; sub_0_601+F1p seg000:030D ; sub_0_601+1B1p seg000:030D ; sub_0_601+21Cp seg000:030D ; seg000:12E5p seg000:030D ; seg000:3265p seg000:030D ; sub_0_32F0+2Ep seg000:030D ; sub_0_351B+1Dp seg000:030D ; seg000:38E8p seg000:030D ; seg000:39B8p seg000:030D ; sub_0_3D4C+9Ep seg000:030D ; getBiosMode?+1p seg000:030D push dx seg000:030E push ax seg000:030F mov al, 23h ; '#' seg000:0311 call VGArCRunlock seg000:0314 mov bl, ah seg000:0316 pop ax seg000:0317 cmp bl, 6Ah ; 'j' seg000:031A jnz loc_0_31E seg000:031C mov bl, 22h ; '"' seg000:031E seg000:031E loc_0_31E: ; CODE XREF: getCR23BiosM+Dj seg000:031E pop dx seg000:031F retn seg000:031F getCR23BiosM endp seg000:031F seg000:0320 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0320 retn seg000:0321 seg000:0321 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0321 seg000:0321 ; S u b r o u t i n e seg000:0321 seg000:0321 sub_0_321 proc near ; CODE XREF: seg000:7132p seg000:0321 ; seg000:721Bp seg000:0321 push dx seg000:0322 mov dx, 3C3h seg000:0325 out dx, al seg000:0326 pop dx seg000:0327 retn seg000:0327 sub_0_321 endp seg000:0327 seg000:0327 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0328 db 4Ch ; L seg000:0329 db 0 ; seg000:032A db 0E2h ; seg000:032B db 0 ; seg000:032C db 76h ; v seg000:032D db 0 ; seg000:032E db 60h ; ` seg000:032F db 1 ; seg000:0330 db 0C1h ; seg000:0331 db 0 ; seg000:0332 db 41h ; A seg000:0333 db 2 ; seg000:0334 db 40h ; @ seg000:0335 db 1 ; seg000:0336 db 0C0h ; seg000:0337 db 3 ; seg000:0338 seg000:0338 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0338 seg000:0338 ; S u b r o u t i n e seg000:0338 seg000:0338 sub_0_338 proc near ; CODE XREF: bl02+31p seg000:0338 ; sub_0_B5E9+3Cp seg000:0338 push dx seg000:0339 push cx seg000:033A push bx seg000:033B mov cx, 9FFh seg000:033E mov ax, cs:word_0_3B07 seg000:0342 test ah, 1 seg000:0345 jz loc_0_38E seg000:0347 mov bx, 328h seg000:034A test ah, 2 seg000:034D jz loc_0_352 seg000:034F add bx, 2 seg000:0352 seg000:0352 loc_0_352: ; CODE XREF: sub_0_338+15j seg000:0352 mov al, 20h ; ' ' seg000:0354 call VGArGR seg000:0357 and ah, 18h seg000:035A cmp ah, 0 seg000:035D jz loc_0_372 seg000:035F add bx, 4 seg000:0362 cmp ah, 8 seg000:0365 jz loc_0_372 seg000:0367 add bx, 4 seg000:036A cmp ah, 10h seg000:036D jz loc_0_372 seg000:036F add bx, 4 seg000:0372 seg000:0372 loc_0_372: ; CODE XREF: sub_0_338+25j seg000:0372 ; sub_0_338+2Dj seg000:0372 ; sub_0_338+35j seg000:0372 mov ax, cs:[bx] seg000:0375 shl cx, 2 seg000:0378 sub cx, ax seg000:037A shr cx, 2 seg000:037D mov ah, ch seg000:037F mov al, 3Fh ; '?' seg000:0381 or ah, 80h seg000:0384 call VGAwGR seg000:0387 mov ah, cl seg000:0389 dec al seg000:038B call VGAwGR seg000:038E seg000:038E loc_0_38E: ; CODE XREF: sub_0_338+Dj seg000:038E sub cx, 4 seg000:0391 mov ax, cx seg000:0393 shr ax, 4 seg000:0396 mov ah, al seg000:0398 mov al, 86h ; '' seg000:039A call VGAwGR seg000:039D mov al, 85h ; '' seg000:039F call VGAwGR seg000:03A2 mov ax, cx seg000:03A4 and al, 0Fh seg000:03A6 mov ah, al seg000:03A8 mov al, 89h ; '' seg000:03AA call VGAwGR seg000:03AD add ah, 2 seg000:03B0 mov al, 88h ; '' seg000:03B2 call VGAwGR seg000:03B5 pop bx seg000:03B6 pop cx seg000:03B7 pop dx seg000:03B8 retn seg000:03B8 sub_0_338 endp seg000:03B8 seg000:03B9 seg000:03B9 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:03B9 seg000:03B9 ; S u b r o u t i n e seg000:03B9 seg000:03B9 sub_0_3B9 proc near ; CODE XREF: sub_0_3D6p seg000:03B9 ; do_bl_01getbase+48p seg000:03B9 push cx seg000:03BA push dx seg000:03BB mov al, 86h ; '' seg000:03BD call VGArGR seg000:03C0 xor al, al seg000:03C2 shr ax, 2 seg000:03C5 mov cx, ax seg000:03C7 mov al, 89h ; '' seg000:03C9 call VGArGR seg000:03CC xor al, al seg000:03CE shr ax, 6 seg000:03D1 add ax, cx seg000:03D3 pop dx seg000:03D4 pop cx seg000:03D5 retn seg000:03D5 sub_0_3B9 endp seg000:03D5 seg000:03D6 seg000:03D6 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:03D6 seg000:03D6 ; S u b r o u t i n e seg000:03D6 seg000:03D6 sub_0_3D6 proc near ; CODE XREF: sub_0_1BA8+7p seg000:03D6 ; seg000:28A4p seg000:03D6 ; seg000:2A0Fp seg000:03D6 ; sub_0_2C89+5p seg000:03D6 ; seg000:592Ep seg000:03D6 call sub_0_3B9 seg000:03D9 push ax seg000:03DA mov al, 7 seg000:03DC call VGAwrCR8E8F seg000:03DF test ah, 1 seg000:03E2 pop ax seg000:03E3 jz locret_0_3E8 seg000:03E5 sub ax, 90h ; '' seg000:03E8 seg000:03E8 locret_0_3E8: ; CODE XREF: sub_0_3D6+Dj seg000:03E8 retn seg000:03E8 sub_0_3D6 endp seg000:03E8 seg000:03E9 seg000:03E9 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:03E9 seg000:03E9 ; S u b r o u t i n e seg000:03E9 seg000:03E9 sub_0_3E9 proc near ; CODE XREF: seg000:31E6p seg000:03E9 mov ax, 28h ; '(' seg000:03EC retn seg000:03EC sub_0_3E9 endp seg000:03EC seg000:03ED ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:03ED seg000:03ED loc_0_3ED: ; CODE XREF: seg000:7456p seg000:03ED push ax seg000:03EE push bx seg000:03EF push cx seg000:03F0 push dx seg000:03F1 push si seg000:03F2 mov es:[bx+6], di seg000:03F6 test cs:word_0_B1, 8 seg000:03FD jnz loc_0_40B seg000:03FF seg000:03FF loc_0_3FF: ; CODE XREF: seg000:61B6u seg000:03FF ; seg000:61B6u seg000:03FF ; DATA XREF: seg000:62D2o seg000:03FF ; seg000:62CEo seg000:03FF mov dx, 3CEh seg000:0402 mov al, 40h ; '@' seg000:0404 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0404 ; seg000:0405 seg000:0405 loc_0_405: ; CODE XREF: seg000:0409j seg000:0405 in ax, dx seg000:0406 test ah, 2 seg000:0409 jnz loc_0_405 seg000:040B seg000:040B loc_0_40B: ; CODE XREF: seg000:03FDj seg000:040B mov al, 8Ah ; '' seg000:040D mov cx, 5Fh ; '_' seg000:0410 seg000:0410 loc_0_410: ; CODE XREF: seg000:0426j seg000:0410 ; seg000:0436j seg000:0410 ; seg000:043Dj seg000:0410 ; seg000:044Fj seg000:0410 ; seg000:046Bj seg000:0410 out dx, al seg000:0411 in ax, dx seg000:0412 mov es:[di], ah seg000:0415 inc di seg000:0416 inc al seg000:0418 cmp dx, 3CEh seg000:041C jnz loc_0_42A seg000:041E cmp al, 67h ; 'g' seg000:0420 jz loc_0_43A seg000:0422 cmp al, 6Bh ; 'k' seg000:0424 jz loc_0_43A seg000:0426 loop loc_0_410 seg000:0428 jmp short loc_0_43F seg000:042A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:042A seg000:042A loc_0_42A: ; CODE XREF: seg000:041Cj seg000:042A cmp al, 22h ; '"' seg000:042C jz loc_0_43A seg000:042E cmp al, 24h ; '$' seg000:0430 jz loc_0_43A seg000:0432 cmp al, 26h ; '&' seg000:0434 jz loc_0_43A seg000:0436 loop loc_0_410 seg000:0438 jmp short loc_0_43F seg000:043A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:043A seg000:043A loc_0_43A: ; CODE XREF: seg000:0420j seg000:043A ; seg000:0424j seg000:043A ; seg000:042Cj seg000:043A ; seg000:0430j seg000:043A ; seg000:0434j seg000:043A inc al seg000:043C dec cx seg000:043D loop loc_0_410 seg000:043F seg000:043F loc_0_43F: ; CODE XREF: seg000:0428j seg000:043F ; seg000:0438j seg000:043F cmp al, 8Ah ; '' seg000:0441 jz loc_0_46D seg000:0443 cmp al, 0CBh ; '' seg000:0445 jz loc_0_451 seg000:0447 mov al, 1Ah seg000:0449 mov cx, 0B1h ; '' seg000:044C call getCRbase seg000:044F jmp short loc_0_410 seg000:0451 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0451 seg000:0451 loc_0_451: ; CODE XREF: seg000:0445j seg000:0451 mov dx, 3C4h seg000:0454 mov cx, 18h seg000:0457 mov al, 8 seg000:0459 seg000:0459 loc_0_459: ; CODE XREF: seg000:0461j seg000:0459 out dx, al ; EGA: sequencer address reg seg000:0459 ; seg000:045A in ax, dx ; EGA: sequencer address reg seg000:045A ; seg000:045B mov es:[di], ah seg000:045E inc di seg000:045F inc al seg000:0461 loop loc_0_459 seg000:0463 mov al, 9 seg000:0465 mov cx, 81h ; '' seg000:0468 mov dx, 3CEh seg000:046B jmp short loc_0_410 seg000:046D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:046D seg000:046D loc_0_46D: ; CODE XREF: seg000:0441j seg000:046D call sub_0_525 seg000:0470 call sub_0_4022 seg000:0473 mov al, 0B0h ; '' seg000:0475 call VGArGR seg000:0478 and ah, 0FEh seg000:047B call VGAwGR seg000:047E mov al, 82h ; '' seg000:0480 call VGArGR seg000:0483 and ah, 0FEh seg000:0486 call VGAwGR seg000:0489 pop si seg000:048A pop dx seg000:048B pop cx seg000:048C pop bx seg000:048D pop ax seg000:048E retn seg000:048F seg000:048F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:048F seg000:048F ; S u b r o u t i n e seg000:048F seg000:048F sub_0_48F proc near ; CODE XREF: seg000:7495p seg000:048F push ax seg000:0490 push bx seg000:0491 push cx seg000:0492 push dx seg000:0493 push si seg000:0494 push es seg000:0495 push ds seg000:0496 pop es seg000:0497 mov si, [bx+6] seg000:049A mov dx, 3CEh seg000:049D mov ax, 47h ; 'G' seg000:04A0 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:04A0 ; seg000:04A1 mov al, 8Ah ; '' seg000:04A3 mov cx, 5Fh ; '_' seg000:04A6 seg000:04A6 loc_0_4A6: ; CODE XREF: sub_0_48F+31j seg000:04A6 ; sub_0_48F+41j seg000:04A6 ; sub_0_48F+48j seg000:04A6 ; sub_0_48F+5Aj seg000:04A6 ; sub_0_48F+87j seg000:04A6 mov ah, [si] seg000:04A8 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:04A8 ; seg000:04A9 seg000:04A9 loc_0_4A9: ; CODE XREF: sub_0_48F+2Fj seg000:04A9 inc si seg000:04AA inc al seg000:04AC cmp dx, 3CEh seg000:04B0 jnz loc_0_4C4 seg000:04B2 cmp al, 67h ; 'g' seg000:04B4 jz loc_0_4D4 seg000:04B6 cmp al, 6Bh ; 'k' seg000:04B8 jz loc_0_4D4 seg000:04BA cmp al, 6Bh ; 'k' seg000:04BC jnz loc_0_4C0 seg000:04BE loop loc_0_4A9 seg000:04C0 seg000:04C0 loc_0_4C0: ; CODE XREF: sub_0_48F+2Dj seg000:04C0 loop loc_0_4A6 seg000:04C2 jmp short loc_0_4D9 seg000:04C4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:04C4 seg000:04C4 loc_0_4C4: ; CODE XREF: sub_0_48F+21j seg000:04C4 cmp al, 22h ; '"' seg000:04C6 jz loc_0_4D4 seg000:04C8 cmp al, 24h ; '$' seg000:04CA jz loc_0_4D4 seg000:04CC cmp al, 26h ; '&' seg000:04CE jz loc_0_4D4 seg000:04D0 loop loc_0_4A6 seg000:04D2 jmp short loc_0_4D9 seg000:04D4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:04D4 seg000:04D4 loc_0_4D4: ; CODE XREF: sub_0_48F+25j seg000:04D4 ; sub_0_48F+29j seg000:04D4 ; sub_0_48F+37j seg000:04D4 ; sub_0_48F+3Bj seg000:04D4 ; sub_0_48F+3Fj seg000:04D4 inc al seg000:04D6 dec cx seg000:04D7 loop loc_0_4A6 seg000:04D9 seg000:04D9 loc_0_4D9: ; CODE XREF: sub_0_48F+33j seg000:04D9 ; sub_0_48F+43j seg000:04D9 cmp al, 8Ah ; '' seg000:04DB jz loc_0_518 seg000:04DD cmp al, 0CBh ; '' seg000:04DF jz loc_0_4EB seg000:04E1 mov al, 1Ah seg000:04E3 mov cx, 0B1h ; '' seg000:04E6 call getCRbase seg000:04E9 jmp short loc_0_4A6 seg000:04EB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:04EB seg000:04EB loc_0_4EB: ; CODE XREF: sub_0_48F+50j seg000:04EB mov al, 0Ah seg000:04ED call VGArGR seg000:04F0 or ah, 20h seg000:04F3 call VGAwGR seg000:04F6 mov dx, 3C4h seg000:04F9 mov cx, 17h seg000:04FC mov al, 9 seg000:04FE mov bh, [si] seg000:0500 inc si seg000:0501 seg000:0501 loc_0_501: ; CODE XREF: sub_0_48F+78j seg000:0501 mov ah, [si] seg000:0503 out dx, ax ; EGA: sequencer address reg seg000:0503 ; seg000:0504 inc si seg000:0505 inc al seg000:0507 loop loc_0_501 seg000:0509 mov al, 8 seg000:050B mov ah, bh seg000:050D out dx, ax ; EGA: sequencer address reg seg000:050D ; seg000:050E mov al, 9 seg000:0510 mov cx, 81h ; '' seg000:0513 mov dx, 3CEh seg000:0516 jmp short loc_0_4A6 seg000:0518 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0518 seg000:0518 loc_0_518: ; CODE XREF: sub_0_48F+4Cj seg000:0518 call sub_0_566 seg000:051B call sub_0_4042 seg000:051E pop es seg000:051F pop si seg000:0520 pop dx seg000:0521 pop cx seg000:0522 pop bx seg000:0523 pop ax seg000:0524 retn seg000:0524 sub_0_48F endp seg000:0524 seg000:0525 seg000:0525 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0525 seg000:0525 ; S u b r o u t i n e seg000:0525 seg000:0525 sub_0_525 proc near ; CODE XREF: seg000:046Dp seg000:0525 push ax seg000:0526 mov ah, 1 seg000:0528 mov al, 6Eh ; 'n' seg000:052A seg000:052A loc_0_52A: ; CODE XREF: sub_0_525+18j seg000:052A call VGAwGR seg000:052D push ax seg000:052E mov al, 6Fh ; 'o' seg000:0530 call VGArGR seg000:0533 mov es:[di], ah seg000:0536 pop ax seg000:0537 inc di seg000:0538 inc ah seg000:053A cmp ah, 1Bh seg000:053D jbe loc_0_52A seg000:053F xor ah, ah seg000:0541 call VGAwGR seg000:0544 inc al seg000:0546 call VGArGR seg000:0549 mov es:[di], ah seg000:054C inc di seg000:054D mov ah, 8 seg000:054F call VGAwGR seg000:0552 mov cx, 0Ah seg000:0555 xor al, al seg000:0557 seg000:0557 loc_0_557: ; CODE XREF: sub_0_525+3Dj seg000:0557 push ax seg000:0558 call VGAwrCR8E8F seg000:055B mov es:[di], ah seg000:055E pop ax seg000:055F inc al seg000:0561 inc di seg000:0562 loop loc_0_557 seg000:0564 pop ax seg000:0565 retn seg000:0565 sub_0_525 endp seg000:0565 seg000:0566 seg000:0566 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0566 seg000:0566 ; S u b r o u t i n e seg000:0566 seg000:0566 sub_0_566 proc near ; CODE XREF: sub_0_48F+89p seg000:0566 push ax seg000:0567 mov ah, 0 seg000:0569 mov al, 6Eh ; 'n' seg000:056B call VGAwGR seg000:056E inc al seg000:0570 mov ah, 8 seg000:0572 call VGAwGR seg000:0575 dec al seg000:0577 mov ah, 1 seg000:0579 seg000:0579 loc_0_579: ; CODE XREF: sub_0_566+25j seg000:0579 call VGAwGR seg000:057C push ax seg000:057D mov al, 6Fh ; 'o' seg000:057F mov ah, [si] seg000:0581 call VGAwGR seg000:0584 pop ax seg000:0585 inc si seg000:0586 inc ah seg000:0588 cmp ah, 1Bh seg000:058B jbe loc_0_579 seg000:058D xor ah, ah seg000:058F call VGAwGR seg000:0592 inc al seg000:0594 mov ah, [si] seg000:0596 inc si seg000:0597 call VGAwGR seg000:059A mov cx, 0Ah seg000:059D xor al, al seg000:059F seg000:059F loc_0_59F: ; CODE XREF: sub_0_566+43j seg000:059F mov ah, [si] seg000:05A1 push ax seg000:05A2 call VGAwwCR8E8F seg000:05A5 pop ax seg000:05A6 inc al seg000:05A8 inc si seg000:05A9 loop loc_0_59F seg000:05AB pop ax seg000:05AC retn seg000:05AC sub_0_566 endp seg000:05AC seg000:05AD seg000:05AD ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:05AD seg000:05AD ; S u b r o u t i n e seg000:05AD seg000:05AD sub_0_5AD proc near ; CODE XREF: sub_0_601+2CFp seg000:05AD ; sub_0_2037+26p seg000:05AD ; seg000:5516p seg000:05AD push ax seg000:05AE push dx seg000:05AF push bx seg000:05B0 mov dx, 3CEh seg000:05B3 mov al, 0AEh ; '' seg000:05B5 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:05B5 ; seg000:05B6 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:05B6 ; seg000:05B7 mov bx, ax seg000:05B9 and ah, 0DFh seg000:05BC out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:05BC ; seg000:05BD and bh, 20h seg000:05C0 shr bh, 1 seg000:05C2 mov al, 82h ; '' seg000:05C4 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:05C4 ; seg000:05C5 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:05C5 ; seg000:05C6 and ah, 0EFh seg000:05C9 or ah, bh seg000:05CB out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:05CB ; seg000:05CC pop bx seg000:05CD pop dx seg000:05CE pop ax seg000:05CF retn seg000:05CF sub_0_5AD endp seg000:05CF seg000:05D0 seg000:05D0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:05D0 seg000:05D0 ; S u b r o u t i n e seg000:05D0 seg000:05D0 sub_0_5D0 proc near ; CODE XREF: sub_0_601+100p seg000:05D0 ; sub_0_1BD0+40p seg000:05D0 push ax seg000:05D1 push dx seg000:05D2 push bx seg000:05D3 mov dx, 3CEh seg000:05D6 mov al, 82h ; '' seg000:05D8 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:05D8 ; seg000:05D9 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:05D9 ; seg000:05DA mov bx, ax seg000:05DC or ah, 10h seg000:05DF out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:05DF ; seg000:05E0 mov al, 0AEh ; '' seg000:05E2 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:05E2 ; seg000:05E3 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:05E3 ; seg000:05E4 and bh, 10h seg000:05E7 shl bh, 1 seg000:05E9 or ah, bh seg000:05EB out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:05EB ; enable set/reset seg000:05EC pop bx seg000:05ED pop dx seg000:05EE pop ax seg000:05EF retn seg000:05EF sub_0_5D0 endp seg000:05EF seg000:05F0 seg000:05F0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:05F0 seg000:05F0 ; S u b r o u t i n e seg000:05F0 seg000:05F0 sub_0_5F0 proc near ; CODE XREF: bl02+3Fp seg000:05F0 ; sub_0_B2A3+134p seg000:05F0 push dx seg000:05F1 call getCRbase seg000:05F4 mov al, 1Eh seg000:05F6 out dx, al seg000:05F7 in ax, dx seg000:05F8 and ah, 7 seg000:05FB mov al, ah seg000:05FD xor ah, ah seg000:05FF pop dx seg000:0600 retn seg000:0600 sub_0_5F0 endp seg000:0600 seg000:0601 seg000:0601 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0601 seg000:0601 ; S u b r o u t i n e seg000:0601 seg000:0601 sub_0_601 proc near ; CODE XREF: bl02+3Ap seg000:0601 ; bl04+26p sub_0_B7E0+11Ep seg000:0601 ; sub_0_B7E0+128p seg000:0601 push dx seg000:0602 push bx seg000:0603 push ax seg000:0604 push si seg000:0605 test cl, 2 seg000:0608 jz loc_0_61C seg000:060A mov al, 80h ; '' seg000:060C call VGArCR seg000:060F push ax seg000:0610 mov ah, 60h ; '`' seg000:0612 call VGAwCR seg000:0615 call sub_0_A2F seg000:0618 pop ax seg000:0619 call VGAwCR seg000:061C seg000:061C loc_0_61C: ; CODE XREF: sub_0_601+7j seg000:061C test cl, 4 seg000:061F jz loc_0_638 seg000:0621 mov al, 4 seg000:0623 call VGAwrCR8E8F seg000:0626 and ah, 7Fh seg000:0629 mov bl, cl seg000:062B and bl, 8 seg000:062E shl bl, 4 seg000:0631 or ah, bl seg000:0633 mov al, 4 seg000:0635 call VGAwwCR8E8F seg000:0638 seg000:0638 loc_0_638: ; CODE XREF: sub_0_601+1Ej seg000:0638 call getCR23BiosM seg000:063B xor bh, bh seg000:063D cmp bl, 20h ; ' ' seg000:0640 jz loc_0_65B seg000:0642 cmp bl, 28h ; '(' seg000:0645 jz loc_0_65B seg000:0647 cmp bl, 2Eh ; '.' seg000:064A jz loc_0_65B seg000:064C mov bl, cs:[bx-5B34h] seg000:0651 cmp bl, 0Ah seg000:0654 jb loc_0_65B seg000:0656 cmp bl, 0Dh seg000:0659 jnz loc_0_65E seg000:065B seg000:065B loc_0_65B: ; CODE XREF: sub_0_601+3Fj seg000:065B ; sub_0_601+44j seg000:065B ; sub_0_601+49j seg000:065B ; sub_0_601+53j seg000:065B and cl, 0EBh seg000:065E seg000:065E loc_0_65E: ; CODE XREF: sub_0_601+58j seg000:065E mov dx, 3CEh seg000:0661 mov al, 20h ; ' ' seg000:0663 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0663 ; seg000:0664 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0664 ; seg000:0665 mov bx, ax seg000:0667 xchg cl, ah seg000:0669 call sub_0_1285 seg000:066C test bh, 1 seg000:066F jnz loc_0_674 seg000:0671 and cl, 0FDh seg000:0674 seg000:0674 loc_0_674: ; CODE XREF: sub_0_601+6Ej seg000:0674 test bh, 2 seg000:0677 jnz loc_0_693 seg000:0679 test cs:word_0_B1, 8000h seg000:0680 jnz loc_0_690 seg000:0682 push ax seg000:0683 mov al, 21h ; '!' seg000:0685 call VGArCR seg000:0688 and ah, 7 seg000:068B or ah, ah seg000:068D pop ax seg000:068E jnz loc_0_693 seg000:0690 seg000:0690 loc_0_690: ; CODE XREF: sub_0_601+7Fj seg000:0690 and cl, 0FEh seg000:0693 seg000:0693 loc_0_693: ; CODE XREF: sub_0_601+76j seg000:0693 ; sub_0_601+8Dj seg000:0693 cmp ah, cl seg000:0695 jnz loc_0_69A seg000:0697 jmp loc_0_8DF seg000:069A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:069A seg000:069A loc_0_69A: ; CODE XREF: sub_0_601+94j seg000:069A xchg ah, cl seg000:069C test cx, 3 seg000:06A0 jnz loc_0_6A5 seg000:06A2 jmp loc_0_8DF seg000:06A5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:06A5 seg000:06A5 loc_0_6A5: ; CODE XREF: sub_0_601+9Fj seg000:06A5 pushf seg000:06A6 cli seg000:06A7 test cl, 1 seg000:06AA jz loc_0_701 seg000:06AC test bh, 2 seg000:06AF jz loc_0_701 seg000:06B1 mov dx, 3C6h seg000:06B4 in al, dx seg000:06B5 push ax seg000:06B6 mov dx, 3CEh seg000:06B9 test cl, 2 seg000:06BC jz loc_0_6C3 seg000:06BE or bh, 1 seg000:06C1 jmp short loc_0_6C6 seg000:06C3 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:06C3 seg000:06C3 loc_0_6C3: ; CODE XREF: sub_0_601+BBj seg000:06C3 and bh, 0FEh seg000:06C6 seg000:06C6 loc_0_6C6: ; CODE XREF: sub_0_601+C0j seg000:06C6 mov ax, bx seg000:06C8 and ah, 0FEh seg000:06CB call sub_0_225A seg000:06CE out dx, ax seg000:06CF mov al, 80h ; '' seg000:06D1 mov ah, 60h ; '`' seg000:06D3 call VGAwCR seg000:06D6 test cl, 4 seg000:06D9 jnz loc_0_6E3 seg000:06DB push cx seg000:06DC mov cx, 0FFh seg000:06DF call sub_0_10B1 seg000:06E2 pop cx seg000:06E3 seg000:06E3 loc_0_6E3: ; CODE XREF: sub_0_601+D8j seg000:06E3 mov ax, bx seg000:06E5 mov dx, 3CEh seg000:06E8 call sub_0_225A seg000:06EB out dx, ax seg000:06EC call sub_0_225A seg000:06EF call sub_0_A18 seg000:06F2 call getCR23BiosM seg000:06F5 and bl, 7Fh seg000:06F8 call sub_0_3C1C seg000:06FB xor ax, ax seg000:06FD push ax seg000:06FE jmp loc_0_893 seg000:0701 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0701 seg000:0701 loc_0_701: ; CODE XREF: sub_0_601+A9j seg000:0701 ; sub_0_601+AEj seg000:0701 call sub_0_5D0 seg000:0704 mov dx, 3C6h seg000:0707 in al, dx seg000:0708 push ax seg000:0709 mov ax, 0FFh seg000:070C push ax seg000:070D test bh, 3 seg000:0710 jz loc_0_753 seg000:0712 push dx seg000:0713 mov dx, 3C6h seg000:0716 xor al, al seg000:0718 call sub_0_225A seg000:071B out dx, al seg000:071C call sub_0_225A seg000:071F pop dx seg000:0720 mov ax, bx seg000:0722 and ah, 0FEh seg000:0725 mov dx, 3CEh seg000:0728 call sub_0_225A seg000:072B out dx, ax seg000:072C mov al, 80h ; '' seg000:072E mov ah, 60h ; '`' seg000:0730 call VGAwCR seg000:0733 test bh, 2 seg000:0736 jz loc_0_73B seg000:0738 call sub_0_20BD seg000:073B seg000:073B loc_0_73B: ; CODE XREF: sub_0_601+135j seg000:073B mov ax, 31h ; '1' seg000:073E call VGArGR seg000:0741 and ah, 0FEh seg000:0744 call VGAwGR seg000:0747 mov ax, 30h ; '0' seg000:074A call VGArGR seg000:074D and ah, 0DFh seg000:0750 call VGAwGR seg000:0753 seg000:0753 loc_0_753: ; CODE XREF: sub_0_601+10Fj seg000:0753 call sub_0_509D seg000:0756 test cl, 4 seg000:0759 jnz loc_0_763 seg000:075B push cx seg000:075C mov cx, 0FFh seg000:075F call sub_0_10B1 seg000:0762 pop cx seg000:0763 seg000:0763 loc_0_763: ; CODE XREF: sub_0_601+158j seg000:0763 test cl, 1 seg000:0766 jz loc_0_790 seg000:0768 mov si, 3B07h seg000:076B mov di, 3B13h seg000:076E test cl, 2 seg000:0771 jz loc_0_779 seg000:0773 mov si, 3AB1h seg000:0776 mov di, 3ABDh seg000:0779 seg000:0779 loc_0_779: ; CODE XREF: sub_0_601+170j seg000:0779 mov dx, 3CEh seg000:077C call customPortPrg seg000:077F mov si, di seg000:0781 call getCRbase seg000:0784 call customPortPrg seg000:0787 call sub_0_50A9 seg000:078A call sub_0_A18 seg000:078D jmp loc_0_81C seg000:0790 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0790 seg000:0790 loc_0_790: ; CODE XREF: sub_0_601+165j seg000:0790 test cl, 2 seg000:0793 jnz loc_0_798 seg000:0795 jmp loc_0_81C seg000:0798 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0798 seg000:0798 loc_0_798: ; CODE XREF: sub_0_601+192j seg000:0798 mov dx, 3CEh seg000:079B mov al, 2Ch ; ',' seg000:079D out dx, al ; EGA: graph 1 and 2 addr reg: seg000:079D ; seg000:079E in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:079E ; seg000:079F and ah, 7Fh seg000:07A2 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:07A2 ; seg000:07A3 call sub_0_997 seg000:07A6 mov al, 21h ; '!' seg000:07A8 out dx, al seg000:07A9 in ax, dx seg000:07AA and ah, 0FEh seg000:07AD out dx, ax seg000:07AE push cx seg000:07AF call sub_0_A18 seg000:07B2 call getCR23BiosM seg000:07B5 and bl, 7Fh seg000:07B8 call sub_0_3C1C seg000:07BB pop cx seg000:07BC call getCRbase seg000:07BF mov al, 11h seg000:07C1 out dx, al seg000:07C2 in ax, dx seg000:07C3 and ah, 7Fh seg000:07C6 out dx, ax seg000:07C7 push cx seg000:07C8 push bx seg000:07C9 cmp bl, 22h ; '"' seg000:07CC jb loc_0_80E seg000:07CE push si seg000:07CF xor bh, bh seg000:07D1 shl bx, 2 seg000:07D4 mov bl, cs:[bx-5ACBh] seg000:07D9 xor bh, bh seg000:07DB shl bx, 6 seg000:07DE add bx, 0Ah seg000:07E1 mov si, 9D8Ch seg000:07E4 xor al, al seg000:07E6 mov cx, 8 seg000:07E9 call sub_0_8E4 seg000:07EC mov al, 9 seg000:07EE inc bx seg000:07EF mov cx, 1 seg000:07F2 call sub_0_8E4 seg000:07F5 add bx, 6 seg000:07F8 mov cx, 3 seg000:07FB mov al, 10h seg000:07FD call sub_0_8E4 seg000:0800 add bx, 2 seg000:0803 mov cx, 2 seg000:0806 mov al, 15h seg000:0808 call sub_0_8E4 seg000:080B pop si seg000:080C jmp short loc_0_81A seg000:080E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:080E seg000:080E loc_0_80E: ; CODE XREF: sub_0_601+1CBj seg000:080E mov cx, 17h seg000:0811 xor al, al seg000:0813 seg000:0813 loc_0_813: ; CODE XREF: sub_0_601+217j seg000:0813 out dx, al seg000:0814 in ax, dx seg000:0815 out dx, ax seg000:0816 inc al seg000:0818 loop loc_0_813 seg000:081A seg000:081A loc_0_81A: ; CODE XREF: sub_0_601+20Bj seg000:081A pop bx seg000:081B pop cx seg000:081C seg000:081C loc_0_81C: ; CODE XREF: sub_0_601+18Cj seg000:081C ; sub_0_601+194j seg000:081C push cx seg000:081D call getCR23BiosM seg000:0820 and bl, 7Fh seg000:0823 call sub_0_1D75 seg000:0826 mov ax, bx seg000:0828 test cl, 1 seg000:082B jz loc_0_83A seg000:082D push bx seg000:082E call sub_0_3C1C seg000:0831 call sub_0_2151 seg000:0834 pop cx seg000:0835 call sub_0_8F7 seg000:0838 jmp short loc_0_83F seg000:083A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:083A seg000:083A loc_0_83A: ; CODE XREF: sub_0_601+22Aj seg000:083A xor ah, ah seg000:083C call sub_0_1EF8 seg000:083F seg000:083F loc_0_83F: ; CODE XREF: sub_0_601+237j seg000:083F call sub_0_208E seg000:0842 call sub_0_225A seg000:0845 pop cx seg000:0846 push cx seg000:0847 shr cl, 1 seg000:0849 jnb loc_0_84E seg000:084B or cl, 2 seg000:084E seg000:084E loc_0_84E: ; CODE XREF: sub_0_601+248j seg000:084E and cl, 3 seg000:0851 call getCRbase seg000:0854 add dl, 6 seg000:0857 in al, dx seg000:0858 mov dx, 3CEh seg000:085B mov al, 20h ; ' ' seg000:085D out dx, al ; EGA: graph 1 and 2 addr reg: seg000:085D ; seg000:085E in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:085E ; seg000:085F and ah, 0FCh seg000:0862 or ah, cl seg000:0864 test cs:word_0_B1, 8000h seg000:086B jnz loc_0_883 seg000:086D test ah, 2 seg000:0870 jz loc_0_883 seg000:0872 push ax seg000:0873 mov al, 21h ; '!' seg000:0875 call VGArCR seg000:0878 and ah, 7 seg000:087B or ah, ah seg000:087D pop ax seg000:087E jz loc_0_883 seg000:0880 and ah, 0FDh seg000:0883 seg000:0883 loc_0_883: ; CODE XREF: sub_0_601+26Aj seg000:0883 ; sub_0_601+26Fj seg000:0883 ; sub_0_601+27Dj seg000:0883 test ah, 2 seg000:0886 jz loc_0_88B seg000:0888 call sub_0_2124 seg000:088B seg000:088B loc_0_88B: ; CODE XREF: sub_0_601+285j seg000:088B call sub_0_225A seg000:088E out dx, ax seg000:088F call sub_0_225A seg000:0892 pop cx seg000:0893 seg000:0893 loc_0_893: ; CODE XREF: sub_0_601+FDj seg000:0893 test cl, 4 seg000:0896 jz loc_0_89B seg000:0898 call loc_0_12C1 seg000:089B seg000:089B loc_0_89B: ; CODE XREF: sub_0_601+295j seg000:089B call sub_0_3E3F seg000:089E call getCRbase seg000:08A1 mov al, 1Eh seg000:08A3 out dx, al seg000:08A4 in ax, dx seg000:08A5 or ah, 20h seg000:08A8 out dx, ax seg000:08A9 test cs:word_0_B3, 8 seg000:08B0 jz loc_0_8CB seg000:08B2 mov al, 0AFh ; '' seg000:08B4 call VGArGR seg000:08B7 test ah, 1 seg000:08BA jz loc_0_8CB seg000:08BC mov al, 1Eh seg000:08BE call VGArCRunlock seg000:08C1 mov cl, ah seg000:08C3 shr cl, 6 seg000:08C6 mov ax, 5F45h seg000:08C9 int 15h seg000:08CB seg000:08CB loc_0_8CB: ; CODE XREF: sub_0_601+2AFj seg000:08CB ; sub_0_601+2B9j seg000:08CB pop ax seg000:08CC or ax, ax seg000:08CE jz loc_0_8D3 seg000:08D0 call sub_0_5AD seg000:08D3 seg000:08D3 loc_0_8D3: ; CODE XREF: sub_0_601+2CDj seg000:08D3 pop ax seg000:08D4 mov dx, 3C6h seg000:08D7 call sub_0_225A seg000:08DA out dx, al seg000:08DB call sub_0_225A seg000:08DE popf seg000:08DF seg000:08DF loc_0_8DF: ; CODE XREF: sub_0_601+96j seg000:08DF ; sub_0_601+A1j seg000:08DF pop si seg000:08E0 pop ax seg000:08E1 pop bx seg000:08E2 pop dx seg000:08E3 retn seg000:08E3 sub_0_601 endp seg000:08E3 seg000:08E4 seg000:08E4 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:08E4 seg000:08E4 ; S u b r o u t i n e seg000:08E4 seg000:08E4 sub_0_8E4 proc near ; CODE XREF: sub_0_601+1E8p seg000:08E4 ; sub_0_601+1F1p seg000:08E4 ; sub_0_601+1FCp seg000:08E4 ; sub_0_601+207p seg000:08E4 ; sub_0_8E4+7j seg000:08E4 mov ah, cs:[bx+si] seg000:08E7 out dx, ax seg000:08E8 inc bx seg000:08E9 inc al seg000:08EB loop sub_0_8E4 seg000:08ED retn seg000:08ED sub_0_8E4 endp seg000:08ED seg000:08ED ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:08EE db 7Fh ;  seg000:08EF db 0F5h ; seg000:08F0 db 0FFh ; seg000:08F1 db 63h ; c seg000:08F2 db 0F0h ; seg000:08F3 db 57h ; W seg000:08F4 db 4Fh ; O seg000:08F5 db 3Eh ; > seg000:08F6 db 0DFh ; seg000:08F7 seg000:08F7 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:08F7 seg000:08F7 ; S u b r o u t i n e seg000:08F7 seg000:08F7 sub_0_8F7 proc near ; CODE XREF: sub_0_601+234p seg000:08F7 ; sub_0_A58+10p seg000:08F7 push bx seg000:08F8 push cx seg000:08F9 cmp cl, 22h ; '"' seg000:08FC jnb loc_0_901 seg000:08FE jmp loc_0_994 seg000:0901 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0901 seg000:0901 loc_0_901: ; CODE XREF: sub_0_8F7+5j seg000:0901 cmp cl, 40h ; '@' seg000:0904 jb loc_0_90E seg000:0906 cmp cl, 45h ; 'E' seg000:0909 ja loc_0_90E seg000:090B jmp loc_0_994 seg000:090E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:090E seg000:090E loc_0_90E: ; CODE XREF: sub_0_8F7+Dj seg000:090E ; sub_0_8F7+12j seg000:090E mov dx, 3CEh seg000:0911 mov al, 20h ; ' ' seg000:0913 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0913 ; seg000:0914 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0914 ; seg000:0915 mov bl, 5 seg000:0917 mov si, 8EEh seg000:091A and ah, 18h seg000:091D cmp ah, 18h seg000:0920 jz loc_0_994 seg000:0922 cmp ah, 10h seg000:0925 jz loc_0_936 seg000:0927 mov bl, 4 seg000:0929 mov si, 8F1h seg000:092C cmp ah, 8 seg000:092F jz loc_0_936 seg000:0931 mov bl, 3 seg000:0933 mov si, 8F4h seg000:0936 seg000:0936 loc_0_936: ; CODE XREF: sub_0_8F7+2Ej seg000:0936 ; sub_0_8F7+38j seg000:0936 mov ax, cs:word_0_3A40 seg000:093A cmp ax, 400h seg000:093D jnz loc_0_969 seg000:093F mov ax, cs:word_0_3A42 seg000:0943 cmp ax, 1E0h seg000:0946 jnz loc_0_969 seg000:0948 call getCRbase seg000:094B mov al, 11h seg000:094D out dx, al seg000:094E in ax, dx seg000:094F and ah, 7Fh seg000:0952 pushf seg000:0953 cli seg000:0954 out dx, ax seg000:0955 mov al, cl seg000:0957 call sub_0_5142 seg000:095A cmp al, bl seg000:095C jbe loc_0_964 seg000:095E mov al, 1 seg000:0960 mov ah, cs:[si] seg000:0963 out dx, ax seg000:0964 seg000:0964 loc_0_964: ; CODE XREF: sub_0_8F7+65j seg000:0964 mov si, 8F4h seg000:0967 jmp short loc_0_985 seg000:0969 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0969 seg000:0969 loc_0_969: ; CODE XREF: sub_0_8F7+46j seg000:0969 ; sub_0_8F7+4Fj seg000:0969 mov al, cl seg000:096B call sub_0_5142 seg000:096E cmp al, bl seg000:0970 jbe loc_0_994 seg000:0972 call getCRbase seg000:0975 mov al, 11h seg000:0977 out dx, al seg000:0978 in ax, dx seg000:0979 and ah, 7Fh seg000:097C pushf seg000:097D cli seg000:097E out dx, ax seg000:097F mov al, 1 seg000:0981 mov ah, cs:[si] seg000:0984 out dx, ax seg000:0985 seg000:0985 loc_0_985: ; CODE XREF: sub_0_8F7+70j seg000:0985 mov al, 7 seg000:0987 mov ah, cs:[si+1] seg000:098B out dx, ax seg000:098C mov al, 12h seg000:098E mov ah, cs:[si+2] seg000:0992 out dx, ax seg000:0993 popf seg000:0994 seg000:0994 loc_0_994: ; CODE XREF: sub_0_8F7+7j seg000:0994 ; sub_0_8F7+14j seg000:0994 ; sub_0_8F7+29j seg000:0994 ; sub_0_8F7+79j seg000:0994 pop cx seg000:0995 pop bx seg000:0996 retn seg000:0996 sub_0_8F7 endp seg000:0996 seg000:0997 seg000:0997 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0997 seg000:0997 ; S u b r o u t i n e seg000:0997 seg000:0997 sub_0_997 proc near ; CODE XREF: sub_0_601+1A2p seg000:0997 push ax seg000:0998 push dx seg000:0999 push bx seg000:099A call getCRbase seg000:099D mov al, 11h seg000:099F out dx, al seg000:09A0 in ax, dx seg000:09A1 and ah, 7Fh seg000:09A4 pushf seg000:09A5 cli seg000:09A6 out dx, ax seg000:09A7 mov al, 0 seg000:09A9 out dx, al seg000:09AA in ax, dx seg000:09AB mov bh, ah seg000:09AD mov al, 1 seg000:09AF out dx, al seg000:09B0 in ax, dx seg000:09B1 sub bh, ah seg000:09B3 cmp bh, 30h ; '0' seg000:09B6 jb loc_0_9CA seg000:09B8 mov ax, 0Ch seg000:09BB out dx, ax seg000:09BC inc al seg000:09BE out dx, ax ; DMA controller, 8237A-5. seg000:09BE ; clear byte pointer flip-flop. seg000:09BF mov dx, 3CEh seg000:09C2 mov al, 0Eh seg000:09C4 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:09C4 ; seg000:09C5 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:09C5 ; seg000:09C6 and ah, 0F0h seg000:09C9 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:09C9 ; seg000:09CA seg000:09CA loc_0_9CA: ; CODE XREF: sub_0_997+1Fj seg000:09CA popf seg000:09CB pop bx seg000:09CC pop dx seg000:09CD pop ax seg000:09CE retn seg000:09CE sub_0_997 endp seg000:09CE seg000:09CE ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:09CF db 40h ; @ seg000:09D0 db 4 ; seg000:09D1 db 10h ; seg000:09D2 db 8 ; seg000:09D3 seg000:09D3 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:09D3 seg000:09D3 ; S u b r o u t i n e seg000:09D3 seg000:09D3 sub_0_9D3 proc near ; CODE XREF: sub_0_20BD+53p seg000:09D3 ; vgainit+47p seg000:09D3 push ax seg000:09D4 push cx seg000:09D5 push dx seg000:09D6 push si seg000:09D7 mov al, 1Dh seg000:09D9 call VGArGR seg000:09DC and ah, 60h seg000:09DF shr ah, 5 seg000:09E2 mov cl, ah seg000:09E4 xor ch, ch seg000:09E6 mov si, 9CFh seg000:09E9 add si, cx seg000:09EB mov al, cs:[si] seg000:09EE xor ah, ah seg000:09F0 mov cx, 5 seg000:09F3 mul cx seg000:09F5 mov cx, 3E8h seg000:09F8 mul cx seg000:09FA mov cx, 0Fh seg000:09FD div cx seg000:09FF mov cx, ax seg000:0A01 mov dx, 61h ; 'a' seg000:0A04 seg000:0A04 loc_0_A04: ; CODE XREF: sub_0_9D3+3Ej seg000:0A04 in al, dx ; PC/XT PPI port B bits: seg000:0A04 ; 0: Tmr 2 gate 曜 OR 03H=spkr ON seg000:0A04 ; 1: Tmr 2 data 夕 AND 0fcH=spkr OFF seg000:0A04 ; 3: 1=read high switches seg000:0A04 ; 4: 0=enable RAM parity checking seg000:0A04 ; 5: 0=enable I/O channel check seg000:0A04 ; 6: 0=hold keyboard clock low seg000:0A04 ; 7: 0=enable kbrd seg000:0A05 and al, 10h seg000:0A07 mov ah, al seg000:0A09 seg000:0A09 loc_0_A09: ; CODE XREF: sub_0_9D3+3Bj seg000:0A09 in al, dx ; PC/XT PPI port B bits: seg000:0A09 ; 0: Tmr 2 gate 曜 OR 03H=spkr ON seg000:0A09 ; 1: Tmr 2 data 夕 AND 0fcH=spkr OFF seg000:0A09 ; 3: 1=read high switches seg000:0A09 ; 4: 0=enable RAM parity checking seg000:0A09 ; 5: 0=enable I/O channel check seg000:0A09 ; 6: 0=hold keyboard clock low seg000:0A09 ; 7: 0=enable kbrd seg000:0A0A and al, 10h seg000:0A0C cmp al, ah seg000:0A0E jz loc_0_A09 seg000:0A10 dec cx seg000:0A11 jnz loc_0_A04 seg000:0A13 pop si seg000:0A14 pop dx seg000:0A15 pop cx seg000:0A16 pop ax seg000:0A17 retn seg000:0A17 sub_0_9D3 endp seg000:0A17 seg000:0A18 seg000:0A18 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0A18 seg000:0A18 ; S u b r o u t i n e seg000:0A18 seg000:0A18 sub_0_A18 proc near ; CODE XREF: sub_0_601+EEp seg000:0A18 ; sub_0_601+189p seg000:0A18 ; sub_0_601+1AEp seg000:0A18 ; sub_0_1BD0+16Ep seg000:0A18 push dx seg000:0A19 push ax seg000:0A1A push cx seg000:0A1B call getCRbase seg000:0A1E mov al, 1Eh seg000:0A20 out dx, al seg000:0A21 in ax, dx seg000:0A22 and ah, 3Fh seg000:0A25 shl cl, 6 seg000:0A28 or ah, cl seg000:0A2A out dx, ax seg000:0A2B pop cx seg000:0A2C pop ax seg000:0A2D pop dx seg000:0A2E retn seg000:0A2E sub_0_A18 endp seg000:0A2E seg000:0A2F seg000:0A2F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0A2F seg000:0A2F ; S u b r o u t i n e seg000:0A2F seg000:0A2F sub_0_A2F proc near ; CODE XREF: sub_0_601+14p seg000:0A2F push ax seg000:0A30 push dx seg000:0A31 push cx seg000:0A32 call sub_0_22C0 seg000:0A35 jnz loc_0_A3C seg000:0A37 pop cx seg000:0A38 and cl, 0FDh seg000:0A3B push cx seg000:0A3C seg000:0A3C loc_0_A3C: ; CODE XREF: sub_0_A2F+6j seg000:0A3C pop cx seg000:0A3D pop dx seg000:0A3E pop ax seg000:0A3F test cl, 2 seg000:0A42 retn seg000:0A42 sub_0_A2F endp seg000:0A42 seg000:0A43 seg000:0A43 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0A43 seg000:0A43 ; S u b r o u t i n e seg000:0A43 seg000:0A43 sub_0_A43 proc near ; CODE XREF: sub_0_A58+2p seg000:0A43 ; sub_0_1D75+6p seg000:0A43 ; sub_0_2037+7p seg000:0A43 ; sub_0_2151+4p seg000:0A43 ; seg000:2FFBp seg000:0A43 ; seg000:30A6p seg000:0A43 ; seg000:39B3p seg000:0A43 ; sub_0_3C41+2Bp seg000:0A43 ; sub_0_B2A3+182p seg000:0A43 push cx seg000:0A44 push dx seg000:0A45 call getCRbase seg000:0A48 mov al, 1Eh seg000:0A4A out dx, al seg000:0A4B in ax, dx seg000:0A4C shr ax, 0Fh seg000:0A4F jnb loc_0_A53 seg000:0A51 or al, 2 seg000:0A53 seg000:0A53 loc_0_A53: ; CODE XREF: sub_0_A43+Cj seg000:0A53 test al, 2 seg000:0A55 pop dx seg000:0A56 pop cx seg000:0A57 retn seg000:0A57 sub_0_A43 endp seg000:0A57 seg000:0A58 seg000:0A58 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0A58 seg000:0A58 ; S u b r o u t i n e seg000:0A58 seg000:0A58 sub_0_A58 proc near ; CODE XREF: seg000:56D1p seg000:0A58 push ax seg000:0A59 push dx seg000:0A5A call sub_0_A43 seg000:0A5D jz loc_0_A6C seg000:0A5F call sub_0_2F1 seg000:0A62 mov cl, bl seg000:0A64 and cl, 7Fh seg000:0A67 push si seg000:0A68 call sub_0_8F7 seg000:0A6B pop si seg000:0A6C seg000:0A6C loc_0_A6C: ; CODE XREF: sub_0_A58+5j seg000:0A6C pop dx seg000:0A6D pop ax seg000:0A6E retn seg000:0A6E sub_0_A58 endp seg000:0A6E seg000:0A6E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0A6F aNmshared db 'NMShared',0 seg000:0A78 seg000:0A78 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0A78 seg000:0A78 ; S u b r o u t i n e seg000:0A78 seg000:0A78 sub_0_A78 proc near ; CODE XREF: bl02+34p seg000:0A78 ; vgainit+E1p seg000:0A78 push ax seg000:0A79 push bx seg000:0A7A push cx seg000:0A7B push dx seg000:0A7C push es seg000:0A7D push di seg000:0A7E mov dx, 3C4h seg000:0A81 mov al, 2 seg000:0A83 out dx, al ; EGA: sequencer address reg seg000:0A83 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:0A84 in ax, dx ; EGA: sequencer address reg seg000:0A84 ; seg000:0A85 push ax seg000:0A86 mov ah, 0Fh seg000:0A88 out dx, ax ; EGA: sequencer address reg seg000:0A88 ; seg000:0A89 mov al, 4 seg000:0A8B out dx, al ; EGA: sequencer address reg seg000:0A8B ; memory mode. Data bits: seg000:0A8B ; 0: 1=text char generator; 0=graphics seg000:0A8B ; 1: 1=EGA ram > 64K; 0=64K seg000:0A8B ; 2: 1=sequential; 0=odd/even seg000:0A8C in ax, dx ; EGA: sequencer address reg seg000:0A8C ; seg000:0A8D push ax seg000:0A8E mov ah, 0Eh seg000:0A90 out dx, ax ; EGA: sequencer address reg seg000:0A90 ; seg000:0A91 mov dx, 3CEh seg000:0A94 mov al, 6 seg000:0A96 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0A96 ; miscellaneous graphics control.Data bits: seg000:0A96 ; 0: 1=graphics; 0=enable char gen (text) seg000:0A96 ; 1: 1=chain odd maps after even maps seg000:0A96 ; 2: memory mapping for CPU seg000:0A96 ; 00=a000H (128K); 01=a000H (64K) seg000:0A96 ; 10=b000H (32K MDA);11=b800H (32K CGA) seg000:0A97 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0A97 ; seg000:0A98 push ax seg000:0A99 mov ah, 5 seg000:0A9B out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0A9B ; mode register.Data bits: seg000:0A9B ; 0-1: Write mode 0-2 seg000:0A9B ; 2: test condition seg000:0A9B ; 3: read mode: 1=color compare, 0=direct seg000:0A9B ; 4: 1=use odd/even RAM addressing seg000:0A9B ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:0A9C mov al, 0Eh seg000:0A9E out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0A9E ; seg000:0A9F in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0A9F ; seg000:0AA0 push ax seg000:0AA1 or ah, 10h seg000:0AA4 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0AA4 ; seg000:0AA5 mov al, 15h seg000:0AA7 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0AA7 ; seg000:0AA8 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0AA8 ; seg000:0AA9 push ax seg000:0AAA mov cx, 9FFh seg000:0AAD mov ax, cx seg000:0AAF shl ax, 4 seg000:0AB2 mov al, 15h seg000:0AB4 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0AB4 ; seg000:0AB5 mov ax, cx seg000:0AB7 and ax, 0Fh seg000:0ABA shl ax, 0Ah seg000:0ABD push ax seg000:0ABE pop di seg000:0ABF push di seg000:0AC0 mov ax, 0A000h seg000:0AC3 push ax seg000:0AC4 pop es seg000:0AC5 assume es:nothing seg000:0AC5 mov cx, 100h seg000:0AC8 xor al, al seg000:0ACA rep stosb seg000:0ACC add di, 0Ch seg000:0ACF mov cx, 2F4h seg000:0AD2 rep stosb seg000:0AD4 pop di seg000:0AD5 mov ax, 100h seg000:0AD8 mov es:[di], ax seg000:0ADB mov ax, 4E4Dh seg000:0ADE mov es:[di+2], ax seg000:0AE2 xor bx, bx seg000:0AE4 mov al, 86h ; '' seg000:0AE6 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0AE6 ; seg000:0AE7 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0AE7 ; seg000:0AE8 mov bh, ah seg000:0AEA shr bx, 4 seg000:0AED mov al, 89h ; '' seg000:0AEF out dx, al ; EGA: graph 1 and 2 addr reg: seg000:0AEF ; seg000:0AF0 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:0AF0 ; seg000:0AF1 mov al, ah seg000:0AF3 and ax, 0Fh seg000:0AF6 or ax, bx seg000:0AF8 shl ax, 2 seg000:0AFB mov cl, ah seg000:0AFD mov ah, al seg000:0AFF xor al, al seg000:0B01 mov es:[di+4], ax seg000:0B05 xor ch, ch seg000:0B07 mov es:[di+6], cx seg000:0B0B xor ax, ax seg000:0B0D call sub_0_B67 seg000:0B10 jz loc_0_B15 seg000:0B12 or ax, 1 seg000:0B15 seg000:0B15 loc_0_B15: ; CODE XREF: sub_0_A78+98j seg000:0B15 mov es:[di+8], ax seg000:0B19 call getCRbase seg000:0B1C mov al, 1Ah seg000:0B1E out dx, al seg000:0B1F in ax, dx seg000:0B20 mov ch, ah seg000:0B22 mov al, 1Bh seg000:0B24 out dx, al seg000:0B25 in ax, dx seg000:0B26 mov cl, ah seg000:0B28 mov es:[di+0Ch], cx seg000:0B2C push di seg000:0B2D push si seg000:0B2E push ds seg000:0B2F push cs seg000:0B30 pop ds seg000:0B31 assume ds:seg000 seg000:0B31 mov si, 0A6Fh seg000:0B34 add di, 20h ; ' ' seg000:0B37 mov cx, 8 seg000:0B3A rep movsb seg000:0B3C pop ds seg000:0B3D assume ds:nothing seg000:0B3D pop si seg000:0B3E pop di seg000:0B3F test cs:word_0_AF, 4000h seg000:0B46 jz loc_0_B50 seg000:0B48 mov ax, 1 seg000:0B4B mov es:[di+108h], ax seg000:0B50 seg000:0B50 loc_0_B50: ; CODE XREF: sub_0_A78+CEj seg000:0B50 mov dx, 3CEh seg000:0B53 pop ax seg000:0B54 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0B54 ; seg000:0B55 pop ax seg000:0B56 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0B56 ; seg000:0B57 pop ax seg000:0B58 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:0B58 ; seg000:0B59 mov dx, 3C4h seg000:0B5C pop ax seg000:0B5D out dx, ax ; EGA: sequencer address reg seg000:0B5D ; seg000:0B5E pop ax seg000:0B5F out dx, ax ; EGA: sequencer address reg seg000:0B5F ; seg000:0B60 pop di seg000:0B61 pop es seg000:0B62 assume es:nothing seg000:0B62 pop dx seg000:0B63 pop cx seg000:0B64 pop bx seg000:0B65 pop ax seg000:0B66 retn seg000:0B66 sub_0_A78 endp seg000:0B66 seg000:0B67 seg000:0B67 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:0B67 seg000:0B67 ; S u b r o u t i n e seg000:0B67 seg000:0B67 sub_0_B67 proc near ; CODE XREF: sub_0_A78+95p seg000:0B67 push ax seg000:0B68 push bx seg000:0B69 push cx seg000:0B6A push dx seg000:0B6B push si seg000:0B6C xor si, si seg000:0B6E mov dx, 10C8h seg000:0B71 mov cx, 8005h seg000:0B74 mov ax, 0B102h seg000:0B77 int 1Ah seg000:0B79 jnb loc_0_B7B seg000:0B7B seg000:0B7B loc_0_B7B: seg000:0B7B mov bx, ax seg000:0B7D mov al, 7 seg000:0B7F call VGAwrCR8E8F seg000:0B82 and ah, 0FEh seg000:0B85 test bh, bh seg000:0B87 jnz loc_0_B8C seg000:0B89 or ah, 1 seg000:0B8C seg000:0B8C loc_0_B8C: ; CODE XREF: sub_0_B67+20j seg000:0B8C call VGAwwCR8E8F seg000:0B8F test bh, bh seg000:0B91 pop si seg000:0B92 pop dx seg000:0B93 pop cx seg000:0B94 pop bx seg000:0B95 pop ax seg000:0B96 retn seg000:0B96 sub_0_B67 endp seg000:0B96 seg000:0B96 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:0B97 tablemode dw 101h seg000:0B99 dw 111h seg000:0B9B dw 103h seg000:0B9D dw 114h seg000:0B9F dw 105h seg000:0BA1 dw 117h seg000:0BA3 dw 120h seg000:0BA5 dw 121h seg000:0BA7 dw 122h seg000:0BA9 dw 123h seg000:0BAB dw 124h seg000:0BAD dw 125h seg000:0BAF dw 300h seg000:0BB1 dw 301h seg000:0BB3 dw 310h seg000:0BB5 dw 311h seg000:0BB7 dw 200h seg000:0BB9 dw 201h seg000:0BBB dw 202h seg000:0BBD dw 210h seg000:0BBF dw 211h seg000:0BC1 dw 212h seg000:0BC3 dw 220h seg000:0BC5 dw 221h seg000:0BC7 dw 222h seg000:0BC9 dw 230h seg000:0BCB dw 231h seg000:0BCD dw 232h seg000:0BCF db 9Bh ; seg000:0BD0 db 3 ; seg000:0BD1 db 9Ch ; seg000:0BD2 db 5Fh ; _ seg000:0BD3 db 9Dh ; seg000:0BD4 db 4Fh ; O seg000:0BD5 db 9Eh ; seg000:0BD6 db 54h ; T seg000:0BD7 db 9Fh ; seg000:0BD8 db 0 ; seg000:0BD9 db 0A0h ; seg000:0BDA db 6 ; seg000:0BDB db 0A1h ; seg000:0BDC db 3Eh ; > seg000:0BDD db 90h ; seg000:0BDE db 80h ; seg000:0BDF db 0A2h ; seg000:0BE0 db 0E9h ; seg000:0BE1 db 0A3h ; seg000:0BE2 db 0Bh ; seg000:0BE3 db 0A4h ; seg000:0BE4 db 0DFh ; seg000:0BE5 db 8Ch ; seg000:0BE6 db 1 ; seg000:0BE7 db 8Dh ; seg000:0BE8 db 40h ; @ seg000:0BE9 db 85h ; seg000:0BEA db 16h ; seg000:0BEB db 83h ; seg000:0BEC db 3 ; seg000:0BED db 0 ; seg000:0BEE db 0 ; seg000:0BEF db 9Bh ; seg000:0BF0 db 3 ; seg000:0BF1 db 9Ch ; seg000:0BF2 db 5Fh ; _ seg000:0BF3 db 9Dh ; seg000:0BF4 db 4Fh ; O seg000:0BF5 db 9Eh ; seg000:0BF6 db 54h ; T seg000:0BF7 db 9Fh ; seg000:0BF8 db 0 ; seg000:0BF9 db 0A0h ; seg000:0BFA db 6 ; seg000:0BFB db 0A1h ; seg000:0BFC db 3Eh ; > seg000:0BFD db 90h ; seg000:0BFE db 80h ; seg000:0BFF db 0A2h ; seg000:0C00 db 0E9h ; seg000:0C01 db 0A3h ; seg000:0C02 db 0Bh ; seg000:0C03 db 0A4h ; seg000:0C04 db 0DFh ; seg000:0C05 db 8Ch ; seg000:0C06 db 2 ; seg000:0C07 db 8Dh ; seg000:0C08 db 80h ; seg000:0C09 db 85h ; seg000:0C0A db 2Ah ; * seg000:0C0B db 83h ; seg000:0C0C db 2 ; seg000:0C0D db 0 ; seg000:0C0E db 0 ; seg000:0C0F db 9Bh ; seg000:0C10 db 0 ; seg000:0C11 db 9Ch ; seg000:0C12 db 7Fh ;  seg000:0C13 db 9Dh ; seg000:0C14 db 63h ; c seg000:0C15 db 9Eh ; seg000:0C16 db 6Bh ; k seg000:0C17 db 9Fh ; seg000:0C18 db 1Bh ; seg000:0C19 db 0A0h ; seg000:0C1A db 72h ; r seg000:0C1B db 0A1h ; seg000:0C1C db 0E0h ; seg000:0C1D db 90h ; seg000:0C1E db 80h ; seg000:0C1F db 0A2h ; seg000:0C20 db 58h ; X seg000:0C21 db 0A3h ; seg000:0C22 db 0Ch ; seg000:0C23 db 0A4h ; seg000:0C24 db 57h ; W seg000:0C25 db 8Ch ; seg000:0C26 db 1 ; seg000:0C27 db 8Dh ; seg000:0C28 db 90h ; seg000:0C29 db 85h ; seg000:0C2A db 1Bh ; seg000:0C2B db 83h ; seg000:0C2C db 3 ; seg000:0C2D db 12h ; seg000:0C2E db 0 ; seg000:0C2F db 9Bh ; seg000:0C30 db 0 ; seg000:0C31 db 9Ch ; seg000:0C32 db 7Fh ;  seg000:0C33 db 9Dh ; seg000:0C34 db 63h ; c seg000:0C35 db 9Eh ; seg000:0C36 db 6Bh ; k seg000:0C37 db 9Fh ; seg000:0C38 db 1Bh ; seg000:0C39 db 0A0h ; seg000:0C3A db 72h ; r seg000:0C3B db 0A1h ; seg000:0C3C db 0E0h ; seg000:0C3D db 90h ; seg000:0C3E db 80h ; seg000:0C3F db 0A2h ; seg000:0C40 db 58h ; X seg000:0C41 db 0A3h ; seg000:0C42 db 0Ch ; seg000:0C43 db 0A4h ; seg000:0C44 db 57h ; W seg000:0C45 db 8Ch ; seg000:0C46 db 3 ; seg000:0C47 db 8Dh ; seg000:0C48 db 20h ; seg000:0C49 db 85h ; seg000:0C4A db 34h ; 4 seg000:0C4B db 83h ; seg000:0C4C db 2 ; seg000:0C4D db 12h ; seg000:0C4E db 0 ; seg000:0C4F db 9Bh ; seg000:0C50 db 3 ; seg000:0C51 db 9Ch ; seg000:0C52 db 0A3h ; seg000:0C53 db 9Dh ; seg000:0C54 db 7Fh ;  seg000:0C55 db 9Eh ; seg000:0C56 db 85h ; seg000:0C57 db 9Fh ; seg000:0C58 db 96h ; seg000:0C59 db 0A0h ; seg000:0C5A db 24h ; $ seg000:0C5B db 0A1h ; seg000:0C5C db 0E5h ; seg000:0C5D db 90h ; seg000:0C5E db 80h ; seg000:0C5F db 0A2h ; seg000:0C60 db 2 ; seg000:0C61 db 0A3h ; seg000:0C62 db 8 ; seg000:0C63 db 0A4h ; seg000:0C64 db 0FFh ; seg000:0C65 db 8Ch ; seg000:0C66 db 2 ; seg000:0C67 db 8Dh ; seg000:0C68 db 0 ; seg000:0C69 db 85h ; seg000:0C6A db 22h ; " seg000:0C6B db 83h ; seg000:0C6C db 3 ; seg000:0C6D db 27h ; ' seg000:0C6E db 0 ; seg000:0C6F db 9Bh ; seg000:0C70 db 3 ; seg000:0C71 db 9Ch ; seg000:0C72 db 0A3h ; seg000:0C73 db 9Dh ; seg000:0C74 db 7Fh ;  seg000:0C75 db 9Eh ; seg000:0C76 db 85h ; seg000:0C77 db 9Fh ; seg000:0C78 db 96h ; seg000:0C79 db 0A0h ; seg000:0C7A db 24h ; $ seg000:0C7B db 0A1h ; seg000:0C7C db 0E5h ; seg000:0C7D db 90h ; seg000:0C7E db 80h ; seg000:0C7F db 0A2h ; seg000:0C80 db 2 ; seg000:0C81 db 0A3h ; seg000:0C82 db 8 ; seg000:0C83 db 0A4h ; seg000:0C84 db 0FFh ; seg000:0C85 db 8Ch ; seg000:0C86 db 4 ; seg000:0C87 db 8Dh ; seg000:0C88 db 0 ; seg000:0C89 db 85h ; seg000:0C8A db 42h ; B seg000:0C8B db 83h ; seg000:0C8C db 2 ; seg000:0C8D db 27h ; ' seg000:0C8E db 0 ; seg000:0C8F db 9Bh ; seg000:0C90 db 1Bh ; seg000:0C91 db 9Ch ; seg000:0C92 db 5Fh ; _ seg000:0C93 db 9Dh ; seg000:0C94 db 4Fh ; O seg000:0C95 db 9Eh ; seg000:0C96 db 54h ; T seg000:0C97 db 9Fh ; seg000:0C98 db 0 ; seg000:0C99 db 0A0h ; seg000:0C9A db 6 ; seg000:0C9B db 0A1h ; seg000:0C9C db 3Eh ; > seg000:0C9D db 90h ; seg000:0C9E db 80h ; seg000:0C9F db 0A2h ; seg000:0CA0 db 0E9h ; seg000:0CA1 db 0A3h ; seg000:0CA2 db 0Bh ; seg000:0CA3 db 0A4h ; seg000:0CA4 db 0DFh ; seg000:0CA5 db 8Ch ; seg000:0CA6 db 0 ; seg000:0CA7 db 8Dh ; seg000:0CA8 db 0A0h ; seg000:0CA9 db 85h ; seg000:0CAA db 0Ch ; seg000:0CAB db 83h ; seg000:0CAC db 3 ; seg000:0CAD db 0 ; seg000:0CAE db 0 ; seg000:0CAF db 9Bh ; seg000:0CB0 db 1Bh ; seg000:0CB1 db 9Ch ; seg000:0CB2 db 5Fh ; _ seg000:0CB3 db 9Dh ; seg000:0CB4 db 4Fh ; O seg000:0CB5 db 9Eh ; seg000:0CB6 db 54h ; T seg000:0CB7 db 9Fh ; seg000:0CB8 db 0 ; seg000:0CB9 db 0A0h ; seg000:0CBA db 6 ; seg000:0CBB db 0A1h ; seg000:0CBC db 3Eh ; > seg000:0CBD db 90h ; seg000:0CBE db 80h ; seg000:0CBF db 0A2h ; seg000:0CC0 db 0E9h ; seg000:0CC1 db 0A3h ; seg000:0CC2 db 0Bh ; seg000:0CC3 db 0A4h ; seg000:0CC4 db 0DFh ; seg000:0CC5 db 8Ch ; seg000:0CC6 db 1 ; seg000:0CC7 db 8Dh ; seg000:0CC8 db 40h ; @ seg000:0CC9 db 85h ; seg000:0CCA db 16h ; seg000:0CCB db 83h ; seg000:0CCC db 2 ; seg000:0CCD db 0 ; seg000:0CCE db 0 ; seg000:0CCF db 9Bh ; seg000:0CD0 db 18h ; seg000:0CD1 db 9Ch ; seg000:0CD2 db 7Fh ;  seg000:0CD3 db 9Dh ; seg000:0CD4 db 63h ; c seg000:0CD5 db 9Eh ; seg000:0CD6 db 6Bh ; k seg000:0CD7 db 9Fh ; seg000:0CD8 db 1Bh ; seg000:0CD9 db 0A0h ; seg000:0CDA db 72h ; r seg000:0CDB db 0A1h ; seg000:0CDC db 0E0h ; seg000:0CDD db 90h ; seg000:0CDE db 80h ; seg000:0CDF db 0A2h ; seg000:0CE0 db 58h ; X seg000:0CE1 db 0A3h ; seg000:0CE2 db 0Ch ; seg000:0CE3 db 0A4h ; seg000:0CE4 db 57h ; W seg000:0CE5 db 8Ch ; seg000:0CE6 db 0 ; seg000:0CE7 db 8Dh ; seg000:0CE8 db 0C8h ; seg000:0CE9 db 85h ; seg000:0CEA db 0Fh ; seg000:0CEB db 83h ; seg000:0CEC db 3 ; seg000:0CED db 12h ; seg000:0CEE db 0 ; seg000:0CEF db 9Bh ; seg000:0CF0 db 18h ; seg000:0CF1 db 9Ch ; seg000:0CF2 db 7Fh ;  seg000:0CF3 db 9Dh ; seg000:0CF4 db 63h ; c seg000:0CF5 db 9Eh ; seg000:0CF6 db 6Bh ; k seg000:0CF7 db 9Fh ; seg000:0CF8 db 1Bh ; seg000:0CF9 db 0A0h ; seg000:0CFA db 72h ; r seg000:0CFB db 0A1h ; seg000:0CFC db 0E0h ; seg000:0CFD db 90h ; seg000:0CFE db 80h ; seg000:0CFF db 0A2h ; seg000:0D00 db 58h ; X seg000:0D01 db 0A3h ; seg000:0D02 db 0Ch ; seg000:0D03 db 0A4h ; seg000:0D04 db 57h ; W seg000:0D05 db 8Ch ; seg000:0D06 db 1 ; seg000:0D07 db 8Dh ; seg000:0D08 db 90h ; seg000:0D09 db 85h ; seg000:0D0A db 1Bh ; seg000:0D0B db 83h ; seg000:0D0C db 2 ; seg000:0D0D db 12h ; seg000:0D0E db 0 ; seg000:0D0F db 9Bh ; seg000:0D10 db 1Bh ; seg000:0D11 db 9Ch ; seg000:0D12 db 0A3h ; seg000:0D13 db 9Dh ; seg000:0D14 db 7Fh ;  seg000:0D15 db 9Eh ; seg000:0D16 db 85h ; seg000:0D17 db 9Fh ; seg000:0D18 db 96h ; seg000:0D19 db 0A0h ; seg000:0D1A db 24h ; $ seg000:0D1B db 0A1h ; seg000:0D1C db 0E5h ; seg000:0D1D db 90h ; seg000:0D1E db 80h ; seg000:0D1F db 0A2h ; seg000:0D20 db 2 ; seg000:0D21 db 0A3h ; seg000:0D22 db 8 ; seg000:0D23 db 0A4h ; seg000:0D24 db 0FFh ; seg000:0D25 db 8Ch ; seg000:0D26 db 1 ; seg000:0D27 db 8Dh ; seg000:0D28 db 0 ; seg000:0D29 db 85h ; seg000:0D2A db 12h ; seg000:0D2B db 83h ; seg000:0D2C db 3 ; seg000:0D2D db 27h ; ' seg000:0D2E db 0 ; seg000:0D2F db 9Bh ; seg000:0D30 db 1Bh ; seg000:0D31 db 9Ch ; seg000:0D32 db 0A3h ; seg000:0D33 db 9Dh ; seg000:0D34 db 7Fh ;  seg000:0D35 db 9Eh ; seg000:0D36 db 85h ; seg000:0D37 db 9Fh ; seg000:0D38 db 96h ; seg000:0D39 db 0A0h ; seg000:0D3A db 24h ; $ seg000:0D3B db 0A1h ; seg000:0D3C db 0E5h ; seg000:0D3D db 90h ; seg000:0D3E db 80h ; seg000:0D3F db 0A2h ; seg000:0D40 db 2 ; seg000:0D41 db 0A3h ; seg000:0D42 db 8 ; seg000:0D43 db 0A4h ; seg000:0D44 db 0FFh ; seg000:0D45 db 8Ch ; seg000:0D46 db 2 ; seg000:0D47 db 8Dh ; seg000:0D48 db 0 ; seg000:0D49 db 85h ; seg000:0D4A db 22h ; " seg000:0D4B db 83h ; seg000:0D4C db 2 ; seg000:0D4D db 27h ; ' seg000:0D4E db 0 ; seg000:0D4F db 9Bh ; seg000:0D50 db 1 ; seg000:0D51 db 9Ch ; seg000:0D52 db 83h ; seg000:0D53 db 9Dh ; seg000:0D54 db 6Bh ; k seg000:0D55 db 9Eh ; seg000:0D56 db 6Fh ; o seg000:0D57 db 9Fh ; seg000:0D58 db 1Eh ; seg000:0D59 db 0A0h ; seg000:0D5A db 0Bh ; seg000:0D5B db 0A1h ; seg000:0D5C db 26h ; & seg000:0D5D db 90h ; seg000:0D5E db 80h ; seg000:0D5F db 0A2h ; seg000:0D60 db 0EAh ; seg000:0D61 db 0A3h ; seg000:0D62 db 0Ch ; seg000:0D63 db 0A4h ; seg000:0D64 db 0DFh ; seg000:0D65 db 8Ch ; seg000:0D66 db 1 ; seg000:0D67 db 8Dh ; seg000:0D68 db 0B0h ; seg000:0D69 db 85h ; seg000:0D6A db 1Dh ; seg000:0D6B db 83h ; seg000:0D6C db 3 ; seg000:0D6D db 0Ch ; seg000:0D6E db 0 ; seg000:0D6F db 9Bh ; seg000:0D70 db 1 ; seg000:0D71 db 9Ch ; seg000:0D72 db 0ADh ; seg000:0D73 db 9Dh ; seg000:0D74 db 85h ; seg000:0D75 db 9Eh ; seg000:0D76 db 8Ch ; seg000:0D77 db 9Fh ; seg000:0D78 db 2 ; seg000:0D79 db 0A0h ; seg000:0D7A db 72h ; r seg000:0D7B db 0A1h ; seg000:0D7C db 0E0h ; seg000:0D7D db 90h ; seg000:0D7E db 80h ; seg000:0D7F db 0A2h ; seg000:0D80 db 59h ; Y seg000:0D81 db 0A3h ; seg000:0D82 db 0Dh ; seg000:0D83 db 0A4h ; seg000:0D84 db 57h ; W seg000:0D85 db 8Ch ; seg000:0D86 db 2 ; seg000:0D87 db 8Dh ; seg000:0D88 db 18h ; seg000:0D89 db 85h ; seg000:0D8A db 24h ; $ seg000:0D8B db 83h ; seg000:0D8C db 3 ; seg000:0D8D db 21h ; ! seg000:0D8E db 0 ; seg000:0D8F db 9Bh ; seg000:0D90 db 1 ; seg000:0D91 db 9Ch ; seg000:0D92 db 83h ; seg000:0D93 db 9Dh ; seg000:0D94 db 6Bh ; k seg000:0D95 db 9Eh ; seg000:0D96 db 6Fh ; o seg000:0D97 db 9Fh ; seg000:0D98 db 1Eh ; seg000:0D99 db 0A0h ; seg000:0D9A db 0Bh ; seg000:0D9B db 0A1h ; seg000:0D9C db 26h ; & seg000:0D9D db 90h ; seg000:0D9E db 80h ; seg000:0D9F db 0A2h ; seg000:0DA0 db 0EAh ; seg000:0DA1 db 0A3h ; seg000:0DA2 db 0Ch ; seg000:0DA3 db 0A4h ; seg000:0DA4 db 0DFh ; seg000:0DA5 db 8Ch ; seg000:0DA6 db 3 ; seg000:0DA7 db 8Dh ; seg000:0DA8 db 60h ; ` seg000:0DA9 db 85h ; seg000:0DAA db 38h ; 8 seg000:0DAB db 83h ; seg000:0DAC db 2 ; seg000:0DAD db 0Ch ; seg000:0DAE db 0 ; seg000:0DAF db 9Bh ; seg000:0DB0 db 1 ; seg000:0DB1 db 9Ch ; seg000:0DB2 db 0ADh ; seg000:0DB3 db 9Dh ; seg000:0DB4 db 85h ; seg000:0DB5 db 9Eh ; seg000:0DB6 db 8Ch ; seg000:0DB7 db 9Fh ; seg000:0DB8 db 2 ; seg000:0DB9 db 0A0h ; seg000:0DBA db 72h ; r seg000:0DBB db 0A1h ; seg000:0DBC db 0E0h ; seg000:0DBD db 90h ; seg000:0DBE db 80h ; seg000:0DBF db 0A2h ; seg000:0DC0 db 59h ; Y seg000:0DC1 db 0A3h ; seg000:0DC2 db 0Dh ; seg000:0DC3 db 0A4h ; seg000:0DC4 db 57h ; W seg000:0DC5 db 8Ch ; seg000:0DC6 db 4 ; seg000:0DC7 db 8Dh ; seg000:0DC8 db 30h ; 0 seg000:0DC9 db 85h ; seg000:0DCA db 45h ; E seg000:0DCB db 83h ; seg000:0DCC db 2 ; seg000:0DCD db 21h ; ! seg000:0DCE db 0 ; seg000:0DCF db 90h ; seg000:0DD0 db 9Ah ; seg000:0DD1 db 91h ; seg000:0DD2 db 0 ; seg000:0DD3 db 92h ; seg000:0DD4 db 0B0h ; seg000:0DD5 db 93h ; seg000:0DD6 db 0 ; seg000:0DD7 db 94h ; seg000:0DD8 db 2 ; seg000:0DD9 db 95h ; seg000:0DDA db 80h ; seg000:0DDB db 96h ; seg000:0DDC db 0 ; seg000:0DDD db 97h ; seg000:0DDE db 22h ; " seg000:0DDF db 98h ; seg000:0DE0 db 0 ; seg000:0DE1 db 99h ; seg000:0DE2 db 0 ; seg000:0DE3 db 9Ah ; seg000:0DE4 db 0C8h ; seg000:0DE5 db 9Bh ; seg000:0DE6 db 0 ; seg000:0DE7 db 8Ch ; seg000:0DE8 db 1 ; seg000:0DE9 db 8Dh ; seg000:0DEA db 40h ; @ seg000:0DEB db 0CCh ; seg000:0DEC db 0 ; seg000:0DED db 0CDh ; seg000:0DEE db 9 ; seg000:0DEF db 0CEh ; seg000:0DF0 db 0 ; seg000:0DF1 db 0CFh ; seg000:0DF2 db 5 ; seg000:0DF3 db 0A5h ; seg000:0DF4 db 22h ; " seg000:0DF5 db 0A6h ; seg000:0DF6 db 5 ; seg000:0DF7 db 0A7h ; seg000:0DF8 db 7 ; seg000:0DF9 db 82h ; seg000:0DFA db 36h ; 6 seg000:0DFB db 85h ; seg000:0DFC db 16h ; seg000:0DFD db 83h ; seg000:0DFE db 3 ; seg000:0DFF db 90h ; seg000:0E00 db 9Bh ; seg000:0E01 db 91h ; seg000:0E02 db 1 ; seg000:0E03 db 92h ; seg000:0E04 db 34h ; 4 seg000:0E05 db 93h ; seg000:0E06 db 0 ; seg000:0E07 db 94h ; seg000:0E08 db 2 ; seg000:0E09 db 95h ; seg000:0E0A db 80h ; seg000:0E0B db 96h ; seg000:0E0C db 0 ; seg000:0E0D db 97h ; seg000:0E0E db 28h ; ( seg000:0E0F db 98h ; seg000:0E10 db 0 ; seg000:0E11 db 99h ; seg000:0E12 db 0 ; seg000:0E13 db 9Ah ; seg000:0E14 db 0F0h ; seg000:0E15 db 9Bh ; seg000:0E16 db 0 ; seg000:0E17 db 8Ch ; seg000:0E18 db 1 ; seg000:0E19 db 8Dh ; seg000:0E1A db 40h ; @ seg000:0E1B db 0CCh ; seg000:0E1C db 0 ; seg000:0E1D db 0CDh ; seg000:0E1E db 9 ; seg000:0E1F db 0CEh ; seg000:0E20 db 0 ; seg000:0E21 db 0CFh ; seg000:0E22 db 5 ; seg000:0E23 db 0A5h ; seg000:0E24 db 28h ; ( seg000:0E25 db 0A6h ; seg000:0E26 db 5 ; seg000:0E27 db 0A7h ; seg000:0E28 db 39h ; 9 seg000:0E29 db 82h ; seg000:0E2A db 36h ; 6 seg000:0E2B db 85h ; seg000:0E2C db 16h ; seg000:0E2D db 83h ; seg000:0E2E db 3 ; seg000:0E2F db 90h ; seg000:0E30 db 9Bh ; seg000:0E31 db 91h ; seg000:0E32 db 0 ; seg000:0E33 db 92h ; seg000:0E34 db 0E0h ; seg000:0E35 db 93h ; seg000:0E36 db 0 ; seg000:0E37 db 94h ; seg000:0E38 db 0FBh ; seg000:0E39 db 95h ; seg000:0E3A db 20h ; seg000:0E3B db 96h ; seg000:0E3C db 4 ; seg000:0E3D db 97h ; seg000:0E3E db 18h ; seg000:0E3F db 98h ; seg000:0E40 db 7 ; seg000:0E41 db 99h ; seg000:0E42 db 1 ; seg000:0E43 db 9Ah ; seg000:0E44 db 4 ; seg000:0E45 db 9Bh ; seg000:0E46 db 0 ; seg000:0E47 db 8Ch ; seg000:0E48 db 1 ; seg000:0E49 db 8Dh ; seg000:0E4A db 90h ; seg000:0E4B db 0CCh ; seg000:0E4C db 0 ; seg000:0E4D db 0CDh ; seg000:0E4E db 9 ; seg000:0E4F db 0CEh ; seg000:0E50 db 0 ; seg000:0E51 db 0CFh ; seg000:0E52 db 5 ; seg000:0E53 db 0A5h ; seg000:0E54 db 1Fh ; seg000:0E55 db 0A6h ; seg000:0E56 db 5 ; seg000:0E57 db 0A7h ; seg000:0E58 db 39h ; 9 seg000:0E59 db 82h ; seg000:0E5A db 36h ; 6 seg000:0E5B db 85h ; seg000:0E5C db 1Bh ; seg000:0E5D db 83h ; seg000:0E5E db 3 ; seg000:0E5F db 90h ; seg000:0E60 db 9Ah ; seg000:0E61 db 91h ; seg000:0E62 db 0 ; seg000:0E63 db 92h ; seg000:0E64 db 0B0h ; seg000:0E65 db 93h ; seg000:0E66 db 0 ; seg000:0E67 db 94h ; seg000:0E68 db 2 ; seg000:0E69 db 95h ; seg000:0E6A db 80h ; seg000:0E6B db 96h ; seg000:0E6C db 0 ; seg000:0E6D db 97h ; seg000:0E6E db 22h ; " seg000:0E6F db 98h ; seg000:0E70 db 0 ; seg000:0E71 db 99h ; seg000:0E72 db 0 ; seg000:0E73 db 9Ah ; seg000:0E74 db 0C8h ; seg000:0E75 db 9Bh ; seg000:0E76 db 0 ; seg000:0E77 db 8Ch ; seg000:0E78 db 2 ; seg000:0E79 db 8Dh ; seg000:0E7A db 80h ; seg000:0E7B db 0CCh ; seg000:0E7C db 0 ; seg000:0E7D db 0CDh ; seg000:0E7E db 9 ; seg000:0E7F db 0CEh ; seg000:0E80 db 0 ; seg000:0E81 db 0CFh ; seg000:0E82 db 5 ; seg000:0E83 db 0A5h ; seg000:0E84 db 22h ; " seg000:0E85 db 0A6h ; seg000:0E86 db 5 ; seg000:0E87 db 0A7h ; seg000:0E88 db 7 ; seg000:0E89 db 82h ; seg000:0E8A db 36h ; 6 seg000:0E8B db 85h ; seg000:0E8C db 2Ah ; * seg000:0E8D db 83h ; seg000:0E8E db 2 ; seg000:0E8F db 90h ; seg000:0E90 db 9Bh ; seg000:0E91 db 91h ; seg000:0E92 db 1 ; seg000:0E93 db 92h ; seg000:0E94 db 34h ; 4 seg000:0E95 db 93h ; seg000:0E96 db 0 ; seg000:0E97 db 94h ; seg000:0E98 db 2 ; seg000:0E99 db 95h ; seg000:0E9A db 80h ; seg000:0E9B db 96h ; seg000:0E9C db 0 ; seg000:0E9D db 97h ; seg000:0E9E db 28h ; ( seg000:0E9F db 98h ; seg000:0EA0 db 0 ; seg000:0EA1 db 99h ; seg000:0EA2 db 0 ; seg000:0EA3 db 9Ah ; seg000:0EA4 db 0F0h ; seg000:0EA5 db 9Bh ; seg000:0EA6 db 0 ; seg000:0EA7 db 8Ch ; seg000:0EA8 db 2 ; seg000:0EA9 db 8Dh ; seg000:0EAA db 80h ; seg000:0EAB db 0CCh ; seg000:0EAC db 0 ; seg000:0EAD db 0CDh ; seg000:0EAE db 9 ; seg000:0EAF db 0CEh ; seg000:0EB0 db 0 ; seg000:0EB1 db 0CFh ; seg000:0EB2 db 5 ; seg000:0EB3 db 0A5h ; seg000:0EB4 db 28h ; ( seg000:0EB5 db 0A6h ; seg000:0EB6 db 5 ; seg000:0EB7 db 0A7h ; seg000:0EB8 db 39h ; 9 seg000:0EB9 db 82h ; seg000:0EBA db 36h ; 6 seg000:0EBB db 85h ; seg000:0EBC db 2Ah ; * seg000:0EBD db 83h ; seg000:0EBE db 2 ; seg000:0EBF db 90h ; seg000:0EC0 db 9Bh ; seg000:0EC1 db 91h ; seg000:0EC2 db 0 ; seg000:0EC3 db 92h ; seg000:0EC4 db 0E0h ; seg000:0EC5 db 93h ; seg000:0EC6 db 0 ; seg000:0EC7 db 94h ; seg000:0EC8 db 0FBh ; seg000:0EC9 db 95h ; seg000:0ECA db 20h ; seg000:0ECB db 96h ; seg000:0ECC db 4 ; seg000:0ECD db 97h ; seg000:0ECE db 18h ; seg000:0ECF db 98h ; seg000:0ED0 db 7 ; seg000:0ED1 db 99h ; seg000:0ED2 db 1 ; seg000:0ED3 db 9Ah ; seg000:0ED4 db 4 ; seg000:0ED5 db 9Bh ; seg000:0ED6 db 0 ; seg000:0ED7 db 8Ch ; seg000:0ED8 db 3 ; seg000:0ED9 db 8Dh ; seg000:0EDA db 20h ; seg000:0EDB db 0CCh ; seg000:0EDC db 0 ; seg000:0EDD db 0CDh ; seg000:0EDE db 9 ; seg000:0EDF db 0CEh ; seg000:0EE0 db 0 ; seg000:0EE1 db 0CFh ; seg000:0EE2 db 5 ; seg000:0EE3 db 0A5h ; seg000:0EE4 db 1Fh ; seg000:0EE5 db 0A6h ; seg000:0EE6 db 5 ; seg000:0EE7 db 0A7h ; seg000:0EE8 db 39h ; 9 seg000:0EE9 db 82h ; seg000:0EEA db 36h ; 6 seg000:0EEB db 85h ; seg000:0EEC db 34h ; 4 seg000:0EED db 83h ; seg000:0EEE db 2 ; seg000:0EEF db 90h ; seg000:0EF0 db 9Ah ; seg000:0EF1 db 91h ; seg000:0EF2 db 0 ; seg000:0EF3 db 92h ; seg000:0EF4 db 0B0h ; seg000:0EF5 db 93h ; seg000:0EF6 db 0 ; seg000:0EF7 db 94h ; seg000:0EF8 db 2 ; seg000:0EF9 db 95h ; seg000:0EFA db 80h ; seg000:0EFB db 96h ; seg000:0EFC db 0 ; seg000:0EFD db 97h ; seg000:0EFE db 22h ; " seg000:0EFF db 98h ; seg000:0F00 db 0 ; seg000:0F01 db 99h ; seg000:0F02 db 0 ; seg000:0F03 db 9Ah ; seg000:0F04 db 0C8h ; seg000:0F05 db 9Bh ; seg000:0F06 db 18h ; seg000:0F07 db 8Ch ; seg000:0F08 db 0 ; seg000:0F09 db 8Dh ; seg000:0F0A db 0A0h ; seg000:0F0B db 0CCh ; seg000:0F0C db 0 ; seg000:0F0D db 0CDh ; seg000:0F0E db 9 ; seg000:0F0F db 0CEh ; seg000:0F10 db 0 ; seg000:0F11 db 0CFh ; seg000:0F12 db 5 ; seg000:0F13 db 0A5h ; seg000:0F14 db 22h ; " seg000:0F15 db 0A6h ; seg000:0F16 db 5 ; seg000:0F17 db 0A7h ; seg000:0F18 db 7 ; seg000:0F19 db 82h ; seg000:0F1A db 36h ; 6 seg000:0F1B db 85h ; seg000:0F1C db 0Ch ; seg000:0F1D db 83h ; seg000:0F1E db 3 ; seg000:0F1F db 90h ; seg000:0F20 db 9Bh ; seg000:0F21 db 91h ; seg000:0F22 db 1 ; seg000:0F23 db 92h ; seg000:0F24 db 34h ; 4 seg000:0F25 db 93h ; seg000:0F26 db 0 ; seg000:0F27 db 94h ; seg000:0F28 db 2 ; seg000:0F29 db 95h ; seg000:0F2A db 80h ; seg000:0F2B db 96h ; seg000:0F2C db 0 ; seg000:0F2D db 97h ; seg000:0F2E db 28h ; ( seg000:0F2F db 98h ; seg000:0F30 db 0 ; seg000:0F31 db 99h ; seg000:0F32 db 0 ; seg000:0F33 db 9Ah ; seg000:0F34 db 0F0h ; seg000:0F35 db 9Bh ; seg000:0F36 db 18h ; seg000:0F37 db 8Ch ; seg000:0F38 db 0 ; seg000:0F39 db 8Dh ; seg000:0F3A db 0A0h ; seg000:0F3B db 0CCh ; seg000:0F3C db 0 ; seg000:0F3D db 0CDh ; seg000:0F3E db 9 ; seg000:0F3F db 0CEh ; seg000:0F40 db 0 ; seg000:0F41 db 0CFh ; seg000:0F42 db 5 ; seg000:0F43 db 0A5h ; seg000:0F44 db 28h ; ( seg000:0F45 db 0A6h ; seg000:0F46 db 5 ; seg000:0F47 db 0A7h ; seg000:0F48 db 39h ; 9 seg000:0F49 db 82h ; seg000:0F4A db 36h ; 6 seg000:0F4B db 85h ; seg000:0F4C db 0Ch ; seg000:0F4D db 83h ; seg000:0F4E db 3 ; seg000:0F4F db 90h ; seg000:0F50 db 9Bh ; seg000:0F51 db 91h ; seg000:0F52 db 0 ; seg000:0F53 db 92h ; seg000:0F54 db 0E0h ; seg000:0F55 db 93h ; seg000:0F56 db 0 ; seg000:0F57 db 94h ; seg000:0F58 db 0FBh ; seg000:0F59 db 95h ; seg000:0F5A db 20h ; seg000:0F5B db 96h ; seg000:0F5C db 4 ; seg000:0F5D db 97h ; seg000:0F5E db 18h ; seg000:0F5F db 98h ; seg000:0F60 db 0 ; seg000:0F61 db 99h ; seg000:0F62 db 1 ; seg000:0F63 db 9Ah ; seg000:0F64 db 4 ; seg000:0F65 db 9Bh ; seg000:0F66 db 18h ; seg000:0F67 db 8Ch ; seg000:0F68 db 0 ; seg000:0F69 db 8Dh ; seg000:0F6A db 0C8h ; seg000:0F6B db 0CCh ; seg000:0F6C db 0 ; seg000:0F6D db 0CDh ; seg000:0F6E db 9 ; seg000:0F6F db 0CEh ; seg000:0F70 db 0 ; seg000:0F71 db 0CFh ; seg000:0F72 db 5 ; seg000:0F73 db 0A5h ; seg000:0F74 db 18h ; seg000:0F75 db 0A6h ; seg000:0F76 db 5 ; seg000:0F77 db 0A7h ; seg000:0F78 db 39h ; 9 seg000:0F79 db 82h ; seg000:0F7A db 36h ; 6 seg000:0F7B db 85h ; seg000:0F7C db 0Fh ; seg000:0F7D db 83h ; seg000:0F7E db 3 ; seg000:0F7F db 90h ; seg000:0F80 db 9Ah ; seg000:0F81 db 91h ; seg000:0F82 db 0 ; seg000:0F83 db 92h ; seg000:0F84 db 0B0h ; seg000:0F85 db 93h ; seg000:0F86 db 0 ; seg000:0F87 db 94h ; seg000:0F88 db 2 ; seg000:0F89 db 95h ; seg000:0F8A db 80h ; seg000:0F8B db 96h ; seg000:0F8C db 0 ; seg000:0F8D db 97h ; seg000:0F8E db 22h ; " seg000:0F8F db 98h ; seg000:0F90 db 0 ; seg000:0F91 db 99h ; seg000:0F92 db 0 ; seg000:0F93 db 9Ah ; seg000:0F94 db 0C8h ; seg000:0F95 db 9Bh ; seg000:0F96 db 18h ; seg000:0F97 db 8Ch ; seg000:0F98 db 1 ; seg000:0F99 db 8Dh ; seg000:0F9A db 40h ; @ seg000:0F9B db 0CCh ; seg000:0F9C db 0 ; seg000:0F9D db 0CDh ; seg000:0F9E db 9 ; seg000:0F9F db 0CEh ; seg000:0FA0 db 0 ; seg000:0FA1 db 0CFh ; seg000:0FA2 db 5 ; seg000:0FA3 db 0A5h ; seg000:0FA4 db 22h ; " seg000:0FA5 db 0A6h ; seg000:0FA6 db 5 ; seg000:0FA7 db 0A7h ; seg000:0FA8 db 7 ; seg000:0FA9 db 82h ; seg000:0FAA db 36h ; 6 seg000:0FAB db 85h ; seg000:0FAC db 16h ; seg000:0FAD db 83h ; seg000:0FAE db 2 ; seg000:0FAF db 90h ; seg000:0FB0 db 9Bh ; seg000:0FB1 db 91h ; seg000:0FB2 db 1 ; seg000:0FB3 db 92h ; seg000:0FB4 db 34h ; 4 seg000:0FB5 db 93h ; seg000:0FB6 db 0 ; seg000:0FB7 db 94h ; seg000:0FB8 db 2 ; seg000:0FB9 db 95h ; seg000:0FBA db 80h ; seg000:0FBB db 96h ; seg000:0FBC db 0 ; seg000:0FBD db 97h ; seg000:0FBE db 28h ; ( seg000:0FBF db 98h ; seg000:0FC0 db 0 ; seg000:0FC1 db 99h ; seg000:0FC2 db 0 ; seg000:0FC3 db 9Ah ; seg000:0FC4 db 0F0h ; seg000:0FC5 db 9Bh ; seg000:0FC6 db 18h ; seg000:0FC7 db 8Ch ; seg000:0FC8 db 1 ; seg000:0FC9 db 8Dh ; seg000:0FCA db 40h ; @ seg000:0FCB db 0CCh ; seg000:0FCC db 0 ; seg000:0FCD db 0CDh ; seg000:0FCE db 9 ; seg000:0FCF db 0CEh ; seg000:0FD0 db 0 ; seg000:0FD1 db 0CFh ; seg000:0FD2 db 5 ; seg000:0FD3 db 0A5h ; seg000:0FD4 db 28h ; ( seg000:0FD5 db 0A6h ; seg000:0FD6 db 5 ; seg000:0FD7 db 0A7h ; seg000:0FD8 db 39h ; 9 seg000:0FD9 db 82h ; seg000:0FDA db 36h ; 6 seg000:0FDB db 85h ; seg000:0FDC db 16h ; seg000:0FDD db 83h ; seg000:0FDE db 2 ; seg000:0FDF db 90h ; seg000:0FE0 db 9Bh ; seg000:0FE1 db 91h ; seg000:0FE2 db 0 ; seg000:0FE3 db 92h ; seg000:0FE4 db 0E0h ; seg000:0FE5 db 93h ; seg000:0FE6 db 0 ; seg000:0FE7 db 94h ; seg000:0FE8 db 0FBh ; seg000:0FE9 db 95h ; seg000:0FEA db 20h ; seg000:0FEB db 96h ; seg000:0FEC db 4 ; seg000:0FED db 97h ; seg000:0FEE db 18h ; seg000:0FEF db 98h ; seg000:0FF0 db 0 ; seg000:0FF1 db 99h ; seg000:0FF2 db 1 ; seg000:0FF3 db 9Ah ; seg000:0FF4 db 4 ; seg000:0FF5 db 9Bh ; seg000:0FF6 db 18h ; seg000:0FF7 db 8Ch ; seg000:0FF8 db 1 ; seg000:0FF9 db 8Dh ; seg000:0FFA db 90h ; seg000:0FFB db 0CCh ; seg000:0FFC db 0 ; seg000:0FFD db 0CDh ; seg000:0FFE db 9 ; seg000:0FFF db 0CEh ; seg000:1000 db 0 ; seg000:1001 db 0CFh ; seg000:1002 db 5 ; seg000:1003 db 0A5h ; seg000:1004 db 18h ; seg000:1005 db 0A6h ; seg000:1006 db 5 ; seg000:1007 db 0A7h ; seg000:1008 db 39h ; 9 seg000:1009 db 82h ; seg000:100A db 36h ; 6 seg000:100B db 85h ; seg000:100C db 1Bh ; seg000:100D db 83h ; seg000:100E db 2 ; seg000:100F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:100F seg000:100F loc_0_100F: ; CODE XREF: seg000:335Bj seg000:100F push si seg000:1010 push ds seg000:1011 push cs seg000:1012 pop ds seg000:1013 assume ds:seg000 seg000:1013 cmp cx, 1FFFh seg000:1017 jz loc_0_107D seg000:1019 cmp cx, 0FFh seg000:101D jz loc_0_104E seg000:101F mov ax, cx seg000:1021 and ax, 0BFFFh seg000:1024 call sub_0_4008 seg000:1027 jz loc_0_1035 seg000:1029 push dx seg000:102A call sub_0_122C seg000:102D pop dx seg000:102E jnb loc_0_1035 seg000:1030 pop ds seg000:1031 assume ds:nothing seg000:1031 pop si seg000:1032 jmp loc_0_6042 seg000:1035 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1035 seg000:1035 loc_0_1035: ; CODE XREF: seg000:1027j seg000:1035 ; seg000:102Ej seg000:1035 mov ax, 5 seg000:1038 call VGAwrCR8E8F seg000:103B and ah, 0FBh seg000:103E test cx, 4000h seg000:1042 jz loc_0_1047 seg000:1044 or ah, 4 seg000:1047 seg000:1047 loc_0_1047: ; CODE XREF: seg000:1042j seg000:1047 call VGAwwCR8E8F seg000:104A and cx, 0BFFFh seg000:104E seg000:104E loc_0_104E: ; CODE XREF: seg000:101Dj seg000:104E call readTESTCR8E8F seg000:1051 jz loc_0_105A seg000:1053 jnb loc_0_105A seg000:1055 call sub_0_407A seg000:1058 jnz loc_0_105F seg000:105A seg000:105A loc_0_105A: ; CODE XREF: seg000:1051j seg000:105A ; seg000:1053j seg000:105A push cx seg000:105B call sub_0_10B1 seg000:105E pop cx seg000:105F seg000:105F loc_0_105F: ; CODE XREF: seg000:1058j seg000:105F mov al, 1Eh seg000:1061 call VGArCR seg000:1064 or ah, 20h seg000:1067 call VGAwCR seg000:106A test cs:word_0_B1, 10h seg000:1071 jnz loc_0_107D seg000:1073 call sub_0_1285 seg000:1076 mov ax, 5F44h seg000:1079 mov bh, 1 seg000:107B int 15h seg000:107D seg000:107D loc_0_107D: ; CODE XREF: seg000:1017j seg000:107D ; seg000:1071j seg000:107D call dualdispCRTtest seg000:1080 mov [bp+0Eh], cx seg000:1083 mov al, 8Dh ; '' seg000:1085 call VGArCR seg000:1088 mov bl, ah seg000:108A mov al, 8Ch ; '' seg000:108C call VGArCR seg000:108F mov bh, ah seg000:1091 mov [bp+2], bx seg000:1094 mov al, 8Bh ; '' seg000:1096 call VGArCR seg000:1099 mov [bp+0Ch], ah seg000:109C mov al, 8Ah ; '' seg000:109E call VGArCR seg000:10A1 mov [bp+0Dh], ah seg000:10A4 mov al, 89h ; '' seg000:10A6 call VGArCR seg000:10A9 mov [bp+0Bh], ah seg000:10AC pop ds seg000:10AD pop si seg000:10AE jmp bl_exit seg000:10B1 seg000:10B1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:10B1 seg000:10B1 ; S u b r o u t i n e seg000:10B1 seg000:10B1 sub_0_10B1 proc near ; CODE XREF: sub_0_601+DEp seg000:10B1 ; sub_0_601+15Ep seg000:10B1 ; seg000:105Bp seg000:10B1 ; seg000:133Ep seg000:10B1 ; TV0409p TV0509p TV0609+4Bp seg000:10B1 push cs seg000:10B2 pop ds seg000:10B3 assume ds:seg000 seg000:10B3 push cx seg000:10B4 push dx seg000:10B5 mov ax, cx seg000:10B7 call sub_0_122C seg000:10BA pop dx seg000:10BB and cx, 7FFFh seg000:10BF push cx seg000:10C0 call sub_0_11FB seg000:10C3 mov cx, dx seg000:10C5 call getCRbase seg000:10C8 mov al, 80h ; '' seg000:10CA mov ah, 60h ; '`' seg000:10CC out dx, ax seg000:10CD mov al, 89h ; '' seg000:10CF mov ah, bh seg000:10D1 out dx, ax seg000:10D2 inc al seg000:10D4 mov ah, ch seg000:10D6 out dx, ax ; DMA page register 74LS612: seg000:10D6 ; Channel 6 (address bits 17-23) seg000:10D7 inc al seg000:10D9 mov ah, cl seg000:10DB out dx, ax ; DMA page register 74LS612: seg000:10DB ; Channel 7 (address bits 17-23) seg000:10DC pop cx seg000:10DD mov al, 82h ; '' seg000:10DF mov ah, 2 seg000:10E1 out dx, ax ; DMA page register 74LS612: seg000:10E1 ; Channel 7 (address bits 17-23) seg000:10E2 mov al, 1Bh seg000:10E4 call VGArCR seg000:10E7 cmp ah, 10h seg000:10EA jnz loc_0_10FB seg000:10EC mov ax, 319h seg000:10EF cmp cx, 105h seg000:10F3 jnz loc_0_10F8 seg000:10F5 mov ax, 119h seg000:10F8 seg000:10F8 loc_0_10F8: ; CODE XREF: sub_0_10B1+42j seg000:10F8 call VGAwGR seg000:10FB seg000:10FB loc_0_10FB: ; CODE XREF: sub_0_10B1+39j seg000:10FB cmp cx, 0FFh seg000:10FF jnz loc_0_1118 seg000:1101 mov ch, 0FFh seg000:1103 call sub_0_11FB seg000:1106 mov al, 82h ; '' seg000:1108 mov ah, 2 seg000:110A call VGAwCR seg000:110D mov dx, 3C4h seg000:1110 mov ax, 0Fh seg000:1113 out dx, ax ; EGA: sequencer address reg seg000:1113 ; seg000:1114 pop cx seg000:1115 jmp locret_0_11D5 seg000:1118 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1118 seg000:1118 loc_0_1118: ; CODE XREF: sub_0_10B1+4Ej seg000:1118 cmp cx, 300h seg000:111C jnb loc_0_1124 seg000:111E cmp cx, 200h seg000:1122 jnb loc_0_114A seg000:1124 seg000:1124 loc_0_1124: ; CODE XREF: sub_0_10B1+6Bj seg000:1124 push cx seg000:1125 mov cx, 20h ; ' ' seg000:1128 shr cx, 1 seg000:112A dec cx seg000:112B rep outsw seg000:112D mov bx, cs:[si] seg000:1130 call sub_0_3D24 seg000:1133 pop cx seg000:1134 xor ah, ah seg000:1136 cmp cx, 300h seg000:113A jnb loc_0_113F seg000:113C call sub_0_14D9 seg000:113F seg000:113F loc_0_113F: ; CODE XREF: sub_0_10B1+89j seg000:113F mov al, 82h ; '' seg000:1141 mov ah, 2 seg000:1143 call VGAwCR seg000:1146 mov ah, 75h ; 'u' seg000:1148 jmp short loc_0_1180 seg000:114A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:114A seg000:114A loc_0_114A: ; CODE XREF: sub_0_10B1+71j seg000:114A mov cx, 30h ; '0' seg000:114D shr cx, 1 seg000:114F rep outsw seg000:1151 mov bx, 15h seg000:1154 call sub_0_3D24 seg000:1157 mov al, 90h ; '' seg000:1159 call VGArCR seg000:115C mov bl, ah seg000:115E mov al, 0A8h ; '' seg000:1160 call VGArCR seg000:1163 and ah, 0BFh seg000:1166 test bl, 1 seg000:1169 jnz loc_0_116E seg000:116B or ah, 40h seg000:116E seg000:116E loc_0_116E: ; CODE XREF: sub_0_10B1+B8j seg000:116E call VGAwCR seg000:1171 mov al, 3 seg000:1173 call VGAwrCR8E8F seg000:1176 and ah, 7 seg000:1179 mov cl, ah seg000:117B call CR90modify seg000:117E mov ah, 73h ; 's' seg000:1180 seg000:1180 loc_0_1180: ; CODE XREF: sub_0_10B1+97j seg000:1180 mov al, 80h ; '' seg000:1182 push ax seg000:1183 push di seg000:1184 mov ah, 40h ; '@' seg000:1186 call VGAwCR seg000:1189 mov al, 83h ; '' seg000:118B call VGArCR seg000:118E test ah, 1 seg000:1191 jz loc_0_1198 seg000:1193 call sub_0_4BEA seg000:1196 jmp short loc_0_119D seg000:1198 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1198 seg000:1198 loc_0_1198: ; CODE XREF: sub_0_10B1+E0j seg000:1198 mov bl, 10h seg000:119A call loc_0_5A19 seg000:119D seg000:119D loc_0_119D: ; CODE XREF: sub_0_10B1+E5j seg000:119D pop di seg000:119E or di, di seg000:11A0 jz loc_0_11B2 seg000:11A2 mov bx, di seg000:11A4 mov al, 8Ch ; '' seg000:11A6 mov ah, bh seg000:11A8 call VGAwCR seg000:11AB inc al seg000:11AD mov ah, bl seg000:11AF call VGAwCR seg000:11B2 seg000:11B2 loc_0_11B2: ; CODE XREF: sub_0_10B1+EFj seg000:11B2 pop ax seg000:11B3 pop cx seg000:11B4 test ax, 8000h seg000:11B7 jz loc_0_11BC seg000:11B9 and ah, 0FEh seg000:11BC seg000:11BC loc_0_11BC: ; CODE XREF: sub_0_10B1+106j seg000:11BC call VGAwCR seg000:11BF mov al, 20h ; ' ' seg000:11C1 call VGArGR seg000:11C4 or ah, 1 seg000:11C7 call VGAwGR seg000:11CA mov al, 1Eh seg000:11CC call VGArCR seg000:11CF or ah, 80h seg000:11D2 call VGAwCR seg000:11D5 seg000:11D5 locret_0_11D5: ; CODE XREF: sub_0_10B1+64j seg000:11D5 retn seg000:11D5 sub_0_10B1 endp seg000:11D5 seg000:11D6 seg000:11D6 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:11D6 seg000:11D6 ; S u b r o u t i n e seg000:11D6 seg000:11D6 dualdispCRTtest proc near ; CODE XREF: seg000:107Dp seg000:11D6 ; seg000:139Ap seg000:11D6 ; sub_0_1BD0+93p seg000:11D6 ; bl07+CEp bl07+F0p seg000:11D6 ; bl07+17Cp bl07+19Dp seg000:11D6 ; seg000:38D0p seg000:11D6 ; seg000:39A5p seg000:11D6 ; sub_0_39DA+3p seg000:11D6 ; sub_0_3A01+3p seg000:11D6 ; TV0909+B3p seg000:11D6 mov cx, 0FFFFh seg000:11D9 mov al, 80h ; '' seg000:11DB call VGArCR seg000:11DE test ah, 6 seg000:11E1 jz locret_0_11FA seg000:11E3 mov al, 2 seg000:11E5 call VGAwrCR8E8F seg000:11E8 cmp ah, 0FFh seg000:11EB jz locret_0_11FA seg000:11ED mov cl, ah seg000:11EF and cl, 3Fh seg000:11F2 and ah, 0C0h seg000:11F5 shr ah, 6 seg000:11F8 mov ch, ah seg000:11FA seg000:11FA locret_0_11FA: ; CODE XREF: dualdispCRTtest+Bj seg000:11FA ; dualdispCRTtest+15j seg000:11FA retn seg000:11FA dualdispCRTtest endp seg000:11FA seg000:11FB seg000:11FB ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:11FB seg000:11FB ; S u b r o u t i n e seg000:11FB seg000:11FB sub_0_11FB proc near ; CODE XREF: sub_0_10B1+Fp seg000:11FB ; sub_0_10B1+52p seg000:11FB ; sub_0_1BD0+115p seg000:11FB ; TV0609+67p sub_0_B7E0+31p seg000:11FB cmp cx, 200h seg000:11FF jb loc_0_121F seg000:1201 cmp cx, 300h seg000:1205 jnb loc_0_121F seg000:1207 mov al, 4 seg000:1209 call VGAwrCR8E8F seg000:120C and ah, 7Fh seg000:120F push bx seg000:1210 mov bx, cs:[si] seg000:1213 test bh, 1 seg000:1216 jz loc_0_121B seg000:1218 or ah, 80h seg000:121B seg000:121B loc_0_121B: ; CODE XREF: sub_0_11FB+1Bj seg000:121B call VGAwwCR8E8F seg000:121E pop bx seg000:121F seg000:121F loc_0_121F: ; CODE XREF: sub_0_11FB+4j seg000:121F ; sub_0_11FB+Aj seg000:121F mov al, 2 seg000:1221 mov ah, cl seg000:1223 shl ch, 6 seg000:1226 or ah, ch seg000:1228 call VGAwwCR8E8F seg000:122B retn seg000:122B sub_0_11FB endp seg000:122B seg000:122C seg000:122C ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:122C seg000:122C ; S u b r o u t i n e seg000:122C seg000:122C sub_0_122C proc near ; CODE XREF: seg000:102Ap seg000:122C ; sub_0_10B1+6p seg000:122C ; bl07+181p bl07+1A2p seg000:122C ; sub_0_39DA+8p seg000:122C ; sub_0_3A01+8p seg000:122C ; TV0609+31p seg000:122C push ax seg000:122D push cx seg000:122E push di seg000:122F push es seg000:1230 push cs seg000:1231 pop es seg000:1232 assume es:seg000 seg000:1232 test ax, 8000h seg000:1235 jz loc_0_123C seg000:1237 and ax, 7FFFh seg000:123A jmp short loc_0_1241 seg000:123C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:123C seg000:123C loc_0_123C: ; CODE XREF: sub_0_122C+9j seg000:123C call getBiosMode? seg000:123F jb loc_0_127F seg000:1241 seg000:1241 loc_0_1241: ; CODE XREF: sub_0_122C+Ej seg000:1241 push ax seg000:1242 xor ah, ah seg000:1244 add ax, 20h ; ' ' seg000:1247 call sub_0_1BA8 seg000:124A pop ax seg000:124B jb loc_0_127F seg000:124D mov cx, 1Ch seg000:1250 mov di, 0B97h seg000:1253 repne scasw seg000:1255 jnz loc_0_127F seg000:1257 sub di, 2 seg000:125A sub di, 0B97h seg000:125E shr di, 1 seg000:1260 cmp di, 10h seg000:1263 jnb loc_0_126F seg000:1265 mov ax, 20h ; ' ' seg000:1268 mul di seg000:126A mov si, 0BCFh seg000:126D jmp short loc_0_127A seg000:126F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:126F seg000:126F loc_0_126F: ; CODE XREF: sub_0_122C+37j seg000:126F sub di, 10h seg000:1272 mov ax, 30h ; '0' seg000:1275 mul di seg000:1277 mov si, 0DCFh seg000:127A seg000:127A loc_0_127A: ; CODE XREF: sub_0_122C+41j seg000:127A add si, ax seg000:127C clc seg000:127D jmp short loc_0_1280 seg000:127F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:127F seg000:127F loc_0_127F: ; CODE XREF: sub_0_122C+13j seg000:127F ; sub_0_122C+1Fj seg000:127F ; sub_0_122C+29j seg000:127F stc seg000:1280 seg000:1280 loc_0_1280: ; CODE XREF: sub_0_122C+51j seg000:1280 pop es seg000:1281 assume es:nothing seg000:1281 pop di seg000:1282 pop cx seg000:1283 pop ax seg000:1284 retn seg000:1284 sub_0_122C endp seg000:1284 seg000:1285 seg000:1285 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1285 seg000:1285 ; S u b r o u t i n e seg000:1285 seg000:1285 sub_0_1285 proc near ; CODE XREF: sub_0_601+68p seg000:1285 ; seg000:1073p seg000:1285 ; bl04+29p bl04+5Ap seg000:1285 ; seg000:3994p seg000:1285 push ax seg000:1286 mov al, 1Eh seg000:1288 call VGArCR seg000:128B shr ah, 6 seg000:128E mov cl, ah seg000:1290 mov al, 80h ; '' seg000:1292 call VGArCR seg000:1295 test ah, 1 seg000:1298 jz loc_0_12BF seg000:129A or cl, 10h seg000:129D test ah, 2 seg000:12A0 jnz loc_0_12AC seg000:12A2 mov al, 6 seg000:12A4 call VGAwrCR8E8F seg000:12A7 test ah, 10h seg000:12AA jz loc_0_12BF seg000:12AC seg000:12AC loc_0_12AC: ; CODE XREF: sub_0_1285+1Bj seg000:12AC or cl, 4 seg000:12AF and cl, 0FDh seg000:12B2 mov al, 4 seg000:12B4 call VGAwrCR8E8F seg000:12B7 test ah, 80h seg000:12BA jz loc_0_12BF seg000:12BC or cl, 8 seg000:12BF seg000:12BF loc_0_12BF: ; CODE XREF: sub_0_1285+13j seg000:12BF ; sub_0_1285+25j seg000:12BF ; sub_0_1285+35j seg000:12BF pop ax seg000:12C0 retn seg000:12C0 sub_0_1285 endp seg000:12C0 seg000:12C1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:12C1 seg000:12C1 loc_0_12C1: ; CODE XREF: sub_0_601+297p seg000:12C1 push cx seg000:12C2 push bx seg000:12C3 mov al, 90h ; '' seg000:12C5 call VGArGR seg000:12C8 and ah, 7 seg000:12CB cmp ah, 4 seg000:12CE jnz loc_0_12DC seg000:12D0 push ax seg000:12D1 mov al, 5 seg000:12D3 call VGAwrCR8E8F seg000:12D6 test ah, 1 seg000:12D9 pop ax seg000:12DA jz loc_0_1344 seg000:12DC seg000:12DC loc_0_12DC: ; CODE XREF: seg000:12CEj seg000:12DC mov cl, 0 seg000:12DE cmp ah, 1 seg000:12E1 jz loc_0_12E5 seg000:12E3 mov cl, 10h seg000:12E5 seg000:12E5 loc_0_12E5: ; CODE XREF: seg000:12E1j seg000:12E5 call getCR23BiosM seg000:12E8 cmp bl, 40h ; '@' seg000:12EB jb loc_0_12F5 seg000:12ED cmp bl, 45h ; 'E' seg000:12F0 ja loc_0_12F5 seg000:12F2 or cl, 20h seg000:12F5 seg000:12F5 loc_0_12F5: ; CODE XREF: seg000:12EBj seg000:12F5 ; seg000:12F0j seg000:12F5 mov al, 4 seg000:12F7 call VGAwrCR8E8F seg000:12FA and ah, 80h seg000:12FD jz loc_0_130C seg000:12FF mov ah, 1 seg000:1301 test cs:word_0_B3, 40h seg000:1308 jz loc_0_130C seg000:130A mov ah, 2 seg000:130C seg000:130C loc_0_130C: ; CODE XREF: seg000:12FDj seg000:130C ; seg000:1308j seg000:130C or cl, ah seg000:130E mov ch, 2 seg000:1310 mov ax, cx seg000:1312 and al, 2 seg000:1314 cmp al, 2 seg000:1316 jnz loc_0_1326 seg000:1318 mov al, 20h ; ' ' seg000:131A call VGArGR seg000:131D and ah, 60h seg000:1320 cmp ah, 0 seg000:1323 jnz loc_0_1326 seg000:1325 dec cx seg000:1326 seg000:1326 loc_0_1326: ; CODE XREF: seg000:1316j seg000:1326 ; seg000:1323j seg000:1326 call sub_0_2D52 seg000:1329 shl ax, 2 seg000:132C mov di, ax seg000:132E xor bh, bh seg000:1330 xor dx, dx seg000:1332 call readTESTCR8E8F seg000:1335 jz loc_0_133E seg000:1337 jnb loc_0_133E seg000:1339 call sub_0_407A seg000:133C jnz loc_0_1344 seg000:133E seg000:133E loc_0_133E: ; CODE XREF: seg000:1335j seg000:133E ; seg000:1337j seg000:133E call sub_0_10B1 seg000:1341 call sub_0_53B1 seg000:1344 seg000:1344 loc_0_1344: ; CODE XREF: seg000:12DAj seg000:1344 ; seg000:133Cj seg000:1344 pop bx seg000:1345 pop cx seg000:1346 retn seg000:1347 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1347 seg000:1347 loc_0_1347: ; CODE XREF: seg000:3363j seg000:1347 mov al, 89h ; '' seg000:1349 mov ah, bh seg000:134B call VGAwCR seg000:134E inc al seg000:1350 mov ah, dh seg000:1352 call VGAwCR seg000:1355 inc al seg000:1357 mov ah, dl seg000:1359 call VGAwCR seg000:135C or di, di seg000:135E jz loc_0_1370 seg000:1360 mov bx, di seg000:1362 inc al seg000:1364 mov ah, bh seg000:1366 call VGAwCR seg000:1369 inc al seg000:136B mov ah, bl seg000:136D call VGAwCR seg000:1370 seg000:1370 loc_0_1370: ; CODE XREF: seg000:135Ej seg000:1370 jmp bl_exit seg000:1373 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1373 jmp bl_exit seg000:1376 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1376 seg000:1376 loc_0_1376: ; CODE XREF: seg000:336Bj seg000:1376 mov al, 5 seg000:1378 call VGAwrCR8E8F seg000:137B cmp bh, 0 seg000:137E jnz loc_0_1388 seg000:1380 and ah, 1 seg000:1383 mov [bp+0Eh], ah seg000:1386 jmp short loc_0_1397 seg000:1388 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1388 seg000:1388 loc_0_1388: ; CODE XREF: seg000:137Ej seg000:1388 cmp bh, 1 seg000:138B jnz loc_0_1397 seg000:138D and ah, 0FEh seg000:1390 or ah, cl seg000:1392 mov al, 5 seg000:1394 call VGAwwCR8E8F seg000:1397 seg000:1397 loc_0_1397: ; CODE XREF: seg000:1386j seg000:1397 ; seg000:138Bj seg000:1397 jmp bl_exit seg000:139A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:139A seg000:139A loc_0_139A: ; CODE XREF: seg000:3373j seg000:139A call dualdispCRTtest seg000:139D mov [bp+0Ah], cx seg000:13A0 cmp ch, 2 seg000:13A3 jz loc_0_13DC seg000:13A5 mov al, 9Dh ; '' seg000:13A7 call VGArCR seg000:13AA inc ah seg000:13AC shr ax, 8 seg000:13AF shl ax, 3 seg000:13B2 mov [bp+0Eh], ax seg000:13B5 mov al, 0A4h ; '' seg000:13B7 call VGArCR seg000:13BA shr ax, 8 seg000:13BD mov cx, ax seg000:13BF mov al, 0A1h ; '' seg000:13C1 call VGArCR seg000:13C4 test ah, 2 seg000:13C7 jz loc_0_13CD seg000:13C9 or cx, 100h seg000:13CD seg000:13CD loc_0_13CD: ; CODE XREF: seg000:13C7j seg000:13CD test ah, 40h seg000:13D0 jz loc_0_13D6 seg000:13D2 or cx, 200h seg000:13D6 seg000:13D6 loc_0_13D6: ; CODE XREF: seg000:13D0j seg000:13D6 inc cx seg000:13D7 mov [bp+0Ch], cx seg000:13DA jmp short loc_0_13F6 seg000:13DC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:13DC seg000:13DC loc_0_13DC: ; CODE XREF: seg000:13A3j seg000:13DC and cl, 3 seg000:13DF mov ax, 280h seg000:13E2 mov bx, 1E0h seg000:13E5 cmp cl, 2 seg000:13E8 jb loc_0_13F0 seg000:13EA mov ax, 320h seg000:13ED mov bx, 258h seg000:13F0 seg000:13F0 loc_0_13F0: ; CODE XREF: seg000:13E8j seg000:13F0 mov [bp+0Eh], ax seg000:13F3 mov [bp+0Ch], bx seg000:13F6 seg000:13F6 loc_0_13F6: ; CODE XREF: seg000:13DAj seg000:13F6 jmp bl_exit seg000:13F6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:13F9 db 11h ; seg000:13FA db 14h ; seg000:13FB db 21h ; ! seg000:13FC db 14h ; seg000:13FD db 31h ; 1 seg000:13FE db 14h ; seg000:13FF db 41h ; A seg000:1400 db 14h ; seg000:1401 db 51h ; Q seg000:1402 db 14h ; seg000:1403 db 61h ; a seg000:1404 db 14h ; seg000:1405 db 71h ; q seg000:1406 db 14h ; seg000:1407 db 81h ; seg000:1408 db 14h ; seg000:1409 db 91h ; seg000:140A db 14h ; seg000:140B db 0A3h ; seg000:140C db 14h ; seg000:140D db 0B5h ; seg000:140E db 14h ; seg000:140F db 0C7h ; seg000:1410 db 14h ; seg000:1411 db 9Ch ; seg000:1412 db 0A3h ; seg000:1413 db 9Eh ; seg000:1414 db 85h ; seg000:1415 db 9Fh ; seg000:1416 db 96h ; seg000:1417 db 0A0h ; seg000:1418 db 24h ; $ seg000:1419 db 0A2h ; seg000:141A db 2 ; seg000:141B db 0A3h ; seg000:141C db 88h ; seg000:141D db 0FFh ; seg000:141E db 0FFh ; seg000:141F db 27h ; ' seg000:1420 db 0 ; seg000:1421 db 9Ch ; seg000:1422 db 0A1h ; seg000:1423 db 9Eh ; seg000:1424 db 85h ; seg000:1425 db 9Fh ; seg000:1426 db 96h ; seg000:1427 db 0A0h ; seg000:1428 db 24h ; $ seg000:1429 db 0A2h ; seg000:142A db 2 ; seg000:142B db 0A3h ; seg000:142C db 88h ; seg000:142D db 0FFh ; seg000:142E db 0FFh ; seg000:142F db 2Ah ; * seg000:1430 db 0 ; seg000:1431 db 9Ch ; seg000:1432 db 9Fh ; seg000:1433 db 9Eh ; seg000:1434 db 84h ; seg000:1435 db 9Fh ; seg000:1436 db 90h ; seg000:1437 db 0A0h ; seg000:1438 db 1Eh ; seg000:1439 db 0A2h ; seg000:143A db 0 ; seg000:143B db 0A3h ; seg000:143C db 83h ; seg000:143D db 0FFh ; seg000:143E db 0FFh ; seg000:143F db 30h ; 0 seg000:1440 db 0 ; seg000:1441 db 9Ch ; seg000:1442 db 0A9h ; seg000:1443 db 9Eh ; seg000:1444 db 86h ; seg000:1445 db 9Fh ; seg000:1446 db 92h ; seg000:1447 db 0A0h ; seg000:1448 db 26h ; & seg000:1449 db 0A2h ; seg000:144A db 0 ; seg000:144B db 0A3h ; seg000:144C db 83h ; seg000:144D db 0FFh ; seg000:144E db 0FFh ; seg000:144F db 33h ; 3 seg000:1450 db 0 ; seg000:1451 db 9Ch ; seg000:1452 db 7Fh ;  seg000:1453 db 9Eh ; seg000:1454 db 6Bh ; k seg000:1455 db 9Fh ; seg000:1456 db 1Bh ; seg000:1457 db 0A0h ; seg000:1458 db 72h ; r seg000:1459 db 0A2h ; seg000:145A db 58h ; X seg000:145B db 0A3h ; seg000:145C db 8Ch ; seg000:145D db 0FFh ; seg000:145E db 0FFh ; seg000:145F db 12h ; seg000:1460 db 0 ; seg000:1461 db 9Ch ; seg000:1462 db 7Dh ; } seg000:1463 db 9Eh ; seg000:1464 db 6Ch ; l seg000:1465 db 9Fh ; seg000:1466 db 1Ch ; seg000:1467 db 0A0h ; seg000:1468 db 98h ; seg000:1469 db 0A2h ; seg000:146A db 7Dh ; } seg000:146B db 0A3h ; seg000:146C db 83h ; seg000:146D db 0FFh ; seg000:146E db 0FFh ; seg000:146F db 1Eh ; seg000:1470 db 0 ; seg000:1471 db 9Ch ; seg000:1472 db 7Fh ;  seg000:1473 db 9Eh ; seg000:1474 db 68h ; h seg000:1475 db 9Fh ; seg000:1476 db 12h ; seg000:1477 db 0A0h ; seg000:1478 db 6Fh ; o seg000:1479 db 0A2h ; seg000:147A db 58h ; X seg000:147B db 0A3h ; seg000:147C db 8Bh ; seg000:147D db 0FFh ; seg000:147E db 0FFh ; seg000:147F db 18h ; seg000:1480 db 0 ; seg000:1481 db 9Ch ; seg000:1482 db 7Eh ; ~ seg000:1483 db 9Eh ; seg000:1484 db 6Ah ; j seg000:1485 db 9Fh ; seg000:1486 db 12h ; seg000:1487 db 0A0h ; seg000:1488 db 75h ; u seg000:1489 db 0A2h ; seg000:148A db 58h ; X seg000:148B db 0A3h ; seg000:148C db 8Bh ; seg000:148D db 0FFh ; seg000:148E db 0FFh ; seg000:148F db 24h ; $ seg000:1490 db 0 ; seg000:1491 db 9Ch ; seg000:1492 db 5Fh ; _ seg000:1493 db 9Eh ; seg000:1494 db 54h ; T seg000:1495 db 9Fh ; seg000:1496 db 80h ; seg000:1497 db 0A0h ; seg000:1498 db 0Bh ; seg000:1499 db 0A1h ; seg000:149A db 3Eh ; > seg000:149B db 0A2h ; seg000:149C db 0E9h ; seg000:149D db 0A3h ; seg000:149E db 8Bh ; seg000:149F db 0FFh ; seg000:14A0 db 0FFh ; seg000:14A1 db 0 ; seg000:14A2 db 0 ; seg000:14A3 db 9Ch ; seg000:14A4 db 63h ; c seg000:14A5 db 9Eh ; seg000:14A6 db 55h ; U seg000:14A7 db 9Fh ; seg000:14A8 db 9Ah ; seg000:14A9 db 0A0h ; seg000:14AA db 6 ; seg000:14AB db 0A1h ; seg000:14AC db 3Eh ; > seg000:14AD db 0A2h ; seg000:14AE db 0E8h ; seg000:14AF db 0A3h ; seg000:14B0 db 8Bh ; seg000:14B1 db 0FFh ; seg000:14B2 db 0FFh ; seg000:14B3 db 6 ; seg000:14B4 db 0 ; seg000:14B5 db 9Ch ; seg000:14B6 db 64h ; d seg000:14B7 db 9Eh ; seg000:14B8 db 54h ; T seg000:14B9 db 9Fh ; seg000:14BA db 9Ch ; seg000:14BB db 0A0h ; seg000:14BC db 0F2h ; seg000:14BD db 0A1h ; seg000:14BE db 1Fh ; seg000:14BF db 0A2h ; seg000:14C0 db 0E0h ; seg000:14C1 db 0A3h ; seg000:14C2 db 83h ; seg000:14C3 db 0FFh ; seg000:14C4 db 0FFh ; seg000:14C5 db 6 ; seg000:14C6 db 0 ; seg000:14C7 db 9Ch ; seg000:14C8 db 63h ; c seg000:14C9 db 9Eh ; seg000:14CA db 58h ; X seg000:14CB db 9Fh ; seg000:14CC db 9Fh ; seg000:14CD db 0A0h ; seg000:14CE db 0FBh ; seg000:14CF db 0A1h ; seg000:14D0 db 1Fh ; seg000:14D1 db 0A2h ; seg000:14D2 db 0E0h ; seg000:14D3 db 0A3h ; seg000:14D4 db 83h ; seg000:14D5 db 0FFh ; seg000:14D6 db 0FFh ; seg000:14D7 db 0Fh ; seg000:14D8 db 0 ; seg000:14D9 seg000:14D9 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:14D9 seg000:14D9 ; S u b r o u t i n e seg000:14D9 seg000:14D9 sub_0_14D9 proc near ; CODE XREF: sub_0_10B1+8Bp seg000:14D9 ; seg000:39AAp seg000:14D9 push ax seg000:14DA push bx seg000:14DB push dx seg000:14DC push cx seg000:14DD push si seg000:14DE push ax seg000:14DF mov al, 21h ; '!' seg000:14E1 call VGArCRunlock seg000:14E4 and ah, 0E7h seg000:14E7 out dx, ax seg000:14E8 pop ax seg000:14E9 mov dh, ah seg000:14EB mov al, cl seg000:14ED or al, 20h seg000:14EF call sub_0_5142 seg000:14F2 cmp al, 7 seg000:14F4 jb loc_0_14F9 seg000:14F6 jmp loc_0_1587 seg000:14F9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:14F9 seg000:14F9 loc_0_14F9: ; CODE XREF: sub_0_14D9+1Bj seg000:14F9 sub al, 3 seg000:14FB jnb loc_0_1500 seg000:14FD jmp loc_0_1587 seg000:1500 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1500 seg000:1500 loc_0_1500: ; CODE XREF: sub_0_14D9+22j seg000:1500 or dh, dh seg000:1502 jz loc_0_150A seg000:1504 mov bl, bh seg000:1506 xor bh, bh seg000:1508 jmp short loc_0_151E seg000:150A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:150A seg000:150A loc_0_150A: ; CODE XREF: sub_0_14D9+29j seg000:150A push ax seg000:150B mov al, 1Fh seg000:150D call VGArCRunlock seg000:1510 xor bx, bx seg000:1512 mov bl, ah seg000:1514 pop ax seg000:1515 mov cl, al seg000:1517 shl cl, 1 seg000:1519 shr bl, cl seg000:151B and bl, 3 seg000:151E seg000:151E loc_0_151E: ; CODE XREF: sub_0_14D9+2Fj seg000:151E cmp al, 2 seg000:1520 jl loc_0_154B seg000:1522 cmp bl, 1 seg000:1525 ja loc_0_1587 seg000:1527 mov al, 83h ; '' seg000:1529 call VGArCR seg000:152C test ah, 1 seg000:152F jz loc_0_1587 seg000:1531 mov si, 13F9h seg000:1534 mov cl, 3 seg000:1536 mov al, 9Bh ; '' seg000:1538 call VGArCR seg000:153B and ah, 0FCh seg000:153E cmp bl, 2 seg000:1541 jnb loc_0_1546 seg000:1543 or ah, 3 seg000:1546 seg000:1546 loc_0_1546: ; CODE XREF: sub_0_14D9+68j seg000:1546 call VGAwCR seg000:1549 jmp short loc_0_1565 seg000:154B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:154B seg000:154B loc_0_154B: ; CODE XREF: sub_0_14D9+47j seg000:154B cmp al, 1 seg000:154D jl loc_0_155B seg000:154F cmp bl, 3 seg000:1552 ja loc_0_1587 seg000:1554 mov si, 1401h seg000:1557 mov cl, 2 seg000:1559 jmp short loc_0_1565 seg000:155B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:155B seg000:155B loc_0_155B: ; CODE XREF: sub_0_14D9+74j seg000:155B cmp bl, 3 seg000:155E ja loc_0_1587 seg000:1560 mov si, 1409h seg000:1563 mov cl, 0 seg000:1565 seg000:1565 loc_0_1565: ; CODE XREF: sub_0_14D9+70j seg000:1565 ; sub_0_14D9+80j seg000:1565 mov al, 21h ; '!' seg000:1567 call VGArCRunlock seg000:156A and ah, 0E7h seg000:156D shl bx, 3 seg000:1570 or ah, bl seg000:1572 shr bx, 3 seg000:1575 out dx, ax seg000:1576 shl bx, 1 seg000:1578 mov si, cs:[bx+si] seg000:157B call getCRbase seg000:157E call customPortPrg seg000:1581 mov bx, cs:[si] seg000:1584 call sub_0_3D24 seg000:1587 seg000:1587 loc_0_1587: ; CODE XREF: sub_0_14D9+1Dj seg000:1587 ; sub_0_14D9+24j seg000:1587 ; sub_0_14D9+4Cj seg000:1587 ; sub_0_14D9+56j seg000:1587 ; sub_0_14D9+79j seg000:1587 ; sub_0_14D9+85j seg000:1587 pop si seg000:1588 pop cx seg000:1589 pop dx seg000:158A pop bx seg000:158B pop ax seg000:158C retn seg000:158C sub_0_14D9 endp seg000:158C seg000:158D seg000:158D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:158D seg000:158D ; S u b r o u t i n e seg000:158D seg000:158D CR90modify proc near ; CODE XREF: sub_0_10B1+CAp seg000:158D ; bl07+87p seg000:158D call readTESTCR8E8F seg000:1590 jz loc_0_1598 seg000:1592 jnb loc_0_1598 seg000:1594 call TV0809 seg000:1597 retn seg000:1598 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1598 seg000:1598 loc_0_1598: ; CODE XREF: CR90modify+3j seg000:1598 ; CR90modify+5j seg000:1598 mov al, 90h ; '' seg000:159A call VGArCR seg000:159D and ah, 0E3h seg000:15A0 or cl, cl seg000:15A2 jz loc_0_15B1 seg000:15A4 or ah, 10h seg000:15A7 dec cl seg000:15A9 shl cl, 2 seg000:15AC and cl, 0Ch seg000:15AF or ah, cl seg000:15B1 seg000:15B1 loc_0_15B1: ; CODE XREF: CR90modify+15j seg000:15B1 call VGAwCR seg000:15B4 retn seg000:15B4 CR90modify endp seg000:15B4 seg000:15B4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:15B5 db 0 ; seg000:15B6 db 0 ; seg000:15B7 db 0 ; seg000:15B8 db 0 ; seg000:15B9 db 0 ; seg000:15BA db 0 ; seg000:15BB db 0 ; seg000:15BC db 2 ; seg000:15BD db 4 ; seg000:15BE db 2 ; seg000:15BF word_0_15BF dw 0A000h ; DATA XREF: seg000:15D8r seg000:15C1 db 0 ; seg000:15C2 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:15C2 mov ax, 0F7E9h seg000:15C5 xor al, 8Bh seg000:15C7 stc seg000:15C8 shr di, 3 seg000:15CB xchg ax, dx seg000:15CC mul word ptr byte_0_A seg000:15D0 add di, ax seg000:15D2 adc dl, 0 seg000:15D5 and cl, 7 seg000:15D8 mov ds, cs:word_0_15BF seg000:15DD assume ds:nothing seg000:15DD call VGAwGR15shift seg000:15E0 mov dx, 3CEh seg000:15E3 mov ax, 8008h seg000:15E6 shr ah, cl seg000:15E8 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15E8 ; seg000:15E9 mov ax, 1803h seg000:15EC out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15EC ; seg000:15ED mov ax, 205h seg000:15F0 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15F0 ; seg000:15F1 mov cx, si seg000:15F3 xchg cl, [di] seg000:15F5 xor ah, ah seg000:15F7 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15F7 ; mode register.Data bits: seg000:15F7 ; 0-1: Write mode 0-2 seg000:15F7 ; 2: test condition seg000:15F7 ; 3: read mode: 1=color compare, 0=direct seg000:15F7 ; 4: 1=use odd/even RAM addressing seg000:15F7 ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:15F8 mov al, 3 seg000:15FA out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15FA ; data rotate and function select for write mode 00. Bits: seg000:15FA ; 0-2: set rotate count for write mode 00 seg000:15FA ; 3-4: fn for write modes 00 and 02 seg000:15FA ; 00=no change; 01=AND; 10=OR; 11=XOR seg000:15FB mov ax, 0FF08h seg000:15FE out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:15FE ; seg000:15FF jmp int10_exit seg000:1602 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1602 retn seg000:1603 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1603 call sub_0_5F77 seg000:1606 call VGAwGR15shift seg000:1609 mov dx, 3C4h seg000:160C mov ah, bh seg000:160E mov al, 2 seg000:1610 out dx, ax ; EGA: sequencer address reg seg000:1610 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:1611 mov dl, 0CEh ; '' seg000:1613 mov ax, 1803h seg000:1616 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1616 ; seg000:1617 seg000:1617 loc_0_1617: ; CODE XREF: seg000:1624j seg000:1617 pusha seg000:1618 seg000:1618 loc_0_1618: ; CODE XREF: seg000:1620j seg000:1618 cmpsb seg000:1619 dec si seg000:161A dec di seg000:161B movsb seg000:161C add di, bp seg000:161E dec bl seg000:1620 jnz loc_0_1618 seg000:1622 popa seg000:1623 inc di seg000:1624 loop loc_0_1617 seg000:1626 mov ax, 3 seg000:1629 out dx, ax seg000:162A mov dl, 0C4h ; '' seg000:162C mov ax, 0F02h seg000:162F out dx, ax seg000:1630 retn seg000:1631 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1631 retn seg000:1632 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1632 retn seg000:1633 seg000:1633 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1633 seg000:1633 ; S u b r o u t i n e seg000:1633 seg000:1633 sub_0_1633 proc near ; CODE XREF: seg000:61A0p seg000:1633 ; seg000:61ECp seg000:1633 ; sub_0_6220+8p seg000:1633 enter 18h, 0 seg000:1637 pusha seg000:1638 push ds seg000:1639 call sub_0_5316 seg000:163C mov [bp-10h], bl seg000:163F inc dh seg000:1641 mov [bp-0Bh], bh seg000:1644 mov byte ptr [bp-0Ah], 0FFh seg000:1648 cmp byte ptr [bp-10h], 0Ah seg000:164C jb loc_0_166E seg000:164E call sub_0_17D1 seg000:1651 mov [bp-2], di seg000:1654 cmp ah, 6 seg000:1657 jz loc_0_1660 seg000:1659 neg word ptr [bp-2] seg000:165C neg al seg000:165E xchg ch, dh seg000:1660 seg000:1660 loc_0_1660: ; CODE XREF: sub_0_1633+24j seg000:1660 call sub_0_1690 seg000:1663 call sub_0_17AF seg000:1666 call sub_0_16A2 seg000:1669 call sub_0_16DA seg000:166C jmp short loc_0_1689 seg000:166E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:166E seg000:166E loc_0_166E: ; CODE XREF: sub_0_1633+19j seg000:166E call sub_0_17D1 seg000:1671 mov [bp-2], di seg000:1674 cmp ah, 6 seg000:1677 jz loc_0_1680 seg000:1679 neg word ptr [bp-2] seg000:167C neg al seg000:167E xchg ch, dh seg000:1680 seg000:1680 loc_0_1680: ; CODE XREF: sub_0_1633+44j seg000:1680 call sub_0_1690 seg000:1683 call sub_0_17AF seg000:1686 call sub_0_16F0 seg000:1689 seg000:1689 loc_0_1689: ; CODE XREF: sub_0_1633+39j seg000:1689 call sub_0_229E seg000:168C pop ds seg000:168D assume ds:nothing seg000:168D popa seg000:168E leave seg000:168F retn seg000:168F sub_0_1633 endp seg000:168F seg000:1690 seg000:1690 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1690 seg000:1690 ; S u b r o u t i n e seg000:1690 seg000:1690 sub_0_1690 proc near ; CODE XREF: sub_0_1633+2Dp seg000:1690 ; sub_0_1633+4Dp seg000:1690 push cx seg000:1691 push dx seg000:1692 xor dh, dh seg000:1694 xor ch, ch seg000:1696 sub dx, cx seg000:1698 inc dx seg000:1699 mov [bp-6], dx seg000:169C mov [bp-4], cx seg000:169F pop dx seg000:16A0 pop cx seg000:16A1 retn seg000:16A1 sub_0_1690 endp seg000:16A1 seg000:16A2 seg000:16A2 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:16A2 seg000:16A2 ; S u b r o u t i n e seg000:16A2 seg000:16A2 sub_0_16A2 proc near ; CODE XREF: sub_0_1633+33p seg000:16A2 push ax seg000:16A3 push dx seg000:16A4 mov ax, [bp-6] seg000:16A7 call sub_0_19DA seg000:16AA shl dl, 1 seg000:16AC mul dl seg000:16AE mov [bp-6], ax seg000:16B1 mov ax, [bp-4] seg000:16B4 mul dl seg000:16B6 mov [bp-4], ax seg000:16B9 pop dx seg000:16BA pop ax seg000:16BB mov si, [bp-4] seg000:16BE shr si, 2 seg000:16C1 call sub_0_51CA seg000:16C4 jnz loc_0_16CF seg000:16C6 shl si, 1 seg000:16C8 call sub_0_51B2 seg000:16CB jz loc_0_16CF seg000:16CD shl si, 1 seg000:16CF seg000:16CF loc_0_16CF: ; CODE XREF: sub_0_16A2+22j seg000:16CF ; sub_0_16A2+29j seg000:16CF and word ptr [bp-4], 0Fh seg000:16D3 add bx, si seg000:16D5 add cx, si seg000:16D7 add dx, si seg000:16D9 retn seg000:16D9 sub_0_16A2 endp seg000:16D9 seg000:16DA seg000:16DA ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:16DA seg000:16DA ; S u b r o u t i n e seg000:16DA seg000:16DA sub_0_16DA proc near ; CODE XREF: sub_0_1633+36p seg000:16DA push ax seg000:16DB push dx seg000:16DC mov dx, 3C4h seg000:16DF mov ax, 604h seg000:16E2 out dx, ax ; EGA: sequencer address reg seg000:16E2 ; seg000:16E3 pop dx seg000:16E4 call sub_0_16F0 seg000:16E7 mov dx, 3C4h seg000:16EA mov ax, 0E04h seg000:16ED out dx, ax ; EGA: sequencer address reg seg000:16ED ; seg000:16EE pop ax seg000:16EF retn seg000:16EF sub_0_16DA endp seg000:16EF seg000:16F0 seg000:16F0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:16F0 seg000:16F0 ; S u b r o u t i n e seg000:16F0 seg000:16F0 sub_0_16F0 proc near ; CODE XREF: sub_0_1633+53p seg000:16F0 ; sub_0_16DA+Ap seg000:16F0 push ax seg000:16F1 push bx seg000:16F2 push cx seg000:16F3 push dx seg000:16F4 mov ah, 1 seg000:16F6 call sub_0_1803 seg000:16F9 call sub_0_242 seg000:16FC mov si, 0A000h seg000:16FF mov ds, si seg000:1701 assume ds:nothing seg000:1701 mov si, 0A000h seg000:1704 mov es, si seg000:1706 assume es:nothing seg000:1706 cmp bx, cx seg000:1708 jz loc_0_1719 seg000:170A seg000:170A loc_0_170A: ; CODE XREF: sub_0_16F0+27j seg000:170A cmp bx, dx seg000:170C jz loc_0_1719 seg000:170E call sub_0_1818 seg000:1711 add bx, [bp-2] seg000:1714 add cx, [bp-2] seg000:1717 jmp short loc_0_170A seg000:1719 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1719 seg000:1719 loc_0_1719: ; CODE XREF: sub_0_16F0+18j seg000:1719 ; sub_0_16F0+1Cj seg000:1719 mov ah, 2 seg000:171B call sub_0_1803 seg000:171E seg000:171E loc_0_171E: ; CODE XREF: sub_0_16F0+38j seg000:171E cmp cx, dx seg000:1720 jz loc_0_172A seg000:1722 call sub_0_189A seg000:1725 add cx, [bp-2] seg000:1728 jmp short loc_0_171E seg000:172A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:172A seg000:172A loc_0_172A: ; CODE XREF: sub_0_16F0+30j seg000:172A mov ah, 0 seg000:172C call sub_0_1803 seg000:172F call sub_0_265 seg000:1732 mov ax, 0 seg000:1735 call sub_0_275 seg000:1738 pop dx seg000:1739 pop cx seg000:173A pop bx seg000:173B pop ax seg000:173C retn seg000:173C sub_0_16F0 endp seg000:173C seg000:173D seg000:173D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:173D seg000:173D ; S u b r o u t i n e seg000:173D seg000:173D sub_0_173D proc near ; CODE XREF: seg000:19A8p seg000:173D ; seg000:19D6p seg000:173D push ss seg000:173E pop es seg000:173F assume es:nothing seg000:173F xor cx, cx seg000:1741 mov ds, cx seg000:1743 assume ds:nothing seg000:1743 lds si, ds:10Ch seg000:1747 assume ds:nothing seg000:1747 mov cx, 100h seg000:174A xor bx, bx seg000:174C seg000:174C loc_0_174C: ; CODE XREF: sub_0_173D+21j seg000:174C push cx seg000:174D push si seg000:174E lea di, [bp-2Ch] seg000:1751 mov cx, [bp-2] seg000:1754 rep cmpsb seg000:1756 pop si seg000:1757 pop cx seg000:1758 jz loc_0_1760 seg000:175A add si, [bp-2] seg000:175D inc bx seg000:175E loop loc_0_174C seg000:1760 seg000:1760 loc_0_1760: ; CODE XREF: sub_0_173D+1Bj seg000:1760 mov ax, bx seg000:1762 retn seg000:1762 sub_0_173D endp seg000:1762 seg000:1763 seg000:1763 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1763 seg000:1763 ; S u b r o u t i n e seg000:1763 seg000:1763 sub_0_1763 proc near ; CODE XREF: seg000:1995p seg000:1763 push si seg000:1764 push cx seg000:1765 push dx seg000:1766 push bx seg000:1767 xor bh, bh seg000:1769 mov cx, 8 seg000:176C call sub_0_19DA seg000:176F cmp dl, 2 seg000:1772 jz loc_0_1787 seg000:1774 cmp dl, 3 seg000:1777 jz loc_0_1795 seg000:1779 seg000:1779 loc_0_1779: ; CODE XREF: sub_0_1763+20j seg000:1779 shl bh, 1 seg000:177B lodsb seg000:177C or al, al seg000:177E jz loc_0_1783 seg000:1780 or bh, 1 seg000:1783 seg000:1783 loc_0_1783: ; CODE XREF: sub_0_1763+1Bj seg000:1783 loop loc_0_1779 seg000:1785 jmp short loc_0_17A8 seg000:1787 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1787 seg000:1787 loc_0_1787: ; CODE XREF: sub_0_1763+Fj seg000:1787 ; sub_0_1763+2Ej seg000:1787 shl bh, 1 seg000:1789 lodsw seg000:178A or ax, ax seg000:178C jz loc_0_1791 seg000:178E or bh, 1 seg000:1791 seg000:1791 loc_0_1791: ; CODE XREF: sub_0_1763+29j seg000:1791 loop loc_0_1787 seg000:1793 jmp short loc_0_17A8 seg000:1795 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1795 seg000:1795 loc_0_1795: ; CODE XREF: sub_0_1763+14j seg000:1795 ; sub_0_1763+43j seg000:1795 shl bh, 1 seg000:1797 lodsb seg000:1798 mov bl, al seg000:179A lodsw seg000:179B or bl, bl seg000:179D jnz loc_0_17A3 seg000:179F or ax, ax seg000:17A1 jz loc_0_17A6 seg000:17A3 seg000:17A3 loc_0_17A3: ; CODE XREF: sub_0_1763+3Aj seg000:17A3 or ah, 1 seg000:17A6 seg000:17A6 loc_0_17A6: ; CODE XREF: sub_0_1763+3Ej seg000:17A6 loop loc_0_1795 seg000:17A8 seg000:17A8 loc_0_17A8: ; CODE XREF: sub_0_1763+22j seg000:17A8 ; sub_0_1763+30j seg000:17A8 mov al, bh seg000:17AA pop bx seg000:17AB pop dx seg000:17AC pop cx seg000:17AD pop si seg000:17AE retn seg000:17AE sub_0_1763 endp seg000:17AE seg000:17AF seg000:17AF ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:17AF seg000:17AF ; S u b r o u t i n e seg000:17AF seg000:17AF sub_0_17AF proc near ; CODE XREF: sub_0_1633+30p seg000:17AF ; sub_0_1633+50p seg000:17AF mov bh, ch seg000:17B1 add bh, al seg000:17B3 push dx seg000:17B4 mov ax, ds:45h seg000:17B7 mul di seg000:17B9 xchg ax, di seg000:17BA mov al, bh seg000:17BC xor ah, ah seg000:17BE mul di seg000:17C0 xchg ax, bx seg000:17C1 mov al, ch seg000:17C3 xor ah, ah seg000:17C5 mul di seg000:17C7 xchg ax, cx seg000:17C8 pop dx seg000:17C9 mov al, dh seg000:17CB xor ah, ah seg000:17CD mul di seg000:17CF xchg ax, dx seg000:17D0 retn seg000:17D0 sub_0_17AF endp seg000:17D0 seg000:17D1 seg000:17D1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:17D1 seg000:17D1 ; S u b r o u t i n e seg000:17D1 seg000:17D1 sub_0_17D1 proc near ; CODE XREF: sub_0_1633+1Bp seg000:17D1 ; sub_0_1633+3Bp seg000:17D1 push ax seg000:17D2 push bx seg000:17D3 push dx seg000:17D4 mov dx, ds:23h seg000:17D8 mov al, 13h seg000:17DA out dx, al seg000:17DB in ax, dx seg000:17DC mov bl, ah seg000:17DE mov dx, 3CEh seg000:17E1 mov al, 0Fh seg000:17E3 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:17E3 ; seg000:17E4 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:17E4 ; seg000:17E5 and ah, 3 seg000:17E8 mov al, bl seg000:17EA call sub_0_51CA seg000:17ED jnz loc_0_17FA seg000:17EF shr ax, 1 seg000:17F1 call sub_0_51B2 seg000:17F4 jnz loc_0_17FD seg000:17F6 shr ax, 1 seg000:17F8 jmp short loc_0_17FD seg000:17FA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:17FA seg000:17FA loc_0_17FA: ; CODE XREF: sub_0_17D1+1Cj seg000:17FA shr ax, 3 seg000:17FD seg000:17FD loc_0_17FD: ; CODE XREF: sub_0_17D1+23j seg000:17FD ; sub_0_17D1+27j seg000:17FD mov di, ax seg000:17FF pop dx seg000:1800 pop bx seg000:1801 pop ax seg000:1802 retn seg000:1802 sub_0_17D1 endp seg000:1802 seg000:1803 seg000:1803 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1803 seg000:1803 ; S u b r o u t i n e seg000:1803 seg000:1803 sub_0_1803 proc near ; CODE XREF: sub_0_16F0+6p seg000:1803 ; sub_0_16F0+2Bp seg000:1803 ; sub_0_16F0+3Cp seg000:1803 push dx seg000:1804 push ax seg000:1805 mov dx, 3CEh seg000:1808 mov al, 5 seg000:180A out dx, al ; EGA: graph 1 and 2 addr reg: seg000:180A ; mode register.Data bits: seg000:180A ; 0-1: Write mode 0-2 seg000:180A ; 2: test condition seg000:180A ; 3: read mode: 1=color compare, 0=direct seg000:180A ; 4: 1=use odd/even RAM addressing seg000:180A ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:180B inc dx seg000:180C in al, dx ; EGA port: graphics controller data register seg000:180D and al, 0FCh seg000:180F or ah, al seg000:1811 mov al, 5 seg000:1813 dec dx seg000:1814 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1814 ; mode register.Data bits: seg000:1814 ; 0-1: Write mode 0-2 seg000:1814 ; 2: test condition seg000:1814 ; 3: read mode: 1=color compare, 0=direct seg000:1814 ; 4: 1=use odd/even RAM addressing seg000:1814 ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:1815 pop ax seg000:1816 pop dx seg000:1817 retn seg000:1817 sub_0_1803 endp seg000:1817 seg000:1818 seg000:1818 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1818 seg000:1818 ; S u b r o u t i n e seg000:1818 seg000:1818 sub_0_1818 proc near ; CODE XREF: sub_0_16F0+1Ep seg000:1818 push ax seg000:1819 push bx seg000:181A push cx seg000:181B push dx seg000:181C mov word ptr [bp-12h], 0 seg000:1821 mov word ptr [bp-14h], 0 seg000:1826 call sub_0_51CA seg000:1829 jnz loc_0_1867 seg000:182B mov [bp-12h], bx seg000:182E mov [bp-14h], cx seg000:1831 call sub_0_51B2 seg000:1834 jnz loc_0_184E seg000:1836 and word ptr [bp-12h], 1 seg000:183A and word ptr [bp-14h], 1 seg000:183E shl word ptr [bp-12h], 3 seg000:1842 shl word ptr [bp-14h], 3 seg000:1846 shr bx, 1 seg000:1848 shr cx, 1 seg000:184A shr dx, 1 seg000:184C jmp short loc_0_1867 seg000:184E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:184E seg000:184E loc_0_184E: ; CODE XREF: sub_0_1818+1Cj seg000:184E and word ptr [bp-12h], 3 seg000:1852 and word ptr [bp-14h], 3 seg000:1856 shl word ptr [bp-12h], 2 seg000:185A shl word ptr [bp-14h], 2 seg000:185E shr bx, 2 seg000:1861 shr cx, 2 seg000:1864 shr dx, 2 seg000:1867 seg000:1867 loc_0_1867: ; CODE XREF: sub_0_1818+11j seg000:1867 ; sub_0_1818+34j seg000:1867 mov ah, bh seg000:1869 shr ah, 2 seg000:186C mov al, ch seg000:186E shr al, 2 seg000:1871 call sub_0_275 seg000:1874 and bh, 3 seg000:1877 mov si, bx seg000:1879 shl si, 4 seg000:187C add si, [bp-4] seg000:187F add si, [bp-12h] seg000:1882 and ch, 3 seg000:1885 mov di, cx seg000:1887 shl di, 4 seg000:188A add di, [bp-4] seg000:188D add di, [bp-14h] seg000:1890 mov cx, [bp-6] seg000:1893 rep movsb seg000:1895 pop dx seg000:1896 pop cx seg000:1897 pop bx seg000:1898 pop ax seg000:1899 retn seg000:1899 sub_0_1818 endp seg000:1899 seg000:189A seg000:189A ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:189A seg000:189A ; S u b r o u t i n e seg000:189A seg000:189A sub_0_189A proc near ; CODE XREF: sub_0_16F0+32p seg000:189A push ax seg000:189B push cx seg000:189C push dx seg000:189D call sub_0_51CA seg000:18A0 jnz loc_0_18AF seg000:18A2 shr cx, 1 seg000:18A4 shr dx, 1 seg000:18A6 call sub_0_51B2 seg000:18A9 jz loc_0_18AF seg000:18AB shr cx, 1 seg000:18AD shr dx, 1 seg000:18AF seg000:18AF loc_0_18AF: ; CODE XREF: sub_0_189A+6j seg000:18AF ; sub_0_189A+Fj seg000:18AF mov ah, bh seg000:18B1 shr ah, 2 seg000:18B4 mov al, ch seg000:18B6 shr al, 2 seg000:18B9 call sub_0_275 seg000:18BC mov di, 0A000h seg000:18BF mov es, di seg000:18C1 assume es:nothing seg000:18C1 and ch, 3 seg000:18C4 mov di, cx seg000:18C6 shl di, 4 seg000:18C9 add di, [bp-4] seg000:18CC mov cx, [bp-6] seg000:18CF mov al, [bp-0Bh] seg000:18D2 rep stosb seg000:18D4 pop dx seg000:18D5 pop cx seg000:18D6 pop ax seg000:18D7 retn seg000:18D7 sub_0_189A endp seg000:18D7 seg000:18D7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:18D8 word_0_18D8 dw 0A000h ; DATA XREF: seg000:18EBr seg000:18D8 ; seg000:1916r seg000:18DA dw 0B800h seg000:18DC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:18DC seg000:18DC loc_0_18DC: ; CODE XREF: seg000:658Cu seg000:18DC ; DATA XREF: seg000:6545o seg000:18DC mov ax, ds:0Ah seg000:18DF shl ax, 3 seg000:18E2 mul dx seg000:18E4 add ax, cx seg000:18E6 adc dx, 0 seg000:18E9 mov si, ax seg000:18EB mov ds, cs:word_0_18D8 seg000:18F0 assume ds:nothing seg000:18F0 call VGAwGR15shift seg000:18F3 mov al, [si] seg000:18F5 mov [bp+10h], al seg000:18F8 jmp int10_exit seg000:18FB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:18FB mov byte ptr [bp+10h], 0 seg000:18FF jmp int10_exit seg000:1902 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1902 mov di, cx seg000:1904 shr di, 3 seg000:1907 xchg ax, dx seg000:1908 mul word ptr ds:0Ah seg000:190C add di, ax seg000:190E adc dl, 0 seg000:1911 not cl seg000:1913 and cl, 7 seg000:1916 mov ds, cs:word_0_18D8 seg000:191B call VGAwGR15shift seg000:191E mov dx, 3CEh seg000:1921 mov ax, 0F02h seg000:1924 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1924 ; seg000:1925 mov ax, 805h seg000:1928 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1928 ; seg000:1929 mov al, 7 seg000:192B mov ah, 1 seg000:192D xor bh, bh seg000:192F seg000:192F loc_0_192F: ; CODE XREF: seg000:1940j seg000:192F out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:192F ; seg000:1930 mov bl, [di] seg000:1932 shr bl, cl seg000:1934 and bl, 1 seg000:1937 ror bh, 1 seg000:1939 or bh, bl seg000:193B shl ah, 1 seg000:193D cmp ah, 10h seg000:1940 jnz loc_0_192F seg000:1942 rol bh, 3 seg000:1945 mov [bp+10h], bh seg000:1948 mov ax, 2 seg000:194B out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:194B ; color compare. seg000:194B ; Data bits 0-3 select color for read mode 01 seg000:194C mov al, 5 seg000:194E out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:194E ; mode register.Data bits: seg000:194E ; 0-1: Write mode 0-2 seg000:194E ; 2: test condition seg000:194E ; 3: read mode: 1=color compare, 0=direct seg000:194E ; 4: 1=use odd/even RAM addressing seg000:194E ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:194F jmp int10_exit seg000:1952 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1952 push dx seg000:1953 call sub_0_19DA seg000:1956 shl cx, 3 seg000:1959 mov bl, dl seg000:195B xor bh, bh seg000:195D mov ax, cx seg000:195F mul bx seg000:1961 mov cx, ax seg000:1963 mov [bp-4], cx seg000:1966 pop ax seg000:1967 shl ax, 3 seg000:196A mul bx seg000:196C mov bx, ax seg000:196E mov ax, [bp-2] seg000:1971 mul cx seg000:1973 mul di seg000:1975 add ax, bx seg000:1977 adc dx, 0 seg000:197A mov si, ax seg000:197C mov ah, dl seg000:197E mov [bp-6], dl seg000:1981 cmp byte ptr ds:9, 13h seg000:1986 jz loc_0_198B seg000:1988 call VGAwGR15shift seg000:198B seg000:198B loc_0_198B: ; CODE XREF: seg000:1986j seg000:198B mov bl, al seg000:198D mov cx, [bp-2] seg000:1990 push ss seg000:1991 pop es seg000:1992 assume es:nothing seg000:1992 lea di, [bp-2Ch] seg000:1995 seg000:1995 loc_0_1995: ; CODE XREF: seg000:19A6j seg000:1995 call sub_0_1763 seg000:1998 stosb seg000:1999 add si, [bp-4] seg000:199C adc word ptr [bp-6], 0 seg000:19A0 mov dl, [bp-6] seg000:19A3 call VGAwGR15shift seg000:19A6 loop loc_0_1995 seg000:19A8 call sub_0_173D seg000:19AB retn seg000:19AC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:19AC mov al, 0 seg000:19AE retn seg000:19AF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:19AF mov bx, dx seg000:19B1 mov [bp-4], cx seg000:19B4 mov ax, [bp-2] seg000:19B7 mul si seg000:19B9 mov si, ax seg000:19BB add si, bx seg000:19BD adc dl, 0 seg000:19C0 call VGAwGR15shift seg000:19C3 push ss seg000:19C4 pop es seg000:19C5 lea di, [bp-2Ch] seg000:19C8 mov cx, [bp-2] seg000:19CB mov bl, 4 seg000:19CD seg000:19CD loc_0_19CD: ; CODE XREF: seg000:19D4j seg000:19CD call sub_0_5290 seg000:19D0 stosb seg000:19D1 add si, [bp-4] seg000:19D4 loop loc_0_19CD seg000:19D6 call sub_0_173D seg000:19D9 retn seg000:19DA seg000:19DA ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:19DA seg000:19DA ; S u b r o u t i n e seg000:19DA seg000:19DA sub_0_19DA proc near ; CODE XREF: sub_0_16A2+5p seg000:19DA ; sub_0_1763+9p seg000:19DA ; seg000:1953p seg000:19DA ; seg000:1A77p seg000:19DA ; sub_0_1B32+6p seg000:19DA ; sub_0_5124+10p seg000:19DA push bx seg000:19DB mov bx, 44h ; 'D' seg000:19DE push ds seg000:19DF mov ds, bx seg000:19E1 assume ds:nothing seg000:19E1 call sub_0_2F1 seg000:19E4 xor bh, bh seg000:19E6 mov bl, cs:[bx-5B34h] seg000:19EB mov dl, 2 seg000:19ED cmp bl, 0Bh seg000:19F0 jz loc_0_1A00 seg000:19F2 cmp bl, 0Ch seg000:19F5 jz loc_0_1A00 seg000:19F7 mov dl, 3 seg000:19F9 cmp bl, 0Dh seg000:19FC jz loc_0_1A00 seg000:19FE mov dl, 1 seg000:1A00 seg000:1A00 loc_0_1A00: ; CODE XREF: sub_0_19DA+16j seg000:1A00 ; sub_0_19DA+1Bj seg000:1A00 ; sub_0_19DA+22j seg000:1A00 pop ds seg000:1A01 assume ds:nothing seg000:1A01 pop bx seg000:1A02 retn seg000:1A02 sub_0_19DA endp seg000:1A02 seg000:1A02 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A03 word_0_1A03 dw 0A000h ; DATA XREF: seg000:1A16r seg000:1A03 ; seg000:1A38r seg000:1A05 dw 0B800h seg000:1A07 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A07 seg000:1A07 loc_0_1A07: ; CODE XREF: seg000:656Eu seg000:1A07 ; DATA XREF: seg000:6517o seg000:1A07 ; seg000:6519o seg000:1A07 mov ax, ds:0Ah seg000:1A0A shl ax, 3 seg000:1A0D mul dx seg000:1A0F add ax, cx seg000:1A11 adc dx, 0 seg000:1A14 mov di, ax seg000:1A16 mov es, cs:word_0_1A03 seg000:1A1B assume es:nothing seg000:1A1B call VGAwGR15shift seg000:1A1E xchg ax, si seg000:1A1F stosb seg000:1A20 jmp int10_exit seg000:1A23 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A23 jmp int10_exit seg000:1A26 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A26 mov di, cx seg000:1A28 shr di, 3 seg000:1A2B xchg ax, dx seg000:1A2C mul word ptr ds:0Ah seg000:1A30 add di, ax seg000:1A32 adc dl, 0 seg000:1A35 and cl, 7 seg000:1A38 mov ds, cs:word_0_1A03 seg000:1A3D assume ds:nothing seg000:1A3D call VGAwGR15shift seg000:1A40 mov dx, 3CEh seg000:1A43 mov ax, 8008h seg000:1A46 shr ah, cl seg000:1A48 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1A48 ; seg000:1A49 mov ax, 205h seg000:1A4C out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1A4C ; seg000:1A4D mov cx, si seg000:1A4F xchg cl, [di] seg000:1A51 xor ah, ah seg000:1A53 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1A53 ; mode register.Data bits: seg000:1A53 ; 0-1: Write mode 0-2 seg000:1A53 ; 2: test condition seg000:1A53 ; 3: read mode: 1=color compare, 0=direct seg000:1A53 ; 4: 1=use odd/even RAM addressing seg000:1A53 ; 5: 1=use CGA mid-res map (2-bits/pixel) seg000:1A54 mov ax, 0FF08h seg000:1A57 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1A57 ; seg000:1A58 jmp int10_exit seg000:1A5B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A5B retn seg000:1A5C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1A5C sub sp, 2 seg000:1A5F push ax seg000:1A60 mov al, 15h seg000:1A62 call VGArGR seg000:1A65 add sp, 4 seg000:1A68 push ax seg000:1A69 sub sp, 2 seg000:1A6C call sub_0_5124 seg000:1A6F sub ax, bp seg000:1A71 cmp ax, cx seg000:1A73 jnb loc_0_1A77 seg000:1A75 mov cx, ax seg000:1A77 seg000:1A77 loc_0_1A77: ; CODE XREF: seg000:1A73j seg000:1A77 call sub_0_19DA seg000:1A7A xor dh, dh seg000:1A7C mov si, dx seg000:1A7E shl bp, 3 seg000:1A81 mov ax, bp seg000:1A83 mul si seg000:1A85 mov bp, ax seg000:1A87 mov ax, ds:45h seg000:1A8A mul si seg000:1A8C mul di seg000:1A8E shl dx, 1 seg000:1A90 shl ax, 1 seg000:1A92 adc dx, 0 seg000:1A95 shl dx, 1 seg000:1A97 shl ax, 1 seg000:1A99 adc dx, 0 seg000:1A9C shl dx, 1 seg000:1A9E shl ax, 1 seg000:1AA0 adc dx, 0 seg000:1AA3 add ax, bp seg000:1AA5 adc dx, 0 seg000:1AA8 shl dx, 2 seg000:1AAB shl ax, 1 seg000:1AAD jnb loc_0_1AB2 seg000:1AAF or dx, 2 seg000:1AB2 seg000:1AB2 loc_0_1AB2: ; CODE XREF: seg000:1AADj seg000:1AB2 shl ax, 1 seg000:1AB4 jnb loc_0_1AB9 seg000:1AB6 or dx, 1 seg000:1AB9 seg000:1AB9 loc_0_1AB9: ; CODE XREF: seg000:1AB4j seg000:1AB9 shr ax, 2 seg000:1ABC mov di, ax seg000:1ABE call VGAwGR15 seg000:1AC1 call sub_0_5124 seg000:1AC4 jmp short loc_0_1AED seg000:1AC6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1AC6 sub sp, 2 seg000:1AC9 push ax seg000:1ACA mov al, 15h seg000:1ACC call VGArGR seg000:1ACF add sp, 4 seg000:1AD2 push ax seg000:1AD3 sub sp, 2 seg000:1AD6 mov ax, ds:45h seg000:1AD9 mul di seg000:1ADB add ax, bp seg000:1ADD adc dx, 0 seg000:1AE0 shl ax, 3 seg000:1AE3 mov di, ax seg000:1AE5 pop ax seg000:1AE6 mov si, 1 seg000:1AE9 push ax seg000:1AEA mov ax, 28h ; '(' seg000:1AED seg000:1AED loc_0_1AED: ; CODE XREF: seg000:1AC4j seg000:1AED mov bp, ax seg000:1AEF sub bp, cx seg000:1AF1 shl bp, 3 seg000:1AF4 mov ax, bp seg000:1AF6 mul si seg000:1AF8 mov bp, ax seg000:1AFA pop dx seg000:1AFB mov bl, ds:45h seg000:1AFF mov al, bl seg000:1B01 mul dl seg000:1B03 xor si, si seg000:1B05 mov ds, si seg000:1B07 assume ds:nothing seg000:1B07 lds si, ds:10Ch seg000:1B0B assume ds:nothing seg000:1B0B add si, ax seg000:1B0D mov ah, bh seg000:1B0F seg000:1B0F loc_0_1B0F: ; CODE XREF: seg000:1B1Cj seg000:1B0F call sub_0_1B23 seg000:1B12 inc si seg000:1B13 add di, bp seg000:1B15 jnb loc_0_1B1A seg000:1B17 call sub_0_255 seg000:1B1A seg000:1B1A loc_0_1B1A: ; CODE XREF: seg000:1B15j seg000:1B1A dec bl seg000:1B1C jnz loc_0_1B0F seg000:1B1E pop ax seg000:1B1F call VGAwGR seg000:1B22 retn seg000:1B23 seg000:1B23 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1B23 seg000:1B23 ; S u b r o u t i n e seg000:1B23 seg000:1B23 sub_0_1B23 proc near ; CODE XREF: seg000:1B0Fp seg000:1B23 push cx seg000:1B24 seg000:1B24 loc_0_1B24: ; CODE XREF: sub_0_1B23+Bj seg000:1B24 call sub_0_1B32 seg000:1B27 or di, di seg000:1B29 jnz loc_0_1B2E seg000:1B2B call sub_0_255 seg000:1B2E seg000:1B2E loc_0_1B2E: ; CODE XREF: sub_0_1B23+6j seg000:1B2E loop loc_0_1B24 seg000:1B30 pop cx seg000:1B31 retn seg000:1B31 sub_0_1B23 endp seg000:1B31 seg000:1B32 seg000:1B32 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1B32 seg000:1B32 ; S u b r o u t i n e seg000:1B32 seg000:1B32 sub_0_1B32 proc near ; CODE XREF: sub_0_1B23+1p seg000:1B32 push ax seg000:1B33 push bx seg000:1B34 push cx seg000:1B35 mov cx, 8 seg000:1B38 call sub_0_19DA seg000:1B3B cmp dl, 2 seg000:1B3E jz loc_0_1B5A seg000:1B40 cmp dl, 3 seg000:1B43 jz loc_0_1B6B seg000:1B45 mov dl, [si] seg000:1B47 seg000:1B47 loc_0_1B47: ; CODE XREF: sub_0_1B32+24j seg000:1B47 rol dl, 1 seg000:1B49 sbb bh, bh seg000:1B4B mov al, dh seg000:1B4D and al, bh seg000:1B4F not bh seg000:1B51 and bh, ah seg000:1B53 or al, bh seg000:1B55 stosb seg000:1B56 loop loc_0_1B47 seg000:1B58 jmp short loc_0_1B7B seg000:1B5A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1B5A seg000:1B5A loc_0_1B5A: ; CODE XREF: sub_0_1B32+Cj seg000:1B5A mov dl, [si] seg000:1B5C seg000:1B5C loc_0_1B5C: ; CODE XREF: sub_0_1B32+35j seg000:1B5C rol dl, 1 seg000:1B5E mov ax, 0 seg000:1B61 jnb loc_0_1B66 seg000:1B63 mov ax, 0FFFFh seg000:1B66 seg000:1B66 loc_0_1B66: ; CODE XREF: sub_0_1B32+2Fj seg000:1B66 stosw seg000:1B67 loop loc_0_1B5C seg000:1B69 jmp short loc_0_1B7B seg000:1B6B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1B6B seg000:1B6B loc_0_1B6B: ; CODE XREF: sub_0_1B32+11j seg000:1B6B mov dl, [si] seg000:1B6D seg000:1B6D loc_0_1B6D: ; CODE XREF: sub_0_1B32+47j seg000:1B6D rol dl, 1 seg000:1B6F mov ax, 0 seg000:1B72 jnb loc_0_1B77 seg000:1B74 mov ax, 0FFFFh seg000:1B77 seg000:1B77 loc_0_1B77: ; CODE XREF: sub_0_1B32+40j seg000:1B77 stosb seg000:1B78 stosw seg000:1B79 loop loc_0_1B6D seg000:1B7B seg000:1B7B loc_0_1B7B: ; CODE XREF: sub_0_1B32+26j seg000:1B7B ; sub_0_1B32+37j seg000:1B7B pop cx seg000:1B7C pop bx seg000:1B7D pop ax seg000:1B7E retn seg000:1B7E sub_0_1B32 endp seg000:1B7E seg000:1B7F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1B7F retn seg000:1B80 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1B80 call sub_0_5F77 seg000:1B83 call VGAwGR15shift seg000:1B86 mov dx, 3CEh seg000:1B89 xor ax, ax seg000:1B8B out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1B8B ; set/reset. seg000:1B8B ; Data bits 0-3 select planes for write mode 00 seg000:1B8C mov ah, bh seg000:1B8E not ah seg000:1B90 inc al seg000:1B92 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1B92 ; set/reset. seg000:1B92 ; Data bits 0-3 select planes for write mode 00 seg000:1B93 seg000:1B93 loc_0_1B93: ; CODE XREF: seg000:1BA1j seg000:1B93 push si seg000:1B94 push di seg000:1B95 push bx seg000:1B96 seg000:1B96 loc_0_1B96: ; CODE XREF: seg000:1B9Bj seg000:1B96 movsb seg000:1B97 add di, bp seg000:1B99 dec bl seg000:1B9B jnz loc_0_1B96 seg000:1B9D pop bx seg000:1B9E pop di seg000:1B9F pop si seg000:1BA0 inc di seg000:1BA1 loop loc_0_1B93 seg000:1BA3 mov ax, 1 seg000:1BA6 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1BA6 ; enable set/reset seg000:1BA7 retn seg000:1BA8 seg000:1BA8 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1BA8 seg000:1BA8 ; S u b r o u t i n e seg000:1BA8 seg000:1BA8 sub_0_1BA8 proc near ; CODE XREF: sub_0_122C+1Bp seg000:1BA8 ; sub_0_1BD0+37p seg000:1BA8 ; seg000:28BEp seg000:1BA8 ; sub_0_2A90+1Ep seg000:1BA8 push dx seg000:1BA9 push ax seg000:1BAA cmp al, 38h ; '8' seg000:1BAC jnz loc_0_1BB8 seg000:1BAE push ax seg000:1BAF call sub_0_3D6 seg000:1BB2 cmp ax, 2400h seg000:1BB5 pop ax seg000:1BB6 jbe loc_0_1BCC seg000:1BB8 seg000:1BB8 loc_0_1BB8: ; CODE XREF: sub_0_1BA8+4j seg000:1BB8 cmp cs:word_0_3A40, 400h seg000:1BBF jnb loc_0_1BC9 seg000:1BC1 cmp al, 44h ; 'D' seg000:1BC3 jz loc_0_1BCC seg000:1BC5 cmp al, 45h ; 'E' seg000:1BC7 jz loc_0_1BCC seg000:1BC9 seg000:1BC9 loc_0_1BC9: ; CODE XREF: sub_0_1BA8+17j seg000:1BC9 clc seg000:1BCA jmp short loc_0_1BCD seg000:1BCC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1BCC seg000:1BCC loc_0_1BCC: ; CODE XREF: sub_0_1BA8+Ej seg000:1BCC ; sub_0_1BA8+1Bj seg000:1BCC ; sub_0_1BA8+1Fj seg000:1BCC stc seg000:1BCD seg000:1BCD loc_0_1BCD: ; CODE XREF: sub_0_1BA8+22j seg000:1BCD pop ax seg000:1BCE pop dx seg000:1BCF retn seg000:1BCF sub_0_1BA8 endp seg000:1BCF seg000:1BD0 seg000:1BD0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1BD0 seg000:1BD0 ; S u b r o u t i n e seg000:1BD0 seg000:1BD0 sub_0_1BD0 proc near ; CODE XREF: seg000:53E4p seg000:1BD0 test cs:word_0_B1, 1 seg000:1BD7 jnz loc_0_1BE4 seg000:1BD9 push ax seg000:1BDA push cx seg000:1BDB mov cl, 3 seg000:1BDD mov ax, 5F4Fh seg000:1BE0 int 15h seg000:1BE2 pop cx seg000:1BE3 pop ax seg000:1BE4 seg000:1BE4 loc_0_1BE4: ; CODE XREF: sub_0_1BD0+7j seg000:1BE4 push bx seg000:1BE5 xor bx, bx seg000:1BE7 mov ah, al seg000:1BE9 and ax, 807Fh seg000:1BEC cmp al, 6Ah ; 'j' seg000:1BEE jnz loc_0_1BF5 seg000:1BF0 mov al, 22h ; '"' seg000:1BF2 or bh, 8 seg000:1BF5 seg000:1BF5 loc_0_1BF5: ; CODE XREF: sub_0_1BD0+1Ej seg000:1BF5 push dx seg000:1BF6 push ax seg000:1BF7 mov dx, 3CEh seg000:1BFA mov al, 0AEh ; '' seg000:1BFC out dx, al ; EGA: graph 1 and 2 addr reg: seg000:1BFC ; seg000:1BFD in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:1BFD ; seg000:1BFE and ah, 0F7h seg000:1C01 or ah, bh seg000:1C03 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1C03 ; bit mask seg000:1C03 ; Bits 0-7 select bits to be masked in all planes seg000:1C04 pop ax seg000:1C05 pop dx seg000:1C06 pop bx seg000:1C07 call sub_0_1BA8 seg000:1C0A jnb loc_0_1C0F seg000:1C0C jmp loc_0_1D50 seg000:1C0F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1C0F seg000:1C0F loc_0_1C0F: ; CODE XREF: sub_0_1BD0+3Aj seg000:1C0F push ax seg000:1C10 call sub_0_5D0 seg000:1C13 test cs:word_0_B3, 10h seg000:1C1A jz loc_0_1C34 seg000:1C1C mov ax, 31h ; '1' seg000:1C1F call VGArGR seg000:1C22 and ah, 0FEh seg000:1C25 call VGAwGR seg000:1C28 mov ax, 30h ; '0' seg000:1C2B call VGArGR seg000:1C2E and ah, 0DFh seg000:1C31 call VGAwGR seg000:1C34 seg000:1C34 loc_0_1C34: ; CODE XREF: sub_0_1BD0+4Aj seg000:1C34 mov al, 25h ; '%' seg000:1C36 call VGArGR seg000:1C39 and ah, 39h seg000:1C3C call VGAwGR seg000:1C3F mov ax, 30h ; '0' seg000:1C42 call VGArGR seg000:1C45 and ah, 0FCh seg000:1C48 call VGAwGR seg000:1C4B call sub_0_225A seg000:1C4E call sub_0_225A seg000:1C51 call sub_0_225A seg000:1C54 pop ax seg000:1C55 push ax seg000:1C56 mov al, 80h ; '' seg000:1C58 call VGArCR seg000:1C5B test ah, 1 seg000:1C5E jnz loc_0_1C63 seg000:1C60 jmp loc_0_1D4C seg000:1C63 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1C63 seg000:1C63 loc_0_1C63: ; CODE XREF: sub_0_1BD0+8Ej seg000:1C63 call dualdispCRTtest seg000:1C66 cmp cx, 0FFFFh seg000:1C69 jnz loc_0_1C6E seg000:1C6B jmp loc_0_1D4C seg000:1C6E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1C6E seg000:1C6E loc_0_1C6E: ; CODE XREF: sub_0_1BD0+99j seg000:1C6E pop ax seg000:1C6F push ax seg000:1C70 mov bl, al seg000:1C72 xor bh, bh seg000:1C74 cmp bl, 20h ; ' ' seg000:1C77 jz loc_0_1CD6 seg000:1C79 cmp bl, 28h ; '(' seg000:1C7C jz loc_0_1CD6 seg000:1C7E cmp bl, 2Eh ; '.' seg000:1C81 jz loc_0_1CD6 seg000:1C83 mov al, cs:[bx-5B34h] seg000:1C88 cmp al, 0Ah seg000:1C8A jb loc_0_1CD6 seg000:1C8C push ax seg000:1C8D mov al, 5 seg000:1C8F call VGAwrCR8E8F seg000:1C92 test ah, 1 seg000:1C95 pop ax seg000:1C96 jz loc_0_1CAA seg000:1C98 mov al, 80h ; '' seg000:1C9A call VGArCR seg000:1C9D and ah, 9Fh seg000:1CA0 or ah, 20h seg000:1CA3 call getCRbase seg000:1CA6 out dx, ax seg000:1CA7 jmp loc_0_1D4C seg000:1CAA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1CAA seg000:1CAA loc_0_1CAA: ; CODE XREF: sub_0_1BD0+C6j seg000:1CAA cmp bl, 44h ; 'D' seg000:1CAD jz loc_0_1CB4 seg000:1CAF cmp bl, 45h ; 'E' seg000:1CB2 jnz loc_0_1CD2 seg000:1CB4 seg000:1CB4 loc_0_1CB4: ; CODE XREF: sub_0_1BD0+DDj seg000:1CB4 push ax seg000:1CB5 mov al, 80h ; '' seg000:1CB7 call VGArCR seg000:1CBA test ah, 2 seg000:1CBD jnz loc_0_1CCE seg000:1CBF test ah, 1 seg000:1CC2 jz loc_0_1CD1 seg000:1CC4 mov al, 6 seg000:1CC6 call VGAwrCR8E8F seg000:1CC9 test ah, 10h seg000:1CCC jz loc_0_1CD1 seg000:1CCE seg000:1CCE loc_0_1CCE: ; CODE XREF: sub_0_1BD0+EDj seg000:1CCE pop ax seg000:1CCF jmp short loc_0_1CD6 seg000:1CD1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1CD1 seg000:1CD1 loc_0_1CD1: ; CODE XREF: sub_0_1BD0+F2j seg000:1CD1 ; sub_0_1BD0+FCj seg000:1CD1 pop ax seg000:1CD2 seg000:1CD2 loc_0_1CD2: ; CODE XREF: sub_0_1BD0+E2j seg000:1CD2 cmp al, 0Dh seg000:1CD4 jnz loc_0_1D4C seg000:1CD6 seg000:1CD6 loc_0_1CD6: ; CODE XREF: sub_0_1BD0+A7j seg000:1CD6 ; sub_0_1BD0+ACj seg000:1CD6 ; sub_0_1BD0+B1j seg000:1CD6 ; sub_0_1BD0+BAj seg000:1CD6 ; sub_0_1BD0+FFj seg000:1CD6 call getCRbase seg000:1CD9 mov al, 80h ; '' seg000:1CDB call VGArCR seg000:1CDE push ax seg000:1CDF mov ah, 60h ; '`' seg000:1CE1 out dx, ax seg000:1CE2 mov cx, 0FFFFh seg000:1CE5 call sub_0_11FB seg000:1CE8 call chronpowerdown seg000:1CEB call readTESTCR8E8F seg000:1CEE jz loc_0_1D1A seg000:1CF0 mov ax, 6 seg000:1CF3 call VGAwrCR8E8F seg000:1CF6 push ax seg000:1CF7 test ah, 10h seg000:1CFA jz loc_0_1D13 seg000:1CFC mov al, 21h ; '!' seg000:1CFE call VGArCR seg000:1D01 and ah, 7 seg000:1D04 or ah, ah seg000:1D06 jnz loc_0_1D13 seg000:1D08 mov al, 1Ah seg000:1D0A call VGArGR seg000:1D0D and ah, 0CFh seg000:1D10 call VGAwGR seg000:1D13 seg000:1D13 loc_0_1D13: ; CODE XREF: sub_0_1BD0+12Aj seg000:1D13 ; sub_0_1BD0+136j seg000:1D13 pop ax seg000:1D14 and ah, 0EFh seg000:1D17 call VGAwwCR8E8F seg000:1D1A seg000:1D1A loc_0_1D1A: ; CODE XREF: sub_0_1BD0+11Ej seg000:1D1A pop ax seg000:1D1B test ah, 2 seg000:1D1E jnz loc_0_1D2A seg000:1D20 mov al, 5 seg000:1D22 call VGAwrCR8E8F seg000:1D25 test ah, 4 seg000:1D28 jz loc_0_1D41 seg000:1D2A seg000:1D2A loc_0_1D2A: ; CODE XREF: sub_0_1BD0+14Ej seg000:1D2A mov al, 20h ; ' ' seg000:1D2C call VGArGR seg000:1D2F mov cl, 1 seg000:1D31 test ah, 2 seg000:1D34 jnz loc_0_1D38 seg000:1D36 xor cl, cl seg000:1D38 seg000:1D38 loc_0_1D38: ; CODE XREF: sub_0_1BD0+164j seg000:1D38 and ah, 0FEh seg000:1D3B call VGAwGR seg000:1D3E call sub_0_A18 seg000:1D41 seg000:1D41 loc_0_1D41: ; CODE XREF: sub_0_1BD0+158j seg000:1D41 mov al, 1Eh seg000:1D43 call VGArCR seg000:1D46 or ah, 20h seg000:1D49 call VGAwCR seg000:1D4C seg000:1D4C loc_0_1D4C: ; CODE XREF: sub_0_1BD0+90j seg000:1D4C ; sub_0_1BD0+9Bj seg000:1D4C ; sub_0_1BD0+D7j seg000:1D4C ; sub_0_1BD0+104j seg000:1D4C pop ax seg000:1D4D or al, ah seg000:1D4F retn seg000:1D50 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1D50 seg000:1D50 loc_0_1D50: ; CODE XREF: sub_0_1BD0+3Cj seg000:1D50 jmp int10_exit seg000:1D50 sub_0_1BD0 endp seg000:1D50 seg000:1D53 seg000:1D53 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1D53 seg000:1D53 ; S u b r o u t i n e seg000:1D53 seg000:1D53 sub_0_1D53 proc near ; CODE XREF: seg000:55B0p seg000:1D53 push dx seg000:1D54 push ax seg000:1D55 cmp al, 22h ; '"' seg000:1D57 jnz loc_0_1D67 seg000:1D59 push ax seg000:1D5A mov al, 0AEh ; '' seg000:1D5C call VGArGR seg000:1D5F test ah, 8 seg000:1D62 pop ax seg000:1D63 jz loc_0_1D67 seg000:1D65 mov al, 6Ah ; 'j' seg000:1D67 seg000:1D67 loc_0_1D67: ; CODE XREF: sub_0_1D53+4j seg000:1D67 ; sub_0_1D53+10j seg000:1D67 mov ds:9, al seg000:1D6A xchg al, ah seg000:1D6C call getCRbase seg000:1D6F mov al, 23h ; '#' seg000:1D71 out dx, ax seg000:1D72 pop ax seg000:1D73 pop dx seg000:1D74 retn seg000:1D74 sub_0_1D53 endp seg000:1D74 seg000:1D75 seg000:1D75 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1D75 seg000:1D75 ; S u b r o u t i n e seg000:1D75 seg000:1D75 sub_0_1D75 proc near ; CODE XREF: sub_0_601+222p seg000:1D75 ; seg000:56C8p seg000:1D75 push ax seg000:1D76 push dx seg000:1D77 push bx seg000:1D78 call getCRbase seg000:1D7B call sub_0_A43 seg000:1D7E jnz loc_0_1DA1 seg000:1D80 mov al, 70h ; 'p' seg000:1D82 xor ah, ah seg000:1D84 cmp bl, 27h ; ''' seg000:1D87 jz loc_0_1D9D seg000:1D89 cmp bl, 39h ; '9' seg000:1D8C jz loc_0_1D9D seg000:1D8E cmp bl, 3Ah ; ':' seg000:1D91 jz loc_0_1D9D seg000:1D93 cmp bl, 4Fh ; 'O' seg000:1D96 jb loc_0_1DB6 seg000:1D98 cmp bl, 53h ; 'S' seg000:1D9B ja loc_0_1DB6 seg000:1D9D seg000:1D9D loc_0_1D9D: ; CODE XREF: sub_0_1D75+12j seg000:1D9D ; sub_0_1D75+17j seg000:1D9D ; sub_0_1D75+1Cj seg000:1D9D mov ah, 5 seg000:1D9F jmp short loc_0_1DB6 seg000:1DA1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1DA1 seg000:1DA1 loc_0_1DA1: ; CODE XREF: sub_0_1D75+9j seg000:1DA1 mov al, 20h ; ' ' seg000:1DA3 call VGArGR seg000:1DA6 mov bl, ah seg000:1DA8 mov al, 70h ; 'p' seg000:1DAA xor ah, ah seg000:1DAC and bl, 18h seg000:1DAF cmp bl, 18h seg000:1DB2 jnz loc_0_1DB6 seg000:1DB4 mov ah, 5 seg000:1DB6 seg000:1DB6 loc_0_1DB6: ; CODE XREF: sub_0_1D75+21j seg000:1DB6 ; sub_0_1D75+26j seg000:1DB6 ; sub_0_1D75+2Aj seg000:1DB6 ; sub_0_1D75+3Dj seg000:1DB6 call getCRbase seg000:1DB9 out dx, ax seg000:1DBA pop bx seg000:1DBB pop dx seg000:1DBC pop ax seg000:1DBD retn seg000:1DBD sub_0_1D75 endp seg000:1DBD seg000:1DBE seg000:1DBE ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1DBE seg000:1DBE ; S u b r o u t i n e seg000:1DBE seg000:1DBE sub_0_1DBE proc near ; CODE XREF: seg000:56CEp seg000:1DBE sub bl, 0Ah seg000:1DC1 jbe locret_0_1DE3 seg000:1DC3 cmp bl, 1 seg000:1DC6 jnz loc_0_1DCA seg000:1DC8 mov bl, 2 seg000:1DCA seg000:1DCA loc_0_1DCA: ; CODE XREF: sub_0_1DBE+8j seg000:1DCA mov al, 13h seg000:1DCC out dx, al seg000:1DCD in ax, dx seg000:1DCE shr ax, 8 seg000:1DD1 mul bl seg000:1DD3 push dx seg000:1DD4 push ax seg000:1DD5 mov dx, 3CEh seg000:1DD8 mov al, 0Fh seg000:1DDA out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1DDA ; seg000:1DDB pop ax seg000:1DDC pop dx seg000:1DDD shl ax, 8 seg000:1DE0 mov al, 13h seg000:1DE2 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1DE2 ; seg000:1DE3 seg000:1DE3 locret_0_1DE3: ; CODE XREF: sub_0_1DBE+3j seg000:1DE3 retn seg000:1DE3 sub_0_1DBE endp seg000:1DE3 seg000:1DE3 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1DE4 db 0 ; seg000:1DE5 db 1Eh ; seg000:1DE6 db 0 ; seg000:1DE7 db 1Eh ; seg000:1DE8 db 0 ; seg000:1DE9 db 1Eh ; seg000:1DEA db 10h ; seg000:1DEB db 1Eh ; seg000:1DEC db 20h ; seg000:1DED db 1Eh ; seg000:1DEE db 30h ; 0 seg000:1DEF db 1Eh ; seg000:1DF0 db 40h ; @ seg000:1DF1 db 1Eh ; seg000:1DF2 db 54h ; T seg000:1DF3 db 1Eh ; seg000:1DF4 db 68h ; h seg000:1DF5 db 1Eh ; seg000:1DF6 db 7Ch ; | seg000:1DF7 db 1Eh ; seg000:1DF8 db 90h ; seg000:1DF9 db 1Eh ; seg000:1DFA db 0AAh ; seg000:1DFB db 1Eh ; seg000:1DFC db 0C4h ; seg000:1DFD db 1Eh ; seg000:1DFE db 0DEh ; seg000:1DFF db 1Eh ; seg000:1E00 db 0 ; seg000:1E01 db 0A3h ; seg000:1E02 db 3 ; seg000:1E03 db 86h ; seg000:1E04 db 4 ; seg000:1E05 db 85h ; seg000:1E06 db 5 ; seg000:1E07 db 96h ; seg000:1E08 db 6 ; seg000:1E09 db 24h ; $ seg000:1E0A db 16h ; seg000:1E0B db 25h ; % seg000:1E0C db 0FFh ; seg000:1E0D db 0FFh ; seg000:1E0E db 27h ; ' seg000:1E0F db 0 ; seg000:1E10 db 0 ; seg000:1E11 db 0A1h ; seg000:1E12 db 3 ; seg000:1E13 db 84h ; seg000:1E14 db 4 ; seg000:1E15 db 85h ; seg000:1E16 db 5 ; seg000:1E17 db 96h ; seg000:1E18 db 6 ; seg000:1E19 db 24h ; $ seg000:1E1A db 16h ; seg000:1E1B db 25h ; % seg000:1E1C db 0FFh ; seg000:1E1D db 0FFh ; seg000:1E1E db 2Ah ; * seg000:1E1F db 0 ; seg000:1E20 db 0 ; seg000:1E21 db 9Fh ; seg000:1E22 db 3 ; seg000:1E23 db 82h ; seg000:1E24 db 4 ; seg000:1E25 db 86h ; seg000:1E26 db 5 ; seg000:1E27 db 92h ; seg000:1E28 db 6 ; seg000:1E29 db 1Eh ; seg000:1E2A db 16h ; seg000:1E2B db 1Fh ; seg000:1E2C db 0FFh ; seg000:1E2D db 0FFh ; seg000:1E2E db 30h ; 0 seg000:1E2F db 0 ; seg000:1E30 db 0 ; seg000:1E31 db 0A8h ; seg000:1E32 db 3 ; seg000:1E33 db 8Ah ; seg000:1E34 db 4 ; seg000:1E35 db 88h ; seg000:1E36 db 5 ; seg000:1E37 db 93h ; seg000:1E38 db 6 ; seg000:1E39 db 25h ; % seg000:1E3A db 16h ; seg000:1E3B db 25h ; % seg000:1E3C db 0FFh ; seg000:1E3D db 0FFh ; seg000:1E3E db 33h ; 3 seg000:1E3F db 0 ; seg000:1E40 db 0 ; seg000:1E41 db 7Fh ;  seg000:1E42 db 3 ; seg000:1E43 db 82h ; seg000:1E44 db 4 ; seg000:1E45 db 6Bh ; k seg000:1E46 db 5 ; seg000:1E47 db 1Bh ; seg000:1E48 db 6 ; seg000:1E49 db 72h ; r seg000:1E4A db 10h ; seg000:1E4B db 58h ; X seg000:1E4C db 11h ; seg000:1E4D db 8Ch ; seg000:1E4E db 16h ; seg000:1E4F db 73h ; s seg000:1E50 db 0FFh ; seg000:1E51 db 0FFh ; seg000:1E52 db 12h ; seg000:1E53 db 0 ; seg000:1E54 db 0 ; seg000:1E55 db 7Dh ; } seg000:1E56 db 3 ; seg000:1E57 db 80h ; seg000:1E58 db 4 ; seg000:1E59 db 6Ch ; l seg000:1E5A db 5 ; seg000:1E5B db 1Ch ; seg000:1E5C db 6 ; seg000:1E5D db 98h ; seg000:1E5E db 10h ; seg000:1E5F db 7Dh ; } seg000:1E60 db 11h ; seg000:1E61 db 83h ; seg000:1E62 db 16h ; seg000:1E63 db 99h ; seg000:1E64 db 0FFh ; seg000:1E65 db 0FFh ; seg000:1E66 db 1Eh ; seg000:1E67 db 0 ; seg000:1E68 db 0 ; seg000:1E69 db 7Fh ;  seg000:1E6A db 3 ; seg000:1E6B db 82h ; seg000:1E6C db 4 ; seg000:1E6D db 68h ; h seg000:1E6E db 5 ; seg000:1E6F db 12h ; seg000:1E70 db 6 ; seg000:1E71 db 6Fh ; o seg000:1E72 db 10h ; seg000:1E73 db 58h ; X seg000:1E74 db 11h ; seg000:1E75 db 8Bh ; seg000:1E76 db 16h ; seg000:1E77 db 70h ; p seg000:1E78 db 0FFh ; seg000:1E79 db 0FFh ; seg000:1E7A db 18h ; seg000:1E7B db 0 ; seg000:1E7C db 0 ; seg000:1E7D db 7Eh ; ~ seg000:1E7E db 3 ; seg000:1E7F db 81h ; seg000:1E80 db 4 ; seg000:1E81 db 6Ah ; j seg000:1E82 db 5 ; seg000:1E83 db 12h ; seg000:1E84 db 6 ; seg000:1E85 db 75h ; u seg000:1E86 db 10h ; seg000:1E87 db 58h ; X seg000:1E88 db 11h ; seg000:1E89 db 8Bh ; seg000:1E8A db 16h ; seg000:1E8B db 76h ; v seg000:1E8C db 0FFh ; seg000:1E8D db 0FFh ; seg000:1E8E db 24h ; $ seg000:1E8F db 0 ; seg000:1E90 db 0 ; seg000:1E91 db 5Fh ; _ seg000:1E92 db 2 ; seg000:1E93 db 50h ; P seg000:1E94 db 3 ; seg000:1E95 db 82h ; seg000:1E96 db 4 ; seg000:1E97 db 54h ; T seg000:1E98 db 5 ; seg000:1E99 db 80h ; seg000:1E9A db 6 ; seg000:1E9B db 0Bh ; seg000:1E9C db 7 ; seg000:1E9D db 3Eh ; > seg000:1E9E db 10h ; seg000:1E9F db 0E9h ; seg000:1EA0 db 11h ; seg000:1EA1 db 8Bh ; seg000:1EA2 db 15h ; seg000:1EA3 db 0E7h ; seg000:1EA4 db 16h ; seg000:1EA5 db 4 ; seg000:1EA6 db 0FFh ; seg000:1EA7 db 0FFh ; seg000:1EA8 db 0 ; seg000:1EA9 db 0 ; seg000:1EAA db 0 ; seg000:1EAB db 63h ; c seg000:1EAC db 2 ; seg000:1EAD db 50h ; P seg000:1EAE db 3 ; seg000:1EAF db 86h ; seg000:1EB0 db 4 ; seg000:1EB1 db 55h ; U seg000:1EB2 db 5 ; seg000:1EB3 db 9Ah ; seg000:1EB4 db 6 ; seg000:1EB5 db 6 ; seg000:1EB6 db 7 ; seg000:1EB7 db 3Eh ; > seg000:1EB8 db 10h ; seg000:1EB9 db 0E8h ; seg000:1EBA db 11h ; seg000:1EBB db 8Bh ; seg000:1EBC db 15h ; seg000:1EBD db 0E7h ; seg000:1EBE db 16h ; seg000:1EBF db 0FFh ; seg000:1EC0 db 0FFh ; seg000:1EC1 db 0FFh ; seg000:1EC2 db 6 ; seg000:1EC3 db 0 ; seg000:1EC4 db 0 ; seg000:1EC5 db 64h ; d seg000:1EC6 db 2 ; seg000:1EC7 db 4Fh ; O seg000:1EC8 db 3 ; seg000:1EC9 db 87h ; seg000:1ECA db 4 ; seg000:1ECB db 54h ; T seg000:1ECC db 5 ; seg000:1ECD db 9Ch ; seg000:1ECE db 6 ; seg000:1ECF db 0F2h ; seg000:1ED0 db 7 ; seg000:1ED1 db 1Fh ; seg000:1ED2 db 10h ; seg000:1ED3 db 0E0h ; seg000:1ED4 db 11h ; seg000:1ED5 db 83h ; seg000:1ED6 db 15h ; seg000:1ED7 db 0DFh ; seg000:1ED8 db 16h ; seg000:1ED9 db 0F3h ; seg000:1EDA db 0FFh ; seg000:1EDB db 0FFh ; seg000:1EDC db 6 ; seg000:1EDD db 0 ; seg000:1EDE db 0 ; seg000:1EDF db 63h ; c seg000:1EE0 db 2 ; seg000:1EE1 db 4Fh ; O seg000:1EE2 db 3 ; seg000:1EE3 db 86h ; seg000:1EE4 db 4 ; seg000:1EE5 db 58h ; X seg000:1EE6 db 5 ; seg000:1EE7 db 9Fh ; seg000:1EE8 db 6 ; seg000:1EE9 db 0FBh ; seg000:1EEA db 7 ; seg000:1EEB db 1Fh ; seg000:1EEC db 10h ; seg000:1EED db 0E0h ; seg000:1EEE db 11h ; seg000:1EEF db 83h ; seg000:1EF0 db 15h ; seg000:1EF1 db 0DFh ; seg000:1EF2 db 16h ; seg000:1EF3 db 0FCh ; seg000:1EF4 db 0FFh ; seg000:1EF5 db 0FFh ; seg000:1EF6 db 0Fh ; seg000:1EF7 db 0 ; seg000:1EF8 seg000:1EF8 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:1EF8 seg000:1EF8 ; S u b r o u t i n e seg000:1EF8 seg000:1EF8 sub_0_1EF8 proc near ; CODE XREF: sub_0_601+23Bp seg000:1EF8 ; sub_0_2037+17p seg000:1EF8 ; seg000:39C0p seg000:1EF8 push ax seg000:1EF9 push bx seg000:1EFA push dx seg000:1EFB push cx seg000:1EFC push si seg000:1EFD cmp al, 13h seg000:1EFF ja loc_0_1F0F seg000:1F01 mov al, 17h seg000:1F03 call VGArGR seg000:1F06 and ah, 0EFh seg000:1F09 call VGAwGR seg000:1F0C jmp loc_0_2031 seg000:1F0F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1F0F seg000:1F0F loc_0_1F0F: ; CODE XREF: sub_0_1EF8+7j seg000:1F0F push ax seg000:1F10 mov dx, 3CEh seg000:1F13 mov al, 2Ch ; ',' seg000:1F15 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:1F15 ; seg000:1F16 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:1F16 ; seg000:1F17 and ah, 1Fh seg000:1F1A out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1F1A ; seg000:1F1B pop ax seg000:1F1C mov dh, ah seg000:1F1E call sub_0_5142 seg000:1F21 cmp al, 7 seg000:1F23 jnb loc_0_1F29 seg000:1F25 sub al, 3 seg000:1F27 jnb loc_0_1F40 seg000:1F29 seg000:1F29 loc_0_1F29: ; CODE XREF: sub_0_1EF8+2Bj seg000:1F29 mov al, 21h ; '!' seg000:1F2B call VGArCRunlock seg000:1F2E and ah, 0E7h seg000:1F31 out dx, ax seg000:1F32 mov al, 17h seg000:1F34 call VGArGR seg000:1F37 and ah, 0EFh seg000:1F3A call VGAwGR seg000:1F3D jmp loc_0_2031 seg000:1F40 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1F40 seg000:1F40 loc_0_1F40: ; CODE XREF: sub_0_1EF8+2Fj seg000:1F40 or dh, dh seg000:1F42 jz loc_0_1F4A seg000:1F44 mov bl, bh seg000:1F46 xor bh, bh seg000:1F48 jmp short loc_0_1F5E seg000:1F4A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1F4A seg000:1F4A loc_0_1F4A: ; CODE XREF: sub_0_1EF8+4Aj seg000:1F4A push ax seg000:1F4B mov al, 1Fh seg000:1F4D call VGArCRunlock seg000:1F50 xor bx, bx seg000:1F52 mov bl, ah seg000:1F54 pop ax seg000:1F55 mov cl, al seg000:1F57 shl cl, 1 seg000:1F59 shr bl, cl seg000:1F5B and bl, 3 seg000:1F5E seg000:1F5E loc_0_1F5E: ; CODE XREF: sub_0_1EF8+50j seg000:1F5E cmp al, 3 seg000:1F60 jb loc_0_1F81 seg000:1F62 mov al, 17h seg000:1F64 call VGArGR seg000:1F67 or ah, 10h seg000:1F6A call VGAwGR seg000:1F6D mov al, 21h ; '!' seg000:1F6F call VGArCRunlock seg000:1F72 and ah, 0E7h seg000:1F75 shl bx, 3 seg000:1F78 or ah, bl seg000:1F7A shr bx, 3 seg000:1F7D out dx, ax seg000:1F7E jmp loc_0_2031 seg000:1F81 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1F81 seg000:1F81 loc_0_1F81: ; CODE XREF: sub_0_1EF8+68j seg000:1F81 cmp al, 2 seg000:1F83 jl loc_0_1FA1 seg000:1F85 cmp bl, 3 seg000:1F88 jbe loc_0_1F8D seg000:1F8A jmp loc_0_2031 seg000:1F8D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1F8D seg000:1F8D loc_0_1F8D: ; CODE XREF: sub_0_1EF8+90j seg000:1F8D mov si, 1DE8h seg000:1F90 mov cl, 3 seg000:1F92 mov dx, 3C2h seg000:1F95 cmp bl, 2 seg000:1F98 mov al, 3Fh ; '?' seg000:1F9A jnb loc_0_1F9E seg000:1F9C mov al, 0FFh seg000:1F9E seg000:1F9E loc_0_1F9E: ; CODE XREF: sub_0_1EF8+A2j seg000:1F9E out dx, al ; EGA : misc cntl seg000:1F9E ; 0: 1=select 3BxH seg000:1F9E ; 1: 1=enable RAM seg000:1F9E ; 2-3: Dot clock seg000:1F9E ; 5: Page bit for odd/even mode seg000:1F9E ; 6: Horiz retrace polarity: 1=neg, 0=pos seg000:1F9E ; 7: Vert retrace polarity: 1=neg, 0=pos seg000:1F9F jmp short loc_0_1FBE seg000:1FA1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1FA1 seg000:1FA1 loc_0_1FA1: ; CODE XREF: sub_0_1EF8+8Bj seg000:1FA1 cmp al, 1 seg000:1FA3 jl loc_0_1FB4 seg000:1FA5 cmp bl, 3 seg000:1FA8 jbe loc_0_1FAD seg000:1FAA jmp loc_0_2031 seg000:1FAD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1FAD seg000:1FAD loc_0_1FAD: ; CODE XREF: sub_0_1EF8+B0j seg000:1FAD mov si, 1DF0h seg000:1FB0 mov cl, 2 seg000:1FB2 jmp short loc_0_1FBE seg000:1FB4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:1FB4 seg000:1FB4 loc_0_1FB4: ; CODE XREF: sub_0_1EF8+ABj seg000:1FB4 cmp bl, 3 seg000:1FB7 ja loc_0_2031 seg000:1FB9 mov si, 1DF8h seg000:1FBC mov cl, 0 seg000:1FBE seg000:1FBE loc_0_1FBE: ; CODE XREF: sub_0_1EF8+A7j seg000:1FBE ; sub_0_1EF8+BAj seg000:1FBE mov al, 21h ; '!' seg000:1FC0 call VGArCRunlock seg000:1FC3 and ah, 0E7h seg000:1FC6 shl bx, 3 seg000:1FC9 or ah, bl seg000:1FCB shr bx, 3 seg000:1FCE out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:1FCE ; data rotate and function select for write mode 00. Bits: seg000:1FCE ; 0-2: set rotate count for write mode 00 seg000:1FCE ; 3-4: fn for write modes 00 and 02 seg000:1FCE ; 00=no change; 01=AND; 10=OR; 11=XOR seg000:1FCF shl bx, 1 seg000:1FD1 mov si, cs:[bx+si] seg000:1FD4 call getCRbase seg000:1FD7 mov al, 11h seg000:1FD9 out dx, al seg000:1FDA in ax, dx seg000:1FDB and ah, 7Fh seg000:1FDE out dx, ax seg000:1FDF call customPortPrg seg000:1FE2 mov dx, 3CEh seg000:1FE5 mov bx, cs:[si] seg000:1FE8 mov si, 13Fh seg000:1FEB push cx seg000:1FEC push bx seg000:1FED mov cx, cs:[bx+si] seg000:1FF0 mov dl, ch seg000:1FF2 mov bh, cs:[bx+si+2] seg000:1FF6 mov bl, cl seg000:1FF8 xor ch, ch seg000:1FFA pop ax seg000:1FFB cmp ax, 1Eh seg000:1FFE jb loc_0_200D seg000:2000 test dl, 8 seg000:2003 jnz loc_0_200A seg000:2005 cmp ax, 33h ; '3' seg000:2008 jbe loc_0_200D seg000:200A seg000:200A loc_0_200A: ; CODE XREF: sub_0_1EF8+10Bj seg000:200A or ch, 10h seg000:200D seg000:200D loc_0_200D: ; CODE XREF: sub_0_1EF8+106j seg000:200D ; sub_0_1EF8+110j seg000:200D mov al, 17h seg000:200F call VGArGR seg000:2012 and ah, 0EFh seg000:2015 or ah, ch seg000:2017 call VGAwGR seg000:201A pop cx seg000:201B mov dh, cl seg000:201D call sub_0_3CF2 seg000:2020 mov dx, 3CEh seg000:2023 mov al, 9Ch ; '' seg000:2025 add al, cl seg000:2027 mov ah, bh seg000:2029 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2029 ; seg000:202A mov al, 98h ; '' seg000:202C add al, cl seg000:202E mov ah, bl seg000:2030 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2030 ; seg000:2031 seg000:2031 loc_0_2031: ; CODE XREF: sub_0_1EF8+14j seg000:2031 ; sub_0_1EF8+45j seg000:2031 ; sub_0_1EF8+86j seg000:2031 ; sub_0_1EF8+92j seg000:2031 ; sub_0_1EF8+B2j seg000:2031 ; sub_0_1EF8+BFj seg000:2031 pop si seg000:2032 pop cx seg000:2033 pop dx seg000:2034 pop bx seg000:2035 pop ax seg000:2036 retn seg000:2036 sub_0_1EF8 endp seg000:2036 seg000:2037 seg000:2037 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2037 seg000:2037 ; S u b r o u t i n e seg000:2037 seg000:2037 sub_0_2037 proc near ; CODE XREF: seg000:551Dp seg000:2037 push si seg000:2038 call sub_0_2F1 seg000:203B and bx, 7Fh seg000:203E call sub_0_A43 seg000:2041 mov al, bl seg000:2043 jz loc_0_204C seg000:2045 xor ch, ch seg000:2047 call sub_0_2151 seg000:204A jmp short loc_0_2051 seg000:204C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:204C seg000:204C loc_0_204C: ; CODE XREF: sub_0_2037+Cj seg000:204C xor ah, ah seg000:204E call sub_0_1EF8 seg000:2051 seg000:2051 loc_0_2051: ; CODE XREF: sub_0_2037+13j seg000:2051 test cs:word_0_B3, 10h seg000:2058 jz loc_0_205D seg000:205A call sub_0_208E seg000:205D seg000:205D loc_0_205D: ; CODE XREF: sub_0_2037+21j seg000:205D call sub_0_5AD seg000:2060 call sub_0_2F1 seg000:2063 cmp bl, 22h ; '"' seg000:2066 jz loc_0_206D seg000:2068 cmp bl, 12h seg000:206B jnz loc_0_207A seg000:206D seg000:206D loc_0_206D: ; CODE XREF: sub_0_2037+2Fj seg000:206D push ax seg000:206E call getCRbase seg000:2071 mov al, 21h ; '!' seg000:2073 out dx, al seg000:2074 in ax, dx seg000:2075 and ah, 0BFh seg000:2078 out dx, ax seg000:2079 pop ax seg000:207A seg000:207A loc_0_207A: ; CODE XREF: sub_0_2037+34j seg000:207A test cs:word_0_B1, 1 seg000:2081 jnz loc_0_208C seg000:2083 push cx seg000:2084 mov cl, 4 seg000:2086 mov ax, 5F4Fh seg000:2089 int 15h seg000:208B pop cx seg000:208C seg000:208C loc_0_208C: ; CODE XREF: sub_0_2037+4Aj seg000:208C pop si seg000:208D retn seg000:208D sub_0_2037 endp seg000:208D seg000:208E seg000:208E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:208E seg000:208E ; S u b r o u t i n e seg000:208E seg000:208E sub_0_208E proc near ; CODE XREF: sub_0_601+23Ep seg000:208E ; sub_0_2037+23p seg000:208E push ax seg000:208F push bx seg000:2090 mov bl, 31h ; '1' seg000:2092 call sub_0_539C seg000:2095 mov bx, ax seg000:2097 call VGArGR seg000:209A and ah, 0CEh seg000:209D and bh, 31h seg000:20A0 or ah, bh seg000:20A2 call VGAwGR seg000:20A5 mov bl, 30h ; '0' seg000:20A7 call sub_0_539C seg000:20AA mov bx, ax seg000:20AC call VGArGR seg000:20AF and ah, 0DFh seg000:20B2 and bh, 20h seg000:20B5 or ah, bh seg000:20B7 call VGAwGR seg000:20BA pop bx seg000:20BB pop ax seg000:20BC retn seg000:20BC sub_0_208E endp seg000:20BC seg000:20BD seg000:20BD ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:20BD seg000:20BD ; S u b r o u t i n e seg000:20BD seg000:20BD sub_0_20BD proc near ; CODE XREF: sub_0_601+137p seg000:20BD push ax seg000:20BE push bx seg000:20BF push dx seg000:20C0 test cs:word_0_B1, 20h seg000:20C7 jnz loc_0_20DA seg000:20C9 mov ax, 5F46h seg000:20CC mov bx, 100h seg000:20CF int 15h seg000:20D1 cmp al, 5Fh ; '_' seg000:20D3 jnz loc_0_20DA seg000:20D5 cmp ah, 1 seg000:20D8 jz loc_0_2120 seg000:20DA seg000:20DA loc_0_20DA: ; CODE XREF: sub_0_20BD+Aj seg000:20DA ; sub_0_20BD+16j seg000:20DA mov al, 22h ; '"' seg000:20DC call VGArGR seg000:20DF push ax seg000:20E0 and ah, 7Fh seg000:20E3 call VGAwGR seg000:20E6 mov al, 31h ; '1' seg000:20E8 call VGArGR seg000:20EB push ax seg000:20EC and ah, 0FEh seg000:20EF call VGAwGR seg000:20F2 mov al, 1 seg000:20F4 mov dx, 3C4h seg000:20F7 out dx, al ; EGA: sequencer address reg seg000:20F7 ; clocking mode. Data bits: seg000:20F7 ; 0: 1=8 dots/char; 0=9 dots/char seg000:20F7 ; 1: CRT bandwidth: 1=low; 0=high seg000:20F7 ; 2: 1=shift every char; 0=every 2nd char seg000:20F7 ; 3: dot clock: 1=halved seg000:20F8 in ax, dx ; EGA: sequencer address reg seg000:20F8 ; seg000:20F9 push ax seg000:20FA and ah, 0F7h seg000:20FD or ah, 1 seg000:2100 out dx, ax ; EGA: sequencer address reg seg000:2100 ; clocking mode. Data bits: seg000:2100 ; 0: 1=8 dots/char; 0=9 dots/char seg000:2100 ; 1: CRT bandwidth: 1=low; 0=high seg000:2100 ; 2: 1=shift every char; 0=every 2nd char seg000:2100 ; 3: dot clock: 1=halved seg000:2101 mov al, 20h ; ' ' seg000:2103 call VGArGR seg000:2106 and ah, 0FDh seg000:2109 mov dx, 3CEh seg000:210C call sub_0_225A seg000:210F out dx, ax seg000:2110 call sub_0_9D3 seg000:2113 pop ax seg000:2114 mov dx, 3C4h seg000:2117 out dx, ax ; EGA: sequencer address reg seg000:2117 ; seg000:2118 pop ax seg000:2119 call VGAwGR seg000:211C pop ax seg000:211D call VGAwGR seg000:2120 seg000:2120 loc_0_2120: ; CODE XREF: sub_0_20BD+1Bj seg000:2120 pop dx seg000:2121 pop bx seg000:2122 pop ax seg000:2123 retn seg000:2123 sub_0_20BD endp seg000:2123 seg000:2124 seg000:2124 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2124 seg000:2124 ; S u b r o u t i n e seg000:2124 seg000:2124 sub_0_2124 proc near ; CODE XREF: sub_0_601+287p seg000:2124 push ax seg000:2125 push bx seg000:2126 test cs:word_0_B1, 20h seg000:212D jnz loc_0_2140 seg000:212F mov ax, 5F46h seg000:2132 mov bx, 1 seg000:2135 int 15h seg000:2137 cmp al, 5Fh ; '_' seg000:2139 jnz loc_0_2140 seg000:213B cmp ah, 1 seg000:213E jz loc_0_214E seg000:2140 seg000:2140 loc_0_2140: ; CODE XREF: sub_0_2124+9j seg000:2140 ; sub_0_2124+15j seg000:2140 mov al, 20h ; ' ' seg000:2142 call VGArGR seg000:2145 or ah, 2 seg000:2148 call sub_0_225A seg000:214B call VGAwGR seg000:214E seg000:214E loc_0_214E: ; CODE XREF: sub_0_2124+1Aj seg000:214E pop bx seg000:214F pop ax seg000:2150 retn seg000:2150 sub_0_2124 endp seg000:2150 seg000:2151 seg000:2151 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2151 seg000:2151 ; S u b r o u t i n e seg000:2151 seg000:2151 sub_0_2151 proc near ; CODE XREF: sub_0_601+230p seg000:2151 ; sub_0_2037+10p seg000:2151 ; seg000:326Cp seg000:2151 ; sub_0_32F0+35p seg000:2151 ; bl05+9p seg000:2151 call VGAunlock2609 seg000:2154 push ax seg000:2155 call sub_0_A43 seg000:2158 pop ax seg000:2159 jnz loc_0_215E seg000:215B jmp locret_0_2259 seg000:215E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:215E seg000:215E loc_0_215E: ; CODE XREF: sub_0_2151+8j seg000:215E mov bl, al seg000:2160 call sub_0_5142 seg000:2163 push ax seg000:2164 cmp al, 6 seg000:2166 jbe loc_0_216A seg000:2168 sub al, 4 seg000:216A seg000:216A loc_0_216A: ; CODE XREF: sub_0_2151+15j seg000:216A mov ch, al seg000:216C mov dx, 3CEh seg000:216F mov al, 20h ; ' ' seg000:2171 call VGArGR seg000:2174 and ah, 18h seg000:2177 shr ah, 3 seg000:217A add ah, 3 seg000:217D mov cl, ah seg000:217F push si seg000:2180 mov si, 3A40h seg000:2183 add si, 9 seg000:2186 mov bx, cs:[si] seg000:2189 mov ax, cs:[si+2] seg000:218D mov bl, ah seg000:218F pop si seg000:2190 mov dx, 3CEh seg000:2193 mov al, 0AEh ; '' seg000:2195 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2195 ; seg000:2196 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2196 ; seg000:2197 test ah, 10h seg000:219A jz loc_0_21AC seg000:219C and bh, 39h seg000:219F and ah, 0C6h seg000:21A2 or bh, ah seg000:21A4 test bh, 40h seg000:21A7 jnz loc_0_21AC seg000:21A9 and bl, 0FCh seg000:21AC seg000:21AC loc_0_21AC: ; CODE XREF: sub_0_2151+49j seg000:21AC ; sub_0_2151+56j seg000:21AC pop ax seg000:21AD cmp ch, cl seg000:21AF jb loc_0_21C0 seg000:21B1 and bh, 0FEh seg000:21B4 and bl, 0EFh seg000:21B7 and bh, 39h seg000:21BA and bl, 0FCh seg000:21BD jmp loc_0_224C seg000:21C0 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:21C0 seg000:21C0 loc_0_21C0: ; CODE XREF: sub_0_2151+5Ej seg000:21C0 test bh, 0C6h seg000:21C3 jz loc_0_21D7 seg000:21C5 cmp cl, 6 seg000:21C8 jnz loc_0_21D7 seg000:21CA cmp ch, 5 seg000:21CD jnz loc_0_21D7 seg000:21CF and bh, 39h seg000:21D2 and bl, 0FCh seg000:21D5 jmp short loc_0_21D7 seg000:21D7 seg000:21D7 loc_0_21D7: ; CODE XREF: sub_0_2151+72j seg000:21D7 ; sub_0_2151+77j seg000:21D7 ; sub_0_2151+7Cj seg000:21D7 mov al, 0AFh ; '' seg000:21D9 out dx, al seg000:21DA in ax, dx seg000:21DB test ah, 80h seg000:21DE jz loc_0_21F6 seg000:21E0 and bh, 0FEh seg000:21E3 and bl, 0EFh seg000:21E6 test ah, 40h seg000:21E9 jz loc_0_21EE seg000:21EB or bh, 1 seg000:21EE seg000:21EE loc_0_21EE: ; CODE XREF: sub_0_2151+98j seg000:21EE test ah, 20h seg000:21F1 jz loc_0_21F6 seg000:21F3 or bl, 10h seg000:21F6 seg000:21F6 loc_0_21F6: ; CODE XREF: sub_0_2151+8Dj seg000:21F6 ; sub_0_2151+A0j seg000:21F6 test bh, 1 seg000:21F9 jnz loc_0_2200 seg000:21FB test bl, 10h seg000:21FE jz loc_0_224C seg000:2200 seg000:2200 loc_0_2200: ; CODE XREF: sub_0_2151+A8j seg000:2200 push bx seg000:2201 call sub_0_2F1 seg000:2204 mov al, bl seg000:2206 call sub_0_5142 seg000:2209 pop bx seg000:220A mov si, 3A69h seg000:220D test bh, 0C6h seg000:2210 jz loc_0_2226 seg000:2212 test ah, 80h seg000:2215 jnz loc_0_221E seg000:2217 test bh, 84h seg000:221A jz loc_0_2226 seg000:221C jmp short loc_0_2223 seg000:221E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:221E seg000:221E loc_0_221E: ; CODE XREF: sub_0_2151+C4j seg000:221E test bh, 42h seg000:2221 jz loc_0_2226 seg000:2223 seg000:2223 loc_0_2223: ; CODE XREF: sub_0_2151+CBj seg000:2223 mov si, 3A85h seg000:2226 seg000:2226 loc_0_2226: ; CODE XREF: sub_0_2151+BFj seg000:2226 ; sub_0_2151+C9j seg000:2226 ; sub_0_2151+D0j seg000:2226 call customPortPrg seg000:2229 cmp cl, 6 seg000:222C jnz loc_0_224C seg000:222E cmp ch, 5 seg000:2231 jnz loc_0_224C seg000:2233 push bx seg000:2234 call sub_0_2F1 seg000:2237 cmp bl, 44h ; 'D' seg000:223A jb loc_0_224B seg000:223C cmp bl, 45h ; 'E' seg000:223F ja loc_0_224B seg000:2241 mov al, 38h ; '8' seg000:2243 call VGArGR seg000:2246 shr ah, 1 seg000:2248 call VGAwGR seg000:224B seg000:224B loc_0_224B: ; CODE XREF: sub_0_2151+E9j seg000:224B ; sub_0_2151+EEj seg000:224B pop bx seg000:224C seg000:224C loc_0_224C: ; CODE XREF: sub_0_2151+6Cj seg000:224C ; sub_0_2151+ADj seg000:224C ; sub_0_2151+DBj seg000:224C ; sub_0_2151+E0j seg000:224C mov dx, 3CEh seg000:224F mov al, 30h ; '0' seg000:2251 mov ah, bl seg000:2253 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2253 ; seg000:2254 mov al, 25h ; '%' seg000:2256 mov ah, bh seg000:2258 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2258 ; seg000:2259 seg000:2259 locret_0_2259: ; CODE XREF: sub_0_2151+Aj seg000:2259 retn seg000:2259 sub_0_2151 endp seg000:2259 seg000:225A seg000:225A ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:225A seg000:225A ; S u b r o u t i n e seg000:225A seg000:225A sub_0_225A proc near ; CODE XREF: sub_0_601+CAp seg000:225A ; sub_0_601+E7p seg000:225A ; sub_0_601+EBp seg000:225A ; sub_0_601+117p seg000:225A ; sub_0_601+11Bp seg000:225A ; sub_0_601+127p seg000:225A ; sub_0_601+241p seg000:225A ; sub_0_601+28Ap seg000:225A ; sub_0_601+28Ep seg000:225A ; sub_0_601+2D6p seg000:225A ; sub_0_601+2DAp seg000:225A ; sub_0_1BD0+7Bp seg000:225A ; sub_0_1BD0+7Ep seg000:225A ; sub_0_1BD0+81p seg000:225A ; sub_0_20BD+4Fp seg000:225A ; sub_0_2124+24p seg000:225A ; sub_0_233E+42p seg000:225A ; sub_0_233E+77p seg000:225A ; seg000:2E88p seg000:225A ; seg000:3102p seg000:225A ; sub_0_3D4C+7Cp seg000:225A ; vgainit+39p vgainit+3Cp seg000:225A ; vgainit+151p seg000:225A ; vgainit+154p seg000:225A ; vgainit+16Fp seg000:225A ; vgainit+172p seg000:225A ; vgainit+180p seg000:225A ; vgainit+183p seg000:225A ; sub_0_524F+2p seg000:225A ; sub_0_526C+1p seg000:225A ; sub_0_59E0+39p seg000:225A ; seg000:748Dp seg000:225A ; seg000:7490p seg000:225A push ax seg000:225B push dx seg000:225C call getCRbase seg000:225F and dl, 0F0h seg000:2262 or dl, 0Ah seg000:2265 push cx seg000:2266 push bx seg000:2267 mov cx, 0FFFFh seg000:226A mov bx, 10h seg000:226D seg000:226D loc_0_226D: ; CODE XREF: sub_0_225A+18j seg000:226D ; sub_0_225A+1Bj seg000:226D in al, dx seg000:226E test al, 8 seg000:2270 jz loc_0_2277 seg000:2272 loop loc_0_226D seg000:2274 dec bx seg000:2275 jnz loc_0_226D seg000:2277 seg000:2277 loc_0_2277: ; CODE XREF: sub_0_225A+16j seg000:2277 pop bx seg000:2278 pop cx seg000:2279 push cx seg000:227A push bx seg000:227B mov cx, 0FFFFh seg000:227E mov bx, 10h seg000:2281 seg000:2281 loc_0_2281: ; CODE XREF: sub_0_225A+2Cj seg000:2281 ; sub_0_225A+2Fj seg000:2281 in al, dx seg000:2282 test al, 8 seg000:2284 jnz loc_0_228B seg000:2286 loop loc_0_2281 seg000:2288 dec bx seg000:2289 jnz loc_0_2281 seg000:228B seg000:228B loc_0_228B: ; CODE XREF: sub_0_225A+2Aj seg000:228B pop bx seg000:228C pop cx seg000:228D pop dx seg000:228E pop ax seg000:228F retn seg000:228F sub_0_225A endp seg000:228F seg000:2290 seg000:2290 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2290 seg000:2290 ; S u b r o u t i n e seg000:2290 seg000:2290 sub_0_2290 proc near ; CODE XREF: seg000:6176p seg000:2290 ; seg000:61C2p seg000:2290 ; sub_0_6220p seg000:2290 push ax seg000:2291 mov al, 10h seg000:2293 call VGArGR seg000:2296 and ah, 0FDh seg000:2299 call VGAwGR seg000:229C pop ax seg000:229D retn seg000:229D sub_0_2290 endp seg000:229D seg000:229E seg000:229E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:229E seg000:229E ; S u b r o u t i n e seg000:229E seg000:229E sub_0_229E proc near ; CODE XREF: sub_0_1633+56p seg000:229E ; seg000:61BBp seg000:229E ; seg000:6219p seg000:229E ; sub_0_6220+8Fp seg000:229E push ax seg000:229F mov al, 90h ; '' seg000:22A1 call VGArGR seg000:22A4 test ah, 7 seg000:22A7 jz loc_0_22B4 seg000:22A9 mov al, 10h seg000:22AB call VGArGR seg000:22AE or ah, 2 seg000:22B1 call VGAwGR seg000:22B4 seg000:22B4 loc_0_22B4: ; CODE XREF: sub_0_229E+9j seg000:22B4 pop ax seg000:22B5 retn seg000:22B5 sub_0_229E endp seg000:22B5 seg000:22B6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:22B6 call sub_0_22C0 seg000:22B9 jnz loc_0_22BD seg000:22BB mov al, 2 seg000:22BD seg000:22BD loc_0_22BD: ; CODE XREF: seg000:22B9j seg000:22BD cmp al, 1 seg000:22BF retn seg000:22C0 seg000:22C0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:22C0 seg000:22C0 ; S u b r o u t i n e seg000:22C0 seg000:22C0 sub_0_22C0 proc near ; CODE XREF: sub_0_A2F+3p seg000:22C0 ; seg000:22B6p seg000:22C0 ; bl05+15p seg000:22C0 mov al, 0AFh ; '' seg000:22C2 call VGArGR seg000:22C5 test ah, 8 seg000:22C8 jz loc_0_22CF seg000:22CA mov al, 2 seg000:22CC or al, al seg000:22CE retn seg000:22CF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:22CF seg000:22CF loc_0_22CF: ; CODE XREF: sub_0_22C0+8j seg000:22CF push dx seg000:22D0 push cx seg000:22D1 test ah, 4 seg000:22D4 jz loc_0_22FA seg000:22D6 call sub_0_233E seg000:22D9 cmp al, 0 seg000:22DB jz loc_0_2335 seg000:22DD test byte ptr ds:49h, 2 seg000:22E2 jz loc_0_22EF seg000:22E4 cmp al, 2 seg000:22E6 jnz loc_0_22F8 seg000:22E8 and byte ptr ds:49h, 0FDh seg000:22ED jmp short loc_0_22F8 seg000:22EF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:22EF seg000:22EF loc_0_22EF: ; CODE XREF: sub_0_22C0+22j seg000:22EF cmp al, 1 seg000:22F1 jnz loc_0_22F8 seg000:22F3 or byte ptr ds:49h, 2 seg000:22F8 seg000:22F8 loc_0_22F8: ; CODE XREF: sub_0_22C0+26j seg000:22F8 ; sub_0_22C0+2Dj seg000:22F8 ; sub_0_22C0+31j seg000:22F8 jmp short loc_0_2335 seg000:22FA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:22FA seg000:22FA loc_0_22FA: ; CODE XREF: sub_0_22C0+14j seg000:22FA mov dx, 3CEh seg000:22FD mov al, 18h seg000:22FF out dx, al ; EGA: graph 1 and 2 addr reg: seg000:22FF ; seg000:2300 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2300 ; seg000:2301 mov cx, ax seg000:2303 and ah, 0F7h seg000:2306 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2306 ; seg000:2307 call getCRbase seg000:230A mov al, 25h ; '%' seg000:230C test cs:word_0_B1, 80h seg000:2313 jz loc_0_2317 seg000:2315 mov al, 27h ; ''' seg000:2317 seg000:2317 loc_0_2317: ; CODE XREF: sub_0_22C0+53j seg000:2317 out dx, al seg000:2318 in ax, dx seg000:2319 xchg ax, cx seg000:231A mov dx, 3CEh seg000:231D out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:231D ; seg000:231E mov ax, cx seg000:2320 mov al, 2 seg000:2322 mov cl, 20h ; ' ' seg000:2324 test cs:word_0_B1, 80h seg000:232B jz loc_0_232F seg000:232D mov cl, 2 seg000:232F seg000:232F loc_0_232F: ; CODE XREF: sub_0_22C0+6Bj seg000:232F test cl, ah seg000:2331 jz loc_0_2335 seg000:2333 xor al, al seg000:2335 seg000:2335 loc_0_2335: ; CODE XREF: sub_0_22C0+1Bj seg000:2335 ; sub_0_22C0+38j seg000:2335 ; sub_0_22C0+71j seg000:2335 pop cx seg000:2336 pop dx seg000:2337 test al, al seg000:2339 retn seg000:2339 sub_0_22C0 endp seg000:2339 seg000:2339 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:233A db 27h ; ' seg000:233B db 26h ; & seg000:233C db 9Ch ; seg000:233D db 98h ; seg000:233E seg000:233E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:233E seg000:233E ; S u b r o u t i n e seg000:233E seg000:233E sub_0_233E proc near ; CODE XREF: sub_0_22C0+16p seg000:233E push cx seg000:233F push bx seg000:2340 mov dx, 3CEh seg000:2343 mov al, 20h ; ' ' seg000:2345 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2345 ; seg000:2346 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2346 ; seg000:2347 push ax seg000:2348 or ah, 1 seg000:234B out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:234B ; enable set/reset seg000:234C xor bx, bx seg000:234E mov al, 90h ; '' seg000:2350 call VGArGR seg000:2353 and ah, 7 seg000:2356 cmp ah, 4 seg000:2359 jnz loc_0_235E seg000:235B mov bx, 2 seg000:235E seg000:235E loc_0_235E: ; CODE XREF: sub_0_233E+1Bj seg000:235E call getCRbase seg000:2361 and dl, 0F0h seg000:2364 or dl, 0Ah seg000:2367 in al, dx seg000:2368 mov dx, 3C0h seg000:236B xor al, al seg000:236D out dx, al ; EGA: palette register: select colors for attribute AL: seg000:236D ; 0: RED seg000:236D ; 1: GREEN seg000:236D ; 2: BLUE seg000:236D ; 3: blue seg000:236D ; 4: green seg000:236D ; 5: red seg000:236E mov dx, 3C6h seg000:2371 out dx, al seg000:2372 xor ch, ch seg000:2374 mov cl, cs:[bx+233Ah] seg000:2379 seg000:2379 loc_0_2379: ; CODE XREF: sub_0_233E+63j seg000:2379 cmp cl, cs:[bx+233Bh] seg000:237E jb loc_0_23A7 seg000:2380 call sub_0_225A seg000:2383 xor al, al seg000:2385 mov dx, 3C8h seg000:2388 out dx, al seg000:2389 inc dx seg000:238A mov al, cl seg000:238C out dx, al seg000:238D out dx, al seg000:238E out dx, al seg000:238F call sub_0_2405 seg000:2392 mov dx, 3C2h seg000:2395 in al, dx ; EGA : misc cntl seg000:2395 ; 0: 1=select 3BxH seg000:2395 ; 1: 1=enable RAM seg000:2395 ; 2-3: Dot clock seg000:2395 ; 5: Page bit for odd/even mode seg000:2395 ; 6: Horiz retrace polarity: 1=neg, 0=pos seg000:2395 ; 7: Vert retrace polarity: 1=neg, 0=pos seg000:2396 push cx seg000:2397 mov cx, 100h seg000:239A seg000:239A loc_0_239A: ; CODE XREF: sub_0_233E+5Cj seg000:239A loop loc_0_239A seg000:239C pop cx seg000:239D dec cl seg000:239F test al, 10h seg000:23A1 jz loc_0_2379 seg000:23A3 mov al, 2 seg000:23A5 jmp short loc_0_23DB seg000:23A7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:23A7 seg000:23A7 loc_0_23A7: ; CODE XREF: sub_0_233E+40j seg000:23A7 xor ch, ch seg000:23A9 mov cl, cs:[bx+233Ah] seg000:23AE seg000:23AE loc_0_23AE: ; CODE XREF: sub_0_233E+95j seg000:23AE cmp cl, cs:[bx+233Bh] seg000:23B3 jb loc_0_23D9 seg000:23B5 call sub_0_225A seg000:23B8 xor al, al seg000:23BA mov dx, 3C8h seg000:23BD out dx, al seg000:23BE inc dx seg000:23BF mov al, 10h seg000:23C1 out dx, al seg000:23C2 mov al, cl seg000:23C4 out dx, al seg000:23C5 mov al, 10h seg000:23C7 out dx, al seg000:23C8 call sub_0_2405 seg000:23CB mov dx, 3C2h seg000:23CE in al, dx ; EGA : misc cntl seg000:23CE ; 0: 1=select 3BxH seg000:23CE ; 1: 1=enable RAM seg000:23CE ; 2-3: Dot clock seg000:23CE ; 5: Page bit for odd/even mode seg000:23CE ; 6: Horiz retrace polarity: 1=neg, 0=pos seg000:23CE ; 7: Vert retrace polarity: 1=neg, 0=pos seg000:23CF dec cl seg000:23D1 test al, 10h seg000:23D3 jz loc_0_23AE seg000:23D5 mov al, 1 seg000:23D7 jmp short loc_0_23DB seg000:23D9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:23D9 seg000:23D9 loc_0_23D9: ; CODE XREF: sub_0_233E+75j seg000:23D9 xor al, al seg000:23DB seg000:23DB loc_0_23DB: ; CODE XREF: sub_0_233E+67j seg000:23DB ; sub_0_233E+99j seg000:23DB mov cx, ax seg000:23DD mov dx, 3C8h seg000:23E0 xor al, al seg000:23E2 out dx, al seg000:23E3 inc dx seg000:23E4 out dx, al seg000:23E5 out dx, al seg000:23E6 out dx, al seg000:23E7 call getCRbase seg000:23EA and al, 0F0h seg000:23EC or al, 0Ah seg000:23EE in al, dx seg000:23EF mov dx, 3C0h seg000:23F2 mov al, 20h ; ' ' seg000:23F4 out dx, al ; EGA: palette register: select colors for attribute AL: seg000:23F4 ; 0: RED seg000:23F4 ; 1: GREEN seg000:23F4 ; 2: BLUE seg000:23F4 ; 3: blue seg000:23F4 ; 4: green seg000:23F4 ; 5: red seg000:23F5 mov dx, 3C6h seg000:23F8 mov al, 0FFh seg000:23FA out dx, al seg000:23FB mov dx, 3CEh seg000:23FE pop ax seg000:23FF out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:23FF ; seg000:2400 mov ax, cx seg000:2402 pop bx seg000:2403 pop cx seg000:2404 retn seg000:2404 sub_0_233E endp seg000:2404 seg000:2405 seg000:2405 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2405 seg000:2405 ; S u b r o u t i n e seg000:2405 seg000:2405 sub_0_2405 proc near ; CODE XREF: sub_0_233E+51p seg000:2405 ; sub_0_233E+8Ap seg000:2405 ; seg000:566Bp seg000:2405 ; sub_0_7638+3p seg000:2405 push ax seg000:2406 push dx seg000:2407 call getCRbase seg000:240A and dl, 0F0h seg000:240D or dl, 4 seg000:2410 mov al, 25h ; '%' seg000:2412 out dx, al seg000:2413 in ax, dx seg000:2414 test ah, 3 seg000:2417 jnz loc_0_2443 seg000:2419 and dl, 0F0h seg000:241C or dl, 0Ah seg000:241F push cx seg000:2420 push bx seg000:2421 mov cx, 0FFFFh seg000:2424 mov bx, 10h seg000:2427 seg000:2427 loc_0_2427: ; CODE XREF: sub_0_2405+27j seg000:2427 ; sub_0_2405+2Aj seg000:2427 in al, dx seg000:2428 test al, 8 seg000:242A jnz loc_0_2431 seg000:242C loop loc_0_2427 seg000:242E dec bx seg000:242F jnz loc_0_2427 seg000:2431 seg000:2431 loc_0_2431: ; CODE XREF: sub_0_2405+25j seg000:2431 mov cx, 0FFFFh seg000:2434 mov bx, 10h seg000:2437 seg000:2437 loc_0_2437: ; CODE XREF: sub_0_2405+37j seg000:2437 ; sub_0_2405+3Aj seg000:2437 in al, dx seg000:2438 test al, 1 seg000:243A jz loc_0_2441 seg000:243C loop loc_0_2437 seg000:243E dec bx seg000:243F jnz loc_0_2437 seg000:2441 seg000:2441 loc_0_2441: ; CODE XREF: sub_0_2405+35j seg000:2441 pop bx seg000:2442 pop cx seg000:2443 seg000:2443 loc_0_2443: ; CODE XREF: sub_0_2405+12j seg000:2443 pop dx seg000:2444 pop ax seg000:2445 retn seg000:2445 sub_0_2405 endp seg000:2445 seg000:2445 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2446 off_0_2446 dw offset loc_0_2489 ; DATA XREF: seg000:2484o seg000:2448 dw offset loc_0_249E seg000:244A dw offset loc_0_24CB seg000:244C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:244C seg000:244C loc_0_244C: ; CODE XREF: seg000:6012u seg000:244C ; DATA XREF: seg000:5FE2o seg000:244C push ax seg000:244D push dx seg000:244E call getCRbase seg000:2451 and dl, 0F0h seg000:2454 or dl, 4 seg000:2457 mov al, 25h ; '%' seg000:2459 out dx, al seg000:245A in ax, dx seg000:245B test ah, 3 seg000:245E pop dx seg000:245F pop ax seg000:2460 jz loc_0_2465 seg000:2462 jmp bl_exit seg000:2465 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2465 seg000:2465 loc_0_2465: ; CODE XREF: seg000:2460j seg000:2465 cmp bl, 2 seg000:2468 jbe loc_0_246D seg000:246A jmp loc_0_6042 seg000:246D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:246D seg000:246D loc_0_246D: ; CODE XREF: seg000:2468j seg000:246D push ax seg000:246E mov al, 21h ; '!' seg000:2470 call VGArCR seg000:2473 and ah, 7 seg000:2476 or ah, ah seg000:2478 pop ax seg000:2479 jz loc_0_247E seg000:247B jmp bl_exit seg000:247E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:247E seg000:247E loc_0_247E: ; CODE XREF: seg000:2479j seg000:247E mov ax, bx seg000:2480 xor bh, bh seg000:2482 shl bx, 1 seg000:2484 jmp cs:off_0_2446[bx] seg000:2489 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2489 seg000:2489 loc_0_2489: ; DATA XREF: seg000:2446o seg000:2489 mov word ptr [bp+0Ah], 102h seg000:248E call sub_0_2516 seg000:2491 cmp bl, 0FFh seg000:2494 jz loc_0_249B seg000:2496 mov word ptr [bp+0Ah], 0 seg000:249B seg000:249B loc_0_249B: ; CODE XREF: seg000:2494j seg000:249B jmp bl_exit seg000:249E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:249E seg000:249E loc_0_249E: ; CODE XREF: seg000:2484u seg000:249E ; DATA XREF: seg000:2448o seg000:249E call VGAunlock2609 seg000:24A1 push dx seg000:24A2 call sub_0_2516 seg000:24A5 cmp bl, 0FFh seg000:24A8 pop dx seg000:24A9 jz loc_0_24AE seg000:24AB jmp loc_0_6042 seg000:24AE ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:24AE seg000:24AE loc_0_24AE: ; CODE XREF: seg000:24A9j seg000:24AE mov ax, 80h ; '' seg000:24B1 mul dl seg000:24B3 xchg al, ah seg000:24B5 shl al, 1 seg000:24B7 add al, 0A0h ; '' seg000:24B9 mov bx, ax seg000:24BB mov cx, 3 seg000:24BE push cx seg000:24BF mov cx, 80h ; '' seg000:24C2 call sub_0_2563 seg000:24C5 pop cx seg000:24C6 jz loc_0_24C8 seg000:24C8 seg000:24C8 loc_0_24C8: seg000:24C8 jmp bl_exit seg000:24CB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:24CB seg000:24CB loc_0_24CB: ; CODE XREF: seg000:2484u seg000:24CB ; DATA XREF: seg000:244Ao seg000:24CB call sub_0_2516 seg000:24CE cmp bl, 0FFh seg000:24D1 jz loc_0_24D6 seg000:24D3 jmp loc_0_6042 seg000:24D6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:24D6 seg000:24D6 loc_0_24D6: ; CODE XREF: seg000:24D1j seg000:24D6 push dx seg000:24D7 mov bl, 0A0h ; '' seg000:24D9 mov bh, 7Eh ; '~' seg000:24DB mov cx, 1 seg000:24DE call sub_0_2563 seg000:24E1 mov bl, es:[di] seg000:24E4 dec di seg000:24E5 mov ax, 80h ; '' seg000:24E8 mul bl seg000:24EA add ax, 80h ; '' seg000:24ED shl ah, 1 seg000:24EF mov cx, ax seg000:24F1 pop dx seg000:24F2 mov ax, 40h ; '@' seg000:24F5 mul dl seg000:24F7 shl ah, 1 seg000:24F9 xchg al, ah seg000:24FB mov bx, ax seg000:24FD add bl, ch seg000:24FF add bh, cl seg000:2501 mov cx, 3 seg000:2504 seg000:2504 loc_0_2504: ; CODE XREF: seg000:250Ej seg000:2504 push cx seg000:2505 mov cx, 40h ; '@' seg000:2508 call sub_0_2563 seg000:250B pop cx seg000:250C jz loc_0_2513 seg000:250E loop loc_0_2504 seg000:2510 jmp loc_0_6042 seg000:2513 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2513 seg000:2513 loc_0_2513: ; CODE XREF: seg000:250Cj seg000:2513 jmp bl_exit seg000:2516 seg000:2516 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2516 seg000:2516 ; S u b r o u t i n e seg000:2516 seg000:2516 sub_0_2516 proc near ; CODE XREF: seg000:248Ep seg000:2516 ; seg000:24A2p seg000:2516 ; seg000:24CBp seg000:2516 ; sub_0_351Bp seg000:2516 xor bl, bl seg000:2518 mov cx, 3 seg000:251B seg000:251B loc_0_251B: ; CODE XREF: sub_0_2516+44j seg000:251B call sub_0_25CB seg000:251E call sub_0_267F seg000:2521 jz loc_0_255C seg000:2523 call sub_0_25E7 seg000:2526 mov bl, 0A0h ; '' seg000:2528 call sub_0_2614 seg000:252B jnz loc_0_255A seg000:252D mov bl, 0 seg000:252F call sub_0_2614 seg000:2532 jnz loc_0_255A seg000:2534 call sub_0_25E7 seg000:2537 mov bl, 0A1h ; '' seg000:2539 call sub_0_2614 seg000:253C jnz loc_0_255A seg000:253E mov bh, 0 seg000:2540 call sub_0_2648 seg000:2543 cmp bl, 0 seg000:2546 jnz loc_0_255A seg000:2548 call sub_0_2648 seg000:254B cmp bl, 0FFh seg000:254E jnz loc_0_255A seg000:2550 mov bh, 4 seg000:2552 call sub_0_2648 seg000:2555 cmp bl, 0FFh seg000:2558 jz loc_0_255C seg000:255A seg000:255A loc_0_255A: ; CODE XREF: sub_0_2516+15j seg000:255A ; sub_0_2516+1Cj seg000:255A ; sub_0_2516+26j seg000:255A ; sub_0_2516+30j seg000:255A ; sub_0_2516+38j seg000:255A loop loc_0_251B seg000:255C seg000:255C loc_0_255C: ; CODE XREF: sub_0_2516+Bj seg000:255C ; sub_0_2516+42j seg000:255C call sub_0_25FC seg000:255F call sub_0_2718 seg000:2562 retn seg000:2562 sub_0_2516 endp seg000:2562 seg000:2563 seg000:2563 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2563 seg000:2563 ; S u b r o u t i n e seg000:2563 seg000:2563 sub_0_2563 proc near ; CODE XREF: seg000:24C2p seg000:2563 ; seg000:24DEp seg000:2563 ; seg000:2508p seg000:2563 ; sub_0_351B+10p seg000:2563 push bx seg000:2564 call sub_0_25CB seg000:2567 call sub_0_267F seg000:256A call sub_0_25E7 seg000:256D call sub_0_2614 seg000:2570 xchg bl, bh seg000:2572 push bx seg000:2573 call sub_0_2614 seg000:2576 call sub_0_26B3 seg000:2579 call sub_0_25E7 seg000:257C pop bx seg000:257D xchg bl, bh seg000:257F or bl, 1 seg000:2582 call sub_0_2614 seg000:2585 mov bh, 0 seg000:2587 cmp di, 0FFFFh seg000:258A jz loc_0_2591 seg000:258C call sub_0_259C seg000:258F jmp short loc_0_2594 seg000:2591 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2591 seg000:2591 loc_0_2591: ; CODE XREF: sub_0_2563+27j seg000:2591 call sub_0_25B1 seg000:2594 seg000:2594 loc_0_2594: ; CODE XREF: sub_0_2563+2Cj seg000:2594 call sub_0_25FC seg000:2597 call sub_0_2718 seg000:259A pop bx seg000:259B retn seg000:259B sub_0_2563 endp seg000:259B seg000:259C seg000:259C ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:259C seg000:259C ; S u b r o u t i n e seg000:259C seg000:259C sub_0_259C proc near ; CODE XREF: sub_0_2563+29p seg000:259C dec cx seg000:259D jz loc_0_25A8 seg000:259F seg000:259F loc_0_259F: ; CODE XREF: sub_0_259C+Aj seg000:259F call sub_0_2648 seg000:25A2 mov es:[di], bl seg000:25A5 inc di seg000:25A6 loop loc_0_259F seg000:25A8 seg000:25A8 loc_0_25A8: ; CODE XREF: sub_0_259C+1j seg000:25A8 mov bh, 4 seg000:25AA call sub_0_2648 seg000:25AD mov es:[di], bl seg000:25B0 retn seg000:25B0 sub_0_259C endp seg000:25B0 seg000:25B1 seg000:25B1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:25B1 seg000:25B1 ; S u b r o u t i n e seg000:25B1 seg000:25B1 sub_0_25B1 proc near ; CODE XREF: sub_0_2563+2Ep seg000:25B1 mov cx, 23h ; '#' seg000:25B4 seg000:25B4 loc_0_25B4: ; CODE XREF: sub_0_25B1+6j seg000:25B4 call sub_0_2648 seg000:25B7 loop loc_0_25B4 seg000:25B9 call sub_0_2648 seg000:25BC mov cl, bl seg000:25BE call sub_0_2648 seg000:25C1 mov ch, bl seg000:25C3 mov di, cx seg000:25C5 mov bh, 4 seg000:25C7 call sub_0_2648 seg000:25CA retn seg000:25CA sub_0_25B1 endp seg000:25CA seg000:25CB seg000:25CB ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:25CB seg000:25CB ; S u b r o u t i n e seg000:25CB seg000:25CB sub_0_25CB proc near ; CODE XREF: sub_0_2516+5p seg000:25CB ; sub_0_2563+1p seg000:25CB mov dx, 3CEh seg000:25CE mov al, 0A1h ; '' seg000:25D0 mov ah, 21h ; '!' seg000:25D2 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:25D2 ; seg000:25D3 push cx seg000:25D4 mov cx, 4 seg000:25D7 seg000:25D7 loc_0_25D7: ; CODE XREF: sub_0_25CB+15j seg000:25D7 call sub_0_25FC seg000:25DA call sub_0_269D seg000:25DD call sub_0_26B3 seg000:25E0 loop loc_0_25D7 seg000:25E2 call sub_0_2718 seg000:25E5 pop cx seg000:25E6 retn seg000:25E6 sub_0_25CB endp seg000:25E6 seg000:25E7 seg000:25E7 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:25E7 seg000:25E7 ; S u b r o u t i n e seg000:25E7 seg000:25E7 sub_0_25E7 proc near ; CODE XREF: sub_0_2516+Dp seg000:25E7 ; sub_0_2516+1Ep seg000:25E7 ; sub_0_2563+7p seg000:25E7 ; sub_0_2563+16p seg000:25E7 call sub_0_269D seg000:25EA or ah, 14h seg000:25ED out dx, ax seg000:25EE call sub_0_267F seg000:25F1 call sub_0_26B3 seg000:25F4 and ah, 0FBh seg000:25F7 out dx, ax seg000:25F8 call sub_0_26B3 seg000:25FB retn seg000:25FB sub_0_25E7 endp seg000:25FB seg000:25FC seg000:25FC ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:25FC seg000:25FC ; S u b r o u t i n e seg000:25FC seg000:25FC sub_0_25FC proc near ; CODE XREF: sub_0_2516+46p seg000:25FC ; sub_0_2563+31p seg000:25FC ; sub_0_25CB+Cp seg000:25FC call sub_0_269D seg000:25FF or ah, 10h seg000:2602 and ah, 0FBh seg000:2605 out dx, ax seg000:2606 call sub_0_267F seg000:2609 call sub_0_26B3 seg000:260C or ah, 4 seg000:260F out dx, ax seg000:2610 call sub_0_26B3 seg000:2613 retn seg000:2613 sub_0_25FC endp seg000:2613 seg000:2614 seg000:2614 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2614 seg000:2614 ; S u b r o u t i n e seg000:2614 seg000:2614 sub_0_2614 proc near ; CODE XREF: sub_0_2516+12p seg000:2614 ; sub_0_2516+19p seg000:2614 ; sub_0_2516+23p seg000:2614 ; sub_0_2563+Ap seg000:2614 ; sub_0_2563+10p seg000:2614 ; sub_0_2563+1Fp seg000:2614 push bx seg000:2615 push cx seg000:2616 mov cx, 8 seg000:2619 seg000:2619 loc_0_2619: ; CODE XREF: sub_0_2614+19j seg000:2619 call sub_0_269D seg000:261C or ah, 10h seg000:261F and ah, 0FBh seg000:2622 shl bl, 1 seg000:2624 jnb loc_0_2629 seg000:2626 or ah, 4 seg000:2629 seg000:2629 loc_0_2629: ; CODE XREF: sub_0_2614+10j seg000:2629 out dx, ax seg000:262A call sub_0_267F seg000:262D loop loc_0_2619 seg000:262F call sub_0_269D seg000:2632 and ah, 0EFh seg000:2635 or ah, 4 seg000:2638 out dx, ax seg000:2639 call sub_0_267F seg000:263C call sub_0_26B3 seg000:263F in ax, dx seg000:2640 test ah, 8 seg000:2643 jz loc_0_2645 seg000:2645 seg000:2645 loc_0_2645: seg000:2645 pop cx seg000:2646 pop bx seg000:2647 retn seg000:2647 sub_0_2614 endp seg000:2647 seg000:2648 seg000:2648 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2648 seg000:2648 ; S u b r o u t i n e seg000:2648 seg000:2648 sub_0_2648 proc near ; CODE XREF: sub_0_2516+2Ap seg000:2648 ; sub_0_2516+32p seg000:2648 ; sub_0_2516+3Cp seg000:2648 ; sub_0_259C+3p seg000:2648 ; sub_0_259C+Ep seg000:2648 ; sub_0_25B1+3p seg000:2648 ; sub_0_25B1+8p seg000:2648 ; sub_0_25B1+Dp seg000:2648 ; sub_0_25B1+16p seg000:2648 push cx seg000:2649 xor bl, bl seg000:264B mov cx, 8 seg000:264E seg000:264E loc_0_264E: ; CODE XREF: sub_0_2648+21j seg000:264E call sub_0_269D seg000:2651 and ah, 0EFh seg000:2654 or ah, 4 seg000:2657 out dx, ax seg000:2658 call sub_0_267F seg000:265B call strange_wait_lo seg000:265E in ax, dx seg000:265F shl bl, 1 seg000:2661 test ah, 8 seg000:2664 jz loc_0_2669 seg000:2666 or bl, 1 seg000:2669 seg000:2669 loc_0_2669: ; CODE XREF: sub_0_2648+1Cj seg000:2669 loop loc_0_264E seg000:266B call sub_0_269D seg000:266E or ah, 10h seg000:2671 and ah, 0FBh seg000:2674 or ah, bh seg000:2676 out dx, ax seg000:2677 call strange_wait_lo seg000:267A call sub_0_267F seg000:267D pop cx seg000:267E retn seg000:267E sub_0_2648 endp seg000:267E seg000:267F seg000:267F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:267F seg000:267F ; S u b r o u t i n e seg000:267F seg000:267F sub_0_267F proc near ; CODE XREF: sub_0_2516+8p seg000:267F ; sub_0_2563+4p seg000:267F ; sub_0_25E7+7p seg000:267F ; sub_0_25FC+Ap seg000:267F ; sub_0_2614+16p seg000:267F ; sub_0_2614+25p seg000:267F ; sub_0_2648+10p seg000:267F ; sub_0_2648+32p seg000:267F push cx seg000:2680 mov al, 0A1h ; '' seg000:2682 out dx, al seg000:2683 in ax, dx seg000:2684 call sub_0_26B3 seg000:2687 mov cx, 10h seg000:268A seg000:268A loc_0_268A: ; CODE XREF: sub_0_267F+18j seg000:268A or ah, 1 seg000:268D out dx, ax seg000:268E call strange_wait_lo seg000:2691 in ax, dx seg000:2692 test ah, 2 seg000:2695 jnz loc_0_269B seg000:2697 loop loc_0_268A seg000:2699 or cx, cx seg000:269B seg000:269B loc_0_269B: ; CODE XREF: sub_0_267F+16j seg000:269B pop cx seg000:269C retn seg000:269C sub_0_267F endp seg000:269C seg000:269D seg000:269D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:269D seg000:269D ; S u b r o u t i n e seg000:269D seg000:269D sub_0_269D proc near ; CODE XREF: sub_0_25CB+Fp seg000:269D ; sub_0_25E7p sub_0_25FCp seg000:269D ; sub_0_2614+5p seg000:269D ; sub_0_2614+1Bp seg000:269D ; sub_0_2648+6p seg000:269D ; sub_0_2648+23p seg000:269D call sub_0_26B3 seg000:26A0 mov al, 0A1h ; '' seg000:26A2 out dx, al seg000:26A3 in ax, dx seg000:26A4 and ah, 0FEh seg000:26A7 out dx, ax seg000:26A8 retn seg000:26A8 sub_0_269D endp seg000:26A8 seg000:26A9 seg000:26A9 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:26A9 seg000:26A9 ; S u b r o u t i n e seg000:26A9 seg000:26A9 strange_wait_lo proc near ; CODE XREF: sub_0_2648+13p seg000:26A9 ; sub_0_2648+2Fp seg000:26A9 ; sub_0_267F+Fp seg000:26A9 ; i2cget8b+28p seg000:26A9 ; i2cget8b+5Fp seg000:26A9 ; sub_0_4755+1Ap seg000:26A9 push cx seg000:26AA mov cx, 3E8h seg000:26AD seg000:26AD loc_0_26AD: ; CODE XREF: strange_wait_lo+6j seg000:26AD or cx, cx seg000:26AF loop loc_0_26AD seg000:26B1 pop cx seg000:26B2 retn seg000:26B2 strange_wait_lo endp seg000:26B2 seg000:26B3 seg000:26B3 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:26B3 seg000:26B3 ; S u b r o u t i n e seg000:26B3 seg000:26B3 sub_0_26B3 proc near ; CODE XREF: sub_0_2563+13p seg000:26B3 ; sub_0_25CB+12p seg000:26B3 ; sub_0_25E7+Ap seg000:26B3 ; sub_0_25E7+11p seg000:26B3 ; sub_0_25FC+Dp seg000:26B3 ; sub_0_25FC+14p seg000:26B3 ; sub_0_2614+28p seg000:26B3 ; sub_0_267F+5p seg000:26B3 ; sub_0_269Dp sub_0_2718+4p seg000:26B3 push ax seg000:26B4 push dx seg000:26B5 push cx seg000:26B6 push bx seg000:26B7 mov cx, 0FFFFh seg000:26BA mov bx, 10h seg000:26BD mov dx, 3DAh seg000:26C0 seg000:26C0 loc_0_26C0: ; CODE XREF: sub_0_26B3+12j seg000:26C0 ; sub_0_26B3+15j seg000:26C0 in al, dx ; Video status bits: seg000:26C0 ; 0: retrace. 1=display is in vert or horiz retrace. seg000:26C0 ; 1: 1=light pen is triggered; 0=armed seg000:26C0 ; 2: 1=light pen switch is open; 0=closed seg000:26C0 ; 3: 1=vertical sync pulse is occurring. seg000:26C1 test al, 1 seg000:26C3 jnz loc_0_26CA seg000:26C5 loop loc_0_26C0 seg000:26C7 dec bx seg000:26C8 jnz loc_0_26C0 seg000:26CA seg000:26CA loc_0_26CA: ; CODE XREF: sub_0_26B3+10j seg000:26CA mov cx, 0FFFFh seg000:26CD mov bx, 10h seg000:26D0 seg000:26D0 loc_0_26D0: ; CODE XREF: sub_0_26B3+22j seg000:26D0 ; sub_0_26B3+25j seg000:26D0 in al, dx ; Video status bits: seg000:26D0 ; 0: retrace. 1=display is in vert or horiz retrace. seg000:26D0 ; 1: 1=light pen is triggered; 0=armed seg000:26D0 ; 2: 1=light pen switch is open; 0=closed seg000:26D0 ; 3: 1=vertical sync pulse is occurring. seg000:26D1 test al, 1 seg000:26D3 jz loc_0_26DA seg000:26D5 loop loc_0_26D0 seg000:26D7 dec bx seg000:26D8 jnz loc_0_26D0 seg000:26DA seg000:26DA loc_0_26DA: ; CODE XREF: sub_0_26B3+20j seg000:26DA pop bx seg000:26DB pop cx seg000:26DC pop dx seg000:26DD pop ax seg000:26DE retn seg000:26DE sub_0_26B3 endp seg000:26DE seg000:26DF seg000:26DF ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:26DF seg000:26DF ; S u b r o u t i n e seg000:26DF seg000:26DF i2cisfree proc near ; CODE XREF: getChrontelREG+20p seg000:26DF ; sub_0_4620+1Cp seg000:26DF ; sub_0_4620+30p seg000:26DF ; sub_0_4654+1Cp seg000:26DF ; sub_0_4654+30p seg000:26DF ; i2cwrite8b+4Ep seg000:26DF ; sub_0_4755+Cp seg000:26DF ; sub_0_4776p seg000:26DF push ax seg000:26E0 push dx seg000:26E1 push bx seg000:26E2 mov dx, 3CEh seg000:26E5 mov al, 0A1h ; '' seg000:26E7 mov bh, 2 seg000:26E9 seg000:26E9 loc_0_26E9: ; CODE XREF: i2cisfree+33j seg000:26E9 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:26E9 ; seg000:26EA in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:26EA ; seg000:26EB and ah, 80h seg000:26EE mov bl, ah seg000:26F0 pushf seg000:26F1 cli seg000:26F2 push cx seg000:26F3 push di seg000:26F4 mov cx, 0FFFFh seg000:26F7 mov di, 10h seg000:26FA seg000:26FA loc_0_26FA: ; CODE XREF: i2cisfree+29j seg000:26FA ; i2cisfree+2Cj seg000:26FA mov dx, 3CEh seg000:26FD mov al, 0A1h ; '' seg000:26FF out dx, al ; EGA: graph 1 and 2 addr reg: seg000:26FF ; seg000:2700 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2700 ; seg000:2701 and ah, 80h seg000:2704 xor ah, bl seg000:2706 jnz loc_0_270D seg000:2708 loop loc_0_26FA seg000:270A dec di seg000:270B jnz loc_0_26FA seg000:270D seg000:270D loc_0_270D: ; CODE XREF: i2cisfree+27j seg000:270D pop di seg000:270E pop cx seg000:270F popf seg000:2710 dec bh seg000:2712 jnz loc_0_26E9 seg000:2714 pop bx seg000:2715 pop dx seg000:2716 pop ax seg000:2717 retn seg000:2717 i2cisfree endp seg000:2717 seg000:2718 seg000:2718 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2718 seg000:2718 ; S u b r o u t i n e seg000:2718 seg000:2718 sub_0_2718 proc near ; CODE XREF: sub_0_2516+49p seg000:2718 ; sub_0_2563+34p seg000:2718 ; sub_0_25CB+17p seg000:2718 ; seg000:461Bp seg000:2718 push cx seg000:2719 mov cx, 11h seg000:271C seg000:271C loc_0_271C: ; CODE XREF: sub_0_2718+7j seg000:271C call sub_0_26B3 seg000:271F loop loc_0_271C seg000:2721 pop cx seg000:2722 retn seg000:2722 sub_0_2718 endp seg000:2722 seg000:2723 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2723 push si seg000:2724 inc dx seg000:2725 inc bp seg000:2725 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2726 db 32h ; 2 seg000:2727*word_0_2727 dw 0CA67h ; DATA XREF: seg000:2F24r seg000:2727* ; vgainit+7Dw seg000:2729 aVesa db 'VESA',0 seg000:272E db 2 ; seg000:272F db 0 ; seg000:2730 db 1 ; seg000:2731 db 1 ; seg000:2732 db 1 ; seg000:2733 db 2 ; seg000:2734 db 1 ; seg000:2735 db 3 ; seg000:2736 db 1 ; seg000:2737 db 4 ; seg000:2738 db 1 ; seg000:2739 db 5 ; seg000:273A db 1 ; seg000:273B db 7 ; seg000:273C db 1 ; seg000:273D db 8 ; seg000:273E db 1 ; seg000:273F db 0Dh ; seg000:2740 db 1 ; seg000:2741 db 0Eh ; seg000:2742 db 1 ; seg000:2743 db 10h ; seg000:2744 db 1 ; seg000:2745 db 11h ; seg000:2746 db 1 ; seg000:2747 db 12h ; seg000:2748 db 1 ; seg000:2749 db 13h ; seg000:274A db 1 ; seg000:274B db 14h ; seg000:274C db 1 ; seg000:274D db 15h ; seg000:274E db 1 ; seg000:274F db 16h ; seg000:2750 db 1 ; seg000:2751 db 17h ; seg000:2752 db 1 ; seg000:2753 db 18h ; seg000:2754 db 1 ; seg000:2755 db 19h ; seg000:2756 db 1 ; seg000:2757 db 1Ah ; seg000:2758 db 1 ; seg000:2759 db 20h ; seg000:275A db 1 ; seg000:275B db 21h ; ! seg000:275C db 1 ; seg000:275D db 22h ; " seg000:275E db 1 ; seg000:275F db 23h ; # seg000:2760 db 1 ; seg000:2761 db 24h ; $ seg000:2762 db 1 ; seg000:2763 db 25h ; % seg000:2764 db 1 ; seg000:2765 db 29h ; ) seg000:2766 db 1 ; seg000:2767 db 2Ah ; * seg000:2768 db 1 ; seg000:2769 db 2Bh ; + seg000:276A db 1 ; seg000:276B db 80h ; seg000:276C db 2 ; seg000:276D db 90h ; seg000:276E db 1 ; seg000:276F db 80h ; seg000:2770 db 2 ; seg000:2771 db 80h ; seg000:2772 db 2 ; seg000:2773 db 0E0h ; seg000:2774 db 1 ; seg000:2775 db 80h ; seg000:2776 db 2 ; seg000:2777 db 20h ; seg000:2778 db 3 ; seg000:2779 db 58h ; X seg000:277A db 2 ; seg000:277B db 64h ; d seg000:277C db 0 ; seg000:277D db 20h ; seg000:277E db 3 ; seg000:277F db 58h ; X seg000:2780 db 2 ; seg000:2781 db 20h ; seg000:2782 db 3 ; seg000:2783 db 0 ; seg000:2784 db 4 ; seg000:2785 db 0 ; seg000:2786 db 3 ; seg000:2787 db 80h ; seg000:2788 db 0 ; seg000:2789 db 0 ; seg000:278A db 4 ; seg000:278B db 0 ; seg000:278C db 3 ; seg000:278D db 0 ; seg000:278E db 4 ; seg000:278F db 0 ; seg000:2790 db 5 ; seg000:2791 db 0 ; seg000:2792 db 4 ; seg000:2793 db 0 ; seg000:2794 db 5 ; seg000:2795 db 80h ; seg000:2796 db 2 ; seg000:2797 db 90h ; seg000:2798 db 1 ; seg000:2799 db 0 ; seg000:279A db 5 ; seg000:279B db 40h ; @ seg000:279C db 1 ; seg000:279D db 0C8h ; seg000:279E db 0 ; seg000:279F db 80h ; seg000:27A0 db 2 ; seg000:27A1 db 40h ; @ seg000:27A2 db 1 ; seg000:27A3 db 0C8h ; seg000:27A4 db 0 ; seg000:27A5 db 80h ; seg000:27A6 db 2 ; seg000:27A7 db 80h ; seg000:27A8 db 2 ; seg000:27A9 db 0E0h ; seg000:27AA db 1 ; seg000:27AB db 0 ; seg000:27AC db 5 ; seg000:27AD db 80h ; seg000:27AE db 2 ; seg000:27AF db 0E0h ; seg000:27B0 db 1 ; seg000:27B1 db 0 ; seg000:27B2 db 5 ; seg000:27B3 db 80h ; seg000:27B4 db 2 ; seg000:27B5 db 0E0h ; seg000:27B6 db 1 ; seg000:27B7 db 80h ; seg000:27B8 db 7 ; seg000:27B9 db 20h ; seg000:27BA db 3 ; seg000:27BB db 58h ; X seg000:27BC db 2 ; seg000:27BD db 40h ; @ seg000:27BE db 6 ; seg000:27BF db 20h ; seg000:27C0 db 3 ; seg000:27C1 db 58h ; X seg000:27C2 db 2 ; seg000:27C3 db 40h ; @ seg000:27C4 db 6 ; seg000:27C5 db 20h ; seg000:27C6 db 3 ; seg000:27C7 db 58h ; X seg000:27C8 db 2 ; seg000:27C9 db 60h ; ` seg000:27CA db 9 ; seg000:27CB db 0 ; seg000:27CC db 4 ; seg000:27CD db 0 ; seg000:27CE db 3 ; seg000:27CF db 0 ; seg000:27D0 db 8 ; seg000:27D1 db 0 ; seg000:27D2 db 4 ; seg000:27D3 db 0 ; seg000:27D4 db 3 ; seg000:27D5 db 0 ; seg000:27D6 db 8 ; seg000:27D7 db 0 ; seg000:27D8 db 4 ; seg000:27D9 db 0 ; seg000:27DA db 3 ; seg000:27DB db 0 ; seg000:27DC db 0Ch ; seg000:27DD db 0 ; seg000:27DE db 5 ; seg000:27DF db 0 ; seg000:27E0 db 4 ; seg000:27E1 db 0 ; seg000:27E2 db 0Ah ; seg000:27E3 db 0 ; seg000:27E4 db 5 ; seg000:27E5 db 0 ; seg000:27E6 db 4 ; seg000:27E7 db 0 ; seg000:27E8 db 0Ah ; seg000:27E9 db 40h ; @ seg000:27EA db 1 ; seg000:27EB db 0F0h ; seg000:27EC db 0 ; seg000:27ED db 40h ; @ seg000:27EE db 1 ; seg000:27EF db 40h ; @ seg000:27F0 db 1 ; seg000:27F1 db 0F0h ; seg000:27F2 db 0 ; seg000:27F3 db 80h ; seg000:27F4 db 2 ; seg000:27F5 db 90h ; seg000:27F6 db 1 ; seg000:27F7 db 2Ch ; , seg000:27F8 db 1 ; seg000:27F9 db 90h ; seg000:27FA db 1 ; seg000:27FB db 90h ; seg000:27FC db 1 ; seg000:27FD db 2Ch ; , seg000:27FE db 1 ; seg000:27FF db 20h ; seg000:2800 db 3 ; seg000:2801 db 0 ; seg000:2802 db 2 ; seg000:2803 db 80h ; seg000:2804 db 1 ; seg000:2805 db 0 ; seg000:2806 db 2 ; seg000:2807 db 0 ; seg000:2808 db 2 ; seg000:2809 db 80h ; seg000:280A db 1 ; seg000:280B db 0 ; seg000:280C db 4 ; seg000:280D db 0 ; seg000:280E db 4 ; seg000:280F db 0E0h ; seg000:2810 db 1 ; seg000:2811 db 0 ; seg000:2812 db 4 ; seg000:2813 db 0 ; seg000:2814 db 4 ; seg000:2815 db 0E0h ; seg000:2816 db 1 ; seg000:2817 db 0 ; seg000:2818 db 8 ; seg000:2819 db 0 ; seg000:281A db 4 ; seg000:281B db 0E0h ; seg000:281C db 1 ; seg000:281D db 0 ; seg000:281E db 0Ch ; seg000:281F db 56h ; V seg000:2820 db 45h ; E seg000:2821 db 53h ; S seg000:2822 db 41h ; A seg000:2823 db 20h ; seg000:2824 db 56h ; V seg000:2825 db 42h ; B seg000:2826 db 45h ; E seg000:2827 db 2Fh ; / seg000:2828 db 32h ; 2 seg000:2829 db 2Eh ; . seg000:282A db 30h ; 0 seg000:282B db 20h ; seg000:282C db 42h ; B seg000:282D db 49h ; I seg000:282E db 4Fh ; O seg000:282F db 53h ; S seg000:2830 db 20h ; seg000:2831 db 45h ; E seg000:2832 db 78h ; x seg000:2833 db 74h ; t seg000:2834 db 65h ; e seg000:2835 db 6Eh ; n seg000:2836 db 73h ; s seg000:2837 db 69h ; i seg000:2838 db 6Fh ; o seg000:2839 db 6Eh ; n seg000:283A db 73h ; s seg000:283B db 0 ; seg000:283C word_0_283C dw 1Ch ; DATA XREF: sub_0_B2A3+C1r seg000:283E aNeomagic db 'NeoMagic',0 seg000:2847 aMagicmedia256A db 'MagicMedia 256 AV',0 seg000:2859 a01_0 db '01.0',0 seg000:285E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:285E seg000:285E loc_0_285E: ; CODE XREF: seg000:6012u seg000:285E ; DATA XREF: seg000:5FB8o seg000:285E push cs seg000:285F pop ds seg000:2860 assume ds:seg000 seg000:2860 push di seg000:2861 clc seg000:2862 cld seg000:2863 mov si, 2723h seg000:2866 mov cx, 4 seg000:2869 rep cmpsb seg000:286B pop di seg000:286C mov cx, 0 seg000:286F jnz loc_0_2874 seg000:2871 mov cx, 2 seg000:2874 seg000:2874 loc_0_2874: ; CODE XREF: seg000:286Fj seg000:2874 push cx seg000:2875 call sub_0_294B seg000:2878 push di seg000:2879 mov si, 2729h seg000:287C mov cx, 6 seg000:287F rep movsb seg000:2881 pop di seg000:2882 mov word ptr es:[di+0Ah], 0 seg000:2888 mov ax, 48h ; 'H' seg000:288B mov es:[di+6], ax seg000:288F push cs seg000:2890 pop ax seg000:2891 mov es:[di+8], ax seg000:2895 mov ax, 22h ; '"' seg000:2898 add ax, di seg000:289A mov es:[di+0Eh], ax seg000:289E mov ax, es seg000:28A0 mov es:[di+10h], ax seg000:28A4 call sub_0_3D6 seg000:28A7 shr ax, 8 seg000:28AA mov es:[di+12h], ax seg000:28AE mov cx, 1Eh seg000:28B1 mov si, 272Fh seg000:28B4 xor bx, bx seg000:28B6 seg000:28B6 loc_0_28B6: ; CODE XREF: seg000:28DEj seg000:28B6 lodsw seg000:28B7 push ax seg000:28B8 and ax, 7Fh seg000:28BB add ax, 20h ; ' ' seg000:28BE call sub_0_1BA8 seg000:28C1 pop ax seg000:28C2 jb loc_0_28DE seg000:28C4 cmp ax, 108h seg000:28C7 jz loc_0_28DE seg000:28C9 cmp ax, 119h seg000:28CC jz loc_0_28DE seg000:28CE cmp ax, 11Ah seg000:28D1 jz loc_0_28DE seg000:28D3 cmp ax, 126h seg000:28D6 jnb loc_0_28DE seg000:28D8 mov es:[bx+di+22h], ax seg000:28DC inc bx seg000:28DD inc bx seg000:28DE seg000:28DE loc_0_28DE: ; CODE XREF: seg000:28C2j seg000:28DE ; seg000:28C7j seg000:28DE ; seg000:28CCj seg000:28DE ; seg000:28D1j seg000:28DE ; seg000:28D6j seg000:28DE loop loc_0_28B6 seg000:28E0 mov ax, 0FFFFh seg000:28E3 mov es:[bx+di+22h], ax seg000:28E7 pop cx seg000:28E8 cmp cx, 2 seg000:28EB jnz loc_0_2941 seg000:28ED push di seg000:28EE add di, 100h seg000:28F2 call sub_0_294B seg000:28F5 pop di seg000:28F6 mov si, 0AAh ; '' seg000:28F9 mov ax, [si] seg000:28FB mov es:[di+14h], ax seg000:28FF push es seg000:2900 pop ax seg000:2901 mov es:[di+18h], ax seg000:2905 mov es:[di+1Ch], ax seg000:2909 mov es:[di+20h], ax seg000:290D mov es:[di+8], ax seg000:2911 mov bx, di seg000:2913 add di, 100h seg000:2917 mov si, 283Eh seg000:291A mov es:[bx+16h], di seg000:291E call sub_0_2944 seg000:2921 mov si, 2847h seg000:2924 mov es:[bx+1Ah], di seg000:2928 call sub_0_2944 seg000:292B mov si, 2859h seg000:292E mov es:[bx+1Eh], di seg000:2932 call sub_0_2944 seg000:2935 mov si, 48h ; 'H' seg000:2938 mov es:[bx+6], di seg000:293C call sub_0_2944 seg000:293F mov di, bx seg000:2941 seg000:2941 loc_0_2941: ; CODE XREF: seg000:28EBj seg000:2941 jmp bl_exit seg000:2944 seg000:2944 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2944 seg000:2944 ; S u b r o u t i n e seg000:2944 seg000:2944 sub_0_2944 proc near ; CODE XREF: seg000:291Ep seg000:2944 ; seg000:2928p seg000:2944 ; seg000:2932p seg000:2944 ; seg000:293Cp seg000:2944 ; sub_0_2944+4j seg000:2944 lodsb seg000:2945 stosb seg000:2946 or al, al seg000:2948 jnz sub_0_2944 seg000:294A retn seg000:294A sub_0_2944 endp seg000:294A seg000:294B seg000:294B ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:294B seg000:294B ; S u b r o u t i n e seg000:294B seg000:294B sub_0_294B proc near ; CODE XREF: seg000:2875p seg000:294B ; seg000:28F2p seg000:294B ; seg000:2974p seg000:294B push di seg000:294C push cx seg000:294D push ax seg000:294E mov cx, 80h ; '' seg000:2951 xor ax, ax seg000:2953 rep stosw seg000:2955 pop ax seg000:2956 pop cx seg000:2957 pop di seg000:2958 retn seg000:2958 sub_0_294B endp seg000:2958 seg000:2959 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2959 seg000:2959 loc_0_2959: ; CODE XREF: seg000:6012u seg000:2959 ; DATA XREF: seg000:5FBAo seg000:2959 push bp seg000:295A mov bp, di seg000:295C and cx, 1FFh seg000:2960 cmp cx, 1FFh seg000:2964 jnz loc_0_2969 seg000:2966 mov cx, 101h seg000:2969 seg000:2969 loc_0_2969: ; CODE XREF: seg000:2964j seg000:2969 mov ax, cx seg000:296B call sub_0_2A90 seg000:296E jnb loc_0_2974 seg000:2970 pop bp seg000:2971 jmp loc_0_6042 seg000:2974 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2974 seg000:2974 loc_0_2974: ; CODE XREF: seg000:296Ej seg000:2974 call sub_0_294B seg000:2977 push bx seg000:2978 mov bx, ax seg000:297A mov al, cs:[bx-5B34h] seg000:297F sub al, 0Ah seg000:2981 jnb loc_0_2985 seg000:2983 mov al, 4 seg000:2985 seg000:2985 loc_0_2985: ; CODE XREF: seg000:2981j seg000:2985 xor ah, ah seg000:2987 shl ax, 2 seg000:298A mov si, ax seg000:298C add si, 0A520h seg000:2990 push cs seg000:2991 pop ds seg000:2992 mov cx, bx seg000:2994 pop bx seg000:2995 lodsb seg000:2996 xor ah, ah seg000:2998 cmp cx, 24h ; '$' seg000:299B jnz loc_0_299F seg000:299D mov al, 1Bh seg000:299F seg000:299F loc_0_299F: ; CODE XREF: seg000:299Bj seg000:299F cmp cx, 40h ; '@' seg000:29A2 jb loc_0_29A6 seg000:29A4 and al, 0FBh seg000:29A6 seg000:29A6 loc_0_29A6: ; CODE XREF: seg000:29A2j seg000:29A6 stosw seg000:29A7 mov ax, 7 seg000:29AA stosw seg000:29AB mov ax, 40h ; '@' seg000:29AE stosw seg000:29AF mov ax, 40h ; '@' seg000:29B2 stosw seg000:29B3 mov ax, 0A000h seg000:29B6 stosw seg000:29B7 mov ax, 0 seg000:29BA stosw seg000:29BB mov ax, 2BE1h seg000:29BE stosw seg000:29BF mov ax, cs seg000:29C1 stosw seg000:29C2 mov ax, 3 seg000:29C5 mul bl seg000:29C7 mov bx, ax seg000:29C9 mov ax, cs:[bx+276Fh] seg000:29CE stosw seg000:29CF mov dx, ax seg000:29D1 mov ax, cs:[bx+276Bh] seg000:29D6 stosw seg000:29D7 mov ax, cs:[bx+276Dh] seg000:29DC stosw seg000:29DD cmp byte ptr [si+2], 3 seg000:29E1 jnz loc_0_29F5 seg000:29E3 xor ax, ax seg000:29E5 mov es:[bp+2Ch], ax seg000:29E9 mov es:[bp+2Eh], ax seg000:29ED mov es:[bp+30h], ax seg000:29F1 mov al, 1 seg000:29F3 jmp short loc_0_2A27 seg000:29F5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:29F5 seg000:29F5 loc_0_29F5: ; CODE XREF: seg000:29E1j seg000:29F5 mul dx seg000:29F7 add ax, 3FFh seg000:29FA adc dx, 0 seg000:29FD and ax, 0FC00h seg000:2A00 mov es:[bp+2Ch], ax seg000:2A04 mov es:[bp+2Eh], dx seg000:2A08 mov bx, 400h seg000:2A0B div bx seg000:2A0D mov bx, ax seg000:2A0F call sub_0_3D6 seg000:2A12 shr ax, 2 seg000:2A15 push ax seg000:2A16 sub ax, bx seg000:2A18 mov es:[bp+30h], ax seg000:2A1C pop ax seg000:2A1D xor dx, dx seg000:2A1F div bx seg000:2A21 cmp ax, 0 seg000:2A24 jz loc_0_2A27 seg000:2A26 dec ax seg000:2A27 seg000:2A27 loc_0_2A27: ; CODE XREF: seg000:29F3j seg000:2A27 ; seg000:2A24j seg000:2A27 mov es:[bp+1Dh], al seg000:2A2B mov ah, 10h seg000:2A2D cmp cx, 2Dh ; '-' seg000:2A30 jz loc_0_2A41 seg000:2A32 cmp cx, 2Eh ; '.' seg000:2A35 jz loc_0_2A41 seg000:2A37 cmp cx, 40h ; '@' seg000:2A3A jb loc_0_2A43 seg000:2A3C cmp cx, 45h ; 'E' seg000:2A3F ja loc_0_2A43 seg000:2A41 seg000:2A41 loc_0_2A41: ; CODE XREF: seg000:2A30j seg000:2A41 ; seg000:2A35j seg000:2A41 mov ah, 8 seg000:2A43 seg000:2A43 loc_0_2A43: ; CODE XREF: seg000:2A3Aj seg000:2A43 ; seg000:2A3Fj seg000:2A43 mov al, 8 seg000:2A45 stosw seg000:2A46 movsw seg000:2A47 mov al, 1 seg000:2A49 stosb seg000:2A4A movsb seg000:2A4B mov al, 0 seg000:2A4D stosb seg000:2A4E inc di seg000:2A4F mov al, 1 seg000:2A51 stosb seg000:2A52 cmp byte ptr [si-1], 6 seg000:2A56 jz loc_0_2A5D seg000:2A58 add di, 9 seg000:2A5B jmp short loc_0_2A7A seg000:2A5D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2A5D seg000:2A5D loc_0_2A5D: ; CODE XREF: seg000:2A56j seg000:2A5D mov al, [si-2] seg000:2A60 shr al, 4 seg000:2A63 jz loc_0_2A67 seg000:2A65 adc al, 0 seg000:2A67 seg000:2A67 loc_0_2A67: ; CODE XREF: seg000:2A63j seg000:2A67 xor ah, ah seg000:2A69 mov cl, 6 seg000:2A6B mul cl seg000:2A6D mov si, ax seg000:2A6F add si, 2FBBh seg000:2A73 movsw seg000:2A74 movsw seg000:2A75 movsw seg000:2A76 xor ax, ax seg000:2A78 stosw seg000:2A79 stosb seg000:2A7A seg000:2A7A loc_0_2A7A: ; CODE XREF: seg000:2A5Bj seg000:2A7A cmp byte ptr [si-1], 3 seg000:2A7E jz loc_0_2A8C seg000:2A80 xor ax, ax seg000:2A82 stosw seg000:2A83 call do_bl_01getbase seg000:2A86 mov ax, bx seg000:2A88 shl ax, 4 seg000:2A8B stosw seg000:2A8C seg000:2A8C loc_0_2A8C: ; CODE XREF: seg000:2A7Ej seg000:2A8C pop bp seg000:2A8D jmp bl_exit seg000:2A90 seg000:2A90 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2A90 seg000:2A90 ; S u b r o u t i n e seg000:2A90 seg000:2A90 sub_0_2A90 proc near ; CODE XREF: seg000:296Bp seg000:2A90 ; seg000:2ADFp seg000:2A90 ; seg000:2B3Bp seg000:2A90 ; sub_0_2CA4+Fp seg000:2A90 push cx seg000:2A91 push di seg000:2A92 push es seg000:2A93 push cs seg000:2A94 pop es seg000:2A95 assume es:seg000 seg000:2A95 mov cx, 1Eh seg000:2A98 mov di, 272Fh seg000:2A9B repne scasw seg000:2A9D jnz loc_0_2AB3 seg000:2A9F sub di, 2 seg000:2AA2 sub di, 272Fh seg000:2AA6 mov bx, di seg000:2AA8 and ax, 7Fh seg000:2AAB add ax, 20h ; ' ' seg000:2AAE call sub_0_1BA8 seg000:2AB1 jnb loc_0_2AB4 seg000:2AB3 seg000:2AB3 loc_0_2AB3: ; CODE XREF: sub_0_2A90+Dj seg000:2AB3 stc seg000:2AB4 seg000:2AB4 loc_0_2AB4: ; CODE XREF: sub_0_2A90+21j seg000:2AB4 pop es seg000:2AB5 assume es:nothing seg000:2AB5 pop di seg000:2AB6 pop cx seg000:2AB7 retn seg000:2AB7 sub_0_2A90 endp seg000:2AB7 seg000:2AB8 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2AB8 seg000:2AB8 loc_0_2AB8: ; CODE XREF: seg000:6012u seg000:2AB8 ; DATA XREF: seg000:5FBCo seg000:2AB8 mov cx, bx seg000:2ABA and bx, 0FFFh seg000:2ABE call VGAunlock2609 seg000:2AC1 mov dx, 3CEh seg000:2AC4 mov al, 0AEh ; '' seg000:2AC6 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2AC6 ; seg000:2AC7 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2AC7 ; seg000:2AC8 and ah, 0FEh seg000:2ACB cmp bx, 1FFh seg000:2ACF jnz loc_0_2AD7 seg000:2AD1 mov bx, 101h seg000:2AD4 or ah, 1 seg000:2AD7 seg000:2AD7 loc_0_2AD7: ; CODE XREF: seg000:2ACFj seg000:2AD7 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2AD7 ; enable set/reset seg000:2AD8 mov ax, bx seg000:2ADA test ah, 1 seg000:2ADD jz loc_0_2AE6 seg000:2ADF call sub_0_2A90 seg000:2AE2 jb loc_0_6042 seg000:2AE6 seg000:2AE6 loc_0_2AE6: ; CODE XREF: seg000:2ADDj seg000:2AE6 cmp al, 22h ; '"' seg000:2AE8 jz loc_0_2AEE seg000:2AEA cmp al, 24h ; '$' seg000:2AEC jnz loc_0_2AF6 seg000:2AEE seg000:2AEE loc_0_2AEE: ; CODE XREF: seg000:2AE8j seg000:2AEE test ch, 40h seg000:2AF1 jz loc_0_2AF6 seg000:2AF3 jmp loc_0_6042 seg000:2AF6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2AF6 seg000:2AF6 loc_0_2AF6: ; CODE XREF: seg000:2AECj seg000:2AF6 ; seg000:2AF1j seg000:2AF6 and ch, 80h seg000:2AF9 xor ah, ah seg000:2AFB or al, ch seg000:2AFD pushf seg000:2AFE push cs seg000:2AFF call int_10_entry seg000:2B02 and al, 7Fh seg000:2B04 cmp al, 6Ah ; 'j' seg000:2B06 jnz loc_0_2B0A seg000:2B08 mov al, 22h ; '"' seg000:2B0A seg000:2B0A loc_0_2B0A: ; CODE XREF: seg000:2B06j seg000:2B0A call sub_0_2F1 seg000:2B0D cmp bl, al seg000:2B0F jz loc_0_2B14 seg000:2B11 jmp loc_0_6042 seg000:2B14 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2B14 seg000:2B14 loc_0_2B14: ; CODE XREF: seg000:2B0Fj seg000:2B14 jmp bl_exit seg000:2B17 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2B17 seg000:2B17 loc_0_2B17: ; CODE XREF: seg000:6012u seg000:2B17 ; DATA XREF: seg000:5FBEo seg000:2B17 mov ax, 0F00h seg000:2B1A pushf seg000:2B1B push cs seg000:2B1C call int_10_entry seg000:2B1F mov cx, ax seg000:2B21 and cx, 80h seg000:2B25 shl cx, 8 seg000:2B28 and ax, 7Fh seg000:2B2B mov bx, ax seg000:2B2D cmp al, 6Ah ; 'j' seg000:2B2F jz loc_0_2B43 seg000:2B31 test al, 60h seg000:2B33 jz loc_0_2B43 seg000:2B35 sub al, 20h ; ' ' seg000:2B37 or ax, 100h seg000:2B3A push ax seg000:2B3B call sub_0_2A90 seg000:2B3E pop ax seg000:2B3F jb loc_0_2B43 seg000:2B41 mov bx, ax seg000:2B43 seg000:2B43 loc_0_2B43: ; CODE XREF: seg000:2B2Fj seg000:2B43 ; seg000:2B33j seg000:2B43 ; seg000:2B3Fj seg000:2B43 call VGAunlock2609 seg000:2B46 mov dx, 3CEh seg000:2B49 mov al, 0AEh ; '' seg000:2B4B out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2B4B ; seg000:2B4C in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2B4C ; seg000:2B4D test ah, 1 seg000:2B50 jz loc_0_2B55 seg000:2B52 mov bx, 1FFh seg000:2B55 seg000:2B55 loc_0_2B55: ; CODE XREF: seg000:2B50j seg000:2B55 or bh, ch seg000:2B57 mov [bp+0Ah], bx seg000:2B5A jmp bl_exit seg000:2B5D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2B5D seg000:2B5D loc_0_2B5D: ; CODE XREF: seg000:6012u seg000:2B5D ; DATA XREF: seg000:5FC0o seg000:2B5D or dl, dl seg000:2B5F jnz loc_0_2B75 seg000:2B61 and cx, 0Fh seg000:2B64 mov ax, 1C00h seg000:2B67 pushf seg000:2B68 push cs seg000:2B69 call int_10_entry seg000:2B6C call VGAunlock2609 seg000:2B6F mov [bp+0Ah], bx seg000:2B72 jmp bl_exit seg000:2B75 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2B75 seg000:2B75 loc_0_2B75: ; CODE XREF: seg000:2B5Fj seg000:2B75 cmp dl, 1 seg000:2B78 jz loc_0_2B97 seg000:2B7A cmp dl, 2 seg000:2B7D jnz loc_0_6042 seg000:2B81 push dx seg000:2B82 push cx seg000:2B83 mov dx, cx seg000:2B85 mov cx, 4 seg000:2B88 mov di, bx seg000:2B8A seg000:2B8A loc_0_2B8A: ; CODE XREF: seg000:2B93j seg000:2B8A ror dl, 1 seg000:2B8C jnb loc_0_2B91 seg000:2B8E add es:[di], bx seg000:2B91 seg000:2B91 loc_0_2B91: ; CODE XREF: seg000:2B8Cj seg000:2B91 inc di seg000:2B92 inc di seg000:2B93 loop loc_0_2B8A seg000:2B95 pop cx seg000:2B96 pop dx seg000:2B97 seg000:2B97 loc_0_2B97: ; CODE XREF: seg000:2B78j seg000:2B97 and cx, 0Fh seg000:2B9A mov ah, 1Ch seg000:2B9C mov al, dl seg000:2B9E pushf seg000:2B9F push cs seg000:2BA0 call int_10_entry seg000:2BA3 call VGAunlock2609 seg000:2BA6 mov dx, cx seg000:2BA8 mov cx, 4 seg000:2BAB mov di, bx seg000:2BAD seg000:2BAD loc_0_2BAD: ; CODE XREF: seg000:2BB6j seg000:2BAD ror dl, 1 seg000:2BAF jnb loc_0_2BB4 seg000:2BB1 sub es:[di], bx seg000:2BB4 seg000:2BB4 loc_0_2BB4: ; CODE XREF: seg000:2BAFj seg000:2BB4 inc di seg000:2BB5 inc di seg000:2BB6 loop loc_0_2BAD seg000:2BB8 jmp bl_exit seg000:2BBB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2BBB seg000:2BBB loc_0_2BBB: ; CODE XREF: seg000:6012u seg000:2BBB ; DATA XREF: seg000:5FC2o seg000:2BBB mov cx, 14Fh seg000:2BBE cmp bh, 1 seg000:2BC1 jnbe loc_0_6042 seg000:2BC5 cmp bl, 0 seg000:2BC8 jnz loc_0_6042 seg000:2BCC mov cx, 4Fh ; 'O' seg000:2BCF push cs seg000:2BD0 call near ptr sub_0_2BE1 seg000:2BD3 cmp bh, 1 seg000:2BD6 jnz loc_0_2BDB seg000:2BD8 mov [bp+0Ch], dx seg000:2BDB seg000:2BDB loc_0_2BDB: ; CODE XREF: seg000:2BD6j seg000:2BDB mov [bp+10h], cx seg000:2BDE jmp bl_exit seg000:2BE1 seg000:2BE1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2BE1 seg000:2BE1 ; S u b r o u t i n e seg000:2BE1 seg000:2BE1 sub_0_2BE1 proc far ; CODE XREF: seg000:2BD0p seg000:2BE1 call VGAunlock2609 seg000:2BE4 mov al, 0Eh seg000:2BE6 call VGArGR seg000:2BE9 or ah, 10h seg000:2BEC call VGAwGR seg000:2BEF or bh, bh seg000:2BF1 jz loc_0_2C02 seg000:2BF3 mov al, 15h seg000:2BF5 mov dx, 3CEh seg000:2BF8 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2BF8 ; seg000:2BF9 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2BF9 ; seg000:2BFA mov dl, ah seg000:2BFC shr dl, 2 seg000:2BFF xor dh, dh seg000:2C01 retf seg000:2C02 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2C02 seg000:2C02 loc_0_2C02: ; CODE XREF: sub_0_2BE1+10j seg000:2C02 mov al, 15h seg000:2C04 mov ah, dl seg000:2C06 shl ah, 2 seg000:2C09 mov dx, 3CEh seg000:2C0C out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2C0C ; seg000:2C0D retf seg000:2C0D sub_0_2BE1 endp seg000:2C0D seg000:2C0E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2C0E seg000:2C0E loc_0_2C0E: ; CODE XREF: seg000:6012u seg000:2C0E ; DATA XREF: seg000:5FC4o seg000:2C0E cmp bl, 3 seg000:2C11 jnbe loc_0_6042 seg000:2C15 call VGAunlock2609 seg000:2C18 mov al, bl seg000:2C1A call sub_0_2F1 seg000:2C1D xor bh, bh seg000:2C1F mov bl, cs:[bx-5B34h] seg000:2C24 test al, 1 seg000:2C26 jz loc_0_2C52 seg000:2C28 cmp al, 1 seg000:2C2A jz loc_0_2C31 seg000:2C2C call sub_0_2CA4 seg000:2C2F jmp short loc_0_2C46 seg000:2C31 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2C31 seg000:2C31 loc_0_2C31: ; CODE XREF: seg000:2C2Aj seg000:2C31 call sub_0_2D52 seg000:2C34 shl ax, 1 seg000:2C36 cmp bl, 0Ah seg000:2C39 jb loc_0_2C3E seg000:2C3B shl ax, 2 seg000:2C3E seg000:2C3E loc_0_2C3E: ; CODE XREF: seg000:2C39j seg000:2C3E mov cx, ax seg000:2C40 call sub_0_2D21 seg000:2C43 seg000:2C43 loc_0_2C43: ; CODE XREF: seg000:2C87j seg000:2C43 call sub_0_2C89 seg000:2C46 seg000:2C46 loc_0_2C46: ; CODE XREF: seg000:2C2Fj seg000:2C46 mov [bp+0Eh], cx seg000:2C49 mov [bp+0Ah], di seg000:2C4C mov [bp+0Ch], ax seg000:2C4F jmp bl_exit seg000:2C52 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2C52 seg000:2C52 loc_0_2C52: ; CODE XREF: seg000:2C26j seg000:2C52 call sub_0_2E8E seg000:2C55 jnz loc_0_2C5A seg000:2C57 jmp loc_0_6042 seg000:2C5A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2C5A seg000:2C5A loc_0_2C5A: ; CODE XREF: seg000:2C55j seg000:2C5A or al, al seg000:2C5C jnz loc_0_2C63 seg000:2C5E call sub_0_2CFC seg000:2C61 mov cx, di seg000:2C63 seg000:2C63 loc_0_2C63: ; CODE XREF: seg000:2C5Cj seg000:2C63 add cx, 7 seg000:2C66 and cx, 0FFF8h seg000:2C69 call sub_0_2D21 seg000:2C6C push di seg000:2C6D push cx seg000:2C6E call sub_0_2CA4 seg000:2C71 pop ax seg000:2C72 cmp ax, cx seg000:2C74 pop dx seg000:2C75 jg loc_0_2C7B seg000:2C77 mov di, dx seg000:2C79 mov cx, ax seg000:2C7B seg000:2C7B loc_0_2C7B: ; CODE XREF: seg000:2C75j seg000:2C7B cmp cx, si seg000:2C7D jnb loc_0_2C84 seg000:2C7F mov cx, si seg000:2C81 call sub_0_2CFC seg000:2C84 seg000:2C84 loc_0_2C84: ; CODE XREF: seg000:2C7Dj seg000:2C84 call sub_0_2CDA seg000:2C87 jmp short loc_0_2C43 seg000:2C89 seg000:2C89 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2C89 seg000:2C89 ; S u b r o u t i n e seg000:2C89 seg000:2C89 sub_0_2C89 proc near ; CODE XREF: seg000:2C43p seg000:2C89 ; sub_0_2CA4+25p seg000:2C89 ; sub_0_2CA4+30p seg000:2C89 push dx seg000:2C8A or di, di seg000:2C8C jz loc_0_2CA2 seg000:2C8E call sub_0_3D6 seg000:2C91 cmp bl, 0Ah seg000:2C94 jnb loc_0_2C99 seg000:2C96 shr ax, 2 seg000:2C99 seg000:2C99 loc_0_2C99: ; CODE XREF: sub_0_2C89+Bj seg000:2C99 mov dl, ah seg000:2C9B xor dh, dh seg000:2C9D shl ax, 8 seg000:2CA0 div di seg000:2CA2 seg000:2CA2 loc_0_2CA2: ; CODE XREF: sub_0_2C89+3j seg000:2CA2 pop dx seg000:2CA3 retn seg000:2CA3 sub_0_2C89 endp seg000:2CA3 seg000:2CA4 seg000:2CA4 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2CA4 seg000:2CA4 ; S u b r o u t i n e seg000:2CA4 seg000:2CA4 sub_0_2CA4 proc near ; CODE XREF: seg000:2C2Cp seg000:2CA4 ; seg000:2C6Ep seg000:2CA4 push bx seg000:2CA5 push dx seg000:2CA6 mov cl, bl seg000:2CA8 push bx seg000:2CA9 call sub_0_2F1 seg000:2CAC mov al, bl seg000:2CAE pop bx seg000:2CAF sub al, 20h ; ' ' seg000:2CB1 mov ah, 1 seg000:2CB3 call sub_0_2A90 seg000:2CB6 mov ax, 3 seg000:2CB9 mul bl seg000:2CBB mov bx, ax seg000:2CBD mov si, cs:[bx+276Bh] seg000:2CC2 mov di, cs:[bx+276Dh] seg000:2CC7 mov bl, cl seg000:2CC9 call sub_0_2C89 seg000:2CCC mov cx, ax seg000:2CCE and cx, 0FFF8h seg000:2CD1 call sub_0_2D21 seg000:2CD4 call sub_0_2C89 seg000:2CD7 pop dx seg000:2CD8 pop bx seg000:2CD9 retn seg000:2CD9 sub_0_2CA4 endp seg000:2CD9 seg000:2CDA seg000:2CDA ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2CDA seg000:2CDA ; S u b r o u t i n e seg000:2CDA seg000:2CDA sub_0_2CDA proc near ; CODE XREF: seg000:2C84p seg000:2CDA push cx seg000:2CDB mov cx, di seg000:2CDD shr cx, 1 seg000:2CDF cmp bl, 0Ah seg000:2CE2 jb loc_0_2CE7 seg000:2CE4 shr cx, 2 seg000:2CE7 seg000:2CE7 loc_0_2CE7: ; CODE XREF: sub_0_2CDA+8j seg000:2CE7 mov dx, 3D4h seg000:2CEA mov al, 13h seg000:2CEC mov ah, cl seg000:2CEE out dx, ax ; Video: CRT cntrlr addr seg000:2CEE ; vertical displayed adjustment seg000:2CEF mov dx, 3CEh seg000:2CF2 mov al, 0Fh seg000:2CF4 and ch, 7 seg000:2CF7 mov ah, ch seg000:2CF9 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2CF9 ; color masking disable seg000:2CF9 ; bits 0-3 disable planes from compare logic in read mode 01 seg000:2CFA pop cx seg000:2CFB retn seg000:2CFB sub_0_2CDA endp seg000:2CFB seg000:2CFC seg000:2CFC ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2CFC seg000:2CFC ; S u b r o u t i n e seg000:2CFC seg000:2CFC sub_0_2CFC proc near ; CODE XREF: seg000:2C5Ep seg000:2CFC ; seg000:2C81p seg000:2CFC push bx seg000:2CFD cmp bl, 0Ah seg000:2D00 jnb loc_0_2D0F seg000:2D02 add cx, 7 seg000:2D05 and cx, 0FFF8h seg000:2D08 mov di, cx seg000:2D0A shr di, 3 seg000:2D0D jmp short loc_0_2D1F seg000:2D0F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2D0F seg000:2D0F loc_0_2D0F: ; CODE XREF: sub_0_2CFC+4j seg000:2D0F sub bl, 9 seg000:2D12 cmp bl, 3 seg000:2D15 jb loc_0_2D19 seg000:2D17 dec bl seg000:2D19 seg000:2D19 loc_0_2D19: ; CODE XREF: sub_0_2CFC+19j seg000:2D19 mov ax, cx seg000:2D1B mul bx seg000:2D1D mov di, ax seg000:2D1F seg000:2D1F loc_0_2D1F: ; CODE XREF: sub_0_2CFC+11j seg000:2D1F pop bx seg000:2D20 retn seg000:2D20 sub_0_2CFC endp seg000:2D20 seg000:2D21 seg000:2D21 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2D21 seg000:2D21 ; S u b r o u t i n e seg000:2D21 seg000:2D21 sub_0_2D21 proc near ; CODE XREF: seg000:2C40p seg000:2D21 ; seg000:2C69p seg000:2D21 ; sub_0_2CA4+2Dp seg000:2D21 push bx seg000:2D22 mov di, cx seg000:2D24 cmp bl, 0Ah seg000:2D27 jnb loc_0_2D2E seg000:2D29 shl cx, 3 seg000:2D2C jmp short loc_0_2D50 seg000:2D2E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2D2E seg000:2D2E loc_0_2D2E: ; CODE XREF: sub_0_2D21+6j seg000:2D2E cmp bl, 0Ah seg000:2D31 jz loc_0_2D50 seg000:2D33 sub bl, 9 seg000:2D36 cmp bl, 3 seg000:2D39 jb loc_0_2D3D seg000:2D3B dec bl seg000:2D3D seg000:2D3D loc_0_2D3D: ; CODE XREF: sub_0_2D21+18j seg000:2D3D ; sub_0_2D21+2Dj seg000:2D3D mov ax, di seg000:2D3F xor dx, dx seg000:2D41 div bx seg000:2D43 mov cx, ax seg000:2D45 sub di, dx seg000:2D47 test di, 7 seg000:2D4B jz loc_0_2D50 seg000:2D4D dec di seg000:2D4E jmp short loc_0_2D3D seg000:2D50 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2D50 seg000:2D50 loc_0_2D50: ; CODE XREF: sub_0_2D21+Bj seg000:2D50 ; sub_0_2D21+10j seg000:2D50 ; sub_0_2D21+2Aj seg000:2D50 pop bx seg000:2D51 retn seg000:2D51 sub_0_2D21 endp seg000:2D51 seg000:2D52 seg000:2D52 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2D52 seg000:2D52 ; S u b r o u t i n e seg000:2D52 seg000:2D52 sub_0_2D52 proc near ; CODE XREF: seg000:1326p seg000:2D52 ; seg000:2C31p seg000:2D52 ; seg000:2DA5p seg000:2D52 ; seg000:2E00p seg000:2D52 push bx seg000:2D53 mov dx, 3D4h seg000:2D56 mov al, 13h seg000:2D58 out dx, al ; Video: CRT cntrlr addr seg000:2D58 ; vertical displayed adjustment seg000:2D59 in ax, dx ; Video: CRT cntrlr addr seg000:2D59 ; seg000:2D5A mov bl, ah seg000:2D5C mov al, 0Fh seg000:2D5E mov dx, 3CEh seg000:2D61 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2D61 ; seg000:2D62 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2D62 ; seg000:2D63 and ah, 3 seg000:2D66 mov al, bl seg000:2D68 pop bx seg000:2D69 retn seg000:2D69 sub_0_2D52 endp seg000:2D69 seg000:2D6A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2D6A seg000:2D6A loc_0_2D6A: ; CODE XREF: seg000:6012u seg000:2D6A ; DATA XREF: seg000:5FC6o seg000:2D6A call VGAunlock2609 seg000:2D6D cmp bl, 1 seg000:2D70 jz loc_0_2D7A seg000:2D72 test bl, 7Fh seg000:2D75 jz loc_0_2DF4 seg000:2D77 jmp loc_0_6042 seg000:2D7A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2D7A seg000:2D7A loc_0_2D7A: ; CODE XREF: seg000:2D70j seg000:2D7A mov dx, 3D4h seg000:2D7D mov al, 0Ch seg000:2D7F out dx, al ; Video: CRT cntrlr addr seg000:2D7F ; regen start address (high) seg000:2D80 in ax, dx ; Video: CRT cntrlr addr seg000:2D80 ; seg000:2D81 mov bh, ah seg000:2D83 inc al seg000:2D85 out dx, al ; Video: CRT cntrlr addr seg000:2D85 ; seg000:2D86 in ax, dx ; Video: CRT cntrlr addr seg000:2D86 ; seg000:2D87 mov bl, ah seg000:2D89 push bx seg000:2D8A mov dx, 3CEh seg000:2D8D mov al, 0Eh seg000:2D8F out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2D8F ; seg000:2D90 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2D90 ; seg000:2D91 and ah, 0Fh seg000:2D94 mov dl, ah seg000:2D96 xor dh, dh seg000:2D98 push dx seg000:2D99 mov dx, 3CEh seg000:2D9C mov al, 90h ; '' seg000:2D9E out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2D9E ; seg000:2D9F in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2D9F ; seg000:2DA0 and ah, 7 seg000:2DA3 mov cl, ah seg000:2DA5 call sub_0_2D52 seg000:2DA8 shl ax, 1 seg000:2DAA mov bx, ax seg000:2DAC pop dx seg000:2DAD pop ax seg000:2DAE div bx seg000:2DB0 mov [bp+0Ch], ax seg000:2DB3 mov bx, dx seg000:2DB5 mov dx, 3DAh seg000:2DB8 in al, dx ; Video status bits: seg000:2DB8 ; 0: retrace. 1=display is in vert or horiz retrace. seg000:2DB8 ; 1: 1=light pen is triggered; 0=armed seg000:2DB8 ; 2: 1=light pen switch is open; 0=closed seg000:2DB8 ; 3: 1=vertical sync pulse is occurring. seg000:2DB9 mov dx, 3C0h seg000:2DBC mov al, 33h ; '3' seg000:2DBE out dx, al ; EGA: horizontal pixel panning: seg000:2DBE ; Number of dots to shift data left. seg000:2DBE ; Bits 0-3 valid (0-0fH) seg000:2DBF inc dx seg000:2DC0 in al, dx seg000:2DC1 mov ah, al seg000:2DC3 and ah, 7 seg000:2DC6 cmp cl, 0 seg000:2DC9 jnz loc_0_2DD6 seg000:2DCB shl bx, 3 seg000:2DCE add bl, ah seg000:2DD0 mov [bp+0Eh], bx seg000:2DD3 jmp bl_exit seg000:2DD6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2DD6 seg000:2DD6 loc_0_2DD6: ; CODE XREF: seg000:2DC9j seg000:2DD6 push ax seg000:2DD7 mov ax, bx seg000:2DD9 shl ax, 2 seg000:2DDC cmp cl, 2 seg000:2DDF jbe loc_0_2DE3 seg000:2DE1 dec cl seg000:2DE3 seg000:2DE3 loc_0_2DE3: ; CODE XREF: seg000:2DDFj seg000:2DE3 xor dx, dx seg000:2DE5 xor ch, ch seg000:2DE7 div cx seg000:2DE9 pop bx seg000:2DEA shr bh, 1 seg000:2DEC add al, bh seg000:2DEE mov [bp+0Eh], ax seg000:2DF1 jmp bl_exit seg000:2DF4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2DF4 seg000:2DF4 loc_0_2DF4: ; CODE XREF: seg000:2D75j seg000:2DF4 mov si, bx seg000:2DF6 call sub_0_2E8E seg000:2DF9 jnz loc_0_2DFE seg000:2DFB jmp loc_0_6042 seg000:2DFE ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2DFE seg000:2DFE loc_0_2DFE: ; CODE XREF: seg000:2DF9j seg000:2DFE push dx seg000:2DFF push cx seg000:2E00 call sub_0_2D52 seg000:2E03 mov bx, ax seg000:2E05 shl bx, 1 seg000:2E07 mov al, 90h ; '' seg000:2E09 out dx, al seg000:2E0A in ax, dx seg000:2E0B and ah, 7 seg000:2E0E mov ch, ah seg000:2E10 cmp ch, 0 seg000:2E13 jnz loc_0_2E1E seg000:2E15 pop ax seg000:2E16 mov cx, ax seg000:2E18 push ax seg000:2E19 shr cx, 3 seg000:2E1C jmp short loc_0_2E46 seg000:2E1E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2E1E seg000:2E1E loc_0_2E1E: ; CODE XREF: seg000:2E13j seg000:2E1E cmp ch, 2 seg000:2E21 jbe loc_0_2E25 seg000:2E23 dec ch seg000:2E25 seg000:2E25 loc_0_2E25: ; CODE XREF: seg000:2E21j seg000:2E25 pop ax seg000:2E26 mov dx, ax seg000:2E28 shl dl, 1 seg000:2E2A push dx seg000:2E2B and ax, 0FFFCh seg000:2E2E shr cx, 8 seg000:2E31 mul cx seg000:2E33 shr ax, 2 seg000:2E36 cmp cl, 3 seg000:2E39 jnz loc_0_2E44 seg000:2E3B xor dx, dx seg000:2E3D mov cx, 6 seg000:2E40 div cx seg000:2E42 mul cx seg000:2E44 seg000:2E44 loc_0_2E44: ; CODE XREF: seg000:2E39j seg000:2E44 mov cx, ax seg000:2E46 seg000:2E46 loc_0_2E46: ; CODE XREF: seg000:2E1Cj seg000:2E46 mov dx, 3DAh seg000:2E49 in al, dx ; Video status bits: seg000:2E49 ; 0: retrace. 1=display is in vert or horiz retrace. seg000:2E49 ; 1: 1=light pen is triggered; 0=armed seg000:2E49 ; 2: 1=light pen switch is open; 0=closed seg000:2E49 ; 3: 1=vertical sync pulse is occurring. seg000:2E4A mov dx, 3C0h seg000:2E4D mov al, 33h ; '3' seg000:2E4F out dx, al ; EGA: horizontal pixel panning: seg000:2E4F ; Number of dots to shift data left. seg000:2E4F ; Bits 0-3 valid (0-0fH) seg000:2E50 pop ax seg000:2E51 and al, 7 seg000:2E53 pop ax seg000:2E54 mul bx seg000:2E56 add ax, cx seg000:2E58 adc dl, 0 seg000:2E5B test dl, 0F8h seg000:2E5E jz loc_0_2E63 seg000:2E60 jmp loc_0_6042 seg000:2E63 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2E63 seg000:2E63 loc_0_2E63: ; CODE XREF: seg000:2E5Ej seg000:2E63 mov bx, ax seg000:2E65 mov cx, dx seg000:2E67 mov dx, 3CEh seg000:2E6A mov al, 0Eh seg000:2E6C out dx, al ; EGA: graph 1 and 2 addr reg: seg000:2E6C ; seg000:2E6D in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:2E6D ; seg000:2E6E and ah, 0F8h seg000:2E71 or ah, cl seg000:2E73 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:2E73 ; seg000:2E74 mov dx, 3D4h seg000:2E77 mov al, 0Dh seg000:2E79 mov ah, bl seg000:2E7B out dx, ax ; Video: CRT cntrlr addr seg000:2E7B ; regen start address (low) seg000:2E7C mov al, 0Ch seg000:2E7E mov ah, bh seg000:2E80 out dx, ax ; Video: CRT cntrlr addr seg000:2E80 ; regen start address (high) seg000:2E81 mov bx, si seg000:2E83 test bl, 80h seg000:2E86 jz loc_0_2E8B seg000:2E88 call sub_0_225A seg000:2E8B seg000:2E8B loc_0_2E8B: ; CODE XREF: seg000:2E86j seg000:2E8B jmp bl_exit seg000:2E8E seg000:2E8E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2E8E seg000:2E8E ; S u b r o u t i n e seg000:2E8E seg000:2E8E sub_0_2E8E proc near ; CODE XREF: seg000:2C52p seg000:2E8E ; seg000:2DF6p seg000:2E8E push bx seg000:2E8F call sub_0_2F1 seg000:2E92 cmp bl, 13h seg000:2E95 pop bx seg000:2E96 retn seg000:2E96 sub_0_2E8E endp seg000:2E96 seg000:2E97 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2E97 seg000:2E97 loc_0_2E97: ; CODE XREF: seg000:6012u seg000:2E97 ; DATA XREF: seg000:5FC8o seg000:2E97 cmp bl, 1 seg000:2E9A jnbe loc_0_6042 seg000:2E9E or bl, bl seg000:2EA0 jz loc_0_2EA6 seg000:2EA2 mov bh, 6 seg000:2EA4 jmp short loc_0_2EA8 seg000:2EA6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2EA6 seg000:2EA6 loc_0_2EA6: ; CODE XREF: seg000:2EA0j seg000:2EA6 mov bh, 6 seg000:2EA8 seg000:2EA8 loc_0_2EA8: ; CODE XREF: seg000:2EA4j seg000:2EA8 mov [bp+0Bh], bh seg000:2EAB jmp bl_exit seg000:2EAE ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2EAE seg000:2EAE loc_0_2EAE: ; CODE XREF: seg000:6012u seg000:2EAE ; DATA XREF: seg000:5FCAo seg000:2EAE and bl, 7Fh seg000:2EB1 cmp bl, 1 seg000:2EB4 jnbe loc_0_602F seg000:2EB8 push ds seg000:2EB9 push si seg000:2EBA push di seg000:2EBB mov bx, dx seg000:2EBD jz loc_0_2EED seg000:2EBF seg000:2EBF loc_0_2EBF: ; CODE XREF: seg000:2EE9j seg000:2EBF mov dx, 3C8h seg000:2EC2 mov al, bl seg000:2EC4 pushf seg000:2EC5 cli seg000:2EC6 out dx, al seg000:2EC7 mov eax, es:[di] seg000:2ECB add di, 4 seg000:2ECE inc dx seg000:2ECF rol eax, 8 seg000:2ED3 rol eax, 8 seg000:2ED7 out dx, al seg000:2ED8 jcxz loc_0_2EDA seg000:2EDA seg000:2EDA loc_0_2EDA: seg000:2EDA rol eax, 8 seg000:2EDE out dx, al seg000:2EDF jcxz loc_0_2EE1 seg000:2EE1 seg000:2EE1 loc_0_2EE1: seg000:2EE1 rol eax, 8 seg000:2EE5 out dx, al seg000:2EE6 popf seg000:2EE7 inc bl seg000:2EE9 loop loc_0_2EBF seg000:2EEB jmp short loc_0_2F16 seg000:2EED ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2EED seg000:2EED loc_0_2EED: ; CODE XREF: seg000:2EBDj seg000:2EED ; seg000:2F14j seg000:2EED mov dx, 3C7h seg000:2EF0 mov al, bl seg000:2EF2 pushf seg000:2EF3 cli seg000:2EF4 out dx, al seg000:2EF5 add dx, 2 seg000:2EF8 xor eax, eax seg000:2EFB in al, dx seg000:2EFC jcxz loc_0_2EFE seg000:2EFE seg000:2EFE loc_0_2EFE: seg000:2EFE shl eax, 8 seg000:2F02 in al, dx seg000:2F03 jcxz loc_0_2F05 seg000:2F05 seg000:2F05 loc_0_2F05: seg000:2F05 shl eax, 8 seg000:2F09 in al, dx seg000:2F0A popf seg000:2F0B mov es:[di], eax seg000:2F0F add di, 4 seg000:2F12 inc bl seg000:2F14 loop loc_0_2EED seg000:2F16 seg000:2F16 loc_0_2F16: ; CODE XREF: seg000:2EEBj seg000:2F16 pop di seg000:2F17 pop si seg000:2F18 pop ds seg000:2F19 assume ds:nothing seg000:2F19 jmp bl_exit seg000:2F1C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2F1C seg000:2F1C loc_0_2F1C: ; CODE XREF: seg000:6012u seg000:2F1C ; DATA XREF: seg000:5FCCo seg000:2F1C cmp bl, 0 seg000:2F1F jz loc_0_2F24 seg000:2F21 jmp loc_0_6042 seg000:2F24 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2F24 seg000:2F24 loc_0_2F24: ; CODE XREF: seg000:2F1Fj seg000:2F24 mov ax, cs:word_0_2727 seg000:2F28 mov bx, cs seg000:2F2A sub ax, bx seg000:2F2C shl ax, 4 seg000:2F2F mov [bp+2], ax seg000:2F32 mov [bp+0], bx seg000:2F35 mov ax, cs:word_0_A764 seg000:2F39 mov [bp+0Eh], ax seg000:2F3C jmp bl_exit seg000:2F3F seg000:2F3F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2F3F seg000:2F3F ; S u b r o u t i n e seg000:2F3F seg000:2F3F do_bl_01getbase proc near ; CODE XREF: seg000:2A83p seg000:2F3F ; bl01+2p seg000:2F3F push si seg000:2F40 push di seg000:2F41 push ax seg000:2F42 xor si, si seg000:2F44 mov dx, 10C8h seg000:2F47 mov cx, 2 seg000:2F4A seg000:2F4A loc_0_2F4A: ; CODE XREF: do_bl_01getbase+1Dj seg000:2F4A ; do_bl_01getbase+22j seg000:2F4A push cx seg000:2F4B mov ax, 0B102h seg000:2F4E int 1Ah ; PCI BIOS FIND PCI DEVICE seg000:2F50 pop cx seg000:2F51 jnb loc_0_2F63 seg000:2F53 inc cx seg000:2F54 cmp cx, 43h ; 'C' seg000:2F57 ja loc_0_2F87 seg000:2F59 cmp cx, 5 seg000:2F5C jbe loc_0_2F4A seg000:2F5E mov cx, 42h ; 'B' seg000:2F61 jmp short loc_0_2F4A seg000:2F63 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2F63 seg000:2F63 loc_0_2F63: ; CODE XREF: do_bl_01getbase+12j seg000:2F63 xor cx, cx seg000:2F65 xor dx, dx seg000:2F67 test ah, ah seg000:2F69 jnz loc_0_2F87 seg000:2F6B mov di, 12h seg000:2F6E mov ah, 0B1h ; '' seg000:2F70 mov al, 9 seg000:2F72 int 1Ah seg000:2F74 shr cx, 4 seg000:2F77 push cx seg000:2F78 mov di, 16h seg000:2F7B mov ah, 0B1h ; '' seg000:2F7D mov al, 9 seg000:2F7F int 1Ah seg000:2F81 shr cx, 4 seg000:2F84 mov dx, cx seg000:2F86 pop bx seg000:2F87 seg000:2F87 loc_0_2F87: ; CODE XREF: do_bl_01getbase+18j seg000:2F87 ; do_bl_01getbase+2Aj seg000:2F87 call sub_0_3B9 seg000:2F8A mov cx, ax seg000:2F8C shr cx, 2 seg000:2F8F pop ax seg000:2F90 pop di seg000:2F91 pop si seg000:2F92 retn seg000:2F92 do_bl_01getbase endp seg000:2F92 seg000:2F93 seg000:2F93 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:2F93 seg000:2F93 ; S u b r o u t i n e seg000:2F93 seg000:2F93 sub_0_2F93 proc near ; CODE XREF: bl08p seg000:2F93 xor si, si seg000:2F95 mov dx, 10C8h seg000:2F98 mov cx, 2 seg000:2F9B seg000:2F9B loc_0_2F9B: ; CODE XREF: sub_0_2F93+1Aj seg000:2F9B ; sub_0_2F93+1Fj seg000:2F9B push cx seg000:2F9C mov ax, 0B102h seg000:2F9F int 1Ah seg000:2FA1 pop cx seg000:2FA2 jnb loc_0_2FB4 seg000:2FA4 inc cx seg000:2FA5 cmp cx, 43h ; 'C' seg000:2FA8 ja loc_0_2FB8 seg000:2FAA cmp cx, 6 seg000:2FAD jbe loc_0_2F9B seg000:2FAF mov cx, 42h ; 'B' seg000:2FB2 jmp short loc_0_2F9B seg000:2FB4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FB4 seg000:2FB4 loc_0_2FB4: ; CODE XREF: sub_0_2F93+Fj seg000:2FB4 xor cx, cx seg000:2FB6 xor dx, dx seg000:2FB8 seg000:2FB8 loc_0_2FB8: ; CODE XREF: sub_0_2F93+15j seg000:2FB8 test ah, ah seg000:2FBA retn seg000:2FBA sub_0_2F93 endp seg000:2FBA seg000:2FBA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FBB db 5 ; seg000:2FBC db 0Ah ; seg000:2FBD db 5 ; seg000:2FBE db 5 ; seg000:2FBF db 5 ; seg000:2FC0 db 0 ; seg000:2FC1 db 5 ; seg000:2FC2 db 0Bh ; seg000:2FC3 db 6 ; seg000:2FC4 db 5 ; seg000:2FC5 db 5 ; seg000:2FC6 db 0 ; seg000:2FC7 db 8 ; seg000:2FC8 db 10h ; seg000:2FC9 db 8 ; seg000:2FCA db 8 ; seg000:2FCB db 8 ; seg000:2FCC db 0 ; seg000:2FCD word_0_2FCD dw 0B70Fh ; DATA XREF: seg000:307Er seg000:2FCF db 0 ; seg000:2FD0 db 0 ; seg000:2FD1 db 90h ; seg000:2FD2 db 8 ; seg000:2FD3 db 0A0h ; seg000:2FD4 db 8 ; seg000:2FD5 db 0B0h ; seg000:2FD6 db 8 ; seg000:2FD7 db 90h ; seg000:2FD8 db 8 ; seg000:2FD9 db 0A0h ; seg000:2FDA db 6Ch ; l seg000:2FDB off_0_2FDB dw offset loc_0_2FF6 ; DATA XREF: seg000:2FEFo seg000:2FDD dw offset loc_0_300F seg000:2FDF dw offset loc_0_3110 seg000:2FE1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FE1 seg000:2FE1 loc_0_2FE1: ; CODE XREF: seg000:6012u seg000:2FE1 ; DATA XREF: seg000:5FD8o seg000:2FE1 cmp bl, 2 seg000:2FE4 jbe loc_0_2FE9 seg000:2FE6 jmp loc_0_6042 seg000:2FE9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FE9 seg000:2FE9 loc_0_2FE9: ; CODE XREF: seg000:2FE4j seg000:2FE9 mov ax, bx seg000:2FEB xor bh, bh seg000:2FED shl bx, 1 seg000:2FEF jmp cs:off_0_2FDB[bx] seg000:2FEF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FF4 byte_0_2FF4 db 7 ; DATA XREF: seg000:2FF6r seg000:2FF5 byte_0_2FF5 db 0Fh ; DATA XREF: seg000:3000r seg000:2FF6 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:2FF6 seg000:2FF6 loc_0_2FF6: ; CODE XREF: seg000:2FEFu seg000:2FF6 ; DATA XREF: seg000:2FDBo seg000:2FF6 mov bl, cs:byte_0_2FF4 seg000:2FFB call sub_0_A43 seg000:2FFE jz loc_0_3005 seg000:3000 mov bl, cs:byte_0_2FF5 seg000:3005 seg000:3005 loc_0_3005: ; CODE XREF: seg000:2FFEj seg000:3005 mov [bp+0Bh], bl seg000:3008 mov byte ptr [bp+0Ah], 10h seg000:300C jmp bl_exit seg000:300F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:300F seg000:300F loc_0_300F: ; CODE XREF: seg000:2FEFu seg000:300F ; DATA XREF: seg000:2FDDo seg000:300F mov si, 0 seg000:3012 cmp ah, 8 seg000:3015 jle loc_0_301D seg000:3017 jmp loc_0_6042 seg000:301A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:301A seg000:301A loc_0_301A: ; CODE XREF: seg000:385Aj seg000:301A mov si, 6 seg000:301D seg000:301D loc_0_301D: ; CODE XREF: seg000:3015j seg000:301D test cs:word_0_B3, 100h seg000:3024 jz loc_0_3035 seg000:3026 push ax seg000:3027 mov al, 0AFh ; '' seg000:3029 call VGArGR seg000:302C test ah, 10h seg000:302F pop ax seg000:3030 jz loc_0_3035 seg000:3032 jmp bl_exit seg000:3035 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3035 seg000:3035 loc_0_3035: ; CODE XREF: seg000:3024j seg000:3035 ; seg000:3030j seg000:3035 test cs:word_0_B1, 10h seg000:303C jnz loc_0_3053 seg000:303E push ax seg000:303F mov bl, ah seg000:3041 mov ax, 5F44h seg000:3044 xor bh, bh seg000:3046 push si seg000:3047 int 15h seg000:3049 pop si seg000:304A cmp ah, 1 seg000:304D pop ax seg000:304E jnz loc_0_3053 seg000:3050 jmp bl_exit seg000:3053 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3053 seg000:3053 loc_0_3053: ; CODE XREF: seg000:303Cj seg000:3053 ; seg000:304Ej seg000:3053 mov bl, ah seg000:3055 mov dx, 3CEh seg000:3058 cmp bl, 4 seg000:305B jnz loc_0_305F seg000:305D mov bl, 3 seg000:305F seg000:305F loc_0_305F: ; CODE XREF: seg000:305Bj seg000:305F cmp bl, 8 seg000:3062 jnz loc_0_3066 seg000:3064 mov bl, 4 seg000:3066 seg000:3066 loc_0_3066: ; CODE XREF: seg000:3062j seg000:3066 xor bh, bh seg000:3068 mov al, 21h ; '!' seg000:306A call VGArCRunlock seg000:306D and ah, 0F8h seg000:3070 or ah, bl seg000:3072 out dx, ax seg000:3073 mov dx, 3CEh seg000:3076 push bx seg000:3077 shl bx, 1 seg000:3079 mov cx, cs:[bx+si+2FCFh] seg000:307E mov bx, cs:word_0_2FCD seg000:3083 mov al, 1Ah seg000:3085 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3085 ; seg000:3086 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:3086 ; seg000:3087 and ah, bl seg000:3089 or ah, cl seg000:308B out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:308B ; seg000:308C pop ax seg000:308D cmp al, 0 seg000:308F jnz loc_0_3096 seg000:3091 call loc_0_4827 seg000:3094 jmp short loc_0_3099 seg000:3096 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3096 seg000:3096 loc_0_3096: ; CODE XREF: seg000:308Fj seg000:3096 call chronpowerdown seg000:3099 seg000:3099 loc_0_3099: ; CODE XREF: seg000:3094j seg000:3099 test cs:word_0_B1, 8000h seg000:30A0 jnz loc_0_30C7 seg000:30A2 cmp al, 0 seg000:30A4 jnz loc_0_30BA seg000:30A6 call sub_0_A43 seg000:30A9 test al, 2 seg000:30AB jz loc_0_310D seg000:30AD mov al, 20h ; ' ' seg000:30AF call VGArGR seg000:30B2 or ah, 2 seg000:30B5 call VGAwGR seg000:30B8 jmp short loc_0_310D seg000:30BA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:30BA seg000:30BA loc_0_30BA: ; CODE XREF: seg000:30A4j seg000:30BA mov al, 20h ; ' ' seg000:30BC call VGArGR seg000:30BF and ah, 0FDh seg000:30C2 call VGAwGR seg000:30C5 jmp short loc_0_310D seg000:30C7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:30C7 seg000:30C7 loc_0_30C7: ; CODE XREF: seg000:30A0j seg000:30C7 mov dx, 3CEh seg000:30CA mov al, 1Ch seg000:30CC out dx, al ; EGA: graph 1 and 2 addr reg: seg000:30CC ; seg000:30CD in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:30CD ; seg000:30CE and ah, bh seg000:30D0 or ah, ch seg000:30D2 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:30D2 ; seg000:30D3 cmp cs:word_0_3A40, 400h seg000:30DA jnz loc_0_310D seg000:30DC test ah, 48h seg000:30DF jnz loc_0_310D seg000:30E1 mov al, 11h seg000:30E3 call VGArCR seg000:30E6 push ax seg000:30E7 and ah, 7Fh seg000:30EA call VGAwCR seg000:30ED mov al, 1 seg000:30EF call VGArCR seg000:30F2 push ax seg000:30F3 mov ah, 27h ; ''' seg000:30F5 call VGAwCR seg000:30F8 mov al, 25h ; '%' seg000:30FA seg000:30FA loc_0_30FA: ; CODE XREF: seg000:3100j seg000:30FA call VGArCR seg000:30FD test ah, 3 seg000:3100 jnz loc_0_30FA seg000:3102 call sub_0_225A seg000:3105 pop ax seg000:3106 call VGAwCR seg000:3109 pop ax seg000:310A call VGAwCR seg000:310D seg000:310D loc_0_310D: ; CODE XREF: seg000:30ABj seg000:310D ; seg000:30B8j seg000:310D ; seg000:30C5j seg000:310D ; seg000:30DAj seg000:310D ; seg000:30DFj seg000:310D jmp bl_exit seg000:3110 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3110 seg000:3110 loc_0_3110: ; CODE XREF: seg000:2FEFu seg000:3110 ; DATA XREF: seg000:2FDFo seg000:3110 mov al, 21h ; '!' seg000:3112 call VGArCRunlock seg000:3115 and ah, 7 seg000:3118 mov bh, ah seg000:311A cmp bh, 4 seg000:311D jnz loc_0_3121 seg000:311F mov bh, 8 seg000:3121 seg000:3121 loc_0_3121: ; CODE XREF: seg000:311Dj seg000:3121 cmp bh, 3 seg000:3124 jnz loc_0_3128 seg000:3126 mov bh, 4 seg000:3128 seg000:3128 loc_0_3128: ; CODE XREF: seg000:3124j seg000:3128 mov al, 25h ; '%' seg000:312A call VGArCRunlock seg000:312D test ah, 1 seg000:3130 jz loc_0_3139 seg000:3132 cmp bh, 4 seg000:3135 jz loc_0_3139 seg000:3137 mov bh, 2 seg000:3139 seg000:3139 loc_0_3139: ; CODE XREF: seg000:3130j seg000:3139 ; seg000:3135j seg000:3139 mov [bp+0Bh], bh seg000:313C jmp bl_exit seg000:313C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:313F byte_0_313F db 9 ; DATA XREF: seg000:31C9r seg000:3140 off_0_3140 dw offset loc_0_316E ; DATA XREF: seg000:315Eo seg000:3142 dw offset loc_0_31BB seg000:3144 dw offset loc_0_31FA seg000:3146 dw offset loc_0_6042 seg000:3148 dw offset loc_0_6042 seg000:314A dw offset loc_0_6042 seg000:314C dw offset loc_0_3235 seg000:314E dw offset loc_0_3290 seg000:3150 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3150 seg000:3150 loc_0_3150: ; CODE XREF: seg000:6012u seg000:3150 ; DATA XREF: seg000:5FDAo seg000:3150 cmp bl, 7 seg000:3153 jbe loc_0_3158 seg000:3155 jmp loc_0_6042 seg000:3158 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3158 seg000:3158 loc_0_3158: ; CODE XREF: seg000:3153j seg000:3158 mov ax, bx seg000:315A xor bh, bh seg000:315C shl bx, 1 seg000:315E jmp cs:off_0_3140[bx] seg000:315E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3163 aVbeFp db 'VBE/FP' seg000:3169 db 0FFh ; seg000:316A db 0 ; seg000:316B db 1 ; seg000:316C db 0C7h ; seg000:316D db 0 ; seg000:316E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:316E seg000:316E loc_0_316E: ; CODE XREF: seg000:315Eu seg000:316E ; DATA XREF: seg000:3140o seg000:316E push di seg000:316F mov cx, 80h ; '' seg000:3172 xor ax, ax seg000:3174 rep stosw seg000:3176 sub di, 100h seg000:317A mov si, 3163h seg000:317D mov cx, 0Bh seg000:3180 rep movs byte ptr es:[di], byte ptr cs:[si] seg000:3183 pop di seg000:3184 mov word ptr es:[di+11h], 100h seg000:318A mov ax, 283Eh seg000:318D mov es:[di+13h], ax seg000:3191 mov ax, 2847h seg000:3194 mov es:[di+17h], ax seg000:3198 mov ax, 2859h seg000:319B mov es:[di+1Bh], ax seg000:319F mov ax, 48h ; 'H' seg000:31A2 mov es:[di+1Fh], ax seg000:31A6 mov ax, cs seg000:31A8 mov es:[di+15h], ax seg000:31AC mov es:[di+19h], ax seg000:31B0 mov es:[di+1Dh], ax seg000:31B4 mov es:[di+21h], ax seg000:31B8 jmp bl_exit seg000:31BB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:31BB seg000:31BB loc_0_31BB: ; CODE XREF: seg000:315Eu seg000:31BB ; DATA XREF: seg000:3142o seg000:31BB push di seg000:31BC mov cx, 10h seg000:31BF xor ax, ax seg000:31C1 rep stosw seg000:31C3 sub di, 20h ; ' ' seg000:31C6 mov si, 3A40h seg000:31C9 mov cl, cs:byte_0_313F seg000:31CE xor ch, ch seg000:31D0 rep movs byte ptr es:[di], byte ptr cs:[si] seg000:31D3 pop di seg000:31D4 mov ax, 7FCh seg000:31D7 mov bx, 400h seg000:31DA mul bx seg000:31DC mov es:[di+0Eh], ax seg000:31E0 mov es:[di+10h], dx seg000:31E4 mov bx, ax seg000:31E6 call sub_0_3E9 seg000:31E9 xor cx, cx seg000:31EB sub cx, bx seg000:31ED sbb ax, dx seg000:31EF mov es:[di+0Ah], cx seg000:31F3 mov es:[di+0Ch], ax seg000:31F7 jmp bl_exit seg000:31FA ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:31FA seg000:31FA loc_0_31FA: ; CODE XREF: seg000:315Eu seg000:31FA ; DATA XREF: seg000:3144o seg000:31FA mov bx, ax seg000:31FC mov dx, 3CEh seg000:31FF mov al, 23h ; '#' seg000:3201 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3201 ; seg000:3202 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:3202 ; seg000:3203 or bh, bh seg000:3205 jz loc_0_3220 seg000:3207 cmp bh, 1 seg000:320A jle loc_0_320F seg000:320C jmp loc_0_6042 seg000:320F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:320F seg000:320F loc_0_320F: ; CODE XREF: seg000:320Aj seg000:320F and ah, 3Fh seg000:3212 shl cl, 7 seg000:3215 jnb loc_0_321A seg000:3217 or cl, 40h seg000:321A seg000:321A loc_0_321A: ; CODE XREF: seg000:3215j seg000:321A or ah, cl seg000:321C out dx, ax seg000:321D jmp bl_exit seg000:3220 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3220 seg000:3220 loc_0_3220: ; CODE XREF: seg000:3205j seg000:3220 and ah, 0C0h seg000:3223 shr ah, 7 seg000:3226 jnb loc_0_322B seg000:3228 or ah, 2 seg000:322B seg000:322B loc_0_322B: ; CODE XREF: seg000:3226j seg000:322B mov [bp+0Ah], ah seg000:322E mov byte ptr [bp+0Bh], 3 seg000:3232 jmp bl_exit seg000:3235 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3235 seg000:3235 loc_0_3235: ; CODE XREF: seg000:315Eu seg000:3235 ; DATA XREF: seg000:314Co seg000:3235 mov bx, ax seg000:3237 mov dx, 3CEh seg000:323A mov al, 25h ; '%' seg000:323C out dx, al ; EGA: graph 1 and 2 addr reg: seg000:323C ; seg000:323D in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:323D ; seg000:323E or bh, bh seg000:3240 jz loc_0_3272 seg000:3242 cmp bh, 1 seg000:3245 jle loc_0_324A seg000:3247 jmp loc_0_6042 seg000:324A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:324A seg000:324A loc_0_324A: ; CODE XREF: seg000:3245j seg000:324A mov al, 0AFh ; '' seg000:324C out dx, al seg000:324D in ax, dx seg000:324E or ah, 80h seg000:3251 and ah, 9Fh seg000:3254 cmp ch, 1 seg000:3257 jnz loc_0_325C seg000:3259 or ah, 40h seg000:325C seg000:325C loc_0_325C: ; CODE XREF: seg000:3257j seg000:325C cmp cl, 1 seg000:325F jnz loc_0_3264 seg000:3261 or ah, 20h seg000:3264 seg000:3264 loc_0_3264: ; CODE XREF: seg000:325Fj seg000:3264 out dx, ax seg000:3265 call getCR23BiosM seg000:3268 mov al, bl seg000:326A xor ah, ah seg000:326C call sub_0_2151 seg000:326F jmp bl_exit seg000:3272 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3272 seg000:3272 loc_0_3272: ; CODE XREF: seg000:3240j seg000:3272 and ah, 1 seg000:3275 mov [bp+0Fh], ah seg000:3278 mov al, 30h ; '0' seg000:327A out dx, al seg000:327B in ax, dx seg000:327C and ah, 10h seg000:327F shr ah, 4 seg000:3282 mov [bp+0Eh], ah seg000:3285 mov byte ptr [bp+0Bh], 3 seg000:3289 mov byte ptr [bp+0Ah], 3 seg000:328D jmp bl_exit seg000:3290 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3290 seg000:3290 loc_0_3290: ; CODE XREF: seg000:315Eu seg000:3290 ; DATA XREF: seg000:314Eo seg000:3290 or ah, ah seg000:3292 jz loc_0_32A2 seg000:3294 cmp ah, 1 seg000:3297 jle loc_0_329C seg000:3299 jmp loc_0_6042 seg000:329C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:329C seg000:329C loc_0_329C: ; CODE XREF: seg000:3297j seg000:329C call sub_0_32F0 seg000:329F jmp bl_exit seg000:32A2 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:32A2 seg000:32A2 loc_0_32A2: ; CODE XREF: seg000:3292j seg000:32A2 mov dx, 3CEh seg000:32A5 mov al, 0AEh ; '' seg000:32A7 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:32A7 ; seg000:32A8 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:32A8 ; seg000:32A9 test ah, 10h seg000:32AC jnz loc_0_32C2 seg000:32AE push si seg000:32AF mov si, 3A40h seg000:32B2 add si, 9 seg000:32B5 mov ax, cs:[si] seg000:32B8 pop si seg000:32B9 jmp short loc_0_32C2 seg000:32BB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:32BB mov dx, 3CEh seg000:32BE mov al, 25h ; '%' seg000:32C0 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:32C0 ; seg000:32C1 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:32C1 ; seg000:32C2 seg000:32C2 loc_0_32C2: ; CODE XREF: seg000:32ACj seg000:32C2 ; seg000:32B9j seg000:32C2 mov al, ah seg000:32C4 and al, 6 seg000:32C6 shr al, 1 seg000:32C8 mov [bp+0Fh], al seg000:32CB and ah, 0C0h seg000:32CE shr ah, 6 seg000:32D1 mov [bp+0Eh], ah seg000:32D4 mov al, 30h ; '0' seg000:32D6 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:32D6 ; seg000:32D7 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:32D7 ; seg000:32D8 test ah, 3 seg000:32DB jz loc_0_32E5 seg000:32DD mov al, [bp+0Eh] seg000:32E0 or al, 1 seg000:32E2 or [bp+0Eh], al seg000:32E5 seg000:32E5 loc_0_32E5: ; CODE XREF: seg000:32DBj seg000:32E5 mov byte ptr [bp+0Bh], 3 seg000:32E9 mov byte ptr [bp+0Ah], 3 seg000:32ED jmp bl_exit seg000:32F0 seg000:32F0 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:32F0 seg000:32F0 ; S u b r o u t i n e seg000:32F0 seg000:32F0 sub_0_32F0 proc near ; CODE XREF: seg000:329Cp seg000:32F0 ; sub_0_B7E0+D5p seg000:32F0 mov dx, 3CEh seg000:32F3 mov al, 0AEh ; '' seg000:32F5 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:32F5 ; seg000:32F6 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:32F6 ; seg000:32F7 or ah, 10h seg000:32FA and ah, 39h seg000:32FD test ch, 1 seg000:3300 jz loc_0_3305 seg000:3302 or ah, 2 seg000:3305 seg000:3305 loc_0_3305: ; CODE XREF: sub_0_32F0+10j seg000:3305 test ch, 2 seg000:3308 jz loc_0_330D seg000:330A or ah, 4 seg000:330D seg000:330D loc_0_330D: ; CODE XREF: sub_0_32F0+18j seg000:330D test cl, 1 seg000:3310 jz loc_0_3315 seg000:3312 or ah, 40h seg000:3315 seg000:3315 loc_0_3315: ; CODE XREF: sub_0_32F0+20j seg000:3315 test cl, 2 seg000:3318 jz loc_0_331D seg000:331A or ah, 80h seg000:331D seg000:331D loc_0_331D: ; CODE XREF: sub_0_32F0+28j seg000:331D out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:331D ; seg000:331E call getCR23BiosM seg000:3321 mov al, bl seg000:3323 xor ah, ah seg000:3325 call sub_0_2151 seg000:3328 call getCRbase seg000:332B mov al, 1Eh seg000:332D out dx, al seg000:332E in ax, dx seg000:332F or ah, 20h seg000:3332 out dx, ax seg000:3333 retn seg000:3333 sub_0_32F0 endp seg000:3333 seg000:3333 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3334 bljmptbl dw offset bl00 ; DATA XREF: seg000:3384o seg000:3336 dw offset bl01 seg000:3338 dw offset bl02 seg000:333A dw offset bl03 seg000:333C dw offset bl04 seg000:333E dw offset bl05 seg000:3340 dw offset bl06 seg000:3342 dw offset bl07 seg000:3344 dw offset bl08 seg000:3346 dw offset bl09 seg000:3348 dw offset bl0a seg000:334A dw offset bl0b seg000:334C dw offset bl0c seg000:334E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:334E seg000:334E vesa_4f14: ; CODE XREF: seg000:6012u seg000:334E ; DATA XREF: seg000:5FE0o seg000:334E cmp bl, 10h seg000:3351 jnz loc_0_3356 seg000:3353 jmp loc_0_3890 seg000:3356 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3356 seg000:3356 loc_0_3356: ; CODE XREF: seg000:3351j seg000:3356 cmp bl, 20h ; ' ' seg000:3359 jnz loc_0_335E seg000:335B jmp loc_0_100F seg000:335E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:335E seg000:335E loc_0_335E: ; CODE XREF: seg000:3359j seg000:335E cmp bl, 21h ; '!' seg000:3361 jnz loc_0_3366 seg000:3363 jmp loc_0_1347 seg000:3366 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3366 seg000:3366 loc_0_3366: ; CODE XREF: seg000:3361j seg000:3366 cmp bl, 23h ; '#' seg000:3369 jnz loc_0_336E seg000:336B jmp loc_0_1376 seg000:336E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:336E seg000:336E loc_0_336E: ; CODE XREF: seg000:3369j seg000:336E cmp bl, 24h ; '$' seg000:3371 jnz loc_0_3376 seg000:3373 jmp loc_0_139A seg000:3376 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3376 seg000:3376 loc_0_3376: ; CODE XREF: seg000:3371j seg000:3376 cmp bl, 0Ch seg000:3379 jbe loc_0_337E seg000:337B jmp loc_0_6042 seg000:337E ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:337E seg000:337E loc_0_337E: ; CODE XREF: seg000:3379j seg000:337E mov ax, bx seg000:3380 xor bh, bh seg000:3382 shl bx, 1 seg000:3384 jmp cs:bljmptbl[bx] seg000:3389 seg000:3389 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3389 seg000:3389 ; S u b r o u t i n e seg000:3389 seg000:3389 bl00 proc near ; DATA XREF: seg000:3334o seg000:3389 mov ax, cs:word_0_3A40 seg000:338D mov [bp+0Eh], ax seg000:3390 mov ax, cs:word_0_3A42 seg000:3394 mov [bp+0Ch], ax seg000:3397 mov al, 21h ; '!' seg000:3399 call VGArGR seg000:339C and ah, 10h seg000:339F mov [bp+0Bh], ah seg000:33A2 xor ah, ah seg000:33A4 mov [bp+0Ah], ah seg000:33A7 jmp bl_exit seg000:33A7 bl00 endp seg000:33A7 seg000:33AA seg000:33AA ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:33AA seg000:33AA ; S u b r o u t i n e seg000:33AA seg000:33AA bl01 proc near ; CODE XREF: seg000:3384u seg000:33AA ; DATA XREF: seg000:3336o seg000:33AA push bx seg000:33AB push cx seg000:33AC call do_bl_01getbase seg000:33AF mov [bp+0Ah], bx seg000:33B2 mov [bp+0Eh], cx seg000:33B5 mov [bp+0Ch], dx seg000:33B8 pop cx seg000:33B9 pop bx seg000:33BA jmp bl_exit seg000:33BA bl01 endp seg000:33BA seg000:33BD seg000:33BD ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:33BD seg000:33BD ; S u b r o u t i n e seg000:33BD seg000:33BD bl02 proc near ; CODE XREF: seg000:3384u seg000:33BD ; DATA XREF: seg000:3338o seg000:33BD cmp ah, 0 seg000:33C0 jnz loc_0_33FC seg000:33C2 mov ax, cs seg000:33C4 cmp ax, 0C000h seg000:33C7 jb loc33cc seg000:33C9 jmp loc_0_6042 seg000:33CC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:33CC seg000:33CC loc33cc: ; CODE XREF: bl02+Aj seg000:33CC and cl, 7 seg000:33CF mov al, 1Eh seg000:33D1 call getCRbase seg000:33D4 out dx, al seg000:33D5 in ax, dx seg000:33D6 and ah, 0F8h seg000:33D9 mov ch, ah seg000:33DB or ah, cl seg000:33DD out dx, ax seg000:33DE mov dx, 3CEh seg000:33E1 mov al, 20h ; ' ' seg000:33E3 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:33E3 ; seg000:33E4 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:33E4 ; seg000:33E5 and ah, 0FCh seg000:33E8 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:33E8 ; seg000:33E9 push cx seg000:33EA call sub_0_3EE7 seg000:33ED pop cx seg000:33EE call sub_0_338 seg000:33F1 call sub_0_A78 seg000:33F4 shr cx, 0Eh seg000:33F7 call sub_0_601 seg000:33FA jmp short loc_0_3402 seg000:33FC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:33FC seg000:33FC loc_0_33FC: ; CODE XREF: bl02+3j seg000:33FC call sub_0_5F0 seg000:33FF mov [bp+0Eh], ax seg000:3402 seg000:3402 loc_0_3402: ; CODE XREF: bl02+3Dj seg000:3402 jmp bl_exit seg000:3402 bl02 endp seg000:3402 seg000:3405 seg000:3405 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3405 seg000:3405 ; S u b r o u t i n e seg000:3405 seg000:3405 bl03 proc near ; CODE XREF: seg000:3384u seg000:3405 ; DATA XREF: seg000:333Ao seg000:3405 mov ax, cs:word_0_AA seg000:3409 mov [bp+0Eh], ax seg000:340C mov ax, cs:word_0_AC seg000:3410 mov [bp+2], ax seg000:3413 mov al, cs:byte_0_36 seg000:3417 or al, 30h seg000:3419 mov [bp+0Ch], al seg000:341C mov ax, 4E4Dh seg000:341F mov [bp+0Ah], ax seg000:3422 jmp bl_exit seg000:3422 bl03 endp seg000:3422 seg000:3425 seg000:3425 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3425 seg000:3425 ; S u b r o u t i n e seg000:3425 seg000:3425 bl04 proc near ; CODE XREF: seg000:3384u seg000:3425 ; DATA XREF: seg000:333Co seg000:3425 or ah, ah seg000:3427 jz loc_0_347F seg000:3429 cmp ah, 1 seg000:342C jbe loc_0_3431 seg000:342E jmp loc_0_6042 seg000:3431 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3431 seg000:3431 loc_0_3431: ; CODE XREF: bl04+7j seg000:3431 test cs:word_0_B1, 10h seg000:3438 jnz loc_0_344B seg000:343A push ax seg000:343B mov ax, 5F44h seg000:343E mov bh, 1 seg000:3440 int 15h seg000:3442 cmp ah, 1 seg000:3445 pop ax seg000:3446 jnz loc_0_344B seg000:3448 jmp bl_exit seg000:344B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:344B seg000:344B loc_0_344B: ; CODE XREF: bl04+13j seg000:344B ; bl04+21j seg000:344B call sub_0_601 seg000:344E call sub_0_1285 seg000:3451 mov [bp+0Eh], cl seg000:3454 cmp cl, 2 seg000:3457 jz loc_0_3461 seg000:3459 and cl, 12h seg000:345C cmp cl, 12h seg000:345F jnz loc_0_347C seg000:3461 seg000:3461 loc_0_3461: ; CODE XREF: bl04+32j seg000:3461 mov al, 21h ; '!' seg000:3463 call VGArCRunlock seg000:3466 test ah, 80h seg000:3469 jz loc_0_347C seg000:346B call sub_0_351B seg000:346E jnz loc_0_347C seg000:3470 mov bh, bl seg000:3472 cmp bh, 2 seg000:3475 jb loc_0_3479 seg000:3477 dec bh seg000:3479 seg000:3479 loc_0_3479: ; CODE XREF: bl04+50j seg000:3479 jmp loc_0_39B3 seg000:347C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:347C seg000:347C loc_0_347C: ; CODE XREF: bl04+3Aj seg000:347C ; bl04+44j bl04+49j seg000:347C jmp bl_exit seg000:347F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:347F seg000:347F loc_0_347F: ; CODE XREF: bl04+2j seg000:347F call sub_0_1285 seg000:3482 mov al, 5 seg000:3484 call VGAwrCR8E8F seg000:3487 mov dl, ah seg000:3489 and ah, 20h seg000:348C and dl, 10h seg000:348F shl dl, 2 seg000:3492 or cl, ah seg000:3494 or cl, dl seg000:3496 mov [bp+0Ah], cl seg000:3499 xor dl, dl seg000:349B mov dl, 2 seg000:349D or dl, 1 seg000:34A0 call getBiosMode? seg000:34A3 jb loc_0_34A8 seg000:34A5 or dl, 14h seg000:34A8 seg000:34A8 loc_0_34A8: ; CODE XREF: bl04+7Ej seg000:34A8 mov [bp+0Bh], dl seg000:34AB jmp bl_exit seg000:34AB bl04 endp seg000:34AB seg000:34AE seg000:34AE ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:34AE seg000:34AE ; S u b r o u t i n e seg000:34AE seg000:34AE bl05 proc near ; CODE XREF: seg000:3384u seg000:34AE ; DATA XREF: seg000:333Eo seg000:34AE cmp ch, 0AAh ; '' seg000:34B1 jnz loc_0_34BD seg000:34B3 mov al, cl seg000:34B5 xor ah, ah seg000:34B7 call sub_0_2151 seg000:34BA jmp bl_exit seg000:34BD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:34BD seg000:34BD loc_0_34BD: ; CODE XREF: bl05+3j seg000:34BD mov bh, ah seg000:34BF or bh, bh seg000:34C1 jnz loc_0_34CC seg000:34C3 call sub_0_22C0 seg000:34C6 mov [bp+0Eh], al seg000:34C9 jmp bl_exit seg000:34CC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:34CC seg000:34CC loc_0_34CC: ; CODE XREF: bl05+13j seg000:34CC mov dx, 3CEh seg000:34CF mov al, 0AFh ; '' seg000:34D1 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:34D1 ; seg000:34D2 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:34D2 ; seg000:34D3 cmp bh, 2 seg000:34D6 jz loc_0_34E9 seg000:34D8 jbe loc_0_34DD seg000:34DA jmp loc_0_6042 seg000:34DD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:34DD seg000:34DD loc_0_34DD: ; CODE XREF: bl05+2Aj seg000:34DD and ah, 0F3h seg000:34E0 shl cl, 2 seg000:34E3 or ah, cl seg000:34E5 out dx, ax seg000:34E6 jmp bl_exit seg000:34E9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:34E9 seg000:34E9 loc_0_34E9: ; CODE XREF: bl05+28j seg000:34E9 and ah, 0Ch seg000:34EC shr ah, 2 seg000:34EF mov [bp+0Eh], ah seg000:34F2 jmp bl_exit seg000:34F2 bl05 endp seg000:34F2 seg000:34F5 seg000:34F5 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:34F5 seg000:34F5 ; S u b r o u t i n e seg000:34F5 seg000:34F5 bl06 proc near ; CODE XREF: seg000:3384u seg000:34F5 ; DATA XREF: seg000:3340o seg000:34F5 cmp ah, 0 seg000:34F8 jz loc_0_350D seg000:34FA mov al, 21h ; '!' seg000:34FC call VGArCRunlock seg000:34FF and ah, 7Fh seg000:3502 or cl, cl seg000:3504 jz loc_0_3509 seg000:3506 or ah, 80h seg000:3509 seg000:3509 loc_0_3509: ; CODE XREF: bl06+Fj seg000:3509 out dx, ax seg000:350A jmp bl_exit seg000:350D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:350D seg000:350D loc_0_350D: ; CODE XREF: bl06+3j seg000:350D call sub_0_351B seg000:3510 jz loc_0_3515 seg000:3512 jmp loc_0_6042 seg000:3515 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3515 seg000:3515 loc_0_3515: ; CODE XREF: bl06+1Bj seg000:3515 mov [bp+0Eh], bl seg000:3518 jmp bl_exit seg000:3518 bl06 endp seg000:3518 seg000:351B seg000:351B ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:351B seg000:351B ; S u b r o u t i n e seg000:351B seg000:351B sub_0_351B proc near ; CODE XREF: bl04+46p seg000:351B ; bl06+18p seg000:351B call sub_0_2516 seg000:351E cmp bl, 0FFh seg000:3521 jz loc_0_3525 seg000:3523 jmp short loc_0_3532 seg000:3525 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3525 seg000:3525 loc_0_3525: ; CODE XREF: sub_0_351B+6j seg000:3525 mov bx, 0A0h ; '' seg000:3528 mov di, 0FFFFh seg000:352B call sub_0_2563 seg000:352E or di, di seg000:3530 jnz loc_0_3536 seg000:3532 seg000:3532 loc_0_3532: ; CODE XREF: sub_0_351B+8j seg000:3532 ; sub_0_351B+51j seg000:3532 or ah, 1 seg000:3535 retn seg000:3536 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3536 seg000:3536 loc_0_3536: ; CODE XREF: sub_0_351B+15j seg000:3536 mov cx, di seg000:3538 call getCR23BiosM seg000:353B mov al, bl seg000:353D call sub_0_5142 seg000:3540 mov bl, 4 seg000:3542 cmp al, 3 seg000:3544 jnz loc_0_3556 seg000:3546 test ch, 40h seg000:3549 jnz loc_0_3580 seg000:354B dec bl seg000:354D test cl, 4 seg000:3550 jnz loc_0_3580 seg000:3552 xor bl, bl seg000:3554 jmp short loc_0_3580 seg000:3556 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3556 seg000:3556 loc_0_3556: ; CODE XREF: sub_0_351B+29j seg000:3556 cmp al, 4 seg000:3558 jnz loc_0_356A seg000:355A test ch, 6 seg000:355D jnz loc_0_3580 seg000:355F dec bl seg000:3561 test cl, 40h seg000:3564 jnz loc_0_3580 seg000:3566 xor bl, bl seg000:3568 jmp short loc_0_3580 seg000:356A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:356A seg000:356A loc_0_356A: ; CODE XREF: sub_0_351B+3Dj seg000:356A cmp al, 5 seg000:356C jnz loc_0_3532 seg000:356E dec bl seg000:3570 test ch, 2 seg000:3573 jnz loc_0_3580 seg000:3575 dec bl seg000:3577 dec bl seg000:3579 test ch, 4 seg000:357C jnz loc_0_3580 seg000:357E xor bl, bl seg000:3580 seg000:3580 loc_0_3580: ; CODE XREF: sub_0_351B+2Ej seg000:3580 ; sub_0_351B+35j seg000:3580 ; sub_0_351B+39j seg000:3580 ; sub_0_351B+42j seg000:3580 ; sub_0_351B+49j seg000:3580 ; sub_0_351B+4Dj seg000:3580 ; sub_0_351B+58j seg000:3580 ; sub_0_351B+61j seg000:3580 xor ah, ah seg000:3582 retn seg000:3582 sub_0_351B endp seg000:3582 seg000:3583 seg000:3583 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3583 seg000:3583 ; S u b r o u t i n e seg000:3583 seg000:3583 bl07 proc near ; CODE XREF: seg000:3384u seg000:3583 ; DATA XREF: seg000:3342o seg000:3583 cmp ah, 0 seg000:3586 jz loc_0_35A5 seg000:3588 cmp ah, 2 seg000:358B jz loc_0_35E5 seg000:358D cmp ah, 3 seg000:3590 jz loc_0_3610 seg000:3592 cmp ah, 4 seg000:3595 jnz loc_0_359A seg000:3597 jmp loc_0_3743 seg000:359A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:359A seg000:359A loc_0_359A: ; CODE XREF: bl07+12j seg000:359A cmp ah, 5 seg000:359D jnz loc_0_35A2 seg000:359F jmp loc_0_37C1 seg000:35A2 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:35A2 seg000:35A2 loc_0_35A2: ; CODE XREF: bl07+1Aj seg000:35A2 jmp bl_exit seg000:35A5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:35A5 seg000:35A5 loc_0_35A5: ; CODE XREF: bl07+3j seg000:35A5 xor al, al seg000:35A7 mov [bp+0Ah], al seg000:35AA mov al, 4 seg000:35AC call VGAwrCR8E8F seg000:35AF xor al, al seg000:35B1 test ah, 80h seg000:35B4 jz loc_0_35C3 seg000:35B6 mov al, 1 seg000:35B8 test cs:word_0_B3, 40h seg000:35BF jz loc_0_35C3 seg000:35C1 or al, 2 seg000:35C3 seg000:35C3 loc_0_35C3: ; CODE XREF: bl07+31j seg000:35C3 ; bl07+3Cj seg000:35C3 test cs:word_0_B3, 1000h seg000:35CA jnz loc_0_35CE seg000:35CC or al, 4 seg000:35CE seg000:35CE loc_0_35CE: ; CODE XREF: bl07+47j seg000:35CE test cs:word_0_B3, 2000h seg000:35D5 jnz loc_0_35D9 seg000:35D7 or al, 8 seg000:35D9 seg000:35D9 loc_0_35D9: ; CODE XREF: bl07+52j seg000:35D9 mov [bp+0Fh], al seg000:35DC and ah, 7Fh seg000:35DF mov [bp+0Eh], ah seg000:35E2 jmp bl_exit seg000:35E5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:35E5 seg000:35E5 loc_0_35E5: ; CODE XREF: bl07+8j seg000:35E5 cmp ch, 1 seg000:35E8 jbe loc_0_35ED seg000:35EA jmp loc_0_6042 seg000:35ED ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:35ED seg000:35ED loc_0_35ED: ; CODE XREF: bl07+65j seg000:35ED jb loc_0_35FD seg000:35EF mov al, 3 seg000:35F1 call VGAwrCR8E8F seg000:35F4 and ah, 7 seg000:35F7 mov [bp+0Eh], ah seg000:35FA jmp bl_exit seg000:35FD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:35FD seg000:35FD loc_0_35FD: ; CODE XREF: bl07+6Aj seg000:35FD mov al, 3 seg000:35FF call VGAwrCR8E8F seg000:3602 and ah, 0F8h seg000:3605 or ah, cl seg000:3607 call VGAwwCR8E8F seg000:360A call CR90modify seg000:360D jmp bl_exit seg000:3610 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3610 seg000:3610 loc_0_3610: ; CODE XREF: bl07+Dj seg000:3610 call readTESTCR8E8F seg000:3613 jz loc_0_361D seg000:3615 jnb loc_0_361D seg000:3617 call TV0909 seg000:361A jmp bl_exit seg000:361D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:361D seg000:361D loc_0_361D: ; CODE XREF: bl07+90j seg000:361D ; bl07+92j seg000:361D cmp cx, 0 seg000:3620 jnz loc_0_3625 seg000:3622 jmp loc_0_36FF seg000:3625 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3625 seg000:3625 loc_0_3625: ; CODE XREF: bl07+9Dj seg000:3625 test cl, 0Fh seg000:3628 jz loc_0_36A4 seg000:362A mov al, 96h ; '' seg000:362C call VGArCR seg000:362F and ah, 3 seg000:3632 mov bh, ah seg000:3634 inc al seg000:3636 call VGArCR seg000:3639 mov bl, ah seg000:363B mov al, cl seg000:363D and ax, 7 seg000:3640 shl ax, 2 seg000:3643 and ax, 1Fh seg000:3646 test cl, 8 seg000:3649 jz loc_0_366D seg000:364B add bx, ax seg000:364D call sub_0_39DA seg000:3650 push cx seg000:3651 call dualdispCRTtest seg000:3654 and cx, 3 seg000:3657 cmp cx, 2 seg000:365A pop cx seg000:365B jz loc_0_3662 seg000:365D add dx, 1Ch seg000:3660 jmp short loc_0_3665 seg000:3662 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3662 seg000:3662 loc_0_3662: ; CODE XREF: bl07+D8j seg000:3662 add dx, 7 seg000:3665 seg000:3665 loc_0_3665: ; CODE XREF: bl07+DDj seg000:3665 cmp bx, dx seg000:3667 jbe loc_0_368D seg000:3669 mov bx, dx seg000:366B jmp short loc_0_368D seg000:366D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:366D seg000:366D loc_0_366D: ; CODE XREF: bl07+C6j seg000:366D sub bx, ax seg000:366F call sub_0_39DA seg000:3672 push cx seg000:3673 call dualdispCRTtest seg000:3676 and cx, 3 seg000:3679 cmp cx, 2 seg000:367C pop cx seg000:367D jz loc_0_3684 seg000:367F sub dx, 1Ch seg000:3682 jmp short loc_0_3687 seg000:3684 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3684 seg000:3684 loc_0_3684: ; CODE XREF: bl07+FAj seg000:3684 sub dx, 18h seg000:3687 seg000:3687 loc_0_3687: ; CODE XREF: bl07+FFj seg000:3687 cmp bx, dx seg000:3689 jge loc_0_368D seg000:368B mov bx, dx seg000:368D seg000:368D loc_0_368D: ; CODE XREF: bl07+E4j seg000:368D ; bl07+E8j bl07+106j seg000:368D mov al, 96h ; '' seg000:368F call VGArCR seg000:3692 and ah, 0FCh seg000:3695 and bh, 3 seg000:3698 or ah, bh seg000:369A call VGAwCR seg000:369D inc al seg000:369F mov ah, bl seg000:36A1 call VGAwCR seg000:36A4 seg000:36A4 loc_0_36A4: ; CODE XREF: bl07+A5j seg000:36A4 test cl, 0F0h seg000:36A7 jz loc_0_36FC seg000:36A9 mov al, 91h ; '' seg000:36AB call VGArCR seg000:36AE mov bh, ah seg000:36B0 inc al seg000:36B2 call VGArCR seg000:36B5 mov bl, ah seg000:36B7 mov al, cl seg000:36B9 and ax, 70h seg000:36BC shr ax, 2 seg000:36BF and ax, 1Fh seg000:36C2 test cl, 80h seg000:36C5 jnz loc_0_36D7 seg000:36C7 add bx, ax seg000:36C9 call sub_0_3A01 seg000:36CC add dx, 1Ch seg000:36CF cmp bx, dx seg000:36D1 jbe loc_0_36E5 seg000:36D3 mov bx, dx seg000:36D5 jmp short loc_0_36E5 seg000:36D7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:36D7 seg000:36D7 loc_0_36D7: ; CODE XREF: bl07+142j seg000:36D7 sub bx, ax seg000:36D9 call sub_0_3A01 seg000:36DC sub dx, 1Ch seg000:36DF cmp bx, dx seg000:36E1 jge loc_0_36E5 seg000:36E3 mov bx, dx seg000:36E5 seg000:36E5 loc_0_36E5: ; CODE XREF: bl07+14Ej seg000:36E5 ; bl07+152j bl07+15Ej seg000:36E5 mov al, 91h ; '' seg000:36E7 call VGArCR seg000:36EA and ah, 0F8h seg000:36ED and bh, 7 seg000:36F0 or ah, bh seg000:36F2 call VGAwCR seg000:36F5 inc al seg000:36F7 mov ah, bl seg000:36F9 call VGAwCR seg000:36FC seg000:36FC loc_0_36FC: ; CODE XREF: bl07+124j seg000:36FC ; bl07+1BEj seg000:36FC jmp bl_exit seg000:36FF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:36FF seg000:36FF loc_0_36FF: ; CODE XREF: bl07+9Fj seg000:36FF call dualdispCRTtest seg000:3702 mov ax, cx seg000:3704 call sub_0_122C seg000:3707 mov al, 96h ; '' seg000:3709 mov cx, 0DFFh seg000:370C sub cx, 0DCFh seg000:3710 shr cx, 1 seg000:3712 call findindex seg000:3715 jnz loc_0_3720 seg000:3717 call VGAwCR seg000:371A mov ax, cs:[si] seg000:371D call VGAwCR seg000:3720 seg000:3720 loc_0_3720: ; CODE XREF: bl07+192j seg000:3720 call dualdispCRTtest seg000:3723 mov ax, cx seg000:3725 call sub_0_122C seg000:3728 mov al, 91h ; '' seg000:372A mov cx, 0DFFh seg000:372D sub cx, 0DCFh seg000:3731 shr cx, 1 seg000:3733 call findindex seg000:3736 jnz loc_0_3741 seg000:3738 call VGAwCR seg000:373B mov ax, cs:[si] seg000:373E call VGAwCR seg000:3741 seg000:3741 loc_0_3741: ; CODE XREF: bl07+1B3j seg000:3741 jmp short loc_0_36FC seg000:3743 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3743 seg000:3743 loc_0_3743: ; CODE XREF: bl07+14j seg000:3743 call readTESTCR8E8F seg000:3746 jz loc_0_375B seg000:3748 jnb loc_0_375B seg000:374A call frombl07 seg000:374D cmp ch, 0 seg000:3750 jz loc_0_3758 seg000:3752 mov [bp+0Ch], dx seg000:3755 mov [bp+2], di seg000:3758 seg000:3758 loc_0_3758: ; CODE XREF: bl07+1CDj seg000:3758 jmp bl_exit seg000:375B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:375B seg000:375B loc_0_375B: ; CODE XREF: bl07+1C3j seg000:375B ; bl07+1C5j seg000:375B cmp ch, 1 seg000:375E jbe loc_0_3763 seg000:3760 jmp loc_0_6042 seg000:3763 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3763 seg000:3763 loc_0_3763: ; CODE XREF: bl07+1DBj seg000:3763 jb loc_0_378F seg000:3765 mov al, 91h ; '' seg000:3767 call VGArCR seg000:376A and ah, 7 seg000:376D mov [bp+0Dh], ah seg000:3770 inc al seg000:3772 call VGArCR seg000:3775 mov [bp+0Ch], ah seg000:3778 mov al, 96h ; '' seg000:377A call VGArCR seg000:377D and ah, 3 seg000:3780 mov dh, ah seg000:3782 inc al seg000:3784 call VGArCR seg000:3787 mov dl, ah seg000:3789 mov [bp+2], dx seg000:378C seg000:378C loc_0_378C: ; CODE XREF: bl07+23Cj seg000:378C jmp bl_exit seg000:378F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:378F seg000:378F loc_0_378F: ; CODE XREF: bl07+1E0j seg000:378F mov al, 91h ; '' seg000:3791 call VGArCR seg000:3794 and ah, 0F8h seg000:3797 and dh, 7 seg000:379A or ah, dh seg000:379C call VGAwCR seg000:379F inc al seg000:37A1 mov ah, dl seg000:37A3 call VGAwCR seg000:37A6 mov dx, di seg000:37A8 mov al, 96h ; '' seg000:37AA call VGArCR seg000:37AD and ah, 0FCh seg000:37B0 and dh, 3 seg000:37B3 or ah, dh seg000:37B5 call VGAwCR seg000:37B8 inc al seg000:37BA mov ah, dl seg000:37BC call VGAwCR seg000:37BF jmp short loc_0_378C seg000:37C1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:37C1 seg000:37C1 loc_0_37C1: ; CODE XREF: bl07+1Cj seg000:37C1 cmp ch, 1 seg000:37C4 jnb loc_0_37FC seg000:37C6 mov ax, cs:word_0_B3 seg000:37CA and cl, 3 seg000:37CD or cl, cl seg000:37CF jz loc_0_37FC seg000:37D1 test cl, 1 seg000:37D4 jz loc_0_37DB seg000:37D6 test ax, 1000h seg000:37D9 jnz loc_0_37FC seg000:37DB seg000:37DB loc_0_37DB: ; CODE XREF: bl07+251j seg000:37DB test cl, 2 seg000:37DE jz loc_0_37E5 seg000:37E0 test ax, 2000h seg000:37E3 jnz loc_0_37FC seg000:37E5 seg000:37E5 loc_0_37E5: ; CODE XREF: bl07+25Bj seg000:37E5 mov ch, 1 seg000:37E7 mov bl, cl seg000:37E9 mov al, 3 seg000:37EB call VGAwrCR8E8F seg000:37EE and ah, 0E7h seg000:37F1 shl cl, 3 seg000:37F4 or ah, cl seg000:37F6 call VGAwwCR8E8F seg000:37F9 call sub_0_452F seg000:37FC seg000:37FC loc_0_37FC: ; CODE XREF: bl07+241j seg000:37FC ; bl07+24Cj bl07+256j seg000:37FC ; bl07+260j seg000:37FC mov al, 3 seg000:37FE call VGAwrCR8E8F seg000:3801 and ah, 18h seg000:3804 shr ah, 3 seg000:3807 mov [bp+0Eh], ah seg000:380A mov ax, cs:word_0_B3 seg000:380E not ax seg000:3810 and ax, 3000h seg000:3813 shr ah, 4 seg000:3816 mov [bp+0Fh], ah seg000:3819 or ch, ch seg000:381B jnz loc_0_3820 seg000:381D jmp loc_0_6042 seg000:3820 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3820 seg000:3820 loc_0_3820: ; CODE XREF: bl07+298j seg000:3820 jmp bl_exit seg000:3820 bl07 endp seg000:3820 seg000:3823 seg000:3823 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3823 seg000:3823 ; S u b r o u t i n e seg000:3823 seg000:3823 bl08 proc near ; CODE XREF: seg000:3384u seg000:3823 ; DATA XREF: seg000:3344o seg000:3823 call sub_0_2F93 seg000:3826 jz loc_0_382B seg000:3828 jmp loc_0_6042 seg000:382B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:382B seg000:382B loc_0_382B: ; CODE XREF: bl08+3j seg000:382B mov di, 1Ah seg000:382E mov ax, 0B109h seg000:3831 int 1Ah seg000:3833 shr cx, 4 seg000:3836 mov [bp+0Ch], cx seg000:3839 mov bl, byte ptr cs:word_0_B3 seg000:383E and bl, 4 seg000:3841 shr bl, 2 seg000:3844 mov [bp+0Ah], bl seg000:3847 jmp bl_exit seg000:3847 bl08 endp seg000:3847 seg000:384A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:384A seg000:384A bl0a: ; CODE XREF: seg000:3384u seg000:384A ; DATA XREF: seg000:3348o seg000:384A cmp ah, 2 seg000:384D jz loc_0_3852 seg000:384F jmp loc_0_6042 seg000:3852 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3852 seg000:3852 loc_0_3852: ; CODE XREF: seg000:384Dj seg000:3852 cmp cl, 1 seg000:3855 jz loc_0_385A seg000:3857 jmp loc_0_6042 seg000:385A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:385A seg000:385A loc_0_385A: ; CODE XREF: seg000:3855j seg000:385A jmp loc_0_301A seg000:385D seg000:385D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:385D seg000:385D ; S u b r o u t i n e seg000:385D seg000:385D bl0b proc near ; CODE XREF: seg000:3384u seg000:385D ; DATA XREF: seg000:334Ao seg000:385D mov al, 5 seg000:385F call VGAwrCR8E8F seg000:3862 and ah, 0EFh seg000:3865 shl cl, 4 seg000:3868 and cl, 10h seg000:386B or ah, cl seg000:386D mov al, 5 seg000:386F call VGAwwCR8E8F seg000:3872 jmp bl_exit seg000:3872 bl0b endp seg000:3872 seg000:3875 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3875 seg000:3875 bl0c: ; CODE XREF: seg000:3384u seg000:3875 ; DATA XREF: seg000:334Co seg000:3875 jmp bl_exit seg000:3875 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3878 db 0 ; seg000:3879 db 3 ; seg000:387A db 4 ; seg000:387B db 0 ; seg000:387C db 0 ; seg000:387D db 3 ; seg000:387E db 4 ; seg000:387F db 0 ; seg000:3880 db 0 ; seg000:3881 db 1 ; seg000:3882 db 3 ; seg000:3883 db 4 ; seg000:3884 db 0 ; seg000:3885 db 0 ; seg000:3886 db 0 ; seg000:3887 db 0 ; seg000:3888 db 0 ; seg000:3889 db 3 ; seg000:388A db 2 ; seg000:388B db 0Ch ; seg000:388C db 4 ; seg000:388D db 30h ; 0 seg000:388E db 6 ; seg000:388F db 0C0h ; seg000:3890 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3890 seg000:3890 loc_0_3890: ; CODE XREF: seg000:3353j seg000:3890 cmp cx, 0FFh seg000:3894 jnz loc_0_38A2 seg000:3896 mov bh, dh seg000:3898 cmp bh, 2 seg000:389B jb loc_0_389F seg000:389D dec bh seg000:389F seg000:389F loc_0_389F: ; CODE XREF: seg000:389Bj seg000:389F jmp loc_0_39B3 seg000:38A2 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:38A2 seg000:38A2 loc_0_38A2: ; CODE XREF: seg000:3894j seg000:38A2 test ch, 1 seg000:38A5 jz loc_0_38B4 seg000:38A7 xor ch, ch seg000:38A9 cmp cl, 0FFh seg000:38AC jnz loc_0_38B1 seg000:38AE seg000:38AE loc_0_38AE: ; CODE XREF: seg000:38C6j seg000:38AE ; seg000:38CBj seg000:38AE ; seg000:3975j seg000:38AE jmp loc_0_6042 seg000:38B1 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:38B1 seg000:38B1 loc_0_38B1: ; CODE XREF: seg000:38ACj seg000:38B1 add cl, 20h ; ' ' seg000:38B4 seg000:38B4 loc_0_38B4: ; CODE XREF: seg000:38A5j seg000:38B4 and cx, 7Fh seg000:38B7 mov al, cl seg000:38B9 call sub_0_5142 seg000:38BC mov bl, al seg000:38BE cmp bh, 2 seg000:38C1 jnz loc_0_38CD seg000:38C3 cmp bl, 3 seg000:38C6 jb loc_0_38AE seg000:38C8 cmp bl, 6 seg000:38CB ja loc_0_38AE seg000:38CD seg000:38CD loc_0_38CD: ; CODE XREF: seg000:38C1j seg000:38CD xor si, si seg000:38CF push cx seg000:38D0 call dualdispCRTtest seg000:38D3 mov ax, cx seg000:38D5 pop cx seg000:38D6 cmp ah, 0FFh seg000:38D9 jz loc_0_38E7 seg000:38DB cmp ah, 1 seg000:38DE jnz loc_0_38F8 seg000:38E0 xor ah, ah seg000:38E2 add al, 20h ; ' ' seg000:38E4 push bx seg000:38E5 jmp short loc_0_38ED seg000:38E7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:38E7 seg000:38E7 loc_0_38E7: ; CODE XREF: seg000:38D9j seg000:38E7 push bx seg000:38E8 call getCR23BiosM seg000:38EB mov al, bl seg000:38ED seg000:38ED loc_0_38ED: ; CODE XREF: seg000:38E5j seg000:38ED call sub_0_5142 seg000:38F0 pop bx seg000:38F1 cmp bl, al seg000:38F3 jnz loc_0_38F8 seg000:38F5 mov si, 0FFFFh seg000:38F8 seg000:38F8 loc_0_38F8: ; CODE XREF: seg000:38DEj seg000:38F8 ; seg000:38F3j seg000:38F8 sub bl, 3 seg000:38FB shl bl, 1 seg000:38FD mov ch, dh seg000:38FF cmp bh, 0 seg000:3902 jnz loc_0_3930 seg000:3904 test bl, 80h seg000:3907 jz loc_0_390B seg000:3909 jmp short loc_0_3910 seg000:390B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:390B seg000:390B loc_0_390B: ; CODE XREF: seg000:3907j seg000:390B cmp bl, 8 seg000:390E jb loc_0_391B seg000:3910 seg000:3910 loc_0_3910: ; CODE XREF: seg000:3909j seg000:3910 xor ax, ax seg000:3912 mov [bp+0Eh], ax seg000:3915 mov [bp+0Ch], ax seg000:3918 jmp bl_exit seg000:391B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:391B seg000:391B loc_0_391B: ; CODE XREF: seg000:390Ej seg000:391B shl bx, 1 seg000:391D mov ax, cs:[bx+3878h] seg000:3922 mov [bp+0Eh], ax seg000:3925 mov ax, cs:[bx+387Ah] seg000:392A mov [bp+0Ch], ax seg000:392D jmp bl_exit seg000:3930 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3930 seg000:3930 loc_0_3930: ; CODE XREF: seg000:3902j seg000:3930 test bl, 80h seg000:3933 jz loc_0_3937 seg000:3935 jmp short loc_0_393C seg000:3937 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3937 seg000:3937 loc_0_3937: ; CODE XREF: seg000:3933j seg000:3937 cmp bl, 8 seg000:393A jb loc_0_3940 seg000:393C seg000:393C loc_0_393C: ; CODE XREF: seg000:3935j seg000:393C mov ah, 0 seg000:393E jmp short loc_0_3956 seg000:3940 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3940 seg000:3940 loc_0_3940: ; CODE XREF: seg000:393Aj seg000:3940 mov al, 1Fh seg000:3942 call VGArCRunlock seg000:3945 cmp bh, 1 seg000:3948 jnz loc_0_3970 seg000:394A and bx, 0Fh seg000:394D mov cx, cs:[bx+3888h] seg000:3952 and ah, ch seg000:3954 shr ah, cl seg000:3956 seg000:3956 loc_0_3956: ; CODE XREF: seg000:393Ej seg000:3956 call sub_0_39C6 seg000:3959 mov [bp+0Ch], ah seg000:395C mov al, 21h ; '!' seg000:395E call VGArCRunlock seg000:3961 and ah, 18h seg000:3964 shr ah, 3 seg000:3967 call sub_0_39C6 seg000:396A mov [bp+0Dh], ah seg000:396D jmp bl_exit seg000:3970 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3970 seg000:3970 loc_0_3970: ; CODE XREF: seg000:3948j seg000:3970 cmp bh, 2 seg000:3973 jz loc_0_3978 seg000:3975 jmp loc_0_38AE seg000:3978 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3978 seg000:3978 loc_0_3978: ; CODE XREF: seg000:3973j seg000:3978 push cx seg000:3979 and bx, 0Fh seg000:397C mov cx, cs:[bx+3888h] seg000:3981 not ch seg000:3983 and ah, ch seg000:3985 pop bx seg000:3986 cmp bh, 2 seg000:3989 jb loc_0_398D seg000:398B dec bh seg000:398D seg000:398D loc_0_398D: ; CODE XREF: seg000:3989j seg000:398D shl bh, cl seg000:398F or ah, bh seg000:3991 out dx, ax seg000:3992 shr bh, cl seg000:3994 call sub_0_1285 seg000:3997 test cl, 10h seg000:399A jz loc_0_39AF seg000:399C test cl, 4 seg000:399F jnz loc_0_39C3 seg000:39A1 or si, si seg000:39A3 jz loc_0_39C3 seg000:39A5 call dualdispCRTtest seg000:39A8 mov ah, 1 seg000:39AA call sub_0_14D9 seg000:39AD jmp short loc_0_39C3 seg000:39AF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:39AF seg000:39AF loc_0_39AF: ; CODE XREF: seg000:399Aj seg000:39AF or si, si seg000:39B1 jz loc_0_39C3 seg000:39B3 seg000:39B3 loc_0_39B3: ; CODE XREF: bl04+54j seg000:39B3 ; seg000:389Fj seg000:39B3 call sub_0_A43 seg000:39B6 jnz loc_0_39C3 seg000:39B8 call getCR23BiosM seg000:39BB mov al, bl seg000:39BD or ah, 1 seg000:39C0 call sub_0_1EF8 seg000:39C3 seg000:39C3 loc_0_39C3: ; CODE XREF: seg000:399Fj seg000:39C3 ; seg000:39A3j seg000:39C3 ; seg000:39ADj seg000:39C3 ; seg000:39B1j seg000:39C3 ; seg000:39B6j seg000:39C3 jmp bl_exit seg000:39C6 seg000:39C6 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:39C6 seg000:39C6 ; S u b r o u t i n e seg000:39C6 seg000:39C6 sub_0_39C6 proc near ; CODE XREF: seg000:3956p seg000:39C6 ; seg000:3967p seg000:39C6 cmp ah, 0 seg000:39C9 jz locret_0_39D9 seg000:39CB inc ah seg000:39CD cmp ah, 3 seg000:39D0 jnb locret_0_39D9 seg000:39D2 cmp bx, 4 seg000:39D5 jnz locret_0_39D9 seg000:39D7 dec ah seg000:39D9 seg000:39D9 locret_0_39D9: ; CODE XREF: sub_0_39C6+3j seg000:39D9 ; sub_0_39C6+Aj seg000:39D9 ; sub_0_39C6+Fj seg000:39D9 retn seg000:39D9 sub_0_39C6 endp seg000:39D9 seg000:39DA seg000:39DA ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:39DA seg000:39DA ; S u b r o u t i n e seg000:39DA seg000:39DA sub_0_39DA proc near ; CODE XREF: bl07+CAp seg000:39DA ; bl07+ECp seg000:39DA push ax seg000:39DB push cx seg000:39DC push si seg000:39DD call dualdispCRTtest seg000:39E0 mov ax, cx seg000:39E2 call sub_0_122C seg000:39E5 mov al, 96h ; '' seg000:39E7 mov cx, 0DFFh seg000:39EA sub cx, 0DCFh seg000:39EE shr cx, 1 seg000:39F0 call findindex seg000:39F3 mov dh, ah seg000:39F5 and dh, 3 seg000:39F8 mov ax, cs:[si] seg000:39FB mov dl, ah seg000:39FD pop si seg000:39FE pop cx seg000:39FF pop ax seg000:3A00 retn seg000:3A00 sub_0_39DA endp seg000:3A00 seg000:3A01 seg000:3A01 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3A01 seg000:3A01 ; S u b r o u t i n e seg000:3A01 seg000:3A01 sub_0_3A01 proc near ; CODE XREF: bl07+146p seg000:3A01 ; bl07+156p seg000:3A01 push ax seg000:3A02 push cx seg000:3A03 push si seg000:3A04 call dualdispCRTtest seg000:3A07 mov ax, cx seg000:3A09 call sub_0_122C seg000:3A0C mov al, 91h ; '' seg000:3A0E mov cx, 0DFFh seg000:3A11 sub cx, 0DCFh seg000:3A15 shr cx, 1 seg000:3A17 call findindex seg000:3A1A mov dh, ah seg000:3A1C and dh, 7 seg000:3A1F mov ax, cs:[si] seg000:3A22 mov dl, ah seg000:3A24 pop si seg000:3A25 pop cx seg000:3A26 pop ax seg000:3A27 retn seg000:3A27 sub_0_3A01 endp seg000:3A27 seg000:3A28 seg000:3A28 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3A28 seg000:3A28 ; S u b r o u t i n e seg000:3A28 seg000:3A28 sub_0_3A28 proc near ; CODE XREF: vgainit+EFp seg000:3A28 retn seg000:3A28 sub_0_3A28 endp seg000:3A28 seg000:3A28 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3A29 aColorXgaTft14_ db 'Color XGA TFT 14.1 ',0 seg000:3A40 word_0_3A40 dw 400h ; DATA XREF: sub_0_8F7+3Fr seg000:3A40 ; sub_0_1BA8+10r seg000:3A40 ; seg000:30D3r seg000:3A40 ; bl00r sub_0_3C41+51r seg000:3A40 ; sub_0_3C41+61r seg000:3A40 ; sub_0_3EE7+2Dr seg000:3A42 word_0_3A42 dw 300h ; DATA XREF: sub_0_8F7+48r seg000:3A42 ; bl00+7r seg000:3A44 db 5 ; seg000:3A45 db 0 ; seg000:3A46 db 6 ; seg000:3A47 db 6 ; seg000:3A48 db 6 ; seg000:3A49 db 25h ; % seg000:3A4A db 0C7h ; seg000:3A4B db 30h ; 0 seg000:3A4C db 13h ; seg000:3A4D db 20h ; seg000:3A4E db 10h ; seg000:3A4F db 22h ; " seg000:3A50 db 2Ah ; * seg000:3A51 db 26h ; & seg000:3A52 db 3 ; seg000:3A53 db 27h ; ' seg000:3A54 db 1 ; seg000:3A55 db 2Bh ; + seg000:3A56 db 0 ; seg000:3A57 db 2Dh ; - seg000:3A58 db 0 ; seg000:3A59 db 2Eh ; . seg000:3A5A db 0 ; seg000:3A5B db 2Fh ; / seg000:3A5C db 0 ; seg000:3A5D db 31h ; 1 seg000:3A5E db 0 ; seg000:3A5F db 17h ; seg000:3A60 db 0 ; seg000:3A61 db 18h ; seg000:3A62 db 17h ; seg000:3A63 db 1Dh ; seg000:3A64 db 10h ; seg000:3A65 db 0FFh ; seg000:3A66 db 0FFh ; seg000:3A67 db 0FFh ; seg000:3A68 db 0FFh ; seg000:3A69 db 28h ; ( seg000:3A6A db 0D1h ; seg000:3A6B db 29h ; ) seg000:3A6C db 0B8h ; seg000:3A6D db 2Ah ; * seg000:3A6E db 90h ; seg000:3A6F db 32h ; 2 seg000:3A70 db 54h ; T seg000:3A71 db 33h ; 3 seg000:3A72 db 17h ; seg000:3A73 db 34h ; 4 seg000:3A74 db 0Dh ; seg000:3A75 db 35h ; 5 seg000:3A76 db 0Bh ; seg000:3A77 db 36h ; 6 seg000:3A78 db 6 ; seg000:3A79 db 37h ; 7 seg000:3A7A db 0 ; seg000:3A7B db 38h ; 8 seg000:3A7C db 0 ; seg000:3A7D db 39h ; 9 seg000:3A7E db 0 ; seg000:3A7F db 0FFh ; seg000:3A80 db 0FFh ; seg000:3A81 db 0FFh ; seg000:3A82 db 0FFh ; seg000:3A83 db 0FFh ; seg000:3A84 db 0FFh ; seg000:3A85 db 28h ; ( seg000:3A86 db 7 ; seg000:3A87 db 29h ; ) seg000:3A88 db 7 ; seg000:3A89 db 2Ah ; * seg000:3A8A db 7 ; seg000:3A8B db 32h ; 2 seg000:3A8C db 7 ; seg000:3A8D db 33h ; 3 seg000:3A8E db 3 ; seg000:3A8F db 34h ; 4 seg000:3A90 db 1 ; seg000:3A91 db 35h ; 5 seg000:3A92 db 1 ; seg000:3A93 db 36h ; 6 seg000:3A94 db 0 ; seg000:3A95 db 37h ; 7 seg000:3A96 db 0 ; seg000:3A97 db 38h ; 8 seg000:3A98 db 0 ; seg000:3A99 db 39h ; 9 seg000:3A9A db 0 ; seg000:3A9B db 0FFh ; seg000:3A9C db 0FFh ; seg000:3A9D db 0FFh ; seg000:3A9E db 0FFh ; seg000:3A9F db 0FFh ; seg000:3AA0 db 0FFh ; seg000:3AA1 db 71h ; q seg000:3AA2 db 0FFh ; seg000:3AA3 db 72h ; r seg000:3AA4 db 11h ; seg000:3AA5 db 2Fh ; / seg000:3AA6 db 0 ; seg000:3AA7 db 0FFh ; seg000:3AA8 db 0FFh ; seg000:3AA9 db 0FFh ; seg000:3AAA db 0FFh ; seg000:3AAB*word_0_3AAB dw 28h ; DATA XREF: sub_0_3C41+30r seg000:3AAB* ; sub_0_3EE7+49w seg000:3AAB* ; sub_0_3EE7+67w seg000:3AAD*byte_0_3AAD db 8 ; DATA XREF: sub_0_3C41+37r seg000:3AAD* ; sub_0_3EE7+55w seg000:3AAD* ; sub_0_3EE7+6Fw seg000:3AAE*word_0_3AAE dw 28h ; DATA XREF: sub_0_3C41+40r seg000:3AAE* ; sub_0_3EE7+4Dw seg000:3AAE* ; sub_0_3EE7+77w seg000:3AB0*byte_0_3AB0 db 8 ; DATA XREF: sub_0_3C41+47r seg000:3AB0* ; sub_0_3EE7+59w seg000:3AB0* ; sub_0_3EE7+7Fw seg000:3AB1 db 21h ; ! seg000:3AB2 db 12h ; seg000:3AB3 db 23h ; # seg000:3AB4 db 4 ; seg000:3AB5 db 24h ; $ seg000:3AB6 db 0 ; seg000:3AB7 word_0_3AB7 dw 0F02Ch ; DATA XREF: sub_0_3E3F+6Ar seg000:3AB9 db 0FFh ; seg000:3ABA db 0FFh ; seg000:3ABB db 0FFh ; seg000:3ABC db 0FFh ; seg000:3ABD db 40h ; @ seg000:3ABE db 0A3h ; seg000:3ABF db 41h ; A seg000:3AC0 db 7Fh ;  seg000:3AC1 db 42h ; B seg000:3AC2 db 6 ; seg000:3AC3 db 43h ; C seg000:3AC4 db 85h ; seg000:3AC5 db 44h ; D seg000:3AC6 db 96h ; seg000:3AC7 db 45h ; E seg000:3AC8 db 24h ; $ seg000:3AC9 db 46h ; F seg000:3ACA db 0E5h ; seg000:3ACB db 47h ; G seg000:3ACC db 2 ; seg000:3ACD db 48h ; H seg000:3ACE db 8 ; seg000:3ACF db 49h ; I seg000:3AD0 db 0FFh ; seg000:3AD1 db 4Ah ; J seg000:3AD2 db 25h ; % seg000:3AD3 db 4Bh ; K seg000:3AD4 db 4Fh ; O seg000:3AD5 db 4Ch ; L seg000:3AD6 db 40h ; @ seg000:3AD7 db 4Dh ; M seg000:3AD8 db 0 ; seg000:3AD9 db 4Eh ; N seg000:3ADA db 44h ; D seg000:3ADB db 4Fh ; O seg000:3ADC db 0Ch ; seg000:3ADD db 50h ; P seg000:3ADE db 7Ah ; z seg000:3ADF db 51h ; Q seg000:3AE0 db 56h ; V seg000:3AE1 db 52h ; R seg000:3AE2 db 0 ; seg000:3AE3 db 53h ; S seg000:3AE4 db 5Dh ; ] seg000:3AE5 db 54h ; T seg000:3AE6 db 0Eh ; seg000:3AE7 db 55h ; U seg000:3AE8 db 3Bh ; ; seg000:3AE9 db 56h ; V seg000:3AEA db 2Ah ; * seg000:3AEB db 57h ; W seg000:3AEC db 0 ; seg000:3AED db 58h ; X seg000:3AEE db 2Fh ; / seg000:3AEF db 59h ; Y seg000:3AF0 db 18h ; seg000:3AF1 db 60h ; ` seg000:3AF2 db 88h ; seg000:3AF3 db 61h ; a seg000:3AF4 db 65h ; e seg000:3AF5 db 62h ; b seg000:3AF6 db 0Bh ; seg000:3AF7 db 63h ; c seg000:3AF8 db 6Bh ; k seg000:3AF9 db 64h ; d seg000:3AFA db 1Ah ; seg000:3AFB db 65h ; e seg000:3AFC db 42h ; B seg000:3AFD db 66h ; f seg000:3AFE db 31h ; 1 seg000:3AFF db 67h ; g seg000:3B00 db 0 ; seg000:3B01 db 68h ; h seg000:3B02 db 35h ; 5 seg000:3B03 db 69h ; i seg000:3B04 db 3Dh ; = seg000:3B05 db 0FFh ; seg000:3B06 db 0FFh ; seg000:3B07 word_0_3B07 dw 1221h ; DATA XREF: sub_0_338+6r seg000:3B09 db 23h ; # seg000:3B0A db 4 ; seg000:3B0B db 24h ; $ seg000:3B0C db 0 ; seg000:3B0D word_0_3B0D dw 0F02Ch ; DATA XREF: sub_0_3E3F+5Dr seg000:3B0F db 0FFh ; seg000:3B10 db 0FFh ; seg000:3B11 db 0FFh ; seg000:3B12 db 0FFh ; seg000:3B13 db 40h ; @ seg000:3B14 db 0A3h ; seg000:3B15 db 41h ; A seg000:3B16 db 7Fh ;  seg000:3B17 db 42h ; B seg000:3B18 db 6 ; seg000:3B19 db 43h ; C seg000:3B1A db 85h ; seg000:3B1B db 44h ; D seg000:3B1C db 96h ; seg000:3B1D db 45h ; E seg000:3B1E db 24h ; $ seg000:3B1F db 46h ; F seg000:3B20 db 0E5h ; seg000:3B21 db 47h ; G seg000:3B22 db 2 ; seg000:3B23 db 48h ; H seg000:3B24 db 8 ; seg000:3B25 db 49h ; I seg000:3B26 db 0FFh ; seg000:3B27 db 4Ah ; J seg000:3B28 db 25h ; % seg000:3B29 db 4Bh ; K seg000:3B2A db 4Fh ; O seg000:3B2B db 4Ch ; L seg000:3B2C db 40h ; @ seg000:3B2D db 4Dh ; M seg000:3B2E db 0 ; seg000:3B2F db 4Eh ; N seg000:3B30 db 44h ; D seg000:3B31 db 4Fh ; O seg000:3B32 db 0Ch ; seg000:3B33 db 50h ; P seg000:3B34 db 7Ah ; z seg000:3B35 db 51h ; Q seg000:3B36 db 56h ; V seg000:3B37 db 52h ; R seg000:3B38 db 0 ; seg000:3B39 db 53h ; S seg000:3B3A db 5Dh ; ] seg000:3B3B db 54h ; T seg000:3B3C db 0Eh ; seg000:3B3D db 55h ; U seg000:3B3E db 3Bh ; ; seg000:3B3F db 56h ; V seg000:3B40 db 2Ah ; * seg000:3B41 db 57h ; W seg000:3B42 db 0 ; seg000:3B43 db 58h ; X seg000:3B44 db 2Fh ; / seg000:3B45 db 59h ; Y seg000:3B46 db 18h ; seg000:3B47 db 60h ; ` seg000:3B48 db 88h ; seg000:3B49 db 61h ; a seg000:3B4A db 65h ; e seg000:3B4B db 62h ; b seg000:3B4C db 0Bh ; seg000:3B4D db 63h ; c seg000:3B4E db 6Bh ; k seg000:3B4F db 64h ; d seg000:3B50 db 1Ah ; seg000:3B51 db 65h ; e seg000:3B52 db 42h ; B seg000:3B53 db 66h ; f seg000:3B54 db 31h ; 1 seg000:3B55 db 67h ; g seg000:3B56 db 0 ; seg000:3B57 db 68h ; h seg000:3B58 db 35h ; 5 seg000:3B59 db 69h ; i seg000:3B5A db 3Dh ; = seg000:3B5B db 0FFh ; seg000:3B5C db 0FFh ; seg000:3B5D word_0_3B5D dw 17h ; DATA XREF: sub_0_3EE7+ADr seg000:3B5D ; sub_0_B2A3+158r seg000:3B5F word_0_3B5F dw 6Bh ; DATA XREF: sub_0_3EE7+24r seg000:3B61 word_0_3B61 dw 56h ; DATA XREF: sub_0_3EE7+8Br seg000:3B63 word_0_3B63 dw 56h ; DATA XREF: sub_0_3EE7+9Cr seg000:3B65 db 34h ; 4 seg000:3B66 db 8 ; seg000:3B67 db 3 ; seg000:3B68 word_0_3B68 dw 869h ; DATA XREF: sub_0_3EE7+45r seg000:3B6A byte_0_3B6A db 6 ; DATA XREF: sub_0_3EE7+51r seg000:3B6B word_0_3B6B dw 6 ; DATA XREF: sub_0_3B6D+22r seg000:3B6D seg000:3B6D ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3B6D seg000:3B6D ; S u b r o u t i n e seg000:3B6D seg000:3B6D sub_0_3B6D proc near ; CODE XREF: sub_0_B62F+7p seg000:3B6D push ax seg000:3B6E push cx seg000:3B6F push dx seg000:3B70 push di seg000:3B71 push si seg000:3B72 push ds seg000:3B73 push es seg000:3B74 mov al, 1Bh seg000:3B76 call VGArCR seg000:3B79 cmp ah, 52h ; 'R' seg000:3B7C jz loc_0_3B83 seg000:3B7E cmp ah, 12h seg000:3B81 jnz loc_0_3B96 seg000:3B83 seg000:3B83 loc_0_3B83: ; CODE XREF: sub_0_3B6D+Fj seg000:3B83 mov si, 3B65h seg000:3B86 mov ax, cs seg000:3B88 mov ds, ax seg000:3B8A assume ds:seg000 seg000:3B8A mov es, ax seg000:3B8C assume es:seg000 seg000:3B8C mov di, 172h seg000:3B8F mov cx, cs:word_0_3B6B seg000:3B94 rep movsb seg000:3B96 seg000:3B96 loc_0_3B96: ; CODE XREF: sub_0_3B6D+14j seg000:3B96 pop es seg000:3B97 assume es:nothing seg000:3B97 pop ds seg000:3B98 assume ds:nothing seg000:3B98 pop si seg000:3B99 pop di seg000:3B9A pop dx seg000:3B9B pop cx seg000:3B9C pop ax seg000:3B9D retn seg000:3B9D sub_0_3B6D endp seg000:3B9D seg000:3B9E seg000:3B9E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3B9E seg000:3B9E ; S u b r o u t i n e seg000:3B9E seg000:3B9E sub_0_3B9E proc near ; CODE XREF: seg000:569Dp seg000:3B9E push ax seg000:3B9F push bx seg000:3BA0 push dx seg000:3BA1 push si seg000:3BA2 push di seg000:3BA3 and bl, 7Fh seg000:3BA6 mov dx, 3C2h seg000:3BA9 out dx, al ; EGA : misc cntl seg000:3BA9 ; 0: 1=select 3BxH seg000:3BA9 ; 1: 1=enable RAM seg000:3BA9 ; 2-3: Dot clock seg000:3BA9 ; 5: Page bit for odd/even mode seg000:3BA9 ; 6: Horiz retrace polarity: 1=neg, 0=pos seg000:3BA9 ; 7: Vert retrace polarity: 1=neg, 0=pos seg000:3BAA push bx seg000:3BAB push cx seg000:3BAC mov al, bl seg000:3BAE call sub_0_5142 seg000:3BB1 mov bl, cs:byte_0_13D seg000:3BB6 test ah, 80h seg000:3BB9 jnz loc_0_3BC0 seg000:3BBB mov bl, cs:byte_0_13E seg000:3BC0 seg000:3BC0 loc_0_3BC0: ; CODE XREF: sub_0_3B9E+1Bj seg000:3BC0 xor bh, bh seg000:3BC2 mov dx, 3CEh seg000:3BC5 mov si, 193h seg000:3BC8 call sub_0_3BF7 seg000:3BCB mov cx, cs:[bx+si] seg000:3BCE mov bh, cs:[bx+si+2] seg000:3BD2 mov al, 8Dh ; '' seg000:3BD4 out dx, al seg000:3BD5 in ax, dx seg000:3BD6 and ah, 0Fh seg000:3BD9 shl ch, 4 seg000:3BDC or ah, ch seg000:3BDE out dx, ax seg000:3BDF mov al, 96h ; '' seg000:3BE1 mov ah, bh seg000:3BE3 out dx, ax seg000:3BE4 mov al, 97h ; '' seg000:3BE6 mov ah, cl seg000:3BE8 out dx, ax seg000:3BE9 pop cx seg000:3BEA pop bx seg000:3BEB call sub_0_3C1C seg000:3BEE call sub_0_3D4C seg000:3BF1 pop di seg000:3BF2 pop si seg000:3BF3 pop dx seg000:3BF4 pop bx seg000:3BF5 pop ax seg000:3BF6 retn seg000:3BF6 sub_0_3B9E endp seg000:3BF6 seg000:3BF7 seg000:3BF7 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3BF7 seg000:3BF7 ; S u b r o u t i n e seg000:3BF7 seg000:3BF7 sub_0_3BF7 proc near ; CODE XREF: sub_0_3B9E+2Ap seg000:3BF7 mov al, 94h ; '' seg000:3BF9 mov ah, 0 seg000:3BFB cmp bl, 18h seg000:3BFE jbe loc_0_3C09 seg000:3C00 mov ah, 9 seg000:3C02 cmp bl, 24h ; '$' seg000:3C05 jbe loc_0_3C09 seg000:3C07 mov ah, 29h ; ')' seg000:3C09 seg000:3C09 loc_0_3C09: ; CODE XREF: sub_0_3BF7+7j seg000:3C09 ; sub_0_3BF7+Ej seg000:3C09 out dx, ax seg000:3C0A mov al, 95h ; '' seg000:3C0C call VGArGR seg000:3C0F and ah, 0BFh seg000:3C12 cmp bl, 24h ; '$' seg000:3C15 ja loc_0_3C1A seg000:3C17 or ah, 40h seg000:3C1A seg000:3C1A loc_0_3C1A: ; CODE XREF: sub_0_3BF7+1Ej seg000:3C1A out dx, ax seg000:3C1B retn seg000:3C1B sub_0_3BF7 endp seg000:3C1B seg000:3C1C seg000:3C1C ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3C1C seg000:3C1C ; S u b r o u t i n e seg000:3C1C seg000:3C1C sub_0_3C1C proc near ; CODE XREF: sub_0_601+F7p seg000:3C1C ; sub_0_601+1B7p seg000:3C1C ; sub_0_601+22Dp seg000:3C1C ; sub_0_3B9E+4Dp seg000:3C1C push ds seg000:3C1D push si seg000:3C1E push dx seg000:3C1F push cx seg000:3C20 push ax seg000:3C21 push cs seg000:3C22 pop ds seg000:3C23 assume ds:seg000 seg000:3C23 mov dx, 3CEh seg000:3C26 push bx seg000:3C27 call sub_0_3C41 seg000:3C2A pop bx seg000:3C2B pop ax seg000:3C2C pop cx seg000:3C2D pop dx seg000:3C2E pop si seg000:3C2F pop ds seg000:3C30 assume ds:nothing seg000:3C30 retn seg000:3C30 sub_0_3C1C endp seg000:3C30 seg000:3C30 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3C31 db 0 ; seg000:3C32 db 0 ; seg000:3C33 db 3 ; seg000:3C34 db 0 ; seg000:3C35 db 12h ; seg000:3C36 db 0 ; seg000:3C37 db 27h ; ' seg000:3C38 db 0 ; seg000:3C39 db 0 ; seg000:3C3A db 0 ; seg000:3C3B db 3 ; seg000:3C3C db 0 ; seg000:3C3D db 12h ; seg000:3C3E db 0 ; seg000:3C3F db 36h ; 6 seg000:3C40 db 0 ; seg000:3C41 seg000:3C41 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3C41 seg000:3C41 ; S u b r o u t i n e seg000:3C41 seg000:3C41 sub_0_3C41 proc near ; CODE XREF: sub_0_3C1C+Bp seg000:3C41 ; sub_0_B62F+35p seg000:3C41 push cx seg000:3C42 push di seg000:3C43 push si seg000:3C44 mov dx, 3CEh seg000:3C47 mov si, 13Fh seg000:3C4A and bl, 7Fh seg000:3C4D mov di, 3C39h seg000:3C50 cmp bl, 27h ; ''' seg000:3C53 jz loc_0_3C6C seg000:3C55 cmp bl, 39h ; '9' seg000:3C58 jz loc_0_3C6C seg000:3C5A cmp bl, 3Ah ; ':' seg000:3C5D jz loc_0_3C6C seg000:3C5F cmp bl, 4Fh ; 'O' seg000:3C62 jb loc_0_3C69 seg000:3C64 cmp bl, 53h ; 'S' seg000:3C67 jbe loc_0_3C6C seg000:3C69 seg000:3C69 loc_0_3C69: ; CODE XREF: sub_0_3C41+21j seg000:3C69 mov di, 3C31h seg000:3C6C seg000:3C6C loc_0_3C6C: ; CODE XREF: sub_0_3C41+12j seg000:3C6C ; sub_0_3C41+17j seg000:3C6C ; sub_0_3C41+1Cj seg000:3C6C ; sub_0_3C41+26j seg000:3C6C call sub_0_A43 seg000:3C6F jz loc_0_3CBC seg000:3C71 mov bx, cs:word_0_3AAB seg000:3C76 mov dl, bh seg000:3C78 mov bh, cs:byte_0_3AAD seg000:3C7D test al, 1 seg000:3C7F jnz loc_0_3C8D seg000:3C81 mov bx, cs:word_0_3AAE seg000:3C86 mov dl, bh seg000:3C88 mov bh, cs:byte_0_3AB0 seg000:3C8D seg000:3C8D loc_0_3C8D: ; CODE XREF: sub_0_3C41+3Ej seg000:3C8D xor di, di seg000:3C8F push cx seg000:3C90 xor ch, ch seg000:3C92 cmp cs:word_0_3A40, 400h seg000:3C99 jnz loc_0_3CA2 seg000:3C9B test dl, 8 seg000:3C9E jz loc_0_3CAE seg000:3CA0 jmp short loc_0_3CAB seg000:3CA2 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3CA2 seg000:3CA2 loc_0_3CA2: ; CODE XREF: sub_0_3C41+58j seg000:3CA2 cmp cs:word_0_3A40, 500h seg000:3CA9 jnz loc_0_3CAE seg000:3CAB seg000:3CAB loc_0_3CAB: ; CODE XREF: sub_0_3C41+5Fj seg000:3CAB or ch, 10h seg000:3CAE seg000:3CAE loc_0_3CAE: ; CODE XREF: sub_0_3C41+5Dj seg000:3CAE ; sub_0_3C41+68j seg000:3CAE mov al, 17h seg000:3CB0 call VGArGR seg000:3CB3 and ah, 0EFh seg000:3CB6 or ah, ch seg000:3CB8 call VGAwGR seg000:3CBB pop cx seg000:3CBC seg000:3CBC loc_0_3CBC: ; CODE XREF: sub_0_3C41+2Ej seg000:3CBC mov al, 9Ch ; '' seg000:3CBE mov cx, 4 seg000:3CC1 seg000:3CC1 loc_0_3CC1: ; CODE XREF: sub_0_3C41+ABj seg000:3CC1 or di, di seg000:3CC3 jz loc_0_3CD6 seg000:3CC5 mov bx, cs:[di] seg000:3CC8 mov dx, cs:[bx+si] seg000:3CCB xchg dl, dh seg000:3CCD mov bh, cs:[bx+si+2] seg000:3CD1 mov bl, dh seg000:3CD3 add di, 2 seg000:3CD6 seg000:3CD6 loc_0_3CD6: ; CODE XREF: sub_0_3C41+82j seg000:3CD6 mov dh, 4 seg000:3CD8 sub dh, cl seg000:3CDA call sub_0_3CF2 seg000:3CDD push dx seg000:3CDE mov dx, 3CEh seg000:3CE1 mov ah, bh seg000:3CE3 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3CE3 ; seg000:3CE4 sub al, 4 seg000:3CE6 mov ah, bl seg000:3CE8 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3CE8 ; read map select. seg000:3CE8 ; Data bits 0-2 select map # for read mode 00. seg000:3CE9 pop dx seg000:3CEA add al, 5 seg000:3CEC loop loc_0_3CC1 seg000:3CEE pop si seg000:3CEF pop di seg000:3CF0 pop cx seg000:3CF1 retn seg000:3CF1 sub_0_3C41 endp seg000:3CF1 seg000:3CF2 seg000:3CF2 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3CF2 seg000:3CF2 ; S u b r o u t i n e seg000:3CF2 seg000:3CF2 sub_0_3CF2 proc near ; CODE XREF: sub_0_1EF8+125p seg000:3CF2 ; sub_0_3C41+99p seg000:3CF2 push ax seg000:3CF3 push cx seg000:3CF4 push dx seg000:3CF5 mov cl, dh seg000:3CF7 mov ch, 0Fh seg000:3CF9 xor dh, dh seg000:3CFB and dl, ch seg000:3CFD shl cl, 2 seg000:3D00 shl dx, cl seg000:3D02 rol ch, cl seg000:3D04 not ch seg000:3D06 shr cl, 2 seg000:3D09 mov al, 8Fh ; '' seg000:3D0B cmp cl, 2 seg000:3D0E jnb loc_0_3D14 seg000:3D10 dec al seg000:3D12 mov dh, dl seg000:3D14 seg000:3D14 loc_0_3D14: ; CODE XREF: sub_0_3CF2+1Cj seg000:3D14 mov cl, dh seg000:3D16 mov dx, 3CEh seg000:3D19 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3D19 ; seg000:3D1A in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:3D1A ; seg000:3D1B and ah, ch seg000:3D1D or ah, cl seg000:3D1F out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D1F ; seg000:3D20 pop dx seg000:3D21 pop cx seg000:3D22 pop ax seg000:3D23 retn seg000:3D23 sub_0_3CF2 endp seg000:3D23 seg000:3D24 seg000:3D24 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3D24 seg000:3D24 ; S u b r o u t i n e seg000:3D24 seg000:3D24 sub_0_3D24 proc near ; CODE XREF: sub_0_10B1+7Fp seg000:3D24 ; sub_0_10B1+A3p seg000:3D24 ; sub_0_14D9+ABp seg000:3D24 push dx seg000:3D25 push cx seg000:3D26 push si seg000:3D27 mov dx, 3CEh seg000:3D2A mov si, 1F2h seg000:3D2D mov cx, cs:[bx+si] seg000:3D30 mov bh, cs:[bx+si+2] seg000:3D34 mov al, 8Ch ; '' seg000:3D36 mov ah, bh seg000:3D38 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D38 ; seg000:3D39 mov al, 8Bh ; '' seg000:3D3B mov ah, cl seg000:3D3D out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D3D ; seg000:3D3E mov al, 8Dh ; '' seg000:3D40 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3D40 ; seg000:3D41 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:3D41 ; seg000:3D42 and ah, 0F0h seg000:3D45 or ah, ch seg000:3D47 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D47 ; seg000:3D48 pop si seg000:3D49 pop cx seg000:3D4A pop dx seg000:3D4B retn seg000:3D4B sub_0_3D24 endp seg000:3D4B seg000:3D4C seg000:3D4C ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3D4C seg000:3D4C ; S u b r o u t i n e seg000:3D4C seg000:3D4C sub_0_3D4C proc near ; CODE XREF: sub_0_3B9E+50p seg000:3D4C push bx seg000:3D4D push ds seg000:3D4E push cs seg000:3D4F pop ds seg000:3D50 assume ds:seg000 seg000:3D50 and bl, 7Fh seg000:3D53 mov dx, 3CEh seg000:3D56 mov ax, 2609h seg000:3D59 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D59 ; seg000:3D5A mov ax, 0Eh seg000:3D5D cmp bl, 13h seg000:3D60 jbe loc_0_3D65 seg000:3D62 or ah, 10h seg000:3D65 seg000:3D65 loc_0_3D65: ; CODE XREF: sub_0_3D4C+14j seg000:3D65 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D65 ; seg000:3D66 mov ax, 0Fh seg000:3D69 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3D69 ; seg000:3D6A mov al, 20h ; ' ' seg000:3D6C out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3D6C ; seg000:3D6D inc dx seg000:3D6E in al, dx ; EGA port: graphics controller data register seg000:3D6F and al, 9Fh seg000:3D71 xor ah, ah seg000:3D73 cmp bh, 50h ; 'P' seg000:3D76 jnb loc_0_3D7A seg000:3D78 shl bh, 1 seg000:3D7A seg000:3D7A loc_0_3D7A: ; CODE XREF: sub_0_3D4C+2Aj seg000:3D7A cmp bh, 50h ; 'P' seg000:3D7D jbe loc_0_3D8F seg000:3D7F cmp bh, 64h ; 'd' seg000:3D82 mov ah, 20h ; ' ' seg000:3D84 jbe loc_0_3D8F seg000:3D86 cmp bh, 80h ; '' seg000:3D89 mov ah, 40h ; '@' seg000:3D8B jbe loc_0_3D8F seg000:3D8D mov ah, 60h ; '`' seg000:3D8F seg000:3D8F loc_0_3D8F: ; CODE XREF: sub_0_3D4C+31j seg000:3D8F ; sub_0_3D4C+38j seg000:3D8F ; sub_0_3D4C+3Fj seg000:3D8F or al, ah seg000:3D91 out dx, al ; EGA port: graphics controller data register seg000:3D92 dec dx seg000:3D93 call sub_0_3ED7 seg000:3D96 cmp ch, 0Ah seg000:3D99 jb loc_0_3D9E seg000:3D9B call sub_0_3EC5 seg000:3D9E seg000:3D9E loc_0_3D9E: ; CODE XREF: sub_0_3D4C+4Dj seg000:3D9E mov ax, 15h seg000:3DA1 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3DA1 ; seg000:3DA2 inc al seg000:3DA4 out dx, ax seg000:3DA5 mov al, 90h ; '' seg000:3DA7 out dx, al seg000:3DA8 in ax, dx seg000:3DA9 and ah, 0F8h seg000:3DAC cmp ch, 0Ah seg000:3DAF jb loc_0_3DBA seg000:3DB1 push bx seg000:3DB2 mov bl, ch seg000:3DB4 sub bl, 9 seg000:3DB7 or ah, bl seg000:3DB9 pop bx seg000:3DBA seg000:3DBA loc_0_3DBA: ; CODE XREF: sub_0_3D4C+63j seg000:3DBA out dx, ax seg000:3DBB push ax seg000:3DBC mov ax, 43E0h seg000:3DBF out dx, ax seg000:3DC0 mov ax, 11E0h seg000:3DC3 out dx, ax seg000:3DC4 mov ax, 2ECh seg000:3DC7 out dx, ax seg000:3DC8 call sub_0_225A seg000:3DCB mov ah, 0 seg000:3DCD out dx, ax seg000:3DCE mov ax, 0FFE0h seg000:3DD1 out dx, ax seg000:3DD2 mov al, 0A2h ; '' seg000:3DD4 call VGArGR seg000:3DD7 and ah, 0CFh seg000:3DDA cmp ch, 0Bh seg000:3DDD jb loc_0_3DE4 seg000:3DDF or ah, 20h seg000:3DE2 jmp short loc_0_3DE7 seg000:3DE4 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3DE4 seg000:3DE4 loc_0_3DE4: ; CODE XREF: sub_0_3D4C+91j seg000:3DE4 or ah, 10h seg000:3DE7 seg000:3DE7 loc_0_3DE7: ; CODE XREF: sub_0_3D4C+96j seg000:3DE7 call VGAwGR seg000:3DEA call getCR23BiosM seg000:3DED mov al, 92h ; '' seg000:3DEF cmp bl, 38h ; '8' seg000:3DF2 jz loc_0_3DF9 seg000:3DF4 cmp bl, 4Bh ; 'K' seg000:3DF7 jnz loc_0_3DFF seg000:3DF9 seg000:3DF9 loc_0_3DF9: ; CODE XREF: sub_0_3D4C+A6j seg000:3DF9 push ax seg000:3DFA pop ax seg000:3DFB xor ah, ah seg000:3DFD jmp short loc_0_3E11 seg000:3DFF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3DFF seg000:3DFF loc_0_3DFF: ; CODE XREF: sub_0_3D4C+ABj seg000:3DFF push cx seg000:3E00 push ax seg000:3E01 pop ax seg000:3E02 mov si, 0BBh ; '' seg000:3E05 mov cx, 30h ; '0' seg000:3E08 call findindex seg000:3E0B pop cx seg000:3E0C jz loc_0_3E11 seg000:3E0E mov ax, 92h ; '' seg000:3E11 seg000:3E11 loc_0_3E11: ; CODE XREF: sub_0_3D4C+B1j seg000:3E11 ; sub_0_3D4C+C0j seg000:3E11 call VGAwGR seg000:3E14 mov al, 93h ; '' seg000:3E16 call VGArGR seg000:3E19 and ah, 3Fh seg000:3E1C cmp ch, 0Ah seg000:3E1F jb loc_0_3E24 seg000:3E21 or ah, 0C0h seg000:3E24 seg000:3E24 loc_0_3E24: ; CODE XREF: sub_0_3D4C+D3j seg000:3E24 out dx, ax seg000:3E25 mov bl, 2 seg000:3E27 pop ax seg000:3E28 test ah, 7 seg000:3E2B jnz loc_0_3E2F seg000:3E2D mov bl, 0 seg000:3E2F seg000:3E2F loc_0_3E2F: ; CODE XREF: sub_0_3D4C+DFj seg000:3E2F mov al, 10h seg000:3E31 call VGArGR seg000:3E34 and ah, 0FDh seg000:3E37 or ah, bl seg000:3E39 call VGAwGR seg000:3E3C pop ds seg000:3E3D assume ds:nothing seg000:3E3D pop bx seg000:3E3E retn seg000:3E3E sub_0_3D4C endp seg000:3E3E seg000:3E3F seg000:3E3F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3E3F seg000:3E3F ; S u b r o u t i n e seg000:3E3F seg000:3E3F sub_0_3E3F proc near ; CODE XREF: sub_0_601+29Ap seg000:3E3F ; seg000:56D4p seg000:3E3F push dx seg000:3E40 push ax seg000:3E41 push bx seg000:3E42 call sub_0_2F1 seg000:3E45 and bl, 7Fh seg000:3E48 mov al, 22h ; '"' seg000:3E4A call VGArGR seg000:3E4D and ah, 30h seg000:3E50 shr ah, 4 seg000:3E53 mov dh, ah seg000:3E55 mov al, 90h ; '' seg000:3E57 call VGArGR seg000:3E5A and ah, 7 seg000:3E5D mov bh, ah seg000:3E5F mov al, 21h ; '!' seg000:3E61 call VGArGR seg000:3E64 mov dl, ah seg000:3E66 cmp bh, 4 seg000:3E69 jz loc_0_3E74 seg000:3E6B cmp bh, 3 seg000:3E6E jz loc_0_3E84 seg000:3E70 xor bh, bh seg000:3E72 jmp short loc_0_3E92 seg000:3E74 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3E74 seg000:3E74 loc_0_3E74: ; CODE XREF: sub_0_3E3F+2Aj seg000:3E74 mov bh, 4 seg000:3E76 test dl, 10h seg000:3E79 jz loc_0_3E92 seg000:3E7B cmp dh, 3 seg000:3E7E jnz loc_0_3E92 seg000:3E80 xor bh, bh seg000:3E82 jmp short loc_0_3E92 seg000:3E84 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3E84 seg000:3E84 loc_0_3E84: ; CODE XREF: sub_0_3E3F+2Fj seg000:3E84 xor bh, bh seg000:3E86 test dl, 10h seg000:3E89 jz loc_0_3E92 seg000:3E8B cmp dh, 2 seg000:3E8E jnb loc_0_3E92 seg000:3E90 mov bh, 4 seg000:3E92 seg000:3E92 loc_0_3E92: ; CODE XREF: sub_0_3E3F+33j seg000:3E92 ; sub_0_3E3F+3Aj seg000:3E92 ; sub_0_3E3F+3Fj seg000:3E92 ; sub_0_3E3F+43j seg000:3E92 ; sub_0_3E3F+4Aj seg000:3E92 ; sub_0_3E3F+4Fj seg000:3E92 mov al, 20h ; ' ' seg000:3E94 call VGArGR seg000:3E97 test ah, 1 seg000:3E9A jnz loc_0_3EA9 seg000:3E9C test cs:word_0_3B0D, 400h seg000:3EA3 jnz loc_0_3EA7 seg000:3EA5 mov bh, 0 seg000:3EA7 seg000:3EA7 loc_0_3EA7: ; CODE XREF: sub_0_3E3F+64j seg000:3EA7 jmp short loc_0_3EB4 seg000:3EA9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3EA9 seg000:3EA9 loc_0_3EA9: ; CODE XREF: sub_0_3E3F+5Bj seg000:3EA9 test cs:word_0_3AB7, 400h seg000:3EB0 jnz loc_0_3EB4 seg000:3EB2 mov bh, 0 seg000:3EB4 seg000:3EB4 loc_0_3EB4: ; CODE XREF: sub_0_3E3F+68j seg000:3EB4 ; sub_0_3E3F+71j seg000:3EB4 mov al, 2Ch ; ',' seg000:3EB6 call VGArGR seg000:3EB9 and ah, 0FBh seg000:3EBC or ah, bh seg000:3EBE call VGAwGR seg000:3EC1 pop bx seg000:3EC2 pop ax seg000:3EC3 pop dx seg000:3EC4 retn seg000:3EC4 sub_0_3E3F endp seg000:3EC4 seg000:3EC5 seg000:3EC5 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3EC5 seg000:3EC5 ; S u b r o u t i n e seg000:3EC5 seg000:3EC5 sub_0_3EC5 proc near ; CODE XREF: sub_0_3D4C+4Fp seg000:3EC5 push dx seg000:3EC6 push ax seg000:3EC7 mov dx, 3CEh seg000:3ECA mov al, 11h seg000:3ECC out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3ECC ; seg000:3ECD jmp short loc_0_3ECF seg000:3ECF seg000:3ECF loc_0_3ECF: ; EGA: graph 1 and 2 addr reg: seg000:3ECF in ax, dx ; seg000:3ED0 or ah, 80h seg000:3ED3 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3ED3 ; seg000:3ED4 pop ax seg000:3ED5 pop dx seg000:3ED6 retn seg000:3ED6 sub_0_3EC5 endp seg000:3ED6 seg000:3ED7 seg000:3ED7 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3ED7 seg000:3ED7 ; S u b r o u t i n e seg000:3ED7 seg000:3ED7 sub_0_3ED7 proc near ; CODE XREF: sub_0_3D4C+47p seg000:3ED7 push dx seg000:3ED8 push ax seg000:3ED9 mov dx, 3CEh seg000:3EDC mov al, 11h seg000:3EDE out dx, al ; EGA: graph 1 and 2 addr reg: seg000:3EDE ; seg000:3EDF in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:3EDF ; seg000:3EE0 and ah, 7Fh seg000:3EE3 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:3EE3 ; seg000:3EE4 pop ax seg000:3EE5 pop dx seg000:3EE6 retn seg000:3EE6 sub_0_3ED7 endp seg000:3EE6 seg000:3EE7 seg000:3EE7 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3EE7 seg000:3EE7 ; S u b r o u t i n e seg000:3EE7 seg000:3EE7 sub_0_3EE7 proc near ; CODE XREF: bl02+2Dp seg000:3EE7 ; sub_0_B5E9+39p seg000:3EE7 push ds seg000:3EE8 push es seg000:3EE9 cmp cl, 0 seg000:3EEC jnz loc_0_3EF5 seg000:3EEE mov al, 92h ; '' seg000:3EF0 mov ah, 0 seg000:3EF2 call VGAwGR seg000:3EF5 seg000:3EF5 loc_0_3EF5: ; CODE XREF: sub_0_3EE7+5j seg000:3EF5 mov bl, cl seg000:3EF7 xor bh, bh seg000:3EF9 shl bx, 1 seg000:3EFB mov si, cs:[bx-589Ah] seg000:3F00 mov ax, cs seg000:3F02 mov ds, ax seg000:3F04 assume ds:seg000 seg000:3F04 mov es, ax seg000:3F06 assume es:seg000 seg000:3F06 mov dx, ax seg000:3F08 mov di, 3A40h seg000:3F0B mov cx, cs:word_0_3B5F seg000:3F10 shr cx, 1 seg000:3F12 rep movsw seg000:3F14 cmp cs:word_0_3A40, 500h seg000:3F1B jnz loc_0_3F46 seg000:3F1D mov al, 1Bh seg000:3F1F call VGArCR seg000:3F22 cmp ah, 52h ; 'R' seg000:3F25 jz loc_0_3F2C seg000:3F27 cmp ah, 12h seg000:3F2A jnz loc_0_3F46 seg000:3F2C seg000:3F2C loc_0_3F2C: ; CODE XREF: sub_0_3EE7+3Ej seg000:3F2C mov ax, cs:word_0_3B68 seg000:3F30 mov cs:word_0_3AAB, ax seg000:3F34 mov cs:word_0_3AAE, ax seg000:3F38 mov al, cs:byte_0_3B6A seg000:3F3C mov cs:byte_0_3AAD, al seg000:3F40 mov cs:byte_0_3AB0, al seg000:3F44 jmp short loc_0_3F6A seg000:3F46 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3F46 seg000:3F46 loc_0_3F46: ; CODE XREF: sub_0_3EE7+34j seg000:3F46 ; sub_0_3EE7+43j seg000:3F46 mov si, cs:[bx-5888h] seg000:3F4B mov ax, cs:[si] seg000:3F4E mov cs:word_0_3AAB, ax seg000:3F52 mov al, cs:[si+2] seg000:3F56 mov cs:byte_0_3AAD, al seg000:3F5A mov ax, cs:[si+3] seg000:3F5E mov cs:word_0_3AAE, ax seg000:3F62 mov al, cs:[si+5] seg000:3F66 mov cs:byte_0_3AB0, al seg000:3F6A seg000:3F6A loc_0_3F6A: ; CODE XREF: sub_0_3EE7+5Dj seg000:3F6A mov si, cs:[bx-5864h] seg000:3F6F mov di, 3AB1h seg000:3F72 mov cx, cs:word_0_3B61 seg000:3F77 shr cx, 1 seg000:3F79 rep movsw seg000:3F7B mov si, cs:[bx-5876h] seg000:3F80 mov di, 3B07h seg000:3F83 mov cx, cs:word_0_3B63 seg000:3F88 shr cx, 1 seg000:3F8A rep movsw seg000:3F8C mov si, cs:[bx-5852h] seg000:3F91 mov di, 3A29h seg000:3F94 mov cx, cs:word_0_3B5D seg000:3F99 shr cx, 1 seg000:3F9B rep movsw seg000:3F9D mov si, 3A40h seg000:3FA0 add si, 9 seg000:3FA3 add si, 4 seg000:3FA6 mov dx, 3CEh seg000:3FA9 call customPortPrg seg000:3FAC mov si, 3AA1h seg000:3FAF call getCRbase seg000:3FB2 call customPortPrg seg000:3FB5 mov dx, 3CEh seg000:3FB8 mov si, 3AB1h seg000:3FBB call customPortPrg seg000:3FBE pop es seg000:3FBF assume es:nothing seg000:3FBF pop ds seg000:3FC0 assume ds:nothing seg000:3FC0 retn seg000:3FC0 sub_0_3EE7 endp seg000:3FC0 seg000:3FC0 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3FC1 w3c4 dw 3C4h ; DATA XREF: seg000:45FEr seg000:3FC1 ; sub_0_4755+1r seg000:3FC1 ; sub_0_4776+3r seg000:3FC3 b10h db 10h ; DATA XREF: seg000:4603r seg000:3FC3 ; sub_0_4755+6r seg000:3FC3 ; sub_0_4776+8r seg000:3FC4 byte_0_3FC4 db 40h ; DATA XREF: seg000:4609r seg000:3FC4 ; sub_0_4755+14r seg000:3FC5 byte_0_3FC5 db 80h ; DATA XREF: sub_0_4755+Fr seg000:3FC6 db 12h ; seg000:3FC7 db 8 ; seg000:3FC8 byte_0_3FC8 db 7Fh ; DATA XREF: sub_0_4776+Er seg000:3FC9 w3c4_2 dw 3C4h ; DATA XREF: sub_0_4620+3r seg000:3FC9 ; sub_0_4620+1Fr seg000:3FC9 ; sub_0_4654+3r seg000:3FC9 ; sub_0_4654+1Fr seg000:3FC9 ; i2cwrite8b+8r seg000:3FC9 ; i2cwrite8b+2Fr seg000:3FC9 ; i2cwrite8b+51r seg000:3FC9 ; i2cget8b+9r i2cget8b+2Br seg000:3FC9 ; i2cget8b+47r seg000:3FCB byte_0_3FCB db 11h ; DATA XREF: sub_0_4620+8r seg000:3FCB ; sub_0_4620+24r seg000:3FCB ; sub_0_4654+8r seg000:3FCB ; sub_0_4654+24r seg000:3FCB ; i2cwrite8b+Dr seg000:3FCB ; i2cwrite8b+34r seg000:3FCB ; i2cget8b+Er i2cget8b+4Cr seg000:3FCC byte_0_3FCC db 1 ; DATA XREF: sub_0_4620+Er seg000:3FCC ; sub_0_4654+Er seg000:3FCC ; i2cwrite8b+13r seg000:3FCC ; i2cwrite8b+3Br seg000:3FCC ; i2cget8b+15r seg000:3FCC ; i2cget8b+52r seg000:3FCD byte_0_3FCD db 2 ; DATA XREF: getChrontelREG+31r seg000:3FCD ; sub_0_4620+13r seg000:3FCD ; sub_0_4654+2Ar seg000:3FCD ; i2cwrite8b+21r seg000:3FCD ; i2cwrite8b+45r seg000:3FCD ; i2cget8b+1Fr seg000:3FCE byte_0_3FCE db 12h ; DATA XREF: i2cwrite8b+56r seg000:3FCE ; i2cget8b+30r seg000:3FCF byte_0_3FCF db 10h ; DATA XREF: i2cwrite8b+5Cr seg000:3FCF ; i2cget8b+38r seg000:3FD0 byte_0_3FD0 db 0FDh ; DATA XREF: sub_0_4620+2Ar seg000:3FD0 ; sub_0_4654+13r seg000:3FD0 ; i2cwrite8b+18r seg000:3FD0 ; i2cget8b+57r seg000:3FD1 dw 3C4h seg000:3FD3 db 11h ; seg000:3FD4 db 1 ; seg000:3FD5 db 2 ; seg000:3FD6 db 12h ; seg000:3FD7 db 10h ; seg000:3FD8 db 0FDh ; seg000:3FD9* seg000:3FD9*;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:3FD9* seg000:3FD9*; S u b r o u t i n e seg000:3FD9* seg000:3FD9*readTESTCR8E8F proc near ; CODE XREF: seg000:104Ep seg000:3FD9* ; seg000:1332p seg000:3FD9* ; CR90modifyp sub_0_1BD0+11Bp seg000:3FD9* ; bl07+8Dp bl07+1C0p seg000:3FD9* ; sub_0_4008+1p seg000:3FD9* ; sub_0_4022p sub_0_4042p seg000:3FD9* ; sub_0_407A+49p seg000:3FD9* ; seg000:47E3p seg000:3FD9* ; seg000:4829p seg000:3FD9* ; chronpowerdown+2p seg000:3FD9* ; seg000:7408p seg000:3FD9* push ax seg000:3FDA mov al, 6 seg000:3FDC call VGAwrCR8E8F seg000:3FDF push ax seg000:3FE0 test ah, 1 seg000:3FE3 jz loc_0_3FF7 seg000:3FE5 mov al, 4 seg000:3FE7 call VGAwrCR8E8F seg000:3FEA and ah, 7 seg000:3FED cmp ah, 2 seg000:3FF0 jz loc_0_3FFC seg000:3FF2 cmp ah, 3 seg000:3FF5 jz loc_0_3FFC seg000:3FF7 seg000:3FF7 loc_0_3FF7: ; CODE XREF: readTESTCR8E8F+Aj seg000:3FF7 pop ax seg000:3FF8 xor al, al seg000:3FFA jmp short loc_0_4006 seg000:3FFC ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:3FFC seg000:3FFC loc_0_3FFC: ; CODE XREF: readTESTCR8E8F+17j seg000:3FFC ; readTESTCR8E8F+1Cj seg000:3FFC pop ax seg000:3FFD test ah, 2 seg000:4000 stc seg000:4001 jnz loc_0_4006 seg000:4003 clc seg000:4004 or al, al seg000:4006 seg000:4006 loc_0_4006: ; CODE XREF: readTESTCR8E8F+21j seg000:4006 ; readTESTCR8E8F+28j seg000:4006 pop ax seg000:4007 retn seg000:4007 readTESTCR8E8F endp seg000:4007 seg000:4008 seg000:4008 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4008 seg000:4008 ; S u b r o u t i n e seg000:4008 seg000:4008 sub_0_4008 proc near ; CODE XREF: seg000:1024p seg000:4008 push ax seg000:4009 call readTESTCR8E8F seg000:400C jnz loc_0_4015 seg000:400E mov ax, 1 seg000:4011 or ax, ax seg000:4013 jmp short loc_0_4020 seg000:4015 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4015 seg000:4015 loc_0_4015: ; CODE XREF: sub_0_4008+4j seg000:4015 and ax, 3FFh seg000:4018 cmp ax, 203h seg000:401B jz loc_0_4020 seg000:401D cmp ax, 213h seg000:4020 seg000:4020 loc_0_4020: ; CODE XREF: sub_0_4008+Bj seg000:4020 ; sub_0_4008+13j seg000:4020 pop ax seg000:4021 retn seg000:4021 sub_0_4008 endp seg000:4021 seg000:4022 seg000:4022 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4022 seg000:4022 ; S u b r o u t i n e seg000:4022 seg000:4022 sub_0_4022 proc near ; CODE XREF: seg000:0470p seg000:4022 call readTESTCR8E8F seg000:4025 jz locret_0_4041 seg000:4027 mov cl, 3Fh ; '?' seg000:4029 call getChrontelREG seg000:402C mov es:[di+22h], ch seg000:4030 mov cx, 22h ; '"' seg000:4033 seg000:4033 loc_0_4033: ; CODE XREF: sub_0_4022+1Cj seg000:4033 push cx seg000:4034 dec cl seg000:4036 call getChrontelREG seg000:4039 mov es:[di], ch seg000:403C inc di seg000:403D pop cx seg000:403E loop loc_0_4033 seg000:4040 inc di seg000:4041 seg000:4041 locret_0_4041: ; CODE XREF: sub_0_4022+3j seg000:4041 retn seg000:4041 sub_0_4022 endp seg000:4041 seg000:4042 seg000:4042 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4042 seg000:4042 ; S u b r o u t i n e seg000:4042 seg000:4042 sub_0_4042 proc near ; CODE XREF: sub_0_48F+8Cp seg000:4042 call readTESTCR8E8F seg000:4045 jz locret_0_4079 seg000:4047 mov cx, 22h ; '"' seg000:404A seg000:404A loc_0_404A: ; CODE XREF: sub_0_4042+2Dj seg000:404A push cx seg000:404B dec cl seg000:404D mov ch, [si] seg000:404F cmp cl, 1 seg000:4052 jnz loc_0_406A seg000:4054 mov al, ch seg000:4056 and al, 0Ch seg000:4058 shr al, 2 seg000:405B mov ah, ch seg000:405D and ah, 3 seg000:4060 shl ah, 2 seg000:4063 and ch, 0F0h seg000:4066 or ch, ah seg000:4068 or ch, al seg000:406A seg000:406A loc_0_406A: ; CODE XREF: sub_0_4042+10j seg000:406A call setChrontelReg seg000:406D inc si seg000:406E pop cx seg000:406F loop loc_0_404A seg000:4071 inc si seg000:4072 mov cl, 3Fh ; '?' seg000:4074 mov ch, [si] seg000:4076 call setChrontelReg seg000:4079 seg000:4079 locret_0_4079: ; CODE XREF: sub_0_4042+3j seg000:4079 retn seg000:4079 sub_0_4042 endp seg000:4079 seg000:407A seg000:407A ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:407A seg000:407A ; S u b r o u t i n e seg000:407A seg000:407A sub_0_407A proc near ; CODE XREF: seg000:1055p seg000:407A ; seg000:1339p seg000:407A push dx seg000:407B push cx seg000:407C and cx, 7FFFh seg000:4080 cmp ch, 2 seg000:4083 jz loc_0_40B7 seg000:4085 mov al, 6 seg000:4087 call VGAwrCR8E8F seg000:408A push ax seg000:408B test ah, 10h seg000:408E jz loc_0_40A7 seg000:4090 mov al, 21h ; '!' seg000:4092 call VGArCR seg000:4095 and ah, 7 seg000:4098 or ah, ah seg000:409A jnz loc_0_40A7 seg000:409C mov al, 1Ah seg000:409E call VGArGR seg000:40A1 and ah, 0CFh seg000:40A4 call VGAwGR seg000:40A7 seg000:40A7 loc_0_40A7: ; CODE XREF: sub_0_407A+14j seg000:40A7 ; sub_0_407A+20j seg000:40A7 pop ax seg000:40A8 and ah, 0EFh seg000:40AB call VGAwwCR8E8F seg000:40AE mov cl, 0Eh seg000:40B0 mov ch, 4Ch ; 'L' seg000:40B2 call setChrontelReg seg000:40B5 jmp short loc_0_410C seg000:40B7 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:40B7 seg000:40B7 loc_0_40B7: ; CODE XREF: sub_0_407A+9j seg000:40B7 cmp cx, 200h seg000:40BB jb loc_0_410C seg000:40BD cmp cx, 300h seg000:40C1 jnb loc_0_410C seg000:40C3 call readTESTCR8E8F seg000:40C6 jz loc_0_410C seg000:40C8 jb loc_0_40E0 seg000:40CA mov al, 4 seg000:40CC call VGAwrCR8E8F seg000:40CF test ah, 80h seg000:40D2 jnz loc_0_40DB seg000:40D4 call TV0409 seg000:40D7 or si, si seg000:40D9 jmp short loc_0_410E seg000:40DB ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:40DB seg000:40DB loc_0_40DB: ; CODE XREF: sub_0_407A+58j seg000:40DB call TV0509 seg000:40DE jmp short loc_0_40E5 seg000:40E0 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:40E0 seg000:40E0 loc_0_40E0: ; CODE XREF: sub_0_407A+4Ej seg000:40E0 pop cx seg000:40E1 push cx seg000:40E2 call TV0609 seg000:40E5 seg000:40E5 loc_0_40E5: ; CODE XREF: sub_0_407A+64j seg000:40E5 mov al, 20h ; ' ' seg000:40E7 call VGArGR seg000:40EA and ah, 0FEh seg000:40ED call VGAwGR seg000:40F0 mov al, 1Ah seg000:40F2 call VGArGR seg000:40F5 or ah, 0B0h seg000:40F8 call VGAwGR seg000:40FB mov al, 3 seg000:40FD call VGAwrCR8E8F seg000:4100 and ah, 7 seg000:4103 mov cl, ah seg000:4105 call TV0809 seg000:4108 or si, si seg000:410A jmp short loc_0_410E seg000:410C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:410C seg000:410C loc_0_410C: ; CODE XREF: sub_0_407A+3Bj seg000:410C ; sub_0_407A+41j seg000:410C ; sub_0_407A+47j seg000:410C ; sub_0_407A+4Cj seg000:410C cmp al, al seg000:410E seg000:410E loc_0_410E: ; CODE XREF: sub_0_407A+5Fj seg000:410E ; sub_0_407A+90j seg000:410E pop cx seg000:410F pop dx seg000:4110 retn seg000:4110 sub_0_407A endp seg000:4110 seg000:4110 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4111 TV09LST dw 413Fh ; DATA XREF: bl09+Eo seg000:4113 dw offset TV0109 seg000:4115 dw offset TV0209 seg000:4117 dw offset TV0309 seg000:4119 dw offset TV0409 seg000:411B dw offset TV0509 seg000:411D dw offset TV0609 seg000:411F dw offset TV0709 seg000:4121 dw offset TV0809 seg000:4123 dw offset TV0909 seg000:4125 dw offset TV0A09 seg000:4127 dw offset TV0B09 seg000:4129 seg000:4129 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4129 seg000:4129 ; S u b r o u t i n e seg000:4129 seg000:4129 bl09 proc near ; CODE XREF: seg000:3384u seg000:4129 ; DATA XREF: seg000:3346o seg000:4129 cmp ah, 0Bh seg000:412C jbe loc_0_4131 seg000:412E jmp loc_0_6042 seg000:4131 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4131 seg000:4131 loc_0_4131: ; CODE XREF: bl09+3j seg000:4131 mov bl, ah seg000:4133 xor bh, bh seg000:4135 shl bx, 1 seg000:4137 call cs:TV09LST[bx] seg000:413C jmp bl_exit seg000:413C bl09 endp seg000:413C seg000:413F seg000:413F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:413F seg000:413F ; S u b r o u t i n e seg000:413F seg000:413F TV0009 proc near ; CODE XREF: bl09+Eu seg000:413F call getChrontelREG seg000:4142 mov [bp+0Fh], ch seg000:4145 retn seg000:4145 TV0009 endp seg000:4145 seg000:4146 seg000:4146 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4146 seg000:4146 ; S u b r o u t i n e seg000:4146 seg000:4146 TV0109 proc near ; CODE XREF: bl09+Eu seg000:4146 ; DATA XREF: seg000:4113o seg000:4146 call setChrontelReg seg000:4146 TV0109 endp seg000:4146 seg000:4149 retn seg000:414A seg000:414A ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:414A seg000:414A ; S u b r o u t i n e seg000:414A seg000:414A TV0209 proc near ; CODE XREF: bl09+Eu seg000:414A ; DATA XREF: seg000:4115o seg000:414A mov al, 6 seg000:414C call VGAwrCR8E8F seg000:414F and ah, 0FCh seg000:4152 or ah, ch seg000:4154 shl cl, 1 seg000:4156 or ah, cl seg000:4158 mov al, 6 seg000:415A call VGAwwCR8E8F seg000:415D retn seg000:415D TV0209 endp seg000:415D seg000:415E seg000:415E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:415E seg000:415E ; S u b r o u t i n e seg000:415E seg000:415E TV0309 proc near ; CODE XREF: bl09+Eu seg000:415E ; DATA XREF: seg000:4117o seg000:415E mov al, 6 seg000:4160 call VGAwrCR8E8F seg000:4163 mov al, ah seg000:4165 and ah, 1 seg000:4168 and al, 2 seg000:416A shr al, 1 seg000:416C mov [bp+0Eh], ax seg000:416F retn seg000:416F TV0309 endp seg000:416F seg000:416F ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4170 db 9Bh ; seg000:4171 db 41h ; A seg000:4172 db 0FFh ; seg000:4173 db 0FFh ; seg000:4174 db 0 ; seg000:4175 db 0C9h ; seg000:4176 db 6 ; seg000:4177 db 10h ; seg000:4178 db 3 ; seg000:4179 db 2 ; seg000:417A db 6 ; seg000:417B db 10h ; seg000:417C db 0Dh ; seg000:417D db 3 ; seg000:417E db 0FFh ; seg000:417F db 0FFh ; seg000:4180 seg000:4180 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4180 seg000:4180 ; S u b r o u t i n e seg000:4180 seg000:4180 TV0409 proc near ; CODE XREF: sub_0_407A+5Ap seg000:4180 ; bl09+Eu seg000:4180 ; DATA XREF: seg000:4119o seg000:4180 call sub_0_10B1 seg000:4183 call GRrw20SEQ100FW seg000:4186 call getCRbase seg000:4189 mov si, 4170h seg000:418C call customPortPrg seg000:418F mov si, 4174h seg000:4192 call customChrontelR seg000:4195 retn seg000:4195 TV0409 endp seg000:4195 seg000:4195 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4196 db 9Bh ; seg000:4197 db 41h ; A seg000:4198 db 0FFh ; seg000:4199 db 0FFh ; seg000:419A db 0 ; seg000:419B db 0C1h ; seg000:419C db 6 ; seg000:419D db 10h ; seg000:419E db 3 ; seg000:419F db 2 ; seg000:41A0 db 0Dh ; seg000:41A1 db 3 ; seg000:41A2 db 0FFh ; seg000:41A3 db 0FFh ; seg000:41A4 seg000:41A4 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:41A4 seg000:41A4 ; S u b r o u t i n e seg000:41A4 seg000:41A4 TV0509 proc near ; CODE XREF: sub_0_407A+61p seg000:41A4 ; bl09+Eu seg000:41A4 ; DATA XREF: seg000:411Bo seg000:41A4 call sub_0_10B1 seg000:41A7 call GRrw20SEQ100FW seg000:41AA call getCRbase seg000:41AD mov si, 4196h seg000:41B0 call customPortPrg seg000:41B3 mov si, 419Ah seg000:41B6 call customChrontelR seg000:41B9 retn seg000:41B9 TV0509 endp seg000:41B9 seg000:41B9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:41BA dw 200h seg000:41BC dw 201h seg000:41BE dw 202h seg000:41C0 dw 203h seg000:41C2 dw 210h seg000:41C4 dw 211h seg000:41C6 dw 212h seg000:41C8 dw 213h seg000:41CA dw 220h seg000:41CC dw 221h seg000:41CE dw 222h seg000:41D0 dw 230h seg000:41D2 dw 231h seg000:41D4 dw 232h seg000:41D6 dw 101h seg000:41D8 dw 101h seg000:41DA dw 103h seg000:41DC dw 103h seg000:41DE dw 111h seg000:41E0 dw 111h seg000:41E2 dw 114h seg000:41E4 dw 114h seg000:41E6 dw 120h seg000:41E8 dw 120h seg000:41EA dw 122h seg000:41EC dw 121h seg000:41EE dw 121h seg000:41F0 dw 123h seg000:41F2 db 0E3h ; seg000:41F3 db 48h ; H seg000:41F4 db 0B3h ; seg000:41F5 db 48h ; H seg000:41F6 db 43h ; C seg000:41F7 db 49h ; I seg000:41F8 db 0A3h ; seg000:41F9 db 49h ; I seg000:41FA db 0E3h ; seg000:41FB db 48h ; H seg000:41FC db 0B3h ; seg000:41FD db 48h ; H seg000:41FE db 43h ; C seg000:41FF db 49h ; I seg000:4200 db 0A3h ; seg000:4201 db 49h ; I seg000:4202 db 0E3h ; seg000:4203 db 48h ; H seg000:4204 db 0B3h ; seg000:4205 db 48h ; H seg000:4206 db 43h ; C seg000:4207 db 49h ; I seg000:4208 db 0E3h ; seg000:4209 db 48h ; H seg000:420A db 0B3h ; seg000:420B db 48h ; H seg000:420C db 43h ; C seg000:420D db 49h ; I seg000:420E db 13h ; seg000:420F db 49h ; I seg000:4210 db 0B3h ; seg000:4211 db 48h ; H seg000:4212 db 73h ; s seg000:4213 db 49h ; I seg000:4214 db 0A3h ; seg000:4215 db 49h ; I seg000:4216 db 13h ; seg000:4217 db 49h ; I seg000:4218 db 0B3h ; seg000:4219 db 48h ; H seg000:421A db 73h ; s seg000:421B db 49h ; I seg000:421C db 0A3h ; seg000:421D db 49h ; I seg000:421E db 13h ; seg000:421F db 49h ; I seg000:4220 db 0B3h ; seg000:4221 db 48h ; H seg000:4222 db 73h ; s seg000:4223 db 49h ; I seg000:4224 db 13h ; seg000:4225 db 49h ; I seg000:4226 db 0B3h ; seg000:4227 db 48h ; H seg000:4228 db 73h ; s seg000:4229 db 49h ; I seg000:422A db 90h ; seg000:422B db 9Ah ; seg000:422C db 90h ; seg000:422D db 9Bh ; seg000:422E db 90h ; seg000:422F db 9Bh ; seg000:4230 db 90h ; seg000:4231 db 9Ah ; seg000:4232 db 90h ; seg000:4233 db 9Ah ; seg000:4234 db 90h ; seg000:4235 db 9Bh ; seg000:4236 db 90h ; seg000:4237 db 9Bh ; seg000:4238 db 90h ; seg000:4239 db 9Ah ; seg000:423A db 90h ; seg000:423B db 9Ah ; seg000:423C db 90h ; seg000:423D db 9Bh ; seg000:423E db 90h ; seg000:423F db 9Bh ; seg000:4240 db 90h ; seg000:4241 db 9Ah ; seg000:4242 db 90h ; seg000:4243 db 9Bh ; seg000:4244 db 90h ; seg000:4245 db 9Bh ; seg000:4246 seg000:4246 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4246 seg000:4246 ; S u b r o u t i n e seg000:4246 seg000:4246 TV0609 proc near ; CODE XREF: sub_0_407A+68p seg000:4246 ; bl09+Eu seg000:4246 ; DATA XREF: seg000:411Do seg000:4246 push cx seg000:4247 push bx seg000:4248 push dx seg000:4249 mov dx, cx seg000:424B push dx seg000:424C and dx, 7FFFh seg000:4250 seg000:4250 loc_0_4250: seg000:4250 mov cx, 0Eh seg000:4253 mov bx, 0 seg000:4256 seg000:4256 loc_0_4256: ; CODE XREF: TV0609+1Cj seg000:4256 mov ax, cs:[bx+41BAh] seg000:425B cmp ax, dx seg000:425D jz loc_0_426B seg000:425F add bx, 2 seg000:4262 loop loc_0_4256 seg000:4264 pop dx seg000:4265 seg000:4265 loc_0_4265: ; CODE XREF: TV0609+34j seg000:4265 pop dx seg000:4266 pop bx seg000:4267 pop cx seg000:4268 jmp locret_0_4364 seg000:426B ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:426B seg000:426B loc_0_426B: ; CODE XREF: TV0609+17j seg000:426B mov ax, cs:[bx+41D6h] seg000:4270 pop dx seg000:4271 and dx, 8000h seg000:4275 or ax, dx seg000:4277 call sub_0_122C seg000:427A jb loc_0_4265 seg000:427C and ax, 7FFFh seg000:427F mov cx, ax seg000:4281 pop dx seg000:4282 pop ax seg000:4283 push bx seg000:4284 mov bh, ah seg000:4286 mov al, 1Fh seg000:4288 call VGArCR seg000:428B push ax seg000:428C xor ah, ah seg000:428E call VGAwCR seg000:4291 call sub_0_10B1 seg000:4294 pop ax seg000:4295 call VGAwCR seg000:4298 pop bx seg000:4299 mov al, 1Eh seg000:429B call VGArCR seg000:429E and ah, 7Fh seg000:42A1 call VGAwCR seg000:42A4 pop cx seg000:42A5 mov ax, cx seg000:42A7 push bx seg000:42A8 mov si, 422Ah seg000:42AB add si, bx seg000:42AD call sub_0_11FB seg000:42B0 pop bx seg000:42B1 mov al, 6 seg000:42B3 call VGAwrCR8E8F seg000:42B6 or ah, 10h seg000:42B9 call VGAwwCR8E8F seg000:42BC push ax seg000:42BD call GRrw20SEQ100FW seg000:42C0 call getCRbase seg000:42C3 mov si, cs:[bx+41F2h] seg000:42C8 pop ax seg000:42C9 test ah, 40h seg000:42CC jz loc_0_42D3 seg000:42CE mov si, cs:[bx+420Eh] seg000:42D3 seg000:42D3 loc_0_42D3: ; CODE XREF: TV0609+86j seg000:42D3 call customPortPrg seg000:42D6 mov dx, 3CEh seg000:42D9 call customPortPrg seg000:42DC mov al, 8Dh ; '' seg000:42DE call VGArGR seg000:42E1 and ah, 0F0h seg000:42E4 call VGAwGR seg000:42E7 mov ax, cs:[bx+41D6h] seg000:42EC cmp ax, 120h seg000:42EF jb loc_0_4301 seg000:42F1 cmp ax, 125h seg000:42F4 ja loc_0_4301 seg000:42F6 mov al, 9Bh ; '' seg000:42F8 call VGArCR seg000:42FB or ah, 18h seg000:42FE call VGAwCR seg000:4301 seg000:4301 loc_0_4301: ; CODE XREF: TV0609+A9j seg000:4301 ; TV0609+AEj seg000:4301 mov al, 3 seg000:4303 call VGAwrCR8E8F seg000:4306 mov bl, ah seg000:4308 and bl, 18h seg000:430B shr bl, 3 seg000:430E test cs:word_0_B3, 4000h seg000:4315 jz loc_0_4325 seg000:4317 call frombl0609 seg000:431A and ah, 0E7h seg000:431D shl bl, 3 seg000:4320 or ah, bl seg000:4322 call VGAwwCR8E8F seg000:4325 seg000:4325 loc_0_4325: ; CODE XREF: TV0609+CFj seg000:4325 push bx seg000:4326 mov cl, 0Eh seg000:4328 mov ch, 4Bh ; 'K' seg000:432A call setChrontelReg seg000:432D call customChrontelR seg000:4330 pop bx seg000:4331 or bl, bl seg000:4333 jz locret_0_4364 seg000:4335 mov cl, 0Eh seg000:4337 mov ch, 0 seg000:4339 cmp bl, 1 seg000:433C jz loc_0_434C seg000:433E mov ch, 2 seg000:4340 cmp bl, 2 seg000:4343 jz loc_0_434C seg000:4345 mov ch, 3 seg000:4347 cmp bl, 3 seg000:434A jnz locret_0_4364 seg000:434C seg000:434C loc_0_434C: ; CODE XREF: TV0609+F6j seg000:434C ; TV0609+FDj seg000:434C push ax seg000:434D mov al, 21h ; '!' seg000:434F call VGArCRunlock seg000:4352 and ah, 7 seg000:4355 cmp ah, 0 seg000:4358 jz loc_0_435D seg000:435A or ch, 4 seg000:435D seg000:435D loc_0_435D: ; CODE XREF: TV0609+112j seg000:435D pop ax seg000:435E or ch, 48h seg000:4361 call setChrontelReg seg000:4364 seg000:4364 locret_0_4364: ; CODE XREF: TV0609+22j seg000:4364 ; TV0609+EDj TV0609+104j seg000:4364 retn seg000:4364 TV0609 endp seg000:4364 seg000:4365 seg000:4365 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4365 seg000:4365 ; S u b r o u t i n e seg000:4365 seg000:4365 TV0709 proc near ; CODE XREF: bl09+Eu seg000:4365 ; DATA XREF: seg000:411Fo seg000:4365 retn seg000:4365 TV0709 endp seg000:4365 seg000:4365 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4366 FlickFilterTabl db 0 ; seg000:4367 db 11h ; seg000:4368 db 15h ; seg000:4369 db 2Ah ; * seg000:436A db 0A9h ; seg000:436B seg000:436B ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:436B seg000:436B ; S u b r o u t i n e seg000:436B seg000:436B TV0809 proc near ; CODE XREF: CR90modify+7p seg000:436B ; sub_0_407A+8Bp seg000:436B ; bl09+Eu seg000:436B ; DATA XREF: seg000:4121o seg000:436B push ax seg000:436C push bx seg000:436D mov bl, cl seg000:436F xor bh, bh seg000:4371 mov ah, cs:[bx+4366h] seg000:4376 and ah, 3Fh seg000:4379 mov cl, 1 seg000:437B call getChrontelREG seg000:437E and ch, 0C0h seg000:4381 or ch, ah seg000:4383 call setChrontelReg seg000:4386 pop bx seg000:4387 pop ax seg000:4388 retn seg000:4388 TV0809 endp seg000:4388 seg000:4389 seg000:4389 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4389 seg000:4389 ; S u b r o u t i n e seg000:4389 seg000:4389 TV0909 proc near ; CODE XREF: bl07+94p seg000:4389 ; bl09+Eu seg000:4389 ; DATA XREF: seg000:4123o seg000:4389 cmp cx, 0 seg000:438C jnz loc_0_4391 seg000:438E jmp loc_0_443C seg000:4391 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4391 seg000:4391 loc_0_4391: ; CODE XREF: TV0909+3j seg000:4391 push cx seg000:4392 test cl, 0Fh seg000:4395 jz loc_0_43DF seg000:4397 mov cl, 0Bh seg000:4399 call getChrontelREG seg000:439C mov bl, ch seg000:439E mov cl, 8 seg000:43A0 call getChrontelREG seg000:43A3 mov bh, ch seg000:43A5 and bh, 1 seg000:43A8 pop cx seg000:43A9 push cx seg000:43AA xor ch, ch seg000:43AC test cl, 8 seg000:43AF jz loc_0_43BD seg000:43B1 and cl, 7 seg000:43B4 sub bx, cx seg000:43B6 jnb loc_0_43BB seg000:43B8 mov bx, 0 seg000:43BB seg000:43BB loc_0_43BB: ; CODE XREF: TV0909+2Dj seg000:43BB jmp short loc_0_43CB seg000:43BD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:43BD seg000:43BD loc_0_43BD: ; CODE XREF: TV0909+26j seg000:43BD and cl, 7 seg000:43C0 add bx, cx seg000:43C2 cmp bx, 83h ; '' seg000:43C6 jbe loc_0_43CB seg000:43C8 mov bx, 83h ; '' seg000:43CB seg000:43CB loc_0_43CB: ; CODE XREF: TV0909+32j seg000:43CB ; TV0909+3Dj seg000:43CB mov cl, 0Bh seg000:43CD mov ch, bl seg000:43CF call setChrontelReg seg000:43D2 mov cl, 8 seg000:43D4 call getChrontelREG seg000:43D7 and ch, 0FEh seg000:43DA or ch, bh seg000:43DC call setChrontelReg seg000:43DF seg000:43DF loc_0_43DF: ; CODE XREF: TV0909+Cj seg000:43DF pop cx seg000:43E0 test cl, 0F0h seg000:43E3 jnz loc_0_43E8 seg000:43E5 jmp locret_0_448E seg000:43E8 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:43E8 seg000:43E8 loc_0_43E8: ; CODE XREF: TV0909+5Aj seg000:43E8 push cx seg000:43E9 mov cl, 0Ah seg000:43EB call getChrontelREG seg000:43EE mov bl, ch seg000:43F0 mov cl, 8 seg000:43F2 call getChrontelREG seg000:43F5 mov bh, ch seg000:43F7 and bh, 2 seg000:43FA shr bh, 1 seg000:43FC pop cx seg000:43FD xor ch, ch seg000:43FF test cl, 80h seg000:4402 jz loc_0_4413 seg000:4404 and cl, 70h seg000:4407 shr cl, 4 seg000:440A sub bx, cx seg000:440C jnb loc_0_4411 seg000:440E mov bx, 0 seg000:4411 seg000:4411 loc_0_4411: ; CODE XREF: TV0909+83j seg000:4411 jmp short loc_0_4424 seg000:4413 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4413 seg000:4413 loc_0_4413: ; CODE XREF: TV0909+79j seg000:4413 and cl, 70h seg000:4416 shr cl, 4 seg000:4419 add bx, cx seg000:441B cmp bx, 0A0h ; '' seg000:441F jbe loc_0_4424 seg000:4421 mov bx, 0A0h ; '' seg000:4424 seg000:4424 loc_0_4424: ; CODE XREF: TV0909+88j seg000:4424 ; TV0909+96j seg000:4424 mov cl, 0Ah seg000:4426 mov ch, bl seg000:4428 call setChrontelReg seg000:442B mov cl, 8 seg000:442D call getChrontelREG seg000:4430 and ch, 0FDh seg000:4433 shl bh, 1 seg000:4435 or ch, bh seg000:4437 call setChrontelReg seg000:443A jmp short locret_0_448E seg000:443C ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:443C seg000:443C loc_0_443C: ; CODE XREF: TV0909+5j seg000:443C call dualdispCRTtest seg000:443F mov dx, cx seg000:4441 mov cx, 0Eh seg000:4444 mov bx, 0 seg000:4447 seg000:4447 loc_0_4447: ; CODE XREF: TV0909+CAj seg000:4447 mov ax, cs:[bx+41BAh] seg000:444C cmp ax, dx seg000:444E jz loc_0_4455 seg000:4450 add bx, 2 seg000:4453 loop loc_0_4447 seg000:4455 seg000:4455 loc_0_4455: ; CODE XREF: TV0909+C5j seg000:4455 mov cx, 18h seg000:4458 mov si, cs:[bx+41F2h] seg000:445D mov al, 6 seg000:445F call VGAwrCR8E8F seg000:4462 test ah, 40h seg000:4465 jz loc_0_446C seg000:4467 mov si, cs:[bx+420Eh] seg000:446C seg000:446C loc_0_446C: ; CODE XREF: TV0909+DCj seg000:446C mov al, 8 seg000:446E call findindex seg000:4471 and ah, 7 seg000:4474 mov cl, 8 seg000:4476 call getChrontelREG seg000:4479 and ch, 0F8h seg000:447C or ch, ah seg000:447E call setChrontelReg seg000:4481 mov cx, cs:[si] seg000:4484 call setChrontelReg seg000:4487 mov cx, cs:[si+2] seg000:448B call setChrontelReg seg000:448E seg000:448E locret_0_448E: ; CODE XREF: TV0909+5Cj seg000:448E ; TV0909+B1j seg000:448E retn seg000:448E TV0909 endp seg000:448E seg000:448F seg000:448F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:448F seg000:448F ; S u b r o u t i n e seg000:448F seg000:448F TV0A09 proc near ; CODE XREF: bl09+Eu seg000:448F ; DATA XREF: seg000:4125o seg000:448F cmp ch, 1 seg000:4492 jnb loc_0_44A9 seg000:4494 push ax seg000:4495 and cl, 7 seg000:4498 mov ah, cl seg000:449A mov cl, 11h seg000:449C call getChrontelREG seg000:449F and ch, 0F8h seg000:44A2 or ch, ah seg000:44A4 call setChrontelReg seg000:44A7 pop ax seg000:44A8 retn seg000:44A9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:44A9 seg000:44A9 loc_0_44A9: ; CODE XREF: TV0A09+3j seg000:44A9 mov cl, 11h seg000:44AB call getChrontelREG seg000:44AE and ch, 7 seg000:44B1 mov [bp+0Eh], ch seg000:44B4 retn seg000:44B4 TV0A09 endp seg000:44B4 seg000:44B5 seg000:44B5 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:44B5 seg000:44B5 ; S u b r o u t i n e seg000:44B5 seg000:44B5 TV0B09 proc near ; CODE XREF: bl09+Eu seg000:44B5 ; DATA XREF: seg000:4127o seg000:44B5 cmp ch, 1 seg000:44B8 jnb loc_0_44C5 seg000:44BA mov ch, cl seg000:44BC add ch, 5Ah ; 'Z' seg000:44BF mov cl, 9 seg000:44C1 call setChrontelReg seg000:44C4 retn seg000:44C5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:44C5 seg000:44C5 loc_0_44C5: ; CODE XREF: TV0B09+3j seg000:44C5 mov cl, 9 seg000:44C7 call getChrontelREG seg000:44CA sub ch, 5Ah ; 'Z' seg000:44CD mov [bp+0Eh], ch seg000:44D0 retn seg000:44D0 TV0B09 endp seg000:44D0 seg000:44D1 seg000:44D1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:44D1 seg000:44D1 ; S u b r o u t i n e seg000:44D1 seg000:44D1 frombl07 proc near ; CODE XREF: bl07+1C7p seg000:44D1 push cx seg000:44D2 cmp ch, 0 seg000:44D5 jnz loc_0_4506 seg000:44D7 push ax seg000:44D8 push bx seg000:44D9 mov ax, dx seg000:44DB mov bx, di seg000:44DD mov cl, 0Ah seg000:44DF mov ch, al seg000:44E1 call setChrontelReg seg000:44E4 mov cl, 0Bh seg000:44E6 mov ch, bl seg000:44E8 call setChrontelReg seg000:44EB mov cl, 8 seg000:44ED call getChrontelREG seg000:44F0 shl ah, 1 seg000:44F2 and ah, 2 seg000:44F5 and bh, 1 seg000:44F8 and ch, 0FCh seg000:44FB or ch, ah seg000:44FD or ch, bh seg000:44FF call setChrontelReg seg000:4502 pop bx seg000:4503 pop ax seg000:4504 jmp short loc_0_452D seg000:4506 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4506 seg000:4506 loc_0_4506: ; CODE XREF: frombl07+4j seg000:4506 push ax seg000:4507 push bx seg000:4508 mov cl, 0Ah seg000:450A call getChrontelREG seg000:450D mov al, ch seg000:450F mov cl, 0Bh seg000:4511 call getChrontelREG seg000:4514 mov bl, ch seg000:4516 mov cl, 8 seg000:4518 call getChrontelREG seg000:451B mov bh, ch seg000:451D and bh, 1 seg000:4520 mov di, bx seg000:4522 mov ah, ch seg000:4524 and ah, 2 seg000:4527 shr ah, 1 seg000:4529 mov dx, ax seg000:452B pop bx seg000:452C pop ax seg000:452D seg000:452D loc_0_452D: ; CODE XREF: frombl07+33j seg000:452D pop cx seg000:452E retn seg000:452E frombl07 endp seg000:452E seg000:452F seg000:452F ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:452F seg000:452F ; S u b r o u t i n e seg000:452F seg000:452F sub_0_452F proc near ; CODE XREF: bl07+276p seg000:452F push cx seg000:4530 mov al, 6 seg000:4532 call VGAwrCR8E8F seg000:4535 test ah, 10h seg000:4538 jz loc_0_4557 seg000:453A mov cl, 0Eh seg000:453C mov ch, 0 seg000:453E cmp bl, 1 seg000:4541 jz loc_0_4551 seg000:4543 mov ch, 2 seg000:4545 cmp bl, 2 seg000:4548 jz loc_0_4551 seg000:454A mov ch, 3 seg000:454C cmp bl, 3 seg000:454F jnz loc_0_4557 seg000:4551 seg000:4551 loc_0_4551: ; CODE XREF: sub_0_452F+12j seg000:4551 ; sub_0_452F+19j seg000:4551 or ch, 48h seg000:4554 call setChrontelReg seg000:4557 seg000:4557 loc_0_4557: ; CODE XREF: sub_0_452F+9j seg000:4557 ; sub_0_452F+20j seg000:4557 pop cx seg000:4558 retn seg000:4558 sub_0_452F endp seg000:4558 seg000:4559 seg000:4559 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4559 seg000:4559 ; S u b r o u t i n e seg000:4559 seg000:4559 customChrontelR proc near ; CODE XREF: TV0409+12p seg000:4559 ; TV0509+12p TV0609+E7p seg000:4559 ; customChrontelR+Ej seg000:4559 ; sub_0_4791+4Ap seg000:4559 mov cx, cs:[si] seg000:455C cmp cx, 0FFFFh seg000:455F jz locret_0_4569 seg000:4561 call setChrontelReg seg000:4564 add si, 2 seg000:4567 jmp short customChrontelR seg000:4569 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4569 seg000:4569 locret_0_4569: ; CODE XREF: customChrontelR+6j seg000:4569 retn seg000:4569 customChrontelR endp seg000:4569 seg000:456A seg000:456A ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:456A seg000:456A ; S u b r o u t i n e seg000:456A seg000:456A GRrw20SEQ100FW proc near ; CODE XREF: TV0409+3p seg000:456A ; TV0509+3p TV0609+77p seg000:456A mov al, 0Ah seg000:456C call VGArGR seg000:456F or ah, 20h seg000:4572 call VGAwGR seg000:4575 mov dx, 3C4h seg000:4578 mov al, 0Fh seg000:457A mov ah, 10h seg000:457C out dx, ax ; EGA: sequencer address reg seg000:457C ; seg000:457D retn seg000:457D GRrw20SEQ100FW endp seg000:457D seg000:457E seg000:457E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:457E seg000:457E ; S u b r o u t i n e seg000:457E seg000:457E getChrontelREG proc near ; CODE XREF: sub_0_4022+7p seg000:457E ; sub_0_4022+14p seg000:457E ; TV0009p TV0809+10p seg000:457E ; TV0909+10p TV0909+17p seg000:457E ; TV0909+4Bp TV0909+62p seg000:457E ; TV0909+69p TV0909+A4p seg000:457E ; TV0909+EDp TV0A09+Dp seg000:457E ; TV0A09+1Cp TV0B09+12p seg000:457E ; frombl07+1Cp seg000:457E ; frombl07+39p seg000:457E ; frombl07+40p seg000:457E ; frombl07+47p seg000:457E ; frombl0609+2p seg000:457E ; frombl0609+12p seg000:457E ; frombl0609+21p seg000:457E ; chronpowerdown+13p seg000:457E ; chrontelgetver+4p seg000:457E push ax seg000:457F push bx seg000:4580 pushf seg000:4581 cli seg000:4582 push cx seg000:4583 mov bx, cx seg000:4585 call i2cunlockVga seg000:4588 call sub_0_4755 seg000:458B call sub_0_4620 seg000:458E push bx seg000:458F mov bl, cs:byte_0_BA seg000:4594 and bl, 0FEh seg000:4597 call i2cwrite8b seg000:459A pop bx seg000:459B call i2cwrite8b seg000:459E call i2cisfree seg000:45A1 call sub_0_4620 seg000:45A4 mov bl, cs:byte_0_BA seg000:45A9 or bl, 1 seg000:45AC call i2cwrite8b seg000:45AF mov bh, cs:byte_0_3FCD seg000:45B4 call i2cget8b seg000:45B7 call sub_0_4654 seg000:45BA pop cx seg000:45BB mov ch, bl seg000:45BD popf seg000:45BE pop bx seg000:45BF pop ax seg000:45C0 retn seg000:45C0 getChrontelREG endp seg000:45C0 seg000:45C1 seg000:45C1 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:45C1 seg000:45C1 ; S u b r o u t i n e seg000:45C1 seg000:45C1 setChrontelReg proc near ; CODE XREF: sub_0_4042+28p seg000:45C1 ; sub_0_4042+34p seg000:45C1 ; sub_0_407A+38p seg000:45C1 ; TV0109p TV0609+E4p seg000:45C1 ; TV0609+11Bp TV0809+18p seg000:45C1 ; TV0909+46p TV0909+53p seg000:45C1 ; TV0909+9Fp TV0909+AEp seg000:45C1 ; TV0909+F5p TV0909+FBp seg000:45C1 ; TV0909+102p TV0A09+15p seg000:45C1 ; TV0B09+Cp frombl07+10p seg000:45C1 ; frombl07+17p seg000:45C1 ; frombl07+2Ep seg000:45C1 ; sub_0_452F+25p seg000:45C1 ; customChrontelR+8p seg000:45C1 ; frombl0609+8p seg000:45C1 ; frombl0609+Dp seg000:45C1 ; frombl0609+18p seg000:45C1 ; frombl0609+1Ep seg000:45C1 ; frombl0609+37p seg000:45C1 ; seg000:4863p seg000:45C1 ; chronpowerdown+1Cp seg000:45C1 push ax seg000:45C2 push bx seg000:45C3 push cx seg000:45C4 pushf seg000:45C5 cli seg000:45C6 mov bx, cx seg000:45C8 call i2cunlockVga seg000:45CB call sub_0_4755 seg000:45CE call sub_0_4620 seg000:45D1 push bx seg000:45D2 mov bl, cs:byte_0_BA seg000:45D7 and bl, 0FEh seg000:45DA call i2cwrite8b seg000:45DD pop bx seg000:45DE call i2cwrite8b seg000:45E1 mov bl, bh seg000:45E3 call i2cwrite8b seg000:45E6 call sub_0_4654 seg000:45E9 popf seg000:45EA pop cx seg000:45EB pop bx seg000:45EC pop ax seg000:45ED retn seg000:45ED setChrontelReg endp seg000:45ED seg000:45EE seg000:45EE ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:45EE seg000:45EE ; S u b r o u t i n e seg000:45EE seg000:45EE i2cunlockVga proc near ; CODE XREF: getChrontelREG+7p seg000:45EE ; setChrontelReg+7p seg000:45EE mov dx, 3CEh seg000:45F1 mov ax, 2609h seg000:45F4 out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:45F4 ; seg000:45F5 mov al, 0Ah seg000:45F7 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:45F7 ; seg000:45F8 in ax, dx ; EGA: graph 1 and 2 addr reg: seg000:45F8 ; seg000:45F9 or ah, 20h seg000:45FC out dx, ax ; EGA: graph 1 and 2 addr reg: seg000:45FC ; seg000:45FD retn seg000:45FD i2cunlockVga endp seg000:45FD seg000:45FE ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:45FE mov dx, cs:w3c4 seg000:4603 mov al, cs:b10h seg000:4607 out dx, al ; EGA: sequencer address reg seg000:4607 ; seg000:4608 in ax, dx ; EGA: sequencer address reg seg000:4608 ; seg000:4609 or ah, cs:byte_0_3FC4 seg000:460E out dx, ax ; EGA: sequencer address reg seg000:460E ; seg000:460F push cx seg000:4610 mov cx, 4 seg000:4613 seg000:4613 loc_0_4613: ; CODE XREF: seg000:4619j seg000:4613 call sub_0_4654 seg000:4616 call sub_0_4776 seg000:4619 loop loc_0_4613 seg000:461B call sub_0_2718 seg000:461E pop cx seg000:461F retn seg000:4620 seg000:4620 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4620 seg000:4620 ; S u b r o u t i n e seg000:4620 seg000:4620 sub_0_4620 proc near ; CODE XREF: getChrontelREG+Dp seg000:4620 ; getChrontelREG+23p seg000:4620 ; setChrontelReg+Dp seg000:4620 call sub_0_4776 seg000:4623 mov dx, cs:w3c4_2 seg000:4628 mov al, cs:byte_0_3FCB seg000:462C out dx, al ; EGA: sequencer address reg seg000:462C ; seg000:462D in ax, dx ; EGA: sequencer address reg seg000:462D ; seg000:462E or ah, cs:byte_0_3FCC seg000:4633 or ah, cs:byte_0_3FCD seg000:4638 out dx, ax ; EGA: sequencer address reg seg000:4638 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:4639 call sub_0_4755 seg000:463C call i2cisfree seg000:463F mov dx, cs:w3c4_2 seg000:4644 mov al, cs:byte_0_3FCB seg000:4648 out dx, al ; EGA: sequencer address reg seg000:4648 ; seg000:4649 in ax, dx ; EGA: sequencer address reg seg000:4649 ; seg000:464A and ah, cs:byte_0_3FD0 seg000:464F out dx, ax ; EGA: sequencer address reg seg000:464F ; seg000:4650 call i2cisfree seg000:4653 retn seg000:4653 sub_0_4620 endp seg000:4653 seg000:4654 seg000:4654 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4654 seg000:4654 ; S u b r o u t i n e seg000:4654 seg000:4654 sub_0_4654 proc near ; CODE XREF: getChrontelREG+39p seg000:4654 ; setChrontelReg+25p seg000:4654 ; seg000:4613p seg000:4654 call sub_0_4776 seg000:4657 mov dx, cs:w3c4_2 seg000:465C mov al, cs:byte_0_3FCB seg000:4660 out dx, al ; EGA: sequencer address reg seg000:4660 ; seg000:4661 in ax, dx ; EGA: sequencer address reg seg000:4661 ; seg000:4662 or ah, cs:byte_0_3FCC seg000:4667 and ah, cs:byte_0_3FD0 seg000:466C out dx, ax ; EGA: sequencer address reg seg000:466C ; seg000:466D call sub_0_4755 seg000:4670 call i2cisfree seg000:4673 mov dx, cs:w3c4_2 seg000:4678 mov al, cs:byte_0_3FCB seg000:467C out dx, al ; EGA: sequencer address reg seg000:467C ; seg000:467D in ax, dx ; EGA: sequencer address reg seg000:467D ; seg000:467E or ah, cs:byte_0_3FCD seg000:4683 out dx, ax ; EGA: sequencer address reg seg000:4683 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:4684 call i2cisfree seg000:4687 retn seg000:4687 sub_0_4654 endp seg000:4687 seg000:4688 seg000:4688 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4688 seg000:4688 ; S u b r o u t i n e seg000:4688 seg000:4688 i2cwrite8b proc near ; CODE XREF: getChrontelREG+19p seg000:4688 ; getChrontelREG+1Dp seg000:4688 ; getChrontelREG+2Ep seg000:4688 ; setChrontelReg+19p seg000:4688 ; setChrontelReg+1Dp seg000:4688 ; setChrontelReg+22p seg000:4688 push bx seg000:4689 push cx seg000:468A mov cx, 8 seg000:468D seg000:468D loc_0_468D: ; CODE XREF: i2cwrite8b+2Aj seg000:468D call sub_0_4776 seg000:4690 mov dx, cs:w3c4_2 seg000:4695 mov al, cs:byte_0_3FCB seg000:4699 out dx, al ; EGA: sequencer address reg seg000:4699 ; seg000:469A in ax, dx ; EGA: sequencer address reg seg000:469A ; seg000:469B or ah, cs:byte_0_3FCC seg000:46A0 and ah, cs:byte_0_3FD0 seg000:46A5 shl bl, 1 seg000:46A7 jnb loc_0_46AE seg000:46A9 or ah, cs:byte_0_3FCD seg000:46AE seg000:46AE loc_0_46AE: ; CODE XREF: i2cwrite8b+1Fj seg000:46AE out dx, ax ; EGA: sequencer address reg seg000:46AE ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:46AF call sub_0_4755 seg000:46B2 loop loc_0_468D seg000:46B4 call sub_0_4776 seg000:46B7 mov dx, cs:w3c4_2 seg000:46BC mov al, cs:byte_0_3FCB seg000:46C0 out dx, al ; EGA: sequencer address reg seg000:46C0 ; seg000:46C1 in ax, dx ; EGA: sequencer address reg seg000:46C1 ; seg000:46C2 push bx seg000:46C3 mov bl, cs:byte_0_3FCC seg000:46C8 not bl seg000:46CA and ah, bl seg000:46CC pop bx seg000:46CD or ah, cs:byte_0_3FCD seg000:46D2 out dx, ax ; EGA: sequencer address reg seg000:46D2 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:46D3 call sub_0_4755 seg000:46D6 call i2cisfree seg000:46D9 mov dx, cs:w3c4_2 seg000:46DE mov al, cs:byte_0_3FCE seg000:46E2 out dx, al ; EGA: sequencer address reg seg000:46E2 ; seg000:46E3 in ax, dx ; EGA: sequencer address reg seg000:46E3 ; seg000:46E4 test cs:byte_0_3FCF, ah seg000:46E9 jz loc_0_46EB seg000:46EB seg000:46EB loc_0_46EB: seg000:46EB pop cx seg000:46EC pop bx seg000:46ED retn seg000:46ED i2cwrite8b endp seg000:46ED seg000:46EE seg000:46EE ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:46EE seg000:46EE ; S u b r o u t i n e seg000:46EE seg000:46EE i2cget8b proc near ; CODE XREF: getChrontelREG+36p seg000:46EE push cx seg000:46EF xor bl, bl seg000:46F1 mov cx, 8 seg000:46F4 seg000:46F4 loc_0_46F4: ; CODE XREF: i2cget8b+42j seg000:46F4 call sub_0_4776 seg000:46F7 mov dx, cs:w3c4_2 seg000:46FC mov al, cs:byte_0_3FCB seg000:4700 out dx, al ; EGA: sequencer address reg seg000:4700 ; seg000:4701 in ax, dx ; EGA: sequencer address reg seg000:4701 ; seg000:4702 push bx seg000:4703 mov bl, cs:byte_0_3FCC seg000:4708 not bl seg000:470A and ah, bl seg000:470C pop bx seg000:470D or ah, cs:byte_0_3FCD seg000:4712 out dx, ax ; EGA: sequencer address reg seg000:4712 ; map mask: data bits 0-3 enable writes to bit planes 0-3 seg000:4713 call sub_0_4755 seg000:4716 call strange_wait_lo seg000:4719 mov dx, cs:w3c4_2 seg000:471E mov al, cs:byte_0_3FCE seg000:4722 out dx, al ; EGA: sequencer address reg seg000:4722 ; seg000:4723 in ax, dx ; EGA: sequencer address reg seg000:4723 ; seg000:4724 shl bl, 1 seg000:4726 test cs:byte_0_3FCF, ah seg000:472B jz loc_0_4730 seg000:472D or bl, 1 seg000:4730 seg000:4730 loc_0_4730: ; CODE XREF: i2cget8b+3Dj seg000:4730 loop loc_0_46F4 seg000:4732 call sub_0_4776 seg000:4735 mov dx, cs:w3c4_2 seg000:473A mov al, cs:byte_0_3FCB seg000:473E out dx, al ; EGA: sequencer address reg seg000:473E ; seg000:473F in ax, dx ; EGA: sequencer address reg seg000:473F ; seg000:4740 or ah, cs:byte_0_3FCC seg000:4745 and ah, cs:byte_0_3FD0 seg000:474A or ah, bh seg000:474C out dx, ax ; EGA: sequencer address reg seg000:474C ; seg000:474D call strange_wait_lo seg000:4750 call sub_0_4755 seg000:4753 pop cx seg000:4754 retn seg000:4754 i2cget8b endp seg000:4754 seg000:4755 seg000:4755 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4755 seg000:4755 ; S u b r o u t i n e seg000:4755 seg000:4755 sub_0_4755 proc near ; CODE XREF: getChrontelREG+Ap seg000:4755 ; setChrontelReg+Ap seg000:4755 ; sub_0_4620+19p seg000:4755 ; sub_0_4654+19p seg000:4755 ; i2cwrite8b+27p seg000:4755 ; i2cwrite8b+4Bp seg000:4755 ; i2cget8b+25p seg000:4755 ; i2cget8b+62p seg000:4755 push cx seg000:4756 mov dx, cs:w3c4 seg000:475B mov al, cs:b10h seg000:475F out dx, al ; EGA: sequencer address reg seg000:475F ; seg000:4760 in ax, dx ; EGA: sequencer address reg seg000:4760 ; seg000:4761 call i2cisfree seg000:4764 or ah, cs:byte_0_3FC5 seg000:4769 or ah, cs:byte_0_3FC4 seg000:476E out dx, ax seg000:476F call strange_wait_lo seg000:4772 or dx, dx seg000:4774 pop cx seg000:4775 retn seg000:4775 sub_0_4755 endp seg000:4775 seg000:4776 seg000:4776 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4776 seg000:4776 ; S u b r o u t i n e seg000:4776 seg000:4776 sub_0_4776 proc near ; CODE XREF: seg000:4616p seg000:4776 ; sub_0_4620p sub_0_4654p seg000:4776 ; i2cwrite8b+5p seg000:4776 ; i2cwrite8b+2Cp seg000:4776 ; i2cget8b+6p i2cget8b+44p seg000:4776 call i2cisfree seg000:4779 mov dx, cs:w3c4 seg000:477E mov al, cs:b10h seg000:4782 out dx, al ; EGA: sequencer address reg seg000:4782 ; seg000:4783 in ax, dx ; EGA: sequencer address reg seg000:4783 ; seg000:4784 and ah, cs:byte_0_3FC8 seg000:4789 out dx, ax ; EGA: sequencer address reg seg000:4789 ; seg000:478A retn seg000:478A sub_0_4776 endp seg000:478A seg000:478A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:478B db 10h ; seg000:478C db 0 ; seg000:478D db 0Eh ; seg000:478E db 4Ch ; L seg000:478F db 0FFh ; seg000:4790 db 0FFh ; seg000:4791 seg000:4791 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4791 seg000:4791 ; S u b r o u t i n e seg000:4791 seg000:4791 sub_0_4791 proc near ; CODE XREF: sub_0_B7E0+7Ap seg000:4791 push ax seg000:4792 push cx seg000:4793 push es seg000:4794 push ds seg000:4795 mov ax, cs:word_0_B3 seg000:4799 and ax, 0C00h seg000:479C shr ah, 2 seg000:479F and ah, 0DFh seg000:47A2 cmp cs:byte_0_BA, 0EAh ; '' seg000:47A8 jz loc_0_47AD seg000:47AA or ah, 20h seg000:47AD seg000:47AD loc_0_47AD: ; CODE XREF: sub_0_4791+17j seg000:47AD test cs:word_0_AF, 2000h seg000:47B4 jz loc_0_47B9 seg000:47B6 or ah, 40h seg000:47B9 seg000:47B9 loc_0_47B9: ; CODE XREF: sub_0_4791+23j seg000:47B9 mov al, 6 seg000:47BB call VGAwwCR8E8F seg000:47BE test cs:word_0_B3, 200h seg000:47C5 jz loc_0_47D8 seg000:47C7 mov ax, cs seg000:47C9 mov ds, ax seg000:47CB assume ds:seg000 seg000:47CB mov es, ax seg000:47CD assume es:seg000 seg000:47CD mov si, 3FD1h seg000:47D0 mov di, 3FC9h seg000:47D3 mov cx, 8 seg000:47D6 rep movsb seg000:47D8 seg000:47D8 loc_0_47D8: ; CODE XREF: sub_0_4791+34j seg000:47D8 mov si, 478Bh seg000:47DB call customChrontelR seg000:47DE pop ds seg000:47DF assume ds:nothing seg000:47DF pop es seg000:47E0 assume es:nothing seg000:47E0 pop cx seg000:47E1 pop ax seg000:47E2 retn seg000:47E2 sub_0_4791 endp seg000:47E2 seg000:47E3 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:47E3 call readTESTCR8E8F seg000:47E6 jnz frombl0609 seg000:47E8 stc seg000:47E9 jmp short locret_0_4826 seg000:47EB seg000:47EB ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:47EB seg000:47EB ; S u b r o u t i n e seg000:47EB seg000:47EB frombl0609 proc near ; CODE XREF: TV0609+D1p seg000:47EB ; seg000:47E6j seg000:47EB mov cl, 0Eh seg000:47ED call getChrontelREG seg000:47F0 push cx seg000:47F1 mov ch, 0 seg000:47F3 call setChrontelReg seg000:47F6 mov ch, 4Bh ; 'K' seg000:47F8 call setChrontelReg seg000:47FB mov cl, 10h seg000:47FD call getChrontelREG seg000:4800 or ch, 1 seg000:4803 call setChrontelReg seg000:4806 and ch, 0FEh seg000:4809 call setChrontelReg seg000:480C call getChrontelREG seg000:480F xor bl, bl seg000:4811 test ch, 2 seg000:4814 jnz loc_0_4819 seg000:4816 or bl, 2 seg000:4819 seg000:4819 loc_0_4819: ; CODE XREF: frombl0609+29j seg000:4819 test ch, 0Ch seg000:481C jnz loc_0_4821 seg000:481E or bl, 1 seg000:4821 seg000:4821 loc_0_4821: ; CODE XREF: frombl0609+31j seg000:4821 pop cx seg000:4822 call setChrontelReg seg000:4825 clc seg000:4826 seg000:4826 locret_0_4826: ; CODE XREF: seg000:47E9j seg000:4826 retn seg000:4826 frombl0609 endp seg000:4826 seg000:4827 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4827 seg000:4827 loc_0_4827: ; CODE XREF: seg000:3091p seg000:4827 push ax seg000:4828 push cx seg000:4829 call readTESTCR8E8F seg000:482C jz loc_0_4871 seg000:482E mov al, 6 seg000:4830 call VGAwrCR8E8F seg000:4833 test ah, 10h seg000:4836 jz loc_0_4871 seg000:4838 mov al, 3 seg000:483A call VGAwrCR8E8F seg000:483D mov bl, ah seg000:483F and bl, 18h seg000:4842 shr bl, 3 seg000:4845 or bl, bl seg000:4847 jz loc_0_4871 seg000:4849 mov cl, 0Eh seg000:484B mov ch, 0 seg000:484D cmp bl, 1 seg000:4850 jz loc_0_4860 seg000:4852 mov ch, 2 seg000:4854 cmp bl, 2 seg000:4857 jz loc_0_4860 seg000:4859 mov ch, 3 seg000:485B cmp bl, 3 seg000:485E jz loc_0_4871 seg000:4860 seg000:4860 loc_0_4860: ; CODE XREF: seg000:4850j seg000:4860 ; seg000:4857j seg000:4860 or ch, 48h seg000:4863 call setChrontelReg seg000:4866 mov al, 1Ah seg000:4868 call VGArGR seg000:486B or ah, 0B0h seg000:486E call VGAwGR seg000:4871 seg000:4871 loc_0_4871: ; CODE XREF: seg000:482Cj seg000:4871 ; seg000:4836j seg000:4871 ; seg000:4847j seg000:4871 ; seg000:485Ej seg000:4871 pop cx seg000:4872 pop ax seg000:4873 retn seg000:4874 seg000:4874 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4874 seg000:4874 ; S u b r o u t i n e seg000:4874 seg000:4874 chronpowerdown proc near ; CODE XREF: sub_0_1BD0+118p seg000:4874 ; seg000:3096p seg000:4874 push ax seg000:4875 push cx seg000:4876 call readTESTCR8E8F seg000:4879 jz loc_0_4893 seg000:487B mov al, 6 seg000:487D call VGAwrCR8E8F seg000:4880 test ah, 10h seg000:4883 jz loc_0_4893 seg000:4885 mov cl, 0Eh seg000:4887 call getChrontelREG seg000:488A and ch, 0FBh seg000:488D or ch, 4 seg000:4890 call setChrontelReg seg000:4893 seg000:4893 loc_0_4893: ; CODE XREF: chronpowerdown+5j seg000:4893 ; chronpowerdown+Fj seg000:4893 pop cx seg000:4894 pop ax seg000:4895 retn seg000:4895 chronpowerdown endp seg000:4895 seg000:4896 seg000:4896 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4896 seg000:4896 ; S u b r o u t i n e seg000:4896 seg000:4896 chrontelgetver proc near ; CODE XREF: sub_0_B7E0+82p seg000:4896 push ax seg000:4897 push cx seg000:4898 mov cl, 25h ; '%' seg000:489A call getChrontelREG seg000:489D and ch, 0F0h seg000:48A0 clc seg000:48A1 cmp ch, 30h ; '0' seg000:48A4 jz loc_0_48A7 seg000:48A6 stc seg000:48A7 seg000:48A7 loc_0_48A7: ; CODE XREF: chrontelgetver+Ej seg000:48A7 pop cx seg000:48A8 pop ax seg000:48A9 retn seg000:48A9 chrontelgetver endp seg000:48A9 seg000:48A9 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:48AA aChrontel db 'chrontel',0 seg000:48B3 db 9Ch ; seg000:48B4 db 64h ; d seg000:48B5 db 0A0h ; seg000:48B6 db 6Fh ; o seg000:48B7 db 0A1h ; seg000:48B8 db 26h ; & seg000:48B9 db 9Bh ; seg000:48BA db 41h ; A seg000:48BB db 0FFh ; seg000:48BC db 0FFh ; seg000:48BD db 8Bh ; seg000:48BE db 0Ah ; seg000:48BF db 8Ch ; seg000:48C0 db 5 ; seg000:48C1 db 0FFh ; seg000:48C2 db 0FFh ; seg000:48C3 db 0 ; seg000:48C4 db 61h ; a seg000:48C5 db 3 ; seg000:48C6 db 0 ; seg000:48C7 db 4 ; seg000:48C8 db 40h ; @ seg000:48C9 db 6 ; seg000:48CA db 0 ; seg000:48CB db 7 ; seg000:48CC db 58h ; X seg000:48CD db 8 ; seg000:48CE db 30h ; 0 seg000:48CF db 0Ah ; seg000:48D0 db 37h ; 7 seg000:48D1 db 0Bh ; seg000:48D2 db 1Bh ; seg000:48D3 db 0Dh ; seg000:48D4 db 63h ; c seg000:48D5 db 0Eh ; seg000:48D6 db 4Bh ; K seg000:48D7 db 10h ; seg000:48D8 db 76h ; v seg000:48D9 db 13h ; seg000:48DA db 0 ; seg000:48DB db 14h ; seg000:48DC db 6 ; seg000:48DD db 15h ; seg000:48DE db 0Bh ; seg000:48DF db 20h ; seg000:48E0 db 1Ah ; seg000:48E1 db 0FFh ; seg000:48E2 db 0FFh ; seg000:48E3 db 9Ch ; seg000:48E4 db 5Dh ; ] seg000:48E5 db 0A0h ; seg000:48E6 db 0Bh ; seg000:48E7 db 0A1h ; seg000:48E8 db 26h ; & seg000:48E9 db 9Bh ; seg000:48EA db 41h ; A seg000:48EB db 0FFh ; seg000:48EC db 0FFh ; seg000:48ED db 8Bh ; seg000:48EE db 6Fh ; o seg000:48EF db 8Ch ; seg000:48F0 db 40h ; @ seg000:48F1 db 0FFh ; seg000:48F2 db 0FFh ; seg000:48F3 db 0 ; seg000:48F4 db 69h ; i seg000:48F5 db 3 ; seg000:48F6 db 0 ; seg000:48F7 db 4 ; seg000:48F8 db 0 ; seg000:48F9 db 6 ; seg000:48FA db 0 ; seg000:48FB db 7 ; seg000:48FC db 20h ; seg000:48FD db 8 ; seg000:48FE db 30h ; 0 seg000:48FF db 0Ah ; seg000:4900 db 20h ; seg000:4901 db 0Bh ; seg000:4902 db 1 ; seg000:4903 db 0Dh ; seg000:4904 db 63h ; c seg000:4905 db 0Eh ; seg000:4906 db 4Bh ; K seg000:4907 db 10h ; seg000:4908 db 76h ; v seg000:4909 db 13h ; seg000:490A db 0 ; seg000:490B db 14h ; seg000:490C db 41h ; A seg000:490D db 15h ; seg000:490E db 70h ; p seg000:490F db 20h ; seg000:4910 db 0Ah ; seg000:4911 db 0FFh ; seg000:4912 db 0FFh ; seg000:4913 db 9Ch ; seg000:4914 db 5Dh ; ] seg000:4915 db 0A0h ; seg000:4916 db 56h ; V seg000:4917 db 0A1h ; seg000:4918 db 26h ; & seg000:4919 db 9Bh ; seg000:491A db 41h ; A seg000:491B db 0FFh ; seg000:491C db 0FFh ; seg000:491D db 8Bh ; seg000:491E db 7Fh ;  seg000:491F db 8Ch ; seg000:4920 db 40h ; @ seg000:4921 db 0FFh ; seg000:4922 db 0FFh ; seg000:4923 db 0 ; seg000:4924 db 6Ah ; j seg000:4925 db 3 ; seg000:4926 db 0 ; seg000:4927 db 4 ; seg000:4928 db 0 ; seg000:4929 db 6 ; seg000:492A db 0 ; seg000:492B db 7 ; seg000:492C db 20h ; seg000:492D db 8 ; seg000:492E db 30h ; 0 seg000:492F db 0Ah ; seg000:4930 db 30h ; 0 seg000:4931 db 0Bh ; seg000:4932 db 0Eh ; seg000:4933 db 0Dh ; seg000:4934 db 63h ; c seg000:4935 db 0Eh ; seg000:4936 db 4Bh ; K seg000:4937 db 10h ; seg000:4938 db 76h ; v seg000:4939 db 13h ; seg000:493A db 0 ; seg000:493B db 14h ; seg000:493C db 41h ; A seg000:493D db 15h ; seg000:493E db 80h ; seg000:493F db 20h ; seg000:4940 db 0Ah ; seg000:4941 db 0FFh ; seg000:4942 db 0FFh ; seg000:4943 db 9Ch ; seg000:4944 db 71h ; q seg000:4945 db 0A0h ; seg000:4946 db 6Fh ; o seg000:4947 db 0A1h ; seg000:4948 db 0E0h ; seg000:4949 db 9Bh ; seg000:494A db 41h ; A seg000:494B db 0FFh ; seg000:494C db 0FFh ; seg000:494D db 8Bh ; seg000:494E db 43h ; C seg000:494F db 8Ch ; seg000:4950 db 20h ; seg000:4951 db 0FFh ; seg000:4952 db 0FFh ; seg000:4953 db 0 ; seg000:4954 db 81h ; seg000:4955 db 3 ; seg000:4956 db 0 ; seg000:4957 db 4 ; seg000:4958 db 40h ; @ seg000:4959 db 6 ; seg000:495A db 0 ; seg000:495B db 7 ; seg000:495C db 64h ; d seg000:495D db 8 ; seg000:495E db 0 ; seg000:495F db 0Ah ; seg000:4960 db 24h ; $ seg000:4961 db 0Bh ; seg000:4962 db 1 ; seg000:4963 db 0Dh ; seg000:4964 db 60h ; ` seg000:4965 db 0Eh ; seg000:4966 db 4Bh ; K seg000:4967 db 10h ; seg000:4968 db 76h ; v seg000:4969 db 13h ; seg000:496A db 0 ; seg000:496B db 14h ; seg000:496C db 0Eh ; seg000:496D db 15h ; seg000:496E db 1Fh ; seg000:496F db 20h ; seg000:4970 db 0Ah ; seg000:4971 db 0FFh ; seg000:4972 db 0FFh ; seg000:4973 db 9Ch ; seg000:4974 db 73h ; s seg000:4975 db 0A0h ; seg000:4976 db 0ECh ; seg000:4977 db 0A1h ; seg000:4978 db 0E0h ; seg000:4979 db 9Bh ; seg000:497A db 41h ; A seg000:497B db 0FFh ; seg000:497C db 0FFh ; seg000:497D db 8Bh ; seg000:497E db 57h ; W seg000:497F db 8Ch ; seg000:4980 db 22h ; " seg000:4981 db 0FFh ; seg000:4982 db 0FFh ; seg000:4983 db 0 ; seg000:4984 db 83h ; seg000:4985 db 3 ; seg000:4986 db 0 ; seg000:4987 db 4 ; seg000:4988 db 40h ; @ seg000:4989 db 6 ; seg000:498A db 0 ; seg000:498B db 7 ; seg000:498C db 78h ; x seg000:498D db 8 ; seg000:498E db 30h ; 0 seg000:498F db 0Ah ; seg000:4990 db 42h ; B seg000:4991 db 0Bh ; seg000:4992 db 18h ; seg000:4993 db 0Dh ; seg000:4994 db 60h ; ` seg000:4995 db 0Eh ; seg000:4996 db 4Bh ; K seg000:4997 db 10h ; seg000:4998 db 76h ; v seg000:4999 db 13h ; seg000:499A db 0 ; seg000:499B db 14h ; seg000:499C db 23h ; # seg000:499D db 15h ; seg000:499E db 58h ; X seg000:499F db 20h ; seg000:49A0 db 1Ah ; seg000:49A1 db 0FFh ; seg000:49A2 db 0FFh ; seg000:49A3 db 9Ch ; seg000:49A4 db 7Dh ; } seg000:49A5 db 0A0h ; seg000:49A6 db 0BAh ; seg000:49A7 db 0A1h ; seg000:49A8 db 0E0h ; seg000:49A9 db 9Bh ; seg000:49AA db 41h ; A seg000:49AB db 0FFh ; seg000:49AC db 0FFh ; seg000:49AD db 8Bh ; seg000:49AE db 3Fh ; ? seg000:49AF db 8Ch ; seg000:49B0 db 14h ; seg000:49B1 db 0FFh ; seg000:49B2 db 0FFh ; seg000:49B3 db 0 ; seg000:49B4 db 8Ch ; seg000:49B5 db 3 ; seg000:49B6 db 0 ; seg000:49B7 db 4 ; seg000:49B8 db 40h ; @ seg000:49B9 db 6 ; seg000:49BA db 0 ; seg000:49BB db 7 ; seg000:49BC db 40h ; @ seg000:49BD db 8 ; seg000:49BE db 0 ; seg000:49BF db 0Ah ; seg000:49C0 db 2Fh ; / seg000:49C1 db 0Bh ; seg000:49C2 db 7 ; seg000:49C3 db 0Dh ; seg000:49C4 db 63h ; c seg000:49C5 db 0Eh ; seg000:49C6 db 4Bh ; K seg000:49C7 db 10h ; seg000:49C8 db 76h ; v seg000:49C9 db 20h ; seg000:49CA db 0Ah ; seg000:49CB db 0FFh ; seg000:49CC db 0FFh ; seg000:49CD db 9Ch ; seg000:49CE db 80h ; seg000:49CF db 0A0h ; seg000:49D0 db 0ECh ; seg000:49D1 db 0A1h ; seg000:49D2 db 0E0h ; seg000:49D3 db 9Bh ; seg000:49D4 db 41h ; A seg000:49D5 db 0FFh ; seg000:49D6 db 0FFh ; seg000:49D7 db 8Bh ; seg000:49D8 db 7Eh ; ~ seg000:49D9 db 8Ch ; seg000:49DA db 25h ; % seg000:49DB db 0FFh ; seg000:49DC db 0FFh ; seg000:49DD db 0 ; seg000:49DE db 8Dh ; seg000:49DF db 3 ; seg000:49E0 db 0 ; seg000:49E1 db 4 ; seg000:49E2 db 0 ; seg000:49E3 db 6 ; seg000:49E4 db 0 ; seg000:49E5 db 7 ; seg000:49E6 db 62h ; b seg000:49E7 db 8 ; seg000:49E8 db 30h ; 0 seg000:49E9 db 0Ah ; seg000:49EA db 3Fh ; ? seg000:49EB db 0Bh ; seg000:49EC db 13h ; seg000:49ED db 0Dh ; seg000:49EE db 63h ; c seg000:49EF db 0Eh ; seg000:49F0 db 4Bh ; K seg000:49F1 db 10h ; seg000:49F2 db 76h ; v seg000:49F3 db 13h ; seg000:49F4 db 2 ; seg000:49F5 db 14h ; seg000:49F6 db 5Bh ; [ seg000:49F7 db 15h ; seg000:49F8 db 30h ; 0 seg000:49F9 db 20h ; seg000:49FA db 0Ah ; seg000:49FB db 0FFh ; seg000:49FC db 0FFh ; seg000:49FD db 64h ; d seg000:49FE db 0A6h ; seg000:49FF db 0Fh ; seg000:4A00 db 0B9h ; seg000:4A01 off_0_4A01 dw offset loc_0_53E4 ; DATA XREF: int_10_entry+4Do seg000:4A03 dw offset loc_0_6055 seg000:4A05 dw offset loc_0_60E0 seg000:4A07 dw offset loc_0_6116 seg000:4A09 dw offset loc_0_60D7 seg000:4A0B dw offset loc_0_612E seg000:4A0D dw offset loc_0_6176 seg000:4A0F dw offset loc_0_61C2 seg000:4A11 dw offset loc_0_5C21 seg000:4A13 dw offset loc_0_5D63 seg000:4A15 dw offset loc_0_5E00 seg000:4A17 dw offset loc_0_6D21 seg000:4A19 dw offset loc_0_655B seg000:4A1B dw offset loc_0_6573 seg000:4A1D dw offset unk_0_67A2 seg000:4A1F dw offset loc_0_6AD1 seg000:4A21 dw offset loc_0_6B10 seg000:4A23 dw offset loc_0_6DB7 seg000:4A25 dw offset loc_0_7072 seg000:4A27 dw offset loc_0_69C9 seg000:4A29 dw offset int10_exit seg000:4A2B dw offset int10_exit seg000:4A2D dw offset int10_exit seg000:4A2F dw offset int10_exit seg000:4A31 dw offset int10_exit seg000:4A33 dw offset int10_exit seg000:4A35 dw offset loc_0_7220 seg000:4A37 dw offset loc_0_72D5 seg000:4A39 dw offset loc_0_73DD seg000:4A3B off_0_4A3B dw offset unk_0_83E8 ; CODE XREF: seg000:5519j seg000:4A3B ; seg000:708Aj seg000:4A3D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4A3D mov ax, 0FA9Ch seg000:4A40 push ax seg000:4A41 push dx seg000:4A42 push bp seg000:4A43 mov bp, sp seg000:4A45 mov dx, 3D4h seg000:4A48 mov ax, [bp+1Ch] seg000:4A4B out dx, al ; Video: CRT cntrlr addr seg000:4A4B ; seg000:4A4C mov ax, [bp+1Eh] seg000:4A4F mov dx, 3CEh seg000:4A52 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:4A52 ; seg000:4A53 pop bp seg000:4A54 pop dx seg000:4A55 pop ax seg000:4A56 popf seg000:4A57 pop es seg000:4A58 popa seg000:4A59 pop ds seg000:4A5A add sp, 4 seg000:4A5A ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4A5D db 0EAh ; seg000:4A5E word_0_4A5E dw 0F065h ; DATA XREF: sub_0_B6C9+26r seg000:4A60 word_0_4A60 dw 0F000h ; DATA XREF: sub_0_B6C9+2Br seg000:4A62 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4A62 sti seg000:4A63 seg000:4A63 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4A63 seg000:4A63 ; S u b r o u t i n e seg000:4A63 seg000:4A63 int_10_entry proc near ; CODE XREF: seg000:2AFFp seg000:4A63 ; seg000:2B1Cp seg000:4A63 ; seg000:2B69p seg000:4A63 ; seg000:2BA0p seg000:4A63 ; seg000:5752p seg000:4A63 ; seg000:71E6p seg000:4A63 ; seg000:7213p seg000:4A63 ; seg000:7300p seg000:4A63 ; seg000:736Dp seg000:4A63 ; sub_0_760A+1Fp seg000:4A63 ; sub_0_7722+18p seg000:4A63 push 0 seg000:4A65 push 0 seg000:4A67 push ds seg000:4A68 pusha seg000:4A69 push es seg000:4A6A push 44h ; 'D' seg000:4A6C pop ds seg000:4A6D assume ds:nothing seg000:4A6D pushf seg000:4A6E cli seg000:4A6F push ax seg000:4A70 push dx seg000:4A71 push bp seg000:4A72 mov bp, sp seg000:4A74 mov dx, 3CEh seg000:4A77 in al, dx ; EGA: graph 1 and 2 addr reg: seg000:4A77 ; seg000:4A78 mov [bp+1Eh], ax seg000:4A7B mov dx, 3D4h seg000:4A7E in al, dx ; Video: CRT cntrlr addr seg000:4A7E ; seg000:4A7F mov [bp+1Ch], ax seg000:4A82 pop bp seg000:4A83 pop dx seg000:4A84 pop ax seg000:4A85 popf seg000:4A86 call sub_0_288 seg000:4A89 push ax seg000:4A8A push dx seg000:4A8B mov dx, 3C3h seg000:4A8E in al, dx seg000:4A8F jmp short loc_0_4A91 seg000:4A91 seg000:4A91 loc_0_4A91: seg000:4A91 cmp al, 0FFh seg000:4A93 pop dx seg000:4A94 pop ax seg000:4A95 jnz loc_0_4AA3 seg000:4A97 cmp ah, 4Fh ; 'O' seg000:4A9A jnz int10_exit seg000:4A9C mov word ptr [bp+10h], 0 seg000:4AA1 jmp short int10_exit seg000:4AA3 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4AA3 seg000:4AA3 loc_0_4AA3: ; CODE XREF: int_10_entry+32j seg000:4AA3 cmp ah, 1Ch seg000:4AA6 ja loc_0_4AB5 seg000:4AA8 cld seg000:4AA9 mov si, ax seg000:4AAB sar si, 8 seg000:4AAE add si, si seg000:4AB0 jmp cs:off_0_4A01[si] seg000:4AB5 ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4AB5 seg000:4AB5 loc_0_4AB5: ; CODE XREF: int_10_entry+43j seg000:4AB5 cmp ah, 4Fh ; 'O' seg000:4AB8 jnz int10_exit seg000:4ABA jmp vesa_test seg000:4ABD ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4ABD seg000:4ABD int10_exit: ; CODE XREF: seg000:15FFj seg000:4ABD ; seg000:18F8j seg000:4ABD ; seg000:18FFj seg000:4ABD ; seg000:194Fj seg000:4ABD ; seg000:1A20j seg000:4ABD ; seg000:1A23j seg000:4ABD ; seg000:1A58j seg000:4ABD ; sub_0_1BD0+180j seg000:4ABD ; int_10_entry+37j seg000:4ABD ; int_10_entry+3Ej seg000:4ABD ; int_10_entry+4Du seg000:4ABD ; int_10_entry+55j seg000:4ABD ; seg000:53E9j seg000:4ABD ; seg000:5520j seg000:4ABD ; seg000:5CA7j seg000:4ABD ; seg000:5D97j seg000:4ABD ; sub_0_5D9D+B4j seg000:4ABD ; seg000:602Cj seg000:4ABD ; seg000:603Fj seg000:4ABD ; seg000:6052j seg000:4ABD ; seg000:60D4j seg000:4ABD ; seg000:60DDj seg000:4ABD ; seg000:612Bj seg000:4ABD ; seg000:6173j seg000:4ABD ; seg000:61A3j seg000:4ABD ; seg000:61BFj seg000:4ABD ; seg000:61EFj seg000:4ABD ; seg000:621Dj seg000:4ABD ; seg000:6591j seg000:4ABD ; seg000:65C8j seg000:4ABD ; seg000:65FFj seg000:4ABD ; seg000:6643j seg000:4ABD ; seg000:6672j seg000:4ABD ; seg000:66A3j seg000:4ABD ; seg000:66EFj seg000:4ABD ; seg000:671Ej seg000:4ABD ; seg000:674Fj seg000:4ABD ; seg000:679Dj seg000:4ABD ; seg000:69CDj seg000:4ABD ; seg000:6A60j seg000:4ABD ; seg000:6ACEj seg000:4ABD ; seg000:6B0Dj seg000:4ABD ; seg000:6B20j seg000:4ABD ; seg000:6DB4j seg000:4ABD ; seg000:6DDFj seg000:4ABD ; seg000:7087j seg000:4ABD ; seg000:70C4j seg000:4ABD ; seg000:710Ej seg000:4ABD ; seg000:713Bj seg000:4ABD ; seg000:714Cj seg000:4ABD ; seg000:71AAj seg000:4ABD ; seg000:71D9j seg000:4ABD ; seg000:7272j seg000:4ABD ; seg000:72B8j seg000:4ABD ; seg000:72DFj seg000:4ABD ; seg000:73CCj seg000:4ABD ; seg000:7419j seg000:4ABD ; DATA XREF: seg000:4A29o seg000:4ABD ; seg000:4A2Bo seg000:4ABD ; seg000:4A2Do seg000:4ABD ; seg000:4A2Fo seg000:4ABD ; seg000:4A31o seg000:4ABD ; seg000:4A33o seg000:4ABD call sub_0_2C1 seg000:4AC0 pushf seg000:4AC1 cli seg000:4AC2 push ax seg000:4AC3 push dx seg000:4AC4 push bp seg000:4AC5 mov bp, sp seg000:4AC7 mov dx, 3D4h seg000:4ACA mov ax, [bp+1Ch] seg000:4ACD out dx, al ; Video: CRT cntrlr addr seg000:4ACD ; seg000:4ACE mov ax, [bp+1Eh] seg000:4AD1 mov dx, 3CEh seg000:4AD4 out dx, al ; EGA: graph 1 and 2 addr reg: seg000:4AD4 ; seg000:4AD5 pop bp seg000:4AD6 pop dx seg000:4AD7 pop ax seg000:4AD8 popf seg000:4AD9 pop es seg000:4ADA popa seg000:4ADB pop ds seg000:4ADC assume ds:nothing seg000:4ADC add sp, 4 seg000:4ADF iret seg000:4ADF int_10_entry endp seg000:4ADF seg000:4ADF ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4AE0 db 1 ; seg000:4AE1 db 4Bh ; K seg000:4AE2 db 0E8h ; seg000:4AE3 db 4Ah ; J seg000:4AE4 db 1Ah ; seg000:4AE5 db 4Bh ; K seg000:4AE6 db 0E8h ; seg000:4AE7 db 4Ah ; J seg000:4AE8 db 2Ah ; * seg000:4AE9 db 0 ; seg000:4AEA db 0 ; seg000:4AEB db 0 ; seg000:4AEC db 15h ; seg000:4AED db 0 ; seg000:4AEE db 0 ; seg000:4AEF db 0 ; seg000:4AF0 db 15h ; seg000:4AF1 db 0 ; seg000:4AF2 db 15h ; seg000:4AF3 db 15h ; seg000:4AF4 db 0 ; seg000:4AF5 db 0 ; seg000:4AF6 db 0 ; seg000:4AF7 db 15h ; seg000:4AF8 db 15h ; seg000:4AF9 db 0 ; seg000:4AFA db 15h ; seg000:4AFB db 0 ; seg000:4AFC db 15h ; seg000:4AFD db 15h ; seg000:4AFE db 15h ; seg000:4AFF db 15h ; seg000:4B00 db 15h ; seg000:4B01 db 0 ; seg000:4B02 db 0 ; seg000:4B03 db 0 ; seg000:4B04 db 0 ; seg000:4B05 db 2Ah ; * seg000:4B06 db 2Ah ; * seg000:4B07 db 2Ah ; * seg000:4B08 db 0 ; seg000:4B09 db 0 ; seg000:4B0A db 0 ; seg000:4B0B db 3Fh ; ? seg000:4B0C db 3Fh ; ? seg000:4B0D db 3Fh ; ? seg000:4B0E db 0 ; seg000:4B0F db 0 ; seg000:4B10 db 0 ; seg000:4B11 db 2Ah ; * seg000:4B12 db 2Ah ; * seg000:4B13 db 2Ah ; * seg000:4B14 db 0 ; seg000:4B15 db 0 ; seg000:4B16 db 0 ; seg000:4B17 db 3Fh ; ? seg000:4B18 db 3Fh ; ? seg000:4B19 db 3Fh ; ? seg000:4B1A db 2Ah ; * seg000:4B1B db 0 ; seg000:4B1C db 0 ; seg000:4B1D db 0 ; seg000:4B1E db 0 ; seg000:4B1F db 0 ; seg000:4B20 db 0 ; seg000:4B21 db 15h ; seg000:4B22 db 15h ; seg000:4B23 db 15h ; seg000:4B24 db 15h ; seg000:4B25 db 15h ; seg000:4B26 db 15h ; seg000:4B27 db 0 ; seg000:4B28 db 0 ; seg000:4B29 db 0 ; seg000:4B2A db 0 ; seg000:4B2B db 0 ; seg000:4B2C db 0 ; seg000:4B2D db 15h ; seg000:4B2E db 15h ; seg000:4B2F db 15h ; seg000:4B30 db 15h ; seg000:4B31 db 15h ; seg000:4B32 db 15h ; seg000:4B33 db 0 ; seg000:4B34 db 5 ; seg000:4B35 db 8 ; seg000:4B36 db 0Bh ; seg000:4B37 db 0Eh ; seg000:4B38 db 11h ; seg000:4B39 db 14h ; seg000:4B3A db 18h ; seg000:4B3B db 1Ch ; seg000:4B3C db 20h ; seg000:4B3D db 24h ; $ seg000:4B3E db 28h ; ( seg000:4B3F db 2Dh ; - seg000:4B40 db 32h ; 2 seg000:4B41 db 38h ; 8 seg000:4B42 db 3Fh ; ? seg000:4B43 seg000:4B43 ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4B43 seg000:4B43 ; S u b r o u t i n e seg000:4B43 seg000:4B43 sub_0_4B43 proc near ; CODE XREF: seg000:5311p seg000:4B43 ; sub_0_59E0+2Cp seg000:4B43 shl bx, 1 seg000:4B45 mov si, cs:[bx+4AE0h] seg000:4B4A xor bx, bx seg000:4B4C lods byte ptr cs:[si] seg000:4B4E mov dl, al seg000:4B50 xor bh, bh seg000:4B52 seg000:4B52 loc_0_4B52: ; CODE XREF: sub_0_4B43+58j seg000:4B52 xor dh, dh seg000:4B54 xor cx, cx seg000:4B56 seg000:4B56 loc_0_4B56: ; CODE XREF: sub_0_4B43+53j seg000:4B56 push cx seg000:4B57 push dx seg000:4B58 add cx, cs:[si] seg000:4B5B add dh, cs:[si+2] seg000:4B5F cmp si, 4B1Ah seg000:4B63 jb loc_0_4B7B seg000:4B65 cmp bl, 6 seg000:4B68 jz loc_0_4B79 seg000:4B6A cmp bl, 0Eh seg000:4B6D jz loc_0_4B79 seg000:4B6F cmp bl, 26h ; '&' seg000:4B72 jz loc_0_4B79 seg000:4B74 cmp bl, 2Eh ; '.' seg000:4B77 jnz loc_0_4B7B seg000:4B79 seg000:4B79 loc_0_4B79: ; CODE XREF: sub_0_4B43+25j seg000:4B79 ; sub_0_4B43+2Aj seg000:4B79 ; sub_0_4B43+2Fj seg000:4B79 mov ch, 15h seg000:4B7B seg000:4B7B loc_0_4B7B: ; CODE XREF: sub_0_4B43+20j seg000:4B7B ; sub_0_4B43+34j seg000:4B7B call sub_0_4D9C seg000:4B7E pop dx seg000:4B7F pop cx seg000:4B80 xor cl, dl seg000:4B82 jnz loc_0_4B8A seg000:4B84 xor ch, dl seg000:4B86 jnz loc_0_4B8A seg000:4B88 xor dh, dl seg000:4B8A seg000:4B8A loc_0_4B8A: ; CODE XREF: sub_0_4B43+3Fj seg000:4B8A ; sub_0_4B43+43j seg000:4B8A inc bl seg000:4B8C cmp bl, 40h ; '@' seg000:4B8F jnb locret_0_4B9D seg000:4B91 inc bh seg000:4B93 and bh, 7 seg000:4B96 jnz loc_0_4B56 seg000:4B98 add si, 3 seg000:4B9B jmp short loc_0_4B52 seg000:4B9D ;陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 seg000:4B9D seg000:4B9D locret_0_4B9D: ; CODE XREF: sub_0_4B43+4Cj seg000:4B9D retn seg000:4B9D sub_0_4B43 endp seg000:4B9D seg000:4B9E seg000:4B9E ;栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 seg000:4B9E seg000:4B9E ; S u b r o u t i n e seg000:4B9E seg000:4B9E sub_0_4B9E proc near ; CODE XREF: sub_0_4BEAp seg000:4B9E xor dx, dx seg000:4BA0 xor cx, cx seg000:4BA2 xor bx, bx seg000:4BA4 seg000:4BA4 loc_0_4BA4: ; CODE XREF: sub_0_4B9E+2Bj seg000:4BA4 ; sub_0_4B9E+32j seg000:4BA4 push cx seg000:4BA5 push dx seg000:4BA6 cmp bl, 6 seg000:4BA9 jnz loc_0_4BAD seg000:4BAB mov ch, 15h seg000:4BAD seg000:4BAD loc_0_4BAD: ; CODE XREF: sub_0_4B9E+Bj seg000:4BAD add dh, dl