=== Trace listing source: allocate.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .global calc_alloc 7 .type calc_alloc, @function 8 calc_alloc: 0 00000173 56 pushw %si 0 00000174 57 pushw %di 0 00000175 06 pushw %es 0 00000176 55 pushw %bp 0 00000177 89E5 movw %sp, %bp 0 00000179 83EC16 subw $22, %sp 0 0000017C C746F200 movw $0, -14(%bp) 0 00000180 00 0 00000181 8E46F2 movw -14(%bp), %es 17 .L27: 0 00000184 B9[0000] movw $newf, %cx 0 00000187 89CB movw %cx, %bx 0 00000189 368B4704 movw %ss:4(%bx), %ax 0 0000018D 8946EA movw %ax, -22(%bp) 0 00000190 368B7F06 movw %ss:6(%bx), %di 0 00000194 BE[0000] movw $f, %si 0 00000197 B80D00 movw $13, %ax 0 0000019A 36F7645E mulw %ss:94(%si) 0 0000019E 83C023 addw $35, %ax 0 000001A1 8946F4 movw %ax, -12(%bp) 0 000001A4 BB2300 movw $35, %bx 0 000001A7 894EEE movw %cx, -18(%bp) 0 000001AA 8976FC movw %si, -4(%bp) 31 .L2: 0 000001AD 395EF4 cmpw %bx, -12(%bp) 0 000001B0 7403E9A1 jne .L8 0 000001B4 00 0 000001B5 85FF testw %di, %di 0 000001B7 7F08 jg .L37 0 000001B9 7531 jne .L9 0 000001BB 837EEA00 cmpw $0, -22(%bp) 0 000001BF 742B je .L9 39 .L37: 0 000001C1 C746F000 movw $0, -16(%bp) 0 000001C5 00 41 .L11: 0 000001C6 8B5EFC movw -4(%bp), %bx 0 000001C9 8B46F0 movw -16(%bp), %ax 0 000001CC 3639475E cmpw %ax, %ss:94(%bx) 0 000001D0 761A jbe .L9 0 000001D2 89F8 movw %di, %ax 0 000001D4 99 cwtd 0 000001D5 89D0 movw %dx, %ax 0 000001D7 2B46EA subw -22(%bp), %ax 0 000001DA 19FA sbbw %di, %dx 0 000001DC B10F movb $15, %cl 0 000001DE D3EA shrw %cl, %dx 0 000001E0 8956EC movw %dx, -20(%bp) 0 000001E3 807EEC00 cmpb $0, -20(%bp) 0 000001E7 7403E908 jne .L24 0 000001EB 01 56 .L9: 0 000001EC FF46F2 incw -14(%bp) 0 000001EF 89F8 movw %di, %ax 0 000001F1 99 cwtd 0 000001F2 89D0 movw %dx, %ax 0 000001F4 2B46EA subw -22(%bp), %ax 0 000001F7 19FA sbbw %di, %dx 0 000001F9 B10F movb $15, %cl 0 000001FB D3EA shrw %cl, %dx 0 000001FD 8956EC movw %dx, -20(%bp) 0 00000200 807EEC00 cmpb $0, -20(%bp) 0 00000204 7409 je .L38 0 00000206 837EF201 cmpw $1, -14(%bp) 0 0000020A 7F03E975 jle .L27 0 0000020E FF 70 .L38: 0 0000020F 85FF testw %di, %di 0 00000211 7D22 jge .L30 0 00000213 8B5EFC movw -4(%bp), %bx 0 00000216 368B475E movw %ss:94(%bx), %ax 0 0000021A BA0D00 movw $13, %dx 0 0000021D F7E2 mulw %dx 0 0000021F 8946F0 movw %ax, -16(%bp) 78 .L36: 0 00000222 31F6 xorw %si, %si 0 00000224 8976EC movw %si, -20(%bp) 81 .L32: 0 00000227 3976F0 cmpw %si, -16(%bp) 0 0000022A 7403E90B jne .L35 0 0000022E 02 0 0000022F 837EEC00 cmpw $0, -20(%bp) 0 00000233 75ED jne .L36 86 .L30: 0 00000235 8B5EEE movw -18(%bp), %bx 0 00000238 368B4704 movw %ss:4(%bx), %ax 0 0000023C 368B5706 movw %ss:6(%bx), %dx 0 00000240 2B46EA subw -22(%bp), %ax 0 00000243 19FA sbbw %di, %dx 0 00000245 36894764 movw %ax, %ss:100(%bx) 0 00000249 36895766 movw %dx, %ss:102(%bx) 0 0000024D 89EC movw %bp, %sp 0 0000024F 5D popw %bp 0 00000250 07 popw %es 0 00000251 5F popw %di 0 00000252 5E popw %si 0 00000253 16 pushw %ss 0 00000254 1F popw %ds 0 00000255 C3 ret 102 .L8: 0 00000256 BE[F8FF] movw $f-8, %si 0 00000259 368B30 movw %ss:(%bx,%si), %si 0 0000025C 368E9F[FA] movw %ss:f-6(%bx), %ds 0 00000260 [FF] 0 00000261 8B4414 movw 20(%si), %ax 0 00000264 96 xchgw %ax, %si 0 00000265 8B46EA movw -22(%bp), %ax 0 00000268 8946EC movw %ax, -20(%bp) 0 0000026B 897EF0 movw %di, -16(%bp) 0 0000026E BF[FCFF] movw $newf-4, %di 0 00000271 368E19 movw %ss:(%bx,%di), %ds 0 00000274 368B87[FE] movw %ss:newf-2(%bx), %ax 0 00000278 [FF] 0 00000279 3B46F0 cmpw -16(%bp), %ax 0 0000027C 7709 ja .L4 0 0000027E 750D jne .L3 0 00000280 8CDA movw %ds, %dx 0 00000282 3B56EC cmpw -20(%bp), %dx 0 00000285 7606 jbe .L3 120 .L4: 0 00000287 8E5EEC movw -20(%bp), %ds 0 0000028A 8B46F0 movw -16(%bp), %ax 123 .L3: 0 0000028D 8B7EFC movw -4(%bp), %di 0 00000290 368B11 movw %ss:(%bx,%di), %dx 0 00000293 368B8F[02] movw %ss:f+2(%bx), %cx 0 00000297 [00] 0 00000298 894EEA movw %cx, -22(%bp) 0 0000029B 8CD9 movw %ds, %cx 0 0000029D 89C7 movw %ax, %di 0 0000029F 3B46EA cmpw -22(%bp), %ax 0 000002A2 7706 ja .L6 0 000002A4 7509 jne .L5 0 000002A6 39D1 cmpw %dx, %cx 0 000002A8 7605 jbe .L5 135 .L6: 0 000002AA 89D1 movw %dx, %cx 0 000002AC 8B7EEA movw -22(%bp), %di 138 .L5: 0 000002AF 895EF6 movw %bx, -10(%bp) 0 000002B2 06 pushw %es 0 000002B3 56 pushw %si 0 000002B4 57 pushw %di 0 000002B5 51 pushw %cx 0 000002B6 894EEA movw %cx, -22(%bp) 0 000002B9 16 pushw %ss 0 000002BA 1F popw %ds 0 000002BB E8[FEFF] call __umodsi3 0 000002BE 83C408 addw $8, %sp 0 000002C1 85C0 testw %ax, %ax 0 000002C3 8B4EEA movw -22(%bp), %cx 0 000002C6 8B5EF6 movw -10(%bp), %bx 0 000002C9 740B je .L7 0 000002CB 89F2 movw %si, %dx 0 000002CD 29C2 subw %ax, %dx 0 000002CF 92 xchgw %ax, %dx 0 000002D0 8CC2 movw %es, %dx 0 000002D2 01C1 addw %ax, %cx 0 000002D4 11D7 adcw %dx, %di 159 .L7: 0 000002D6 8B76EE movw -18(%bp), %si 0 000002D9 8908 movw %cx, (%bx,%si) 0 000002DB 89BF[0200] movw %di, newf+2(%bx) 0 000002DF 8B46EC movw -20(%bp), %ax 0 000002E2 29C8 subw %cx, %ax 0 000002E4 8946EA movw %ax, -22(%bp) 0 000002E7 8B76F0 movw -16(%bp), %si 0 000002EA 19FE sbbw %di, %si 0 000002EC 89F7 movw %si, %di 0 000002EE 83C30D addw $13, %bx 0 000002F1 E9B9FE jmp .L2 171 .L24: 0 000002F4 B80D00 movw $13, %ax 0 000002F7 F766F0 mulw -16(%bp) 0 000002FA 93 xchgw %ax, %bx 0 000002FB 368B87[27] movw %ss:f+39(%bx), %ax 0 000002FF [00] 0 00000300 B10E movb $14, %cl 0 00000302 D3E0 shlw %cl, %ax 0 00000304 99 cwtd 0 00000305 8956EC movw %dx, -20(%bp) 0 00000308 807EEC00 cmpb $0, -20(%bp) 0 0000030C 7403E912 jne .L12 0 00000310 01 0 00000311 BE[1B00] movw $f+27, %si 0 00000314 837EF200 cmpw $0, -14(%bp) 0 00000318 7403E90C jne .L13 0 0000031C 01 0 0000031D 36FF7002 pushw %ss:2(%bx,%si) 0 00000321 36FFB7[1B] pushw %ss:f+27(%bx) 0 00000325 [00] 0 00000326 16 pushw %ss 0 00000327 1F popw %ds 0 00000328 E8[FEFF] call safe_size 190 .L63: 0 0000032B 96 xchgw %ax, %si 0 0000032C 8EDA movw %dx, %ds 0 0000032E 83C404 addw $4, %sp 0 00000331 B80D00 movw $13, %ax 0 00000334 F766F0 mulw -16(%bp) 0 00000337 93 xchgw %ax, %bx 0 00000338 368B87[1F] movw %ss:newf+31(%bx), %ax 0 0000033C [00] 0 0000033D 8946F8 movw %ax, -8(%bp) 0 00000340 368B8F[21] movw %ss:newf+33(%bx), %cx 0 00000344 [00] 0 00000345 8976EC movw %si, -20(%bp) 0 00000348 8CDA movw %ds, %dx 0 0000034A 39CA cmpw %cx, %dx 0 0000034C 7707 ja .L16 0 0000034E 750D jne .L15 0 00000350 3B76F8 cmpw -8(%bp), %si 0 00000353 7608 jbe .L15 207 .L16: 0 00000355 8B46F8 movw -8(%bp), %ax 0 00000358 8946EC movw %ax, -20(%bp) 0 0000035B 89CA movw %cx, %dx 211 .L15: 0 0000035D BE[2300] movw $newf+35, %si 0 00000360 368B00 movw %ss:(%bx,%si), %ax 0 00000363 8946F4 movw %ax, -12(%bp) 0 00000366 368B87[25] movw %ss:newf+37(%bx), %ax 0 0000036A [00] 0 0000036B 8946F6 movw %ax, -10(%bp) 0 0000036E 39C2 cmpw %ax, %dx 0 00000370 7710 ja .L46 0 00000372 7403E9AC jne .L12 0 00000376 00 0 00000377 8B46EC movw -20(%bp), %ax 0 0000037A 3B46F4 cmpw -12(%bp), %ax 0 0000037D 7703E9A1 jbe .L12 0 00000381 00 223 .L46: 0 00000382 3B4EF6 cmpw -10(%bp), %cx 0 00000385 7710 ja .L47 0 00000387 7403E997 jne .L12 0 0000038B 00 0 0000038C 8B46F8 movw -8(%bp), %ax 0 0000038F 3B46F4 cmpw -12(%bp), %ax 0 00000392 7703E98C jbe .L12 0 00000396 00 230 .L47: 0 00000397 BE[1B00] movw $f+27, %si 0 0000039A 368B00 movw %ss:(%bx,%si), %ax 0 0000039D 368E9F[1D] movw %ss:f+29(%bx), %ds 0 000003A1 [00] 0 000003A2 96 xchgw %ax, %si 0 000003A3 8B4414 movw 20(%si), %ax 0 000003A6 8946FE movw %ax, -2(%bp) 0 000003A9 8B46EA movw -22(%bp), %ax 0 000003AC 8946F8 movw %ax, -8(%bp) 0 000003AF 897EFA movw %di, -6(%bp) 0 000003B2 368B87[23] movw %ss:f+35(%bx), %ax 0 000003B6 [00] 0 000003B7 368B8F[25] movw %ss:f+37(%bx), %cx 0 000003BB [00] 0 000003BC 8B76EC movw -20(%bp), %si 0 000003BF 29C6 subw %ax, %si 0 000003C1 19CA sbbw %cx, %dx 0 000003C3 8956EC movw %dx, -20(%bp) 0 000003C6 39FA cmpw %di, %dx 0 000003C8 7707 ja .L22 0 000003CA 750E jne .L21 0 000003CC 3B76F8 cmpw -8(%bp), %si 0 000003CF 7609 jbe .L21 251 .L22: 0 000003D1 8B76F8 movw -8(%bp), %si 0 000003D4 8B46FA movw -6(%bp), %ax 0 000003D7 8946EC movw %ax, -20(%bp) 255 .L21: 0 000003DA 895EEA movw %bx, -22(%bp) 0 000003DD 06 pushw %es 0 000003DE FF76FE pushw -2(%bp) 0 000003E1 FF76EC pushw -20(%bp) 0 000003E4 56 pushw %si 0 000003E5 16 pushw %ss 0 000003E6 1F popw %ds 0 000003E7 E8[FEFF] call __umodsi3 0 000003EA 83C408 addw $8, %sp 0 000003ED 85C0 testw %ax, %ax 0 000003EF 8B5EEA movw -22(%bp), %bx 0 000003F2 740D je .L23 0 000003F4 8B56FE movw -2(%bp), %dx 0 000003F7 29C2 subw %ax, %dx 0 000003F9 92 xchgw %ax, %dx 0 000003FA 8CC2 movw %es, %dx 0 000003FC 01C6 addw %ax, %si 0 000003FE 1156EC adcw %dx, -20(%bp) 274 .L23: 0 00000401 8B46F4 movw -12(%bp), %ax 0 00000404 01F0 addw %si, %ax 0 00000406 8B56F6 movw -10(%bp), %dx 0 00000409 1356EC adcw -20(%bp), %dx 0 0000040C BF[2300] movw $newf+35, %di 0 0000040F 8901 movw %ax, (%bx,%di) 0 00000411 8997[2500] movw %dx, newf+37(%bx) 0 00000415 8B46F8 movw -8(%bp), %ax 0 00000418 29F0 subw %si, %ax 0 0000041A 8946EA movw %ax, -22(%bp) 0 0000041D 8B7EFA movw -6(%bp), %di 0 00000420 1B7EEC sbbw -20(%bp), %di 287 .L12: 0 00000423 FF46F0 incw -16(%bp) 0 00000426 E99DFD jmp .L11 290 .L13: 0 00000429 36FF7002 pushw %ss:2(%bx,%si) 0 0000042D 36FFB7[1B] pushw %ss:f+27(%bx) 0 00000431 [00] 0 00000432 16 pushw %ss 0 00000433 1F popw %ds 0 00000434 E8[FEFF] call max_size 0 00000437 E9F1FE jmp .L63 297 .L35: 0 0000043A 36C59C[1B] ldsw %ss:f+27(%si), %bx 0 0000043E [00] 0 0000043F 8B4F14 movw 20(%bx), %cx 0 00000442 8CC0 movw %es, %ax 0 00000444 8CC2 movw %es, %dx 0 00000446 2B46EA subw -22(%bp), %ax 0 00000449 19FA sbbw %di, %dx 0 0000044B 85D2 testw %dx, %dx 0 0000044D 7F06 jg .L39 0 0000044F 7544 jne .L33 0 00000451 39C8 cmpw %cx, %ax 0 00000453 7640 jbe .L33 309 .L39: 0 00000455 897EF2 movw %di, -14(%bp) 0 00000458 06 pushw %es 0 00000459 51 pushw %cx 0 0000045A 52 pushw %dx 0 0000045B 50 pushw %ax 0 0000045C 16 pushw %ss 0 0000045D 1F popw %ds 0 0000045E E8[FEFF] call __divsi3 0 00000461 83C408 addw $8, %sp 0 00000464 91 xchgw %ax, %cx 0 00000465 8956EC movw %dx, -20(%bp) 0 00000468 BF[2300] movw $newf+35, %di 0 0000046B 89FB movw %di, %bx 0 0000046D 8B00 movw (%bx,%si), %ax 0 0000046F 8B94[2500] movw newf+37(%si), %dx 0 00000473 29C8 subw %cx, %ax 0 00000475 1B56EC sbbw -20(%bp), %dx 0 00000478 89FB movw %di, %bx 0 0000047A 8900 movw %ax, (%bx,%si) 0 0000047C 8994[2500] movw %dx, newf+37(%si) 0 00000480 034EEA addw -22(%bp), %cx 0 00000483 8B7EF2 movw -14(%bp), %di 0 00000486 8B5EEC movw -20(%bp), %bx 0 00000489 11FB adcw %di, %bx 0 0000048B 894EEA movw %cx, -22(%bp) 0 0000048E 89DF movw %bx, %di 0 00000490 C746EC01 movw $1, -20(%bp) 0 00000494 00 337 .L33: 0 00000495 83C60D addw $13, %si 0 00000498 E98CFD jmp .L32 340 .size calc_alloc, .-calc_alloc 341 .global AllocMem 342 .type AllocMem, @function 343 AllocMem: 0 0000049B 56 pushw %si 0 0000049C 57 pushw %di 0 0000049D 06 pushw %es 0 0000049E 55 pushw %bp 0 0000049F 89E5 movw %sp, %bp 0 000004A1 83EC06 subw $6, %sp 0 000004A4 B8[0000] movw $newf, %ax 0 000004A7 8EC0 movw %ax, %es 0 000004A9 B80D00 movw $13, %ax 0 000004AC F7660A mulw 10(%bp) 0 000004AF 8946FC movw %ax, -4(%bp) 0 000004B2 8CC3 movw %es, %bx 0 000004B4 89C7 movw %ax, %di 0 000004B6 8D5922 leaw 34(%bx,%di), %bx 0 000004B9 FF7703 pushw 3(%bx) 0 000004BC FF7701 pushw 1(%bx) 0 000004BF BF[0000] movw $f, %di 0 000004C2 96 xchgw %ax, %si 0 000004C3 01FE addw %di, %si 0 000004C5 8D5C1A leaw 26(%si), %bx 0 000004C8 FF7703 pushw 3(%bx) 0 000004CB FF7701 pushw 1(%bx) 0 000004CE E8[FEFF] call disk_alloc 0 000004D1 8946FE movw %ax, -2(%bp) 0 000004D4 89D1 movw %dx, %cx 0 000004D6 8B5EFC movw -4(%bp), %bx 0 000004D9 8B87[2300] movw f+35(%bx), %ax 0 000004DD 93 xchgw %ax, %bx 0 000004DE 8B4425 movw 37(%si), %ax 0 000004E1 8946FA movw %ax, -6(%bp) 0 000004E4 83C408 addw $8, %sp 0 000004E7 395EFE cmpw %bx, -2(%bp) 0 000004EA 8CC6 movw %es, %si 0 000004EC 7505 jne .L67 0 000004EE 3B56FA cmpw -6(%bp), %dx 0 000004F1 7406 je .L65 380 .L67: 0 000004F3 C706[0000] movw $1, disk_bad 0 000004F7 0100 382 .L65: 0 000004F9 8B4564 movw 100(%di), %ax 0 000004FC 8B5566 movw 102(%di), %dx 0 000004FF 29D8 subw %bx, %ax 0 00000501 1B56FA sbbw -6(%bp), %dx 0 00000504 0346FE addw -2(%bp), %ax 0 00000507 11CA adcw %cx, %dx 0 00000509 894564 movw %ax, 100(%di) 0 0000050C 895566 movw %dx, 102(%di) 0 0000050F B80D00 movw $13, %ax 0 00000512 F7660A mulw 10(%bp) 0 00000515 93 xchgw %ax, %bx 0 00000516 8B56FE movw -2(%bp), %dx 0 00000519 8997[2300] movw %dx, newf+35(%bx) 0 0000051D 894825 movw %cx, 37(%bx,%si) 0 00000520 8997[2300] movw %dx, f+35(%bx) 0 00000524 894925 movw %cx, 37(%bx,%di) 0 00000527 92 xchgw %ax, %dx 0 00000528 89CA movw %cx, %dx 0 0000052A 89EC movw %bp, %sp 0 0000052C 5D popw %bp 0 0000052D 07 popw %es 0 0000052E 5F popw %di 0 0000052F 5E popw %si 0 00000530 C3 ret 407 .size AllocMem, .-AllocMem 408 .global set_sectors 409 .type set_sectors, @function 410 set_sectors: 0 00000531 56 pushw %si 0 00000532 57 pushw %di 0 00000533 55 pushw %bp 0 00000534 89E5 movw %sp, %bp 0 00000536 1E pushw %ds 0 00000537 1E pushw %ds 0 00000538 8B1E[0000] movw conf, %bx 0 0000053C 8B36[0200] movw conf+2, %si 419 .L70: 0 00000540 89D8 movw %bx, %ax 0 00000542 09F0 orw %si, %ax 0 00000544 85C0 testw %ax, %ax 0 00000546 7506 jne .L71 0 00000548 89EC movw %bp, %sp 0 0000054A 5D popw %bp 0 0000054B 5F popw %di 0 0000054C 5E popw %si 0 0000054D C3 ret 429 .L71: 0 0000054E 8EDE movw %si, %ds 0 00000550 8B7F10 movw 16(%bx), %di 0 00000553 89FA movw %di, %dx 0 00000555 B106 movb $6, %cl 0 00000557 D3EA shrw %cl, %dx 0 00000559 8B4712 movw 18(%bx), %ax 0 0000055C 895EFE movw %bx, -2(%bp) 0 0000055F 8946FC movw %ax, -4(%bp) 0 00000562 B10A movb $10, %cl 0 00000564 D3E0 shlw %cl, %ax 0 00000566 09D0 orw %dx, %ax 0 00000568 D3E7 shlw %cl, %di 0 0000056A 31D2 xorw %dx, %dx 0 0000056C 52 pushw %dx 0 0000056D 36FF36[0C] pushw %ss:f+12 0 00000571 [00] 0 00000572 50 pushw %ax 0 00000573 57 pushw %di 0 00000574 16 pushw %ss 0 00000575 1F popw %ds 0 00000576 E8[FEFF] call __udivsi3 0 00000579 83C408 addw $8, %sp 0 0000057C 8EDE movw %si, %ds 0 0000057E 8B5EFE movw -2(%bp), %bx 0 00000581 894716 movw %ax, 22(%bx) 0 00000584 895718 movw %dx, 24(%bx) 0 00000587 FF770A pushw 10(%bx) 0 0000058A 16 pushw %ss 0 0000058B 1F popw %ds 0 0000058C E8[FEFF] call conf_ptr 0 0000058F 93 xchgw %ax, %bx 0 00000590 89D6 movw %dx, %si 0 00000592 83C402 addw $2, %sp 0 00000595 EBA9 jmp .L70 463 .size set_sectors, .-set_sectors === Switch to base unknown -> ".RODATA.STR1.1" 464 .section .rodata.str1.1,"aMS",@progbits,1 465 .LC0: 0 00000900 4E6F7420 .string "Not enough memory available" 0 00000904 656E6F75 0 00000908 6768206D 0 0000090C 656D6F72 0 00000910 79206176 467 .LC1: 0 0000091C 6F726967 .string "origsize=%08lX destsize=%08lX lastalloc=%08lX Kleft=%08lX i=%d\n" 0 00000920 73697A65 0 00000924 3D253038 0 00000928 6C582064 0 0000092C 65737473 469 .LC2: 0 0000095C 656C7365 .string "else branch Kleft=%08lX f.subconf[i].size=%08lX i=%d\n" 0 00000960 20627261 0 00000964 6E636820 0 00000968 4B6C6566 0 0000096C 743D2530 471 .LC3: 0 00000992 4661696C .string "Failed to allocate memory" 0 00000996 65642074 0 0000099A 6F20616C 0 0000099E 6C6F6361 0 000009A2 7465206D 473 .LC4: 0 000009AC 256C6420 .string "%ld Kbytes extra allocated, perhaps you should make your disk that much larger.\n" 0 000009B0 4B627974 0 000009B4 65732065 0 000009B8 78747261 0 000009BC 20616C6C === Switch to base unknown -> ".TEXT" 475 .text 476 .global DiskAllocate 477 .type DiskAllocate, @function 478 DiskAllocate: 0 00000597 56 pushw %si 0 00000598 57 pushw %di 0 00000599 06 pushw %es 0 0000059A 55 pushw %bp 0 0000059B 89E5 movw %sp, %bp 0 0000059D 83EC16 subw $22, %sp 0 000005A0 A0[0000] movb disk_repair, %al 0 000005A3 8846F9 movb %al, -7(%bp) 0 000005A6 E8[FEFF] call ConfigMaxAlloc 0 000005A9 803E[0000] cmpb $1, disk_repair 0 000005AD 01 0 000005AE 7605 jbe .L74 0 000005B0 C606[0000] movb $1, disk_repair 0 000005B4 01 491 .L74: 0 000005B5 BB[0000] movw $f, %bx 0 000005B8 8B475E movw 94(%bx), %ax 0 000005BB 8946F4 movw %ax, -12(%bp) 0 000005BE 31F6 xorw %si, %si 0 000005C0 89F1 movw %si, %cx 0 000005C2 8EC3 movw %bx, %es 498 .L75: 0 000005C4 837EF400 cmpw $0, -12(%bp) 0 000005C8 7440 je .L87 0 000005CA E8[FEFF] call calc_alloc 0 000005CD BF[0000] movw $newf, %di 0 000005D0 8B4506 movw 6(%di), %ax 0 000005D3 3B4566 cmpw 102(%di), %ax 0 000005D6 770D ja .L93 0 000005D8 3B4566 cmpw 102(%di), %ax 0 000005DB 7512 jne .L76 0 000005DD 8B4504 movw 4(%di), %ax 0 000005E0 3B4564 cmpw 100(%di), %ax 0 000005E3 760A jbe .L76 511 .L93: 0 000005E5 B8[0000] movw $.LC0, %ax 0 000005E8 50 pushw %ax 0 000005E9 E8[FEFF] call fatal 0 000005EC 83C402 addw $2, %sp 516 .L76: 0 000005EF C706[0000] movw $0, data_on_disk 0 000005F3 0000 0 000005F5 8B7504 movw 4(%di), %si 0 000005F8 8B4D06 movw 6(%di), %cx 0 000005FB C746EA00 movw $0, -22(%bp) 0 000005FF 00 521 .L78: 0 00000600 8CC3 movw %es, %bx 0 00000602 8B46EA movw -22(%bp), %ax 0 00000605 39475E cmpw %ax, 94(%bx) 0 00000608 772A ja .L86 526 .L87: 0 0000060A 85C9 testw %cx, %cx 0 0000060C 7F0C jg .L95 0 0000060E 7403E912 jne .L89 0 00000612 01 0 00000613 85F6 testw %si, %si 0 00000615 7503E90B je .L89 0 00000619 01 532 .L95: 0 0000061A B8[9200] movw $.LC3, %ax 0 0000061D 50 pushw %ax 0 0000061E E8[FEFF] call fatal 0 00000621 83C402 addw $2, %sp 537 .L91: 0 00000624 E8[FEFF] call set_sectors 0 00000627 8A46F9 movb -7(%bp), %al 0 0000062A A2[0000] movb %al, disk_repair 0 0000062D 89EC movw %bp, %sp 0 0000062F 5D popw %bp 0 00000630 07 popw %es 0 00000631 5F popw %di 0 00000632 5E popw %si 0 00000633 C3 ret 547 .L86: 0 00000634 8976F2 movw %si, -14(%bp) 0 00000637 B80D00 movw $13, %ax 0 0000063A F766EA mulw -22(%bp) 0 0000063D 93 xchgw %ax, %bx 0 0000063E BE[2300] movw $f+35, %si 0 00000641 8B00 movw (%bx,%si), %ax 0 00000643 97 xchgw %ax, %di 0 00000644 8B87[2500] movw f+37(%bx), %ax 0 00000648 8946EC movw %ax, -20(%bp) 0 0000064B 8B87[2300] movw newf+35(%bx), %ax 0 0000064F 8946EE movw %ax, -18(%bp) 0 00000652 8B87[2500] movw newf+37(%bx), %ax 0 00000656 8946F0 movw %ax, -16(%bp) 0 00000659 8B46EE movw -18(%bp), %ax 0 0000065C 39C7 cmpw %ax, %di 0 0000065E 8B76F2 movw -14(%bp), %si 0 00000661 750B jne .L94 0 00000663 8B46EC movw -20(%bp), %ax 0 00000666 3B46F0 cmpw -16(%bp), %ax 0 00000669 7503E982 je .L99 0 0000066D 00 568 .L94: 0 0000066E 894EFA movw %cx, -6(%bp) 0 00000671 FF76EA pushw -22(%bp) 0 00000674 E8[FEFF] call AllocMem 0 00000677 89C3 movw %ax, %bx 0 00000679 8946F2 movw %ax, -14(%bp) 0 0000067C 8956F6 movw %dx, -10(%bp) 0 0000067F 83C402 addw $2, %sp 0 00000682 833E[0000] cmpw $5, verbose 0 00000686 05 0 00000687 8B4EFA movw -6(%bp), %cx 0 0000068A 7E2D jle .L81 0 0000068C 8946FE movw %ax, -2(%bp) 0 0000068F FF76EA pushw -22(%bp) 0 00000692 51 pushw %cx 0 00000693 894EFC movw %cx, -4(%bp) 0 00000696 56 pushw %si 0 00000697 52 pushw %dx 0 00000698 8956FA movw %dx, -6(%bp) 0 0000069B 50 pushw %ax 0 0000069C FF76F0 pushw -16(%bp) 0 0000069F FF76EE pushw -18(%bp) 0 000006A2 FF76EC pushw -20(%bp) 0 000006A5 57 pushw %di 0 000006A6 B8[1C00] movw $.LC1, %ax 0 000006A9 50 pushw %ax 0 000006AA E8[FEFF] call printf 0 000006AD 83C414 addw $20, %sp 0 000006B0 8B5EFE movw -2(%bp), %bx 0 000006B3 8B4EFC movw -4(%bp), %cx 0 000006B6 8B56FA movw -6(%bp), %dx 598 .L81: 0 000006B9 39DF cmpw %bx, %di 0 000006BB 7517 jne .L82 0 000006BD 3956EC cmpw %dx, -20(%bp) 0 000006C0 7512 jne .L82 603 .L83: 0 000006C2 B80D00 movw $13, %ax 0 000006C5 F766EA mulw -22(%bp) 0 000006C8 93 xchgw %ax, %bx 0 000006C9 808F[2700] orb $2, f+39(%bx) 0 000006CD 02 0 000006CE FF4EF4 decw -12(%bp) 0 000006D1 E9F0FE jmp .L75 610 .L82: 0 000006D4 C706[0000] movw $1, disk_bad 0 000006D8 0100 0 000006DA 395EEE cmpw %bx, -18(%bp) 0 000006DD 75E3 jne .L83 0 000006DF 3956F0 cmpw %dx, -16(%bp) 0 000006E2 75DE jne .L83 0 000006E4 2B76F2 subw -14(%bp), %si 0 000006E7 1B4EF6 sbbw -10(%bp), %cx 618 .L84: 0 000006EA FF46EA incw -22(%bp) 0 000006ED E910FF jmp .L78 621 .L99: 0 000006F0 833E[0000] cmpw $5, verbose 0 000006F4 05 0 000006F5 7E1F jle .L85 0 000006F7 895EEE movw %bx, -18(%bp) 0 000006FA FF76EA pushw -22(%bp) 0 000006FD FF76EC pushw -20(%bp) 0 00000700 57 pushw %di 0 00000701 51 pushw %cx 0 00000702 894EEC movw %cx, -20(%bp) 0 00000705 56 pushw %si 0 00000706 B8[5C00] movw $.LC2, %ax 0 00000709 50 pushw %ax 0 0000070A E8[FEFF] call printf 0 0000070D 83C40C addw $12, %sp 0 00000710 8B5EEE movw -18(%bp), %bx 0 00000713 8B4EEC movw -20(%bp), %cx 637 .L85: 0 00000716 BF[2300] movw $f+35, %di 0 00000719 8B01 movw (%bx,%di), %ax 0 0000071B 8B97[2500] movw f+37(%bx), %dx 0 0000071F 29C6 subw %ax, %si 0 00000721 19D1 sbbw %dx, %cx 0 00000723 EBC5 jmp .L84 644 .L89: 0 00000725 89F0 movw %si, %ax 0 00000727 09C8 orw %cx, %ax 0 00000729 7503E9F6 je .L91 0 0000072D FE 0 0000072E 833E[0000] cmpw $2, verbose 0 00000732 02 0 00000733 7F03E9EC jle .L91 0 00000737 FE 0 00000738 31C0 xorw %ax, %ax 0 0000073A 89C2 movw %ax, %dx 0 0000073C 29F0 subw %si, %ax 0 0000073E 19CA sbbw %cx, %dx 0 00000740 52 pushw %dx 0 00000741 50 pushw %ax 0 00000742 B8[AC00] movw $.LC4, %ax 0 00000745 50 pushw %ax 0 00000746 E8[FEFF] call printf 0 00000749 83C406 addw $6, %sp 0 0000074C E9D5FE jmp .L91 661 .size DiskAllocate, .-DiskAllocate 662 .ident "GCC: (GNU) 6.3.0" 663 .weak __ia16_use_printf_nofloat.v1 664 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: bitmap.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .global bitmap_new 7 .type bitmap_new, @function 8 bitmap_new: 0 0000074F 56 pushw %si 0 00000750 57 pushw %di 0 00000751 55 pushw %bp 0 00000752 89E5 movw %sp, %bp 0 00000754 8B4608 movw 8(%bp), %ax 0 00000757 89C6 movw %ax, %si 0 00000759 B103 movb $3, %cl 0 0000075B D3EE shrw %cl, %si 0 0000075D 83E007 andw $7, %ax 0 00000760 83F801 cmpw $1, %ax 0 00000763 F5 cmc 0 00000764 19C0 sbbw %ax, %ax 0 00000766 29C6 subw %ax, %si 0 00000768 56 pushw %si 0 00000769 E8[FEFF] call xalloc 0 0000076C 97 xchgw %ax, %di 0 0000076D 56 pushw %si 0 0000076E 31C0 xorw %ax, %ax 0 00000770 50 pushw %ax 0 00000771 57 pushw %di 0 00000772 E8[FEFF] call memset 0 00000775 97 xchgw %ax, %di 0 00000776 89EC movw %bp, %sp 0 00000778 5D popw %bp 0 00000779 5F popw %di 0 0000077A 5E popw %si 0 0000077B C3 ret 36 .size bitmap_new, .-bitmap_new 37 .ident "GCC: (GNU) 6.3.0" === Trace listing source: cmdline.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 000009FD 4F4E2C20 .string "ON, OFF or nothing expected after /%s" 0 00000A01 4F464620 0 00000A05 6F72206E 0 00000A09 6F746869 0 00000A0D 6E672065 === Switch to base unknown -> ".TEXT" 8 .text 9 .type yes_no, @function 10 yes_no: 0 0000077C 56 pushw %si 0 0000077D 57 pushw %di 0 0000077E 55 pushw %bp 0 0000077F 89E5 movw %sp, %bp 0 00000781 1E pushw %ds 0 00000782 8B7608 movw 8(%bp), %si 0 00000785 8B5E0A movw 10(%bp), %bx 0 00000788 8B5708 movw 8(%bx), %dx 0 0000078B 8A04 movb (%si), %al 0 0000078D 3C2D cmpb $45, %al 0 0000078F 745F je .L3 0 00000791 7F25 jg .L4 0 00000793 3C2B cmpb $43, %al 0 00000795 7453 je .L5 25 .L2: 0 00000797 8B5E0A movw 10(%bp), %bx 0 0000079A 8B5F06 movw 6(%bx), %bx 0 0000079D 85DB testw %bx, %bx 0 0000079F 7402 je .L14 0 000007A1 8917 movw %dx, (%bx) 31 .L14: 0 000007A3 8B5E0A movw 10(%bp), %bx 0 000007A6 8B4704 movw 4(%bx), %ax 0 000007A9 0906[0000] orw %ax, defined_format 0 000007AD 0906[0000] orw %ax, forced_format 0 000007B1 96 xchgw %ax, %si 0 000007B2 89EC movw %bp, %sp 0 000007B4 5D popw %bp 0 000007B5 5F popw %di 0 000007B6 5E popw %si 0 000007B7 C3 ret 42 .L4: 0 000007B8 3C4F cmpb $79, %al 0 000007BA 7404 je .L6 0 000007BC 3C6F cmpb $111, %al 0 000007BE 75D7 jne .L2 47 .L6: 0 000007C0 8A4401 movb 1(%si), %al 0 000007C3 8B3E[0000] movw __ctype_ptr__, %di 0 000007C7 98 cbtw 0 000007C8 89C3 movw %ax, %bx 0 000007CA 8A4901 movb 1(%bx,%di), %cl 0 000007CD 884EFE movb %cl, -2(%bp) 0 000007D0 80E103 andb $3, %cl 0 000007D3 80F902 cmpb $2, %cl 0 000007D6 7503 jne .L8 0 000007D8 83C0E0 addw $-32, %ax 58 .L8: 0 000007DB 83F846 cmpw $70, %ax 0 000007DE 7416 je .L10 0 000007E0 83F84E cmpw $78, %ax 0 000007E3 752F jne .L9 0 000007E5 83C602 addw $2, %si 0 000007E8 EB01 jmp .L25 65 .L5: 0 000007EA 46 incw %si 67 .L25: 0 000007EB BA0100 movw $1, %dx 0 000007EE EBA7 jmp .L2 70 .L3: 0 000007F0 46 incw %si 72 .L26: 0 000007F1 BAFFFF movw $-1, %dx 0 000007F4 EBA1 jmp .L2 75 .L10: 0 000007F6 8A4402 movb 2(%si), %al 0 000007F9 98 cbtw 0 000007FA 89C3 movw %ax, %bx 0 000007FC 8A4901 movb 1(%bx,%di), %cl 0 000007FF 80E103 andb $3, %cl 0 00000802 80F902 cmpb $2, %cl 0 00000805 7503 jne .L13 0 00000807 83C0E0 addw $-32, %ax 84 .L13: 0 0000080A 83F846 cmpw $70, %ax 0 0000080D 7505 jne .L9 0 0000080F 83C603 addw $3, %si 0 00000812 EBDD jmp .L26 89 .L9: 0 00000814 8956FE movw %dx, -2(%bp) 0 00000817 8B5E0A movw 10(%bp), %bx 0 0000081A FF37 pushw (%bx) 0 0000081C B8[0000] movw $.LC0, %ax 0 0000081F 50 pushw %ax 0 00000820 E8[FEFF] call syntax 0 00000823 83C404 addw $4, %sp 0 00000826 8B56FE movw -2(%bp), %dx 0 00000829 E96BFF jmp .L2 99 .size yes_no, .-yes_no 100 .type parse_narg, @function 101 parse_narg: 0 0000082C 56 pushw %si 0 0000082D 57 pushw %di 0 0000082E 55 pushw %bp 0 0000082F 89E5 movw %sp, %bp 0 00000831 1E pushw %ds 0 00000832 31C0 xorw %ax, %ax 0 00000834 50 pushw %ax 0 00000835 FF760A pushw 10(%bp) 0 00000838 FF7608 pushw 8(%bp) 0 0000083B E8[FEFF] call strtol 0 0000083E 96 xchgw %ax, %si 0 0000083F 8B5E0A movw 10(%bp), %bx 0 00000842 8B07 movw (%bx), %ax 0 00000844 8946FE movw %ax, -2(%bp) 0 00000847 83C406 addw $6, %sp 0 0000084A 394608 cmpw %ax, 8(%bp) 0 0000084D 744E je .L33 0 0000084F 93 xchgw %ax, %bx 0 00000850 8A07 movb (%bx), %al 0 00000852 98 cbtw 0 00000853 8B3E[0000] movw __ctype_ptr__, %di 0 00000857 89C3 movw %ax, %bx 0 00000859 8A4901 movb 1(%bx,%di), %cl 0 0000085C 80E103 andb $3, %cl 0 0000085F 80F902 cmpb $2, %cl 0 00000862 7503 jne .L30 0 00000864 83C0E0 addw $-32, %ax 129 .L30: 0 00000867 83F84B cmpw $75, %ax 0 0000086A 7413 je .L31 0 0000086C 83F84D cmpw $77, %ax 0 0000086F 7525 jne .L27 0 00000871 89F0 movw %si, %ax 0 00000873 B106 movb $6, %cl 0 00000875 D3E8 shrw %cl, %ax 0 00000877 B10A movb $10, %cl 0 00000879 D3E2 shlw %cl, %dx 0 0000087B D3E6 shlw %cl, %si 0 0000087D 09C2 orw %ax, %dx 141 .L31: 0 0000087F 89F0 movw %si, %ax 0 00000881 B106 movb $6, %cl 0 00000883 D3E8 shrw %cl, %ax 0 00000885 B10A movb $10, %cl 0 00000887 D3E2 shlw %cl, %dx 0 00000889 D3E6 shlw %cl, %si 0 0000088B 09C2 orw %ax, %dx 0 0000088D 8B5EFE movw -2(%bp), %bx 0 00000890 43 incw %bx 0 00000891 8B7E0A movw 10(%bp), %di 0 00000894 891D movw %bx, (%di) 153 .L27: 0 00000896 96 xchgw %ax, %si 0 00000897 89EC movw %bp, %sp 0 00000899 5D popw %bp 0 0000089A 5F popw %di 0 0000089B 5E popw %si 0 0000089C C3 ret 160 .L33: 0 0000089D BEFFFF movw $-1, %si 0 000008A0 89F2 movw %si, %dx 0 000008A2 EBF2 jmp .L27 164 .size parse_narg, .-parse_narg === Switch to base unknown -> ".RODATA.STR1.1" 165 .section .rodata.str1.1 166 .LC1: 0 00000A23 41726775 .string "Argument expected for switch /%s" 0 00000A27 6D656E74 0 00000A2B 20657870 0 00000A2F 65637465 0 00000A33 6420666F 168 .LC2: 0 00000A44 41726775 .string "Argument /%s:%lu is out of range (%u-%u)" 0 00000A48 6D656E74 0 00000A4C 202F2573 0 00000A50 3A256C75 0 00000A54 20697320 === Switch to base unknown -> ".TEXT" 170 .text 171 .type numbermask, @function 172 numbermask: 0 000008A4 56 pushw %si 0 000008A5 57 pushw %di 0 000008A6 55 pushw %bp 0 000008A7 89E5 movw %sp, %bp 0 000008A9 83EC06 subw $6, %sp 0 000008AC 8B5E08 movw 8(%bp), %bx 0 000008AF 8B7E0A movw 10(%bp), %di 0 000008B2 8A07 movb (%bx), %al 0 000008B4 3C2B cmpb $43, %al 0 000008B6 757B jne .L39 0 000008B8 43 incw %bx 0 000008B9 BE2B00 movw $43, %si 185 .L40: 0 000008BC 8D46FE leaw -2(%bp), %ax 0 000008BF 50 pushw %ax 0 000008C0 53 pushw %bx 0 000008C1 895EFC movw %bx, -4(%bp) 0 000008C4 E865FF call parse_narg 0 000008C7 83C404 addw $4, %sp 0 000008CA 8B5EFC movw -4(%bp), %bx 0 000008CD 3B5EFE cmpw -2(%bp), %bx 0 000008D0 7518 jne .L41 0 000008D2 8956FA movw %dx, -6(%bp) 0 000008D5 8946FC movw %ax, -4(%bp) 0 000008D8 FF35 pushw (%di) 0 000008DA B9[2600] movw $.LC1, %cx 0 000008DD 51 pushw %cx 0 000008DE E8[FEFF] call syntax 0 000008E1 83C404 addw $4, %sp 0 000008E4 8B56FA movw -6(%bp), %dx 0 000008E7 8B46FC movw -4(%bp), %ax 204 .L41: 0 000008EA 85D2 testw %dx, %dx 0 000008EC 7F0A jg .L42 0 000008EE 3B4508 cmpw 8(%di), %ax 0 000008F1 7205 jc .L42 0 000008F3 3B450A cmpw 10(%di), %ax 0 000008F6 761A jbe .L44 211 .L42: 0 000008F8 FF750A pushw 10(%di) 0 000008FB FF7508 pushw 8(%di) 0 000008FE 52 pushw %dx 0 000008FF 50 pushw %ax 0 00000900 8946FC movw %ax, -4(%bp) 0 00000903 FF35 pushw (%di) 0 00000905 BA[4700] movw $.LC2, %dx 0 00000908 52 pushw %dx 0 00000909 E8[FEFF] call syntax 0 0000090C 83C40C addw $12, %sp 0 0000090F 8B46FC movw -4(%bp), %ax 223 .L44: 0 00000912 8B5504 movw 4(%di), %dx 0 00000915 0916[0000] orw %dx, defined_format 0 00000919 0916[0000] orw %dx, forced_format 0 0000091D 8B5D06 movw 6(%di), %bx 0 00000920 85DB testw %bx, %bx 0 00000922 7406 je .L45 0 00000924 85F6 testw %si, %si 0 00000926 751B jne .L46 0 00000928 8907 movw %ax, (%bx) 233 .L45: 0 0000092A 8B46FE movw -2(%bp), %ax 0 0000092D 89EC movw %bp, %sp 0 0000092F 5D popw %bp 0 00000930 5F popw %di 0 00000931 5E popw %si 0 00000932 C3 ret 240 .L39: 0 00000933 3C2D cmpb $45, %al 0 00000935 7507 jne .L48 0 00000937 43 incw %bx 0 00000938 BE2D00 movw $45, %si 0 0000093B E97EFF jmp .L40 246 .L48: 0 0000093E 31F6 xorw %si, %si 0 00000940 E979FF jmp .L40 249 .L46: 0 00000943 83FE2B cmpw $43, %si 0 00000946 7504 jne .L47 0 00000948 0907 orw %ax, (%bx) 0 0000094A EBDE jmp .L45 254 .L47: 0 0000094C 83FE2D cmpw $45, %si 0 0000094F 75D9 jne .L45 0 00000951 F7D0 notw %ax 0 00000953 2107 andw %ax, (%bx) 0 00000955 EBD3 jmp .L45 260 .size numbermask, .-numbermask 261 .type parse_kilobyte, @function 262 parse_kilobyte: 0 00000957 56 pushw %si 0 00000958 57 pushw %di 0 00000959 55 pushw %bp 0 0000095A 89E5 movw %sp, %bp 0 0000095C 1E pushw %ds 0 0000095D 31C0 xorw %ax, %ax 0 0000095F 50 pushw %ax 0 00000960 FF760A pushw 10(%bp) 0 00000963 FF7608 pushw 8(%bp) 0 00000966 E8[FEFF] call strtol 0 00000969 96 xchgw %ax, %si 0 0000096A 8B5E0A movw 10(%bp), %bx 0 0000096D 8B07 movw (%bx), %ax 0 0000096F 8946FE movw %ax, -2(%bp) 0 00000972 83C406 addw $6, %sp 0 00000975 394608 cmpw %ax, 8(%bp) 0 00000978 7440 je .L59 0 0000097A 93 xchgw %ax, %bx 0 0000097B 8A07 movb (%bx), %al 0 0000097D 98 cbtw 0 0000097E 8B3E[0000] movw __ctype_ptr__, %di 0 00000982 89C3 movw %ax, %bx 0 00000984 8A4901 movb 1(%bx,%di), %cl 0 00000987 80E103 andb $3, %cl 0 0000098A 80F902 cmpb $2, %cl 0 0000098D 7503 jne .L56 0 0000098F 83C0E0 addw $-32, %ax 290 .L56: 0 00000992 83F84B cmpw $75, %ax 0 00000995 7413 je .L57 0 00000997 83F84D cmpw $77, %ax 0 0000099A 7517 jne .L53 0 0000099C 89F0 movw %si, %ax 0 0000099E B106 movb $6, %cl 0 000009A0 D3E8 shrw %cl, %ax 0 000009A2 B10A movb $10, %cl 0 000009A4 D3E2 shlw %cl, %dx 0 000009A6 D3E6 shlw %cl, %si 0 000009A8 09C2 orw %ax, %dx 302 .L57: 0 000009AA 8B5EFE movw -2(%bp), %bx 0 000009AD 43 incw %bx 0 000009AE 8B7E0A movw 10(%bp), %di 0 000009B1 891D movw %bx, (%di) 307 .L53: 0 000009B3 96 xchgw %ax, %si 0 000009B4 89EC movw %bp, %sp 0 000009B6 5D popw %bp 0 000009B7 5F popw %di 0 000009B8 5E popw %si 0 000009B9 C3 ret 314 .L59: 0 000009BA BEFFFF movw $-1, %si 0 000009BD 89F2 movw %si, %dx 0 000009BF EBF2 jmp .L53 318 .size parse_kilobyte, .-parse_kilobyte === Switch to base unknown -> ".RODATA.STR1.1" 319 .section .rodata.str1.1 320 .LC3: 0 00000A6D 546F6F20 .string "Too many /M values - program limit exceeded" 0 00000A71 6D616E79 0 00000A75 202F4D20 0 00000A79 76616C75 0 00000A7D 6573202D 322 .LC4: 0 00000A99 546F6F20 .string "Too large partition size: %ld" 0 00000A9D 6C617267 0 00000AA1 65207061 0 00000AA5 72746974 0 00000AA9 696F6E20 === Switch to base unknown -> ".TEXT" 324 .text 325 .type maxsizes, @function 326 maxsizes: 0 000009C1 56 pushw %si 0 000009C2 57 pushw %di 0 000009C3 55 pushw %bp 0 000009C4 89E5 movw %sp, %bp 0 000009C6 1E pushw %ds 0 000009C7 B84100 movw $65, %ax 0 000009CA 50 pushw %ax 0 000009CB 31F6 xorw %si, %si 0 000009CD 56 pushw %si 0 000009CE B8[1B00] movw $newf+27, %ax 0 000009D1 50 pushw %ax 0 000009D2 E8[FEFF] call memset 0 000009D5 800E[0000] orb $64, defined_format 0 000009D9 40 0 000009DA 800E[0000] orb $64, forced_format 0 000009DE 40 0 000009DF 83C406 addw $6, %sp 342 .L65: 0 000009E2 8D4608 leaw 8(%bp), %ax 0 000009E5 50 pushw %ax 0 000009E6 FF7608 pushw 8(%bp) 0 000009E9 E86BFF call parse_kilobyte 0 000009EC 89C7 movw %ax, %di 0 000009EE 8956FE movw %dx, -2(%bp) 0 000009F1 89C1 movw %ax, %cx 0 000009F3 83C101 addw $1, %cx 0 000009F6 89D3 movw %dx, %bx 0 000009F8 83D300 adcw $0, %bx 0 000009FB 83C404 addw $4, %sp 0 000009FE 83FB40 cmpw $64, %bx 0 00000A01 7706 ja .L74 0 00000A03 7528 jne .L66 0 00000A05 85C9 testw %cx, %cx 0 00000A07 7424 je .L66 359 .L74: 0 00000A09 52 pushw %dx 0 00000A0A 50 pushw %ax 0 00000A0B B8[9C00] movw $.LC4, %ax 0 00000A0E 50 pushw %ax 0 00000A0F E8[FEFF] call syntax 0 00000A12 83C406 addw $6, %sp 366 .L68: 0 00000A15 B80D00 movw $13, %ax 0 00000A18 F7E6 mulw %si 0 00000A1A 93 xchgw %ax, %bx 0 00000A1B 89BF[1F00] movw %di, newf+31(%bx) 0 00000A1F 8B46FE movw -2(%bp), %ax 0 00000A22 8987[2100] movw %ax, newf+33(%bx) 0 00000A26 808F[2700] orb $1, newf+39(%bx) 0 00000A2A 01 0 00000A2B EB0A jmp .L69 375 .L66: 0 00000A2D 83F8FF cmpw $-1, %ax 0 00000A30 75E3 jne .L68 0 00000A32 83FAFF cmpw $-1, %dx 0 00000A35 75DE jne .L68 380 .L69: 0 00000A37 8B5E08 movw 8(%bp), %bx 0 00000A3A 803F3A cmpb $58, (%bx) 0 00000A3D 7516 jne .L64 0 00000A3F 46 incw %si 0 00000A40 43 incw %bx 0 00000A41 895E08 movw %bx, 8(%bp) 0 00000A44 83FE05 cmpw $5, %si 0 00000A47 7599 jne .L65 0 00000A49 B8[7000] movw $.LC3, %ax 0 00000A4C 50 pushw %ax 0 00000A4D E8[FEFF] call syntax 0 00000A50 83C402 addw $2, %sp 0 00000A53 EB8D jmp .L65 394 .L64: 0 00000A55 93 xchgw %ax, %bx 0 00000A56 89EC movw %bp, %sp 0 00000A58 5D popw %bp 0 00000A59 5F popw %di 0 00000A5A 5E popw %si 0 00000A5B C3 ret 401 .size maxsizes, .-maxsizes === Switch to base unknown -> ".RODATA.STR1.1" 402 .section .rodata.str1.1 403 .LC5: 0 00000AB7 53657420 .string "Set device type = %02Xh\n" 0 00000ABB 64657669 0 00000ABF 63652074 0 00000AC3 79706520 0 00000AC7 3D202530 405 .LC6: 0 00000AD0 556E6B6E .string "Unknown DOS disk size %ld" 0 00000AD4 6F776E20 0 00000AD8 444F5320 0 00000ADC 6469736B 0 00000AE0 2073697A === Switch to base unknown -> ".TEXT" 407 .text 408 .type DOSform, @function 409 DOSform: 0 00000A5C 56 pushw %si 0 00000A5D 57 pushw %di 0 00000A5E 06 pushw %es 0 00000A5F 55 pushw %bp 0 00000A60 89E5 movw %sp, %bp 0 00000A62 1E pushw %ds 0 00000A63 1E pushw %ds 0 00000A64 8B760A movw 10(%bp), %si 0 00000A67 8D46FE leaw -2(%bp), %ax 0 00000A6A 50 pushw %ax 0 00000A6B 56 pushw %si 0 00000A6C E8E8FE call parse_kilobyte 0 00000A6F 8EC0 movw %ax, %es 0 00000A71 89D7 movw %dx, %di 0 00000A73 83C404 addw $4, %sp 0 00000A76 3B76FE cmpw -2(%bp), %si 0 00000A79 750F jne .L77 0 00000A7B 8B5E0C movw 12(%bp), %bx 0 00000A7E FF37 pushw (%bx) 0 00000A80 B8[2600] movw $.LC1, %ax 0 00000A83 50 pushw %ax 0 00000A84 E8[FEFF] call syntax 0 00000A87 83C404 addw $4, %sp 433 .L77: 0 00000A8A 31C9 xorw %cx, %cx 435 .L78: 0 00000A8C B81100 movw $17, %ax 0 00000A8F F7E1 mulw %cx 0 00000A91 93 xchgw %ax, %bx 0 00000A92 BE[0000] movw $dos_disk.4013, %si 0 00000A95 8B00 movw (%bx,%si), %ax 0 00000A97 85C0 testw %ax, %ax 0 00000A99 7514 jne .L82 0 00000A9B 8946FC movw %ax, -4(%bp) 0 00000A9E 57 pushw %di 0 00000A9F 06 pushw %es 0 00000AA0 BA[D300] movw $.LC6, %dx 0 00000AA3 52 pushw %dx 0 00000AA4 E8[FEFF] call syntax 0 00000AA7 83C406 addw $6, %sp 0 00000AAA 8B46FC movw -4(%bp), %ax 0 00000AAD EB70 jmp .L76 452 .L82: 0 00000AAF 99 cwtd 0 00000AB0 8CC6 movw %es, %si 0 00000AB2 39C6 cmpw %ax, %si 0 00000AB4 7570 jne .L79 0 00000AB6 39D7 cmpw %dx, %di 0 00000AB8 756C jne .L79 0 00000ABA BE[0000] movw $newf, %si 0 00000ABD 8C4404 movw %es, 4(%si) 0 00000AC0 897C06 movw %di, 6(%si) 0 00000AC3 81C3[0000] addw $dos_disk.4013, %bx 0 00000AC7 8B4702 movw 2(%bx), %ax 0 00000ACA 894414 movw %ax, 20(%si) 0 00000ACD 8A4704 movb 4(%bx), %al 0 00000AD0 88441A movb %al, 26(%si) 0 00000AD3 833E[0000] cmpw $5, verbose 0 00000AD7 05 0 00000AD8 7E13 jle .L80 0 00000ADA 894EFC movw %cx, -4(%bp) 0 00000ADD 30E4 xorb %ah, %ah 0 00000ADF 50 pushw %ax 0 00000AE0 B8[BA00] movw $.LC5, %ax 0 00000AE3 50 pushw %ax 0 00000AE4 E8[FEFF] call printf 0 00000AE7 83C404 addw $4, %sp 0 00000AEA 8B4EFC movw -4(%bp), %cx 477 .L80: 0 00000AED B81100 movw $17, %ax 0 00000AF0 F7E1 mulw %cx 0 00000AF2 93 xchgw %ax, %bx 0 00000AF3 C487[0500] lesw dos_disk.4013+5(%bx), %ax 0 00000AF7 89440C movw %ax, 12(%si) 0 00000AFA 8C440E movw %es, 14(%si) 0 00000AFD C487[0900] lesw dos_disk.4013+9(%bx), %ax 0 00000B01 894410 movw %ax, 16(%si) 0 00000B04 8C4412 movw %es, 18(%si) 0 00000B07 C487[0D00] lesw dos_disk.4013+13(%bx), %ax 0 00000B0B 894416 movw %ax, 22(%si) 0 00000B0E 8C4418 movw %es, 24(%si) 0 00000B11 810E[0000] orw $1982, defined_format 0 00000B15 BE07 0 00000B17 800E[0000] orb $2, forced_format 0 00000B1B 02 0 00000B1C 8B46FE movw -2(%bp), %ax 493 .L76: 0 00000B1F 89EC movw %bp, %sp 0 00000B21 5D popw %bp 0 00000B22 07 popw %es 0 00000B23 5F popw %di 0 00000B24 5E popw %si 0 00000B25 C3 ret 500 .L79: 0 00000B26 41 incw %cx 0 00000B27 E962FF jmp .L78 503 .size DOSform, .-DOSform 504 .type filename, @function 505 filename: 0 00000B2A 56 pushw %si 0 00000B2B 57 pushw %di 0 00000B2C 55 pushw %bp 0 00000B2D 89E5 movw %sp, %bp 0 00000B2F 1E pushw %ds 0 00000B30 1E pushw %ds 0 00000B31 8B4608 movw 8(%bp), %ax 0 00000B34 8946FE movw %ax, -2(%bp) 0 00000B37 93 xchgw %ax, %bx 0 00000B38 8A07 movb (%bx), %al 0 00000B3A 98 cbtw 0 00000B3B 89DE movw %bx, %si 0 00000B3D 8B3E[0000] movw __ctype_ptr__, %di 0 00000B41 93 xchgw %ax, %bx 0 00000B42 F6410103 testb $3, 1(%bx,%di) 0 00000B46 7409 je .L85 0 00000B48 807C013A cmpb $58, 1(%si) 0 00000B4C 7503 jne .L85 0 00000B4E 8D7402 leaw 2(%si), %si 525 .L85: 0 00000B51 B201 movb $1, %dl 0 00000B53 30ED xorb %ch, %ch 528 .L86: 0 00000B55 8A04 movb (%si), %al 0 00000B57 88D1 movb %dl, %cl 0 00000B59 3C20 cmpb $32, %al 0 00000B5B 7F02 jg .L89 0 00000B5D 88E9 movb %ch, %cl 534 .L89: 0 00000B5F 88C4 movb %al, %ah 0 00000B61 80F43A xorb $58, %ah 0 00000B64 80FC01 cmpb $1, %ah 0 00000B67 18E4 sbbb %ah, %ah 0 00000B69 FEC4 incb %ah 0 00000B6B 84E1 testb %ah, %cl 0 00000B6D 7404 je .L92 0 00000B6F 3C2F cmpb $47, %al 0 00000B71 752E jne .L87 544 .L92: 0 00000B73 89F0 movw %si, %ax 0 00000B75 2B46FE subw -2(%bp), %ax 0 00000B78 8946FC movw %ax, -4(%bp) 0 00000B7B 40 incw %ax 0 00000B7C 50 pushw %ax 0 00000B7D E8[FEFF] call malloc 0 00000B80 89C7 movw %ax, %di 0 00000B82 FF76FC pushw -4(%bp) 0 00000B85 FF76FE pushw -2(%bp) 0 00000B88 50 pushw %ax 0 00000B89 E8[FEFF] call memcpy 0 00000B8C 8B5EFC movw -4(%bp), %bx 0 00000B8F C60100 movb $0, (%bx,%di) 0 00000B92 8B5E0A movw 10(%bp), %bx 0 00000B95 8B5F06 movw 6(%bx), %bx 0 00000B98 893F movw %di, (%bx) 0 00000B9A 96 xchgw %ax, %si 0 00000B9B 89EC movw %bp, %sp 0 00000B9D 5D popw %bp 0 00000B9E 5F popw %di 0 00000B9F 5E popw %si 0 00000BA0 C3 ret 567 .L87: 0 00000BA1 46 incw %si 0 00000BA2 EBB1 jmp .L86 570 .size filename, .-filename === Switch to base unknown -> ".RODATA.STR1.1" 571 .section .rodata.str1.1 572 .LC7: 0 00000AEA 496E7661 .string "Invalid sector size - must be a power of two" 0 00000AEE 6C696420 0 00000AF2 73656374 0 00000AF6 6F722073 0 00000AFA 697A6520 574 .LC8: 0 00000B17 496E7661 .string "Invalid cluster size - must be a power of two" 0 00000B1B 6C696420 0 00000B1F 636C7573 0 00000B23 74657220 0 00000B27 73697A65 === Switch to base unknown -> ".TEXT" 576 .text 577 .type number, @function 578 number: 0 00000BA4 56 pushw %si 0 00000BA5 57 pushw %di 0 00000BA6 55 pushw %bp 0 00000BA7 89E5 movw %sp, %bp 0 00000BA9 83EC06 subw $6, %sp 0 00000BAC 8B7E08 movw 8(%bp), %di 0 00000BAF 8B760A movw 10(%bp), %si 0 00000BB2 8D46FE leaw -2(%bp), %ax 0 00000BB5 50 pushw %ax 0 00000BB6 57 pushw %di 0 00000BB7 E872FC call parse_narg 0 00000BBA 83C404 addw $4, %sp 0 00000BBD 3B7EFE cmpw -2(%bp), %di 0 00000BC0 7518 jne .L99 0 00000BC2 8956FA movw %dx, -6(%bp) 0 00000BC5 8946FC movw %ax, -4(%bp) 0 00000BC8 FF34 pushw (%si) 0 00000BCA B9[2600] movw $.LC1, %cx 0 00000BCD 51 pushw %cx 0 00000BCE E8[FEFF] call syntax 0 00000BD1 83C404 addw $4, %sp 0 00000BD4 8B56FA movw -6(%bp), %dx 0 00000BD7 8B46FC movw -4(%bp), %ax 602 .L99: 0 00000BDA 85D2 testw %dx, %dx 0 00000BDC 7F0A jg .L100 0 00000BDE 3B4408 cmpw 8(%si), %ax 0 00000BE1 7205 jc .L100 0 00000BE3 3B440A cmpw 10(%si), %ax 0 00000BE6 761A jbe .L102 609 .L100: 0 00000BE8 FF740A pushw 10(%si) 0 00000BEB FF7408 pushw 8(%si) 0 00000BEE 52 pushw %dx 0 00000BEF 50 pushw %ax 0 00000BF0 8946FC movw %ax, -4(%bp) 0 00000BF3 FF34 pushw (%si) 0 00000BF5 BA[4700] movw $.LC2, %dx 0 00000BF8 52 pushw %dx 0 00000BF9 E8[FEFF] call syntax 0 00000BFC 83C40C addw $12, %sp 0 00000BFF 8B46FC movw -4(%bp), %ax 621 .L102: 0 00000C02 8B5404 movw 4(%si), %dx 0 00000C05 0916[0000] orw %dx, defined_format 0 00000C09 0916[0000] orw %dx, forced_format 0 00000C0D 8B5C06 movw 6(%si), %bx 0 00000C10 85DB testw %bx, %bx 0 00000C12 7402 je .L103 0 00000C14 8907 movw %ax, (%bx) 629 .L103: 0 00000C16 8B5404 movw 4(%si), %dx 0 00000C19 83FA04 cmpw $4, %dx 0 00000C1C 740E je .L105 0 00000C1E 83FA08 cmpw $8, %dx 0 00000C21 742E je .L106 635 .L104: 0 00000C23 8B46FE movw -2(%bp), %ax 0 00000C26 89EC movw %bp, %sp 0 00000C28 5D popw %bp 0 00000C29 5F popw %di 0 00000C2A 5E popw %si 0 00000C2B C3 ret 642 .L105: 0 00000C2C 31F6 xorw %si, %si 0 00000C2E BB1900 movw $25, %bx 0 00000C31 BA8000 movw $128, %dx 0 00000C34 89F1 movw %si, %cx 647 .L108: 0 00000C36 39D0 cmpw %dx, %ax 0 00000C38 7504 jne .L113 0 00000C3A 39CE cmpw %cx, %si 0 00000C3C 74E5 je .L104 652 .L113: 0 00000C3E D1E2 shlw %dx 0 00000C40 D1D1 rclw %cx 0 00000C42 4B decw %bx 0 00000C43 75F1 jne .L108 0 00000C45 B8[ED00] movw $.LC7, %ax 658 .L124: 0 00000C48 50 pushw %ax 0 00000C49 E8[FEFF] call syntax 0 00000C4C 83C402 addw $2, %sp 0 00000C4F EBD2 jmp .L104 663 .L106: 0 00000C51 31F6 xorw %si, %si 0 00000C53 BB1900 movw $25, %bx 0 00000C56 BA8000 movw $128, %dx 0 00000C59 89F1 movw %si, %cx 668 .L111: 0 00000C5B 39D0 cmpw %dx, %ax 0 00000C5D 7504 jne .L114 0 00000C5F 39CE cmpw %cx, %si 0 00000C61 74C0 je .L104 673 .L114: 0 00000C63 D1E2 shlw %dx 0 00000C65 D1D1 rclw %cx 0 00000C67 4B decw %bx 0 00000C68 75F1 jne .L111 0 00000C6A B8[1A01] movw $.LC8, %ax 0 00000C6D EBD9 jmp .L124 680 .size number, .-number === Switch to base unknown -> ".RODATA.STR1.1" 681 .section .rodata.str1.1 682 .LC9: 0 00000B45 53796E74 .ascii "Syntax: SRDISK [:] [] [/F:]\n\t\t[/S:] [/C:] [/D:]\n\t\t[/V:] [/E] [/U] [/O] [/Y] [/N] [/?]\n\t" 0 00000BBE 3E5D0A09 0 00000BC2 095B2F56 0 00000BC6 3A3C7665 0 00000BCA 72626F73 0 00000BF1 093C2E2E .ascii "\t<... and many more. See SRDISK.DOC for details.>\n\nAnythi" 0 00000BF5 2E20616E 0 00000BF9 64206D61 0 00000BFD 6E79206D 0 00000C01 6F72652E 0 00000C2A 6E672069 .ascii "ng inside [] is optional, the brackets must not be typed.\n'" 0 00000C2E 6E736964 0 00000C32 65205B5D 0 00000C36 20697320 0 00000C3A 6F707469 0 00000C65 3C736F6D .ascii "' must be replaced by what 'something' tells.\n\n" 0 00000C69 65746869 0 00000C6D 6E673E27 0 00000C71 206D7573 0 00000C75 74206265 0 00000C9F 3C647269 .ascii " specifies the drive that is the RAM disk.\n determines the disk size in kilobytes.\n/F: some valid are 1, 160, 180, 320, 360, 720, 1200, 1440.\n" 0 00000D19 736F6D65 0 00000D1D 2076616C 0 00000D21 69642061 0 00000D25 72652031 0 00000D50 2F533A3C .ascii "/S: is a power of 2 in range from 128 to 512 by" 0 00000D54 73656374 0 00000D58 6F722073 0 00000D5C 697A653E 0 00000D60 20697320 0 00000D8C 7465732E .ascii "tes.\n/C: is a power of 2 in range from 128 to" 0 00000D90 0A2F433A 0 00000D94 3C636C75 0 00000D98 73746572 0 00000D9C 2073697A 0 00000DC7 20333237 .ascii " 32768 bytes.\n/D: is the maximum number of ent" 0 00000DCB 36382062 0 00000DCF 79746573 0 00000DD3 2E0A2F44 0 00000DD7 3A3C6469 0 00000E02 72696573 .ascii "ries in the root directory.\n/A: number of File Alloca" 0 00000E06 20696E20 0 00000E0A 74686520 0 00000E0E 726F6F74 0 00000E12 20646972 0 00000E3D 74696F6E .ascii "tion Tables on disk. 1 or 2. 1 is enough.\n/W Write protect " 0 00000E41 20546162 0 00000E45 6C657320 0 00000E49 6F6E2064 0 00000E4D 69736B2E 0 00000E78 6469736B .ascii "disk, /W- enables writes.\n/V Verbose level from 0 " 0 00000E7C 2C202F57 0 00000E80 2D20656E 0 00000E84 61626C65 0 00000E88 73207772 0 00000EAA 2873696C .string "(silent) to 5 (verbose); default 2.\n/E Set environment variables SRDISKn (n=1,2,...) to 0 00000EAE 656E7429 0 00000EB2 20746F20 0 00000EB6 35202876 0 00000EBA 6572626F === Switch to base unknown -> ".TEXT" 699 .text 700 .global print_syntax 701 .type print_syntax, @function 702 print_syntax: 0 00000C6F E8[FEFF] call force_banner 0 00000C72 8B1E[0000] movw _impure_ptr, %bx 0 00000C76 FF7706 pushw 6(%bx) 0 00000C79 B8[4801] movw $.LC9, %ax 0 00000C7C 50 pushw %ax 0 00000C7D E8[FEFF] call fputs 0 00000C80 83C404 addw $4, %sp 0 00000C83 C3 ret 711 .size print_syntax, .-print_syntax === Switch to base unknown -> ".RODATA.STR1.1" 712 .section .rodata.str1.1 713 .LC10: 0 00000FAB 496E7661 .string "Invalid available memory size" 0 00000FAF 6C696420 0 00000FB3 61766169 0 00000FB7 6C61626C 0 00000FBB 65206D65 715 .LC11: 0 00000FC9 496E7661 .string "Invalid available disk size" 0 00000FCD 6C696420 0 00000FD1 61766169 0 00000FD5 6C61626C 0 00000FD9 65206469 717 .LC12: 0 00000FE5 496E7661 .string "Invalid disk size" 0 00000FE9 6C696420 0 00000FED 6469736B 0 00000FF1 2073697A 0 00000FF5 6500 719 .LC13: 0 00000FF7 556E7265 .string "Unrecognised character '%c' on command line" 0 00000FFB 636F676E 0 00000FFF 69736564 0 00001003 20636861 0 00001007 72616374 721 .LC14: 0 00001023 556E6B6E .string "Unknown switch %s" 0 00001027 6F776E20 0 0000102B 73776974 0 0000102F 63682025 0 00001033 7300 723 .LC15: 0 00001035 416D6269 .string "Ambiguous switch %s" 0 00001039 67756F75 0 0000103D 73207377 0 00001041 69746368 0 00001045 20257300 725 .LC16: 0 00001049 596F7520 .string "You specified many sizes for the disk" 0 0000104D 73706563 0 00001051 69666965 0 00001055 64206D61 0 00001059 6E792073 === Switch to base unknown -> ".TEXT" 727 .text 728 .global parse_cmdline 729 .type parse_cmdline, @function 730 parse_cmdline: 0 00000C84 56 pushw %si 0 00000C85 57 pushw %di 0 00000C86 06 pushw %es 0 00000C87 55 pushw %bp 0 00000C88 89E5 movw %sp, %bp 0 00000C8A 83EC0A subw $10, %sp 0 00000C8D C746FA01 movw $1, -6(%bp) 0 00000C91 00 738 .L127: 0 00000C92 8B46FA movw -6(%bp), %ax 0 00000C95 3B460A cmpw 10(%bp), %ax 0 00000C98 7C41 jl .L158 0 00000C9A 8B16[0000] movw defined_format, %dx 0 00000C9E 89D0 movw %dx, %ax 0 00000CA0 D1E8 shrw $1, %ax 0 00000CA2 83E001 andw $1, %ax 0 00000CA5 F6C608 testb $8, %dh 0 00000CA8 7401 je .L159 0 00000CAA 40 incw %ax 749 .L159: 0 00000CAB 89D1 movw %dx, %cx 0 00000CAD 81E10010 andw $4096, %cx 0 00000CB1 83F901 cmpw $1, %cx 0 00000CB4 F5 cmc 0 00000CB5 19C9 sbbw %cx, %cx 0 00000CB7 29C8 subw %cx, %ax 0 00000CB9 81E20020 andw $8192, %dx 0 00000CBD 83FA01 cmpw $1, %dx 0 00000CC0 F5 cmc 0 00000CC1 19D2 sbbw %dx, %dx 0 00000CC3 29D0 subw %dx, %ax 0 00000CC5 83F801 cmpw $1, %ax 0 00000CC8 7E0A jle .L126 0 00000CCA B8[4C06] movw $.LC16, %ax 0 00000CCD 50 pushw %ax 0 00000CCE E8[FEFF] call syntax 0 00000CD1 83C402 addw $2, %sp 767 .L126: 0 00000CD4 89EC movw %bp, %sp 0 00000CD6 5D popw %bp 0 00000CD7 07 popw %es 0 00000CD8 5F popw %di 0 00000CD9 5E popw %si 0 00000CDA C3 ret 774 .L158: 0 00000CDB 8B5EFA movw -6(%bp), %bx 0 00000CDE D1E3 shlw $1, %bx 0 00000CE0 8B7E0C movw 12(%bp), %di 0 00000CE3 8B01 movw (%bx,%di), %ax 0 00000CE5 8946FC movw %ax, -4(%bp) 780 .L128: 0 00000CE8 8B5EFC movw -4(%bp), %bx 0 00000CEB 36803F00 cmpb $0, %ss:(%bx) 0 00000CEF 7505 jne .L157 0 00000CF1 FF46FA incw -6(%bp) 0 00000CF4 EB9C jmp .L127 786 .L157: 0 00000CF6 B82600 movw $38, %ax 0 00000CF9 50 pushw %ax 0 00000CFA BB[0000] movw $switches, %bx 0 00000CFD 53 pushw %bx 0 00000CFE 895EF8 movw %bx, -8(%bp) 0 00000D01 8D7EFC leaw -4(%bp), %di 0 00000D04 57 pushw %di 0 00000D05 E8[FEFF] call get_opt 0 00000D08 89C6 movw %ax, %si 0 00000D0A 83C406 addw $6, %sp 0 00000D0D 83F8FE cmpw $-2, %ax 0 00000D10 7503E9CE je .L130 0 00000D14 00 0 00000D15 83F8FF cmpw $-1, %ax 0 00000D18 7414 je .L131 0 00000D1A 83F8FD cmpw $-3, %ax 0 00000D1D 8B5EF8 movw -8(%bp), %bx 0 00000D20 7403E9CE jne .L188 0 00000D24 00 0 00000D25 FF76FC pushw -4(%bp) 0 00000D28 B8[3806] movw $.LC15, %ax 0 00000D2B E9BB00 jmp .L190 807 .L131: 0 00000D2E 8B4EFC movw -4(%bp), %cx 0 00000D31 89CB movw %cx, %bx 0 00000D33 8A07 movb (%bx), %al 0 00000D35 98 cbtw 0 00000D36 8B36[0000] movw __ctype_ptr__, %si 0 00000D3A 89C3 movw %ax, %bx 0 00000D3C 8A5001 movb 1(%bx,%si), %dl 0 00000D3F 8856F8 movb %dl, -8(%bp) 0 00000D42 F646F804 testb $4, -8(%bp) 0 00000D46 7444 je .L133 0 00000D48 89CB movw %cx, %bx 0 00000D4A 36807F01 cmpb $58, %ss:1(%bx) 0 00000D4E 3A 0 00000D4F 743B je .L133 0 00000D51 57 pushw %di 0 00000D52 51 pushw %cx 0 00000D53 E801FC call parse_kilobyte 0 00000D56 83C404 addw $4, %sp 0 00000D59 83FA3F cmpw $63, %dx 0 00000D5C 7E16 jle .L134 0 00000D5E 8956F6 movw %dx, -10(%bp) 0 00000D61 8946F8 movw %ax, -8(%bp) 0 00000D64 B9[E805] movw $.LC12, %cx 0 00000D67 51 pushw %cx 0 00000D68 E8[FEFF] call syntax 0 00000D6B 83C402 addw $2, %sp 0 00000D6E 8B56F6 movw -10(%bp), %dx 0 00000D71 8B46F8 movw -8(%bp), %ax 835 .L134: 0 00000D74 BB[0000] movw $newf, %bx 0 00000D77 894704 movw %ax, 4(%bx) 0 00000D7A 895706 movw %dx, 6(%bx) 0 00000D7D 36800E[00] orb $2, %ss:defined_format 0 00000D81 [00]02 0 00000D83 36800E[00] orb $2, %ss:forced_format 0 00000D87 [00]02 0 00000D89 E95CFF jmp .L128 842 .L133: 0 00000D8C 36803E[00] cmpb $0, %ss:drive 0 00000D90 [00]00 0 00000D92 742C je .L137 845 .L141: 0 00000D94 89CB movw %cx, %bx 0 00000D96 8A07 movb (%bx), %al 0 00000D98 98 cbtw 0 00000D99 50 pushw %ax 0 00000D9A B8[FA05] movw $.LC13, %ax 0 00000D9D 50 pushw %ax 0 00000D9E E8[FEFF] call syntax 0 00000DA1 83C404 addw $4, %sp 854 .L138: 0 00000DA4 8B5EFC movw -4(%bp), %bx 0 00000DA7 8D4701 leaw 1(%bx), %ax 0 00000DAA 8946FC movw %ax, -4(%bp) 0 00000DAD 36807F01 cmpb $58, %ss:1(%bx) 0 00000DB1 3A 0 00000DB2 7403E931 jne .L128 0 00000DB6 FF 0 00000DB7 83C302 addw $2, %bx 0 00000DBA 895EFC movw %bx, -4(%bp) 0 00000DBD E928FF jmp .L128 863 .L137: 0 00000DC0 8A56F8 movb -8(%bp), %dl 0 00000DC3 80E203 andb $3, %dl 0 00000DC6 80FA02 cmpb $2, %dl 0 00000DC9 7503 jne .L140 0 00000DCB 83C0E0 addw $-32, %ax 869 .L140: 0 00000DCE A2[0000] movb %al, drive 0 00000DD1 88C4 movb %al, %ah 0 00000DD3 80C4BF addb $-65, %ah 0 00000DD6 80FC1A cmpb $25+1, %ah 0 00000DD9 72C9 jc .L138 0 00000DDB 04CF addb $-49, %al 0 00000DDD 3C09 cmpb $8+1, %al 0 00000DDF 73B3 jnc .L141 0 00000DE1 EBC1 jmp .L138 879 .L130: 0 00000DE3 FF76FC pushw -4(%bp) 0 00000DE6 B8[2606] movw $.LC14, %ax 882 .L190: 0 00000DE9 50 pushw %ax 0 00000DEA E8[FEFF] call syntax 0 00000DED 83C404 addw $4, %sp 0 00000DF0 E9F5FE jmp .L128 887 .L188: 0 00000DF3 8B7EFC movw -4(%bp), %di 0 00000DF6 B80C00 movw $12, %ax 0 00000DF9 F7E6 mulw %si 0 00000DFB 01C3 addw %ax, %bx 0 00000DFD 8B4702 movw 2(%bx), %ax 0 00000E00 85C0 testw %ax, %ax 0 00000E02 740E je .L143 0 00000E04 53 pushw %bx 0 00000E05 57 pushw %di 0 00000E06 FFD0 call *%ax 0 00000E08 97 xchgw %ax, %di 0 00000E09 83C404 addw $4, %sp 900 .L144: 0 00000E0C 897EFC movw %di, -4(%bp) 0 00000E0F E9D6FE jmp .L128 903 .L143: 0 00000E12 8B5704 movw 4(%bx), %dx 0 00000E15 83FA11 cmpw $17, %dx 0 00000E18 7503E900 je .L145 0 00000E1C 01 0 00000E1D 7F1E jg .L146 0 00000E1F 83FA08 cmpw $8, %dx 0 00000E22 7503E9D9 je .L147 0 00000E26 00 0 00000E27 83FA0D cmpw $13, %dx 0 00000E2A 7503E9DA je .L148 0 00000E2E 00 0 00000E2F 83FA06 cmpw $6, %dx 0 00000E32 75D8 jne .L144 0 00000E34 E8[FEFF] call print_syntax 0 00000E37 31C0 xorw %ax, %ax 0 00000E39 50 pushw %ax 0 00000E3A E8[FEFF] call exit 918 .L146: 0 00000E3D 81FA0008 cmpw $2048, %dx 0 00000E41 7436 je .L150 0 00000E43 7F28 jg .L151 0 00000E45 83FA12 cmpw $18, %dx 0 00000E48 75C2 jne .L144 0 00000E4A B80C00 movw $12, %ax 0 00000E4D F7E6 mulw %si 0 00000E4F BE[0000] movw $switches, %si 0 00000E52 93 xchgw %ax, %bx 0 00000E53 8B5806 movw 6(%bx,%si), %bx 0 00000E56 C7070000 movw $0, (%bx) 0 00000E5A C7470200 movw $0, 2(%bx) 0 00000E5E 00 0 00000E5F 36800E[01] orb $32, %ss:defined_format+1 0 00000E63 [00]20 0 00000E65 36800E[01] orb $32, %ss:forced_format+1 0 00000E69 [00]20 0 00000E6B EB9F jmp .L144 934 .L151: 0 00000E6D 81FA0010 cmpw $4096, %dx 0 00000E71 7406 je .L150 0 00000E73 81FA0020 cmpw $8192, %dx 0 00000E77 7593 jne .L144 939 .L150: 0 00000E79 8D46FE leaw -2(%bp), %ax 0 00000E7C 50 pushw %ax 0 00000E7D 57 pushw %di 0 00000E7E E8D6FA call parse_kilobyte 0 00000E81 89C1 movw %ax, %cx 0 00000E83 8EC2 movw %dx, %es 0 00000E85 83C404 addw $4, %sp 0 00000E88 3B7EFE cmpw -2(%bp), %di 0 00000E8B 751C jne .L153 0 00000E8D 8946F8 movw %ax, -8(%bp) 0 00000E90 B80C00 movw $12, %ax 0 00000E93 F7E6 mulw %si 0 00000E95 93 xchgw %ax, %bx 0 00000E96 BF[0000] movw $switches, %di 0 00000E99 36FF31 pushw %ss:(%bx,%di) 0 00000E9C BA[2600] movw $.LC1, %dx 0 00000E9F 52 pushw %dx 0 00000EA0 E8[FEFF] call syntax 0 00000EA3 83C404 addw $4, %sp 0 00000EA6 8B4EF8 movw -8(%bp), %cx 960 .L153: 0 00000EA9 8B7EFE movw -2(%bp), %di 0 00000EAC 8CC0 movw %es, %ax 0 00000EAE 83F83F cmpw $63, %ax 0 00000EB1 762B jbe .L154 0 00000EB3 8ED9 movw %cx, %ds 0 00000EB5 89F9 movw %di, %cx 0 00000EB7 B80C00 movw $12, %ax 0 00000EBA F7E6 mulw %si 0 00000EBC 93 xchgw %ax, %bx 0 00000EBD BF[0000] movw $switches, %di 0 00000EC0 36817904 cmpw $8192, %ss:4(%bx,%di) 0 00000EC4 0020 0 00000EC6 89CF movw %cx, %di 0 00000EC8 8CD9 movw %ds, %cx 0 00000ECA 744C je .L163 0 00000ECC BA[CC05] movw $.LC11, %dx 976 .L156: 0 00000ECF 894EF8 movw %cx, -8(%bp) 0 00000ED2 52 pushw %dx 0 00000ED3 16 pushw %ss 0 00000ED4 1F popw %ds 0 00000ED5 E8[FEFF] call syntax 0 00000ED8 83C402 addw $2, %sp 0 00000EDB 8B4EF8 movw -8(%bp), %cx 984 .L154: 0 00000EDE B80C00 movw $12, %ax 0 00000EE1 F7E6 mulw %si 0 00000EE3 96 xchgw %ax, %si 0 00000EE4 81C6[0000] addw $switches, %si 0 00000EE8 8B5C06 movw 6(%si), %bx 0 00000EEB 890F movw %cx, (%bx) 0 00000EED 8C4702 movw %es, 2(%bx) 0 00000EF0 8B4404 movw 4(%si), %ax 0 00000EF3 360906[00] orw %ax, %ss:defined_format 0 00000EF7 [00] 0 00000EF8 360906[00] orw %ax, %ss:forced_format 0 00000EFC [00] 0 00000EFD E90CFF jmp .L144 996 .L147: 0 00000F00 C706[0000] movw $1, use_old_format_f 0 00000F04 0100 0 00000F06 E903FF jmp .L144 999 .L148: 0 00000F09 36800E[01] orb $-128, %ss:defined_format+1 0 00000F0D [00]80 0 00000F0F 36800E[01] orb $-128, %ss:forced_format+1 0 00000F13 [00]80 0 00000F15 E9F4FE jmp .L144 1003 .L163: 0 00000F18 BA[AE05] movw $.LC10, %dx 0 00000F1B EBB2 jmp .L156 1006 .L145: 0 00000F1D 8B5F06 movw 6(%bx), %bx 0 00000F20 8907 movw %ax, (%bx) 0 00000F22 894702 movw %ax, 2(%bx) 0 00000F25 36800E[01] orb $8, %ss:defined_format+1 0 00000F29 [00]08 0 00000F2B 36800E[01] orb $8, %ss:forced_format+1 0 00000F2F [00]08 0 00000F31 E9D8FE jmp .L144 1013 .size parse_cmdline, .-parse_cmdline === Switch to base unknown -> ".RODATA" 1014 .section .rodata 1015 .type dos_disk.4013, @object 1016 .size dos_disk.4013, 374 1017 dos_disk.4013: 0 0000002E 0100 .hword 1 0 00000030 FA00 .hword 250 0 00000032 00 .byte 0 0 00000033 8000 .hword 128 0 00000035 8000 .hword 128 0 00000037 0100 .hword 1 0 00000039 0400 .hword 4 0 0000003B 0100 .hword 1 0 0000003D 0100 .hword 1 0 0000003F A000 .hword 160 0 00000041 FE00 .hword 254 0 00000043 00 .byte 0 0 00000044 0002 .hword 512 0 00000046 0002 .hword 512 0 00000048 0200 .hword 2 0 0000004A 4000 .hword 64 0 0000004C 0800 .hword 8 0 0000004E 0100 .hword 1 0 00000050 B400 .hword 180 0 00000052 FC00 .hword 252 0 00000054 00 .byte 0 0 00000055 0002 .hword 512 0 00000057 0002 .hword 512 0 00000059 0200 .hword 2 0 0000005B 4000 .hword 64 0 0000005D 0900 .hword 9 0 0000005F 0100 .hword 1 0 00000061 C800 .hword 200 0 00000063 FD00 .hword 253 0 00000065 00 .byte 0 0 00000066 0002 .hword 512 0 00000068 0004 .hword 1024 0 0000006A 0200 .hword 2 0 0000006C 7000 .hword 112 0 0000006E 0A00 .hword 10 0 00000070 0100 .hword 1 0 00000072 CD00 .hword 205 0 00000074 FD00 .hword 253 0 00000076 00 .byte 0 0 00000077 0002 .hword 512 0 00000079 0004 .hword 1024 0 0000007B 0200 .hword 2 0 0000007D 7000 .hword 112 0 0000007F 0A00 .hword 10 0 00000081 0100 .hword 1 0 00000083 4001 .hword 320 0 00000085 FF00 .hword 255 0 00000087 00 .byte 0 0 00000088 0002 .hword 512 0 0000008A 0004 .hword 1024 0 0000008C 0200 .hword 2 0 0000008E 7000 .hword 112 0 00000090 0800 .hword 8 0 00000092 0200 .hword 2 0 00000094 6801 .hword 360 0 00000096 FD00 .hword 253 0 00000098 00 .byte 0 0 00000099 0002 .hword 512 0 0000009B 0004 .hword 1024 0 0000009D 0200 .hword 2 0 0000009F 7000 .hword 112 0 000000A1 0900 .hword 9 0 000000A3 0200 .hword 2 0 000000A5 9001 .hword 400 0 000000A7 FD00 .hword 253 0 000000A9 00 .byte 0 0 000000AA 0002 .hword 512 0 000000AC 0004 .hword 1024 0 000000AE 0200 .hword 2 0 000000B0 7000 .hword 112 0 000000B2 0A00 .hword 10 0 000000B4 0200 .hword 2 0 000000B6 9A01 .hword 410 0 000000B8 FD00 .hword 253 0 000000BA 00 .byte 0 0 000000BB 0002 .hword 512 0 000000BD 0004 .hword 1024 0 000000BF 0200 .hword 2 0 000000C1 7000 .hword 112 0 000000C3 0A00 .hword 10 0 000000C5 0200 .hword 2 0 000000C7 8002 .hword 640 0 000000C9 FB00 .hword 251 0 000000CB 02 .byte 2 0 000000CC 0002 .hword 512 0 000000CE 0004 .hword 1024 0 000000D0 0200 .hword 2 0 000000D2 7000 .hword 112 0 000000D4 0800 .hword 8 0 000000D6 0200 .hword 2 0 000000D8 D002 .hword 720 0 000000DA F900 .hword 249 0 000000DC 02 .byte 2 0 000000DD 0002 .hword 512 0 000000DF 0004 .hword 1024 0 000000E1 0200 .hword 2 0 000000E3 7000 .hword 112 0 000000E5 0900 .hword 9 0 000000E7 0200 .hword 2 0 000000E9 2003 .hword 800 0 000000EB F900 .hword 249 0 000000ED 02 .byte 2 0 000000EE 0002 .hword 512 0 000000F0 0004 .hword 1024 0 000000F2 0200 .hword 2 0 000000F4 7000 .hword 112 0 000000F6 0A00 .hword 10 0 000000F8 0200 .hword 2 0 000000FA 3403 .hword 820 0 000000FC F900 .hword 249 0 000000FE 02 .byte 2 0 000000FF 0002 .hword 512 0 00000101 0004 .hword 1024 0 00000103 0200 .hword 2 0 00000105 7000 .hword 112 0 00000107 0A00 .hword 10 0 00000109 0200 .hword 2 0 0000010B B004 .hword 1200 0 0000010D F900 .hword 249 0 0000010F 01 .byte 1 0 00000110 0002 .hword 512 0 00000112 0002 .hword 512 0 00000114 0200 .hword 2 0 00000116 E000 .hword 224 0 00000118 0F00 .hword 15 0 0000011A 0200 .hword 2 0 0000011C A005 .hword 1440 0 0000011E F000 .hword 240 0 00000120 07 .byte 7 0 00000121 0002 .hword 512 0 00000123 0002 .hword 512 0 00000125 0200 .hword 2 0 00000127 E000 .hword 224 0 00000129 1200 .hword 18 0 0000012B 0200 .hword 2 0 0000012D C405 .hword 1476 0 0000012F F000 .hword 240 0 00000131 07 .byte 7 0 00000132 0002 .hword 512 0 00000134 0002 .hword 512 0 00000136 0200 .hword 2 0 00000138 E000 .hword 224 0 0000013A 1200 .hword 18 0 0000013C 0200 .hword 2 0 0000013E 4006 .hword 1600 0 00000140 F000 .hword 240 0 00000142 07 .byte 7 0 00000143 0002 .hword 512 0 00000145 0002 .hword 512 0 00000147 0200 .hword 2 0 00000149 E000 .hword 224 0 0000014B 1400 .hword 20 0 0000014D 0200 .hword 2 0 0000014F 6806 .hword 1640 0 00000151 F000 .hword 240 0 00000153 07 .byte 7 0 00000154 0002 .hword 512 0 00000156 0002 .hword 512 0 00000158 0200 .hword 2 0 0000015A E000 .hword 224 0 0000015C 1400 .hword 20 0 0000015E 0200 .hword 2 0 00000160 9006 .hword 1680 0 00000162 F000 .hword 240 0 00000164 07 .byte 7 0 00000165 0002 .hword 512 0 00000167 0002 .hword 512 0 00000169 0200 .hword 2 0 0000016B E000 .hword 224 0 0000016D 1500 .hword 21 0 0000016F 0200 .hword 2 0 00000171 BA06 .hword 1722 0 00000173 F000 .hword 240 0 00000175 07 .byte 7 0 00000176 0002 .hword 512 0 00000178 0002 .hword 512 0 0000017A 0200 .hword 2 0 0000017C E000 .hword 224 0 0000017E 1500 .hword 21 0 00000180 0200 .hword 2 0 00000182 400B .hword 2880 0 00000184 F000 .hword 240 0 00000186 09 .byte 9 0 00000187 0002 .hword 512 0 00000189 0004 .hword 1024 0 0000018B 0200 .hword 2 0 0000018D F000 .hword 240 0 0000018F 2400 .hword 36 0 00000191 0200 .hword 2 0 00000193 0000 .hword 0 0 00000195 00000000 .skip 15,0 0 00000199 00000000 0 0000019D 00000000 0 000001A1 000000 === Switch to base unknown -> ".RODATA.STR1.1" 1209 .section .rodata.str1.1 1210 .LC17: 0 0000106F 3F00 .string "?" 1212 .LC18: 0 00001071 4100 .string "A" 1214 .LC19: 0 00001073 41534B00 .string "ASK" 1216 .LC20: 0 00001077 41564149 .string "AVAILABLE" 0 0000107B 4C41424C 0 0000107F 4500 1218 .LC21: 0 00001081 424F4F54 .string "BOOTSECTOR" 0 00001085 53454354 0 00001089 4F5200 1220 .LC22: 0 0000108C 434C5553 .string "CLUSTER" 0 00001090 54455200 1222 .LC23: 0 00001094 4400 .string "D" 1224 .LC24: 0 00001096 44455649 .string "DEVICETYPE" 0 0000109A 43455459 0 0000109E 504500 1226 .LC25: 0 000010A1 44495245 .string "DIRENTRIES" 0 000010A5 4E545249 0 000010A9 455300 1228 .LC26: 0 000010AC 444F5346 .string "DOSFORMAT" 0 000010B0 4F524D41 0 000010B4 5400 1230 .LC27: 0 000010B6 4500 .string "E" 1232 .LC28: 0 000010B8 454E5649 .string "ENVIRONMENT" 0 000010BC 524F4E4D 0 000010C0 454E5400 1234 .LC29: 0 000010C4 45524153 .string "ERASE" 0 000010C8 4500 1236 .LC30: 0 000010CA 4600 .string "F" 1238 .LC31: 0 000010CC 46415453 .string "FATS" 0 000010D0 00 1240 .LC32: 0 000010D1 46494C45 .string "FILESPACE" 0 000010D5 53504143 0 000010D9 4500 1242 .LC33: 0 000010DB 464F5243 .string "FORCE" 0 000010DF 4500 1244 .LC34: 0 000010E1 46524545 .string "FREEMEM" 0 000010E5 4D454D00 1246 .LC35: 0 000010E9 4800 .string "H" 1248 .LC36: 0 000010EB 48454144 .string "HEADS" 0 000010EF 5300 1250 .LC37: 0 000010F1 48454C50 .string "HELP" 0 000010F5 00 1252 .LC38: 0 000010F6 4D00 .string "M" 1254 .LC39: 0 000010F8 4D415853 .string "MAXSIZE" 0 000010FC 495A4500 1256 .LC40: 0 00001100 4D454449 .string "MEDIA" 0 00001104 4100 1258 .LC41: 0 00001106 4D494E53 .string "MINSIZE" 0 0000110A 495A4500 1260 .LC42: 0 0000110E 4E4F00 .string "NO" 1262 .LC43: 0 00001111 4F4C4400 .string "OLD" 1264 .LC44: 0 00001115 52454D4F .string "REMOVABLE" 0 00001119 5641424C 0 0000111D 4500 1266 .LC45: 0 0000111F 5300 .string "S" 1268 .LC46: 0 00001121 53454354 .string "SECTORS" 0 00001125 4F525300 1270 .LC47: 0 00001129 53454354 .string "SECTORSIZE" 0 0000112D 4F525349 0 00001131 5A4500 1272 .LC48: 0 00001134 53494445 .string "SIDES" 0 00001138 5300 1274 .LC49: 0 0000113A 53505400 .string "SPT" 1276 .LC50: 0 0000113E 554E434F .string "UNCONDITIONAL" 0 00001142 4E444954 0 00001146 494F4E41 0 0000114A 4C00 1278 .LC51: 0 0000114C 56455242 .string "VERBOSE" 0 00001150 4F534500 1280 .LC52: 0 00001154 57524954 .string "WRITEPROTECT" 0 00001158 4550524F 0 0000115C 54454354 0 00001160 00 1282 .LC53: 0 00001161 59455300 .string "YES" 1284 .LC54: 0 00001165 5800 .string "X" === Switch to base unknown -> ".DATA" 1286 .data 1287 .type switches, @object 1288 .size switches, 456 1289 switches: 0 00002602 [7206] .hword .LC17 0 00002604 0000 .hword 0 0 00002606 0600 .hword 6 0 00002608 00000000 .skip 6,0 0 0000260C 0000 0 0000260E [7406] .hword .LC18 0 00002610 [2804] .hword number 0 00002612 2000 .hword 32 0 00002614 [1000] .hword newf+16 0 00002616 0100 .hword 1 0 00002618 FF00 .hword 255 0 0000261A [7606] .hword .LC19 0 0000261C [0000] .hword yes_no 0 0000261E 0000 .hword 0 0 00002620 [0000] .hword force_f 0 00002622 0000 .hword 0 0 00002624 0000 .skip 2,0 0 00002626 [7A06] .hword .LC20 0 00002628 0000 .hword 0 0 0000262A 0008 .hword 2048 0 0000262C [0800] .hword newf+8 0 0000262E 00000000 .skip 4,0 0 00002632 [8406] .hword .LC21 0 00002634 [AE03] .hword filename 0 00002636 0000 .hword 0 0 00002638 [0000] .hword bootsectorfile 0 0000263A 00000000 .skip 4,0 0 0000263E [8F06] .hword .LC22 0 00002640 [2804] .hword number 0 00002642 0800 .hword 8 0 00002644 [0E00] .hword newf+14 0 00002646 8000 .hword 128 0 00002648 0080 .hword -32768 0 0000264A [9706] .hword .LC23 0 0000264C [2804] .hword number 0 0000264E 1000 .hword 16 0 00002650 [1200] .hword newf+18 0 00002652 0200 .hword 2 0 00002654 401F .hword 8000 0 00002656 [9906] .hword .LC24 0 00002658 [2804] .hword number 0 0000265A 0004 .hword 1024 0 0000265C [1A00] .hword newf+26 0 0000265E 0000 .hword 0 0 00002660 0A00 .hword 10 0 00002662 [A406] .hword .LC25 0 00002664 [2804] .hword number 0 00002666 1000 .hword 16 0 00002668 [1200] .hword newf+18 0 0000266A 0200 .hword 2 0 0000266C 401F .hword 8000 0 0000266E [AF06] .hword .LC26 0 00002670 [E002] .hword DOSform 0 00002672 00000000 .skip 8,0 0 00002676 00000000 0 0000267A [B906] .hword .LC27 0 0000267C [0000] .hword yes_no 0 0000267E 0000 .hword 0 0 00002680 [0000] .hword f_set_env 0 00002682 0100 .hword 1 0 00002684 0000 .skip 2,0 0 00002686 [BB06] .hword .LC28 0 00002688 [0000] .hword yes_no 0 0000268A 0000 .hword 0 0 0000268C [0000] .hword f_set_env 0 0000268E 0100 .hword 1 0 00002690 0000 .skip 2,0 0 00002692 [C706] .hword .LC29 0 00002694 0000 .hword 0 0 00002696 0D00 .hword 13 0 00002698 00000000 .skip 6,0 0 0000269C 0000 0 0000269E [CD06] .hword .LC30 0 000026A0 [E002] .hword DOSform 0 000026A2 00000000 .skip 8,0 0 000026A6 00000000 0 000026AA [CF06] .hword .LC31 0 000026AC [2804] .hword number 0 000026AE 2000 .hword 32 0 000026B0 [1000] .hword newf+16 0 000026B2 0100 .hword 1 0 000026B4 0200 .hword 2 0 000026B6 [D406] .hword .LC32 0 000026B8 0000 .hword 0 0 000026BA 0010 .hword 4096 0 000026BC [0800] .hword newf+8 0 000026BE 00000000 .skip 4,0 0 000026C2 [DE06] .hword .LC33 0 000026C4 [0000] .hword yes_no 0 000026C6 0000 .hword 0 0 000026C8 [0000] .hword force_f 0 000026CA 0100 .hword 1 0 000026CC 0000 .skip 2,0 0 000026CE [E406] .hword .LC34 0 000026D0 0000 .hword 0 0 000026D2 0020 .hword 8192 0 000026D4 [0800] .hword newf+8 0 000026D6 00000000 .skip 4,0 0 000026DA [EC06] .hword .LC35 0 000026DC 0000 .hword 0 0 000026DE 0600 .hword 6 0 000026E0 00000000 .skip 6,0 0 000026E4 0000 0 000026E6 [EE06] .hword .LC36 0 000026E8 [2804] .hword number 0 000026EA 0002 .hword 512 0 000026EC [1800] .hword newf+24 0 000026EE 0100 .hword 1 0 000026F0 FF00 .hword 255 0 000026F2 [F406] .hword .LC37 0 000026F4 0000 .hword 0 0 000026F6 0600 .hword 6 0 000026F8 00000000 .skip 6,0 0 000026FC 0000 0 000026FE [F906] .hword .LC38 0 00002700 [4502] .hword maxsizes 0 00002702 0700 .hword 7 0 00002704 00000000 .skip 6,0 0 00002708 0000 0 0000270A [FB06] .hword .LC39 0 0000270C 0000 .hword 0 0 0000270E 1200 .hword 18 0 00002710 00000000 .skip 6,0 0 00002714 0000 0 00002716 [0307] .hword .LC40 0 00002718 [2804] .hword number 0 0000271A 8000 .hword 128 0 0000271C [1400] .hword newf+20 0 0000271E 0000 .hword 0 0 00002720 FF00 .hword 255 0 00002722 [0907] .hword .LC41 0 00002724 0000 .hword 0 0 00002726 1100 .hword 17 0 00002728 00000000 .skip 6,0 0 0000272C 0000 0 0000272E [1107] .hword .LC42 0 00002730 [0000] .hword yes_no 0 00002732 0000 .hword 0 0 00002734 [0000] .hword force_f 0 00002736 FFFF .hword -1 0 00002738 0000 .skip 2,0 0 0000273A [1407] .hword .LC43 0 0000273C 0000 .hword 0 0 0000273E 0800 .hword 8 0 00002740 00000000 .skip 6,0 0 00002744 0000 0 00002746 [1807] .hword .LC44 0 00002748 [0000] .hword yes_no 0 0000274A 0040 .hword 16384 0 0000274C [0200] .hword newf+2 0 0000274E 0100 .hword 1 0 00002750 0000 .skip 2,0 0 00002752 [2207] .hword .LC45 0 00002754 [2804] .hword number 0 00002756 0400 .hword 4 0 00002758 [0C00] .hword newf+12 0 0000275A 8000 .hword 128 0 0000275C 0002 .hword 512 0 0000275E [2407] .hword .LC46 0 00002760 [2804] .hword number 0 00002762 0001 .hword 256 0 00002764 [1600] .hword newf+22 0 00002766 0100 .hword 1 0 00002768 FF00 .hword 255 0 0000276A [2C07] .hword .LC47 0 0000276C [2804] .hword number 0 0000276E 0400 .hword 4 0 00002770 [0C00] .hword newf+12 0 00002772 8000 .hword 128 0 00002774 0002 .hword 512 0 00002776 [3707] .hword .LC48 0 00002778 [2804] .hword number 0 0000277A 0002 .hword 512 0 0000277C [1800] .hword newf+24 0 0000277E 0100 .hword 1 0 00002780 FF00 .hword 255 0 00002782 [3D07] .hword .LC49 0 00002784 [2804] .hword number 0 00002786 0001 .hword 256 0 00002788 [1600] .hword newf+22 0 0000278A 0100 .hword 1 0 0000278C FF00 .hword 255 0 0000278E [4107] .hword .LC50 0 00002790 0000 .hword 0 0 00002792 0D00 .hword 13 0 00002794 00000000 .skip 6,0 0 00002798 0000 0 0000279A [4F07] .hword .LC51 0 0000279C [2804] .hword number 0 0000279E 0000 .hword 0 0 000027A0 [0000] .hword verbose 0 000027A2 0000 .hword 0 0 000027A4 0600 .hword 6 0 000027A6 [5707] .hword .LC52 0 000027A8 [0000] .hword yes_no 0 000027AA 0100 .hword 1 0 000027AC [0000] .hword newf 0 000027AE 0100 .hword 1 0 000027B0 0000 .skip 2,0 0 000027B2 [6407] .hword .LC53 0 000027B4 [0000] .hword yes_no 0 000027B6 0000 .hword 0 0 000027B8 [0000] .hword force_f 0 000027BA 0100 .hword 1 0 000027BC 0000 .skip 2,0 0 000027BE [6807] .hword .LC54 0 000027C0 [2801] .hword numbermask 0 000027C2 0000 .hword 0 0 000027C4 [0000] .hword xvariable 0 000027C6 0000 .hword 0 0 000027C8 FF00 .hword 255 1490 .comm bootsectorfile,2,2 1491 .global xvariable === Switch to base unknown -> ".BSS" 1492 .bss 1493 .p2align 1 1494 .type xvariable, @object 1495 .size xvariable, 2 1496 xvariable: 0 00002A50 0000 .skip 2,0 1498 .global verbose === Switch to base unknown -> ".DATA" 1499 .data 1500 .p2align 1 1501 .type verbose, @object 1502 .size verbose, 2 1503 verbose: 0 000027CA FFFF .hword -1 1505 .global f_set_env 1506 .p2align 1 1507 .type f_set_env, @object 1508 .size f_set_env, 2 1509 f_set_env: 0 000027CC FFFF .hword -1 1511 .global use_old_format_f === Switch to base unknown -> ".BSS" 1512 .bss 1513 .p2align 1 1514 .type use_old_format_f, @object 1515 .size use_old_format_f, 2 1516 use_old_format_f: 0 00002A52 0000 .skip 2,0 1518 .ident "GCC: (GNU) 6.3.0" 1519 .weak __ia16_use_printf_nofloat.v1 1520 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: director.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type save_buffer.part.0, @function 7 save_buffer.part.0: 0 00000F34 BB[0000] movw $buffer, %bx 0 00000F37 16 pushw %ss 0 00000F38 FF37 pushw (%bx) 0 00000F3A FF7708 pushw 8(%bx) 0 00000F3D FF7706 pushw 6(%bx) 0 00000F40 FF7704 pushw 4(%bx) 0 00000F43 E8[FEFF] call write_sector 0 00000F46 8026[0A00] andb $-2, buffer+10 0 00000F4A FE 0 00000F4B 83C40A addw $10, %sp 0 00000F4E C3 ret 18 .size save_buffer.part.0, .-save_buffer.part.0 19 .type get_sectors, @function 20 get_sectors: 0 00000F4F 56 pushw %si 0 00000F50 57 pushw %di 0 00000F51 06 pushw %es 0 00000F52 55 pushw %bp 0 00000F53 89E5 movw %sp, %bp 0 00000F55 1E pushw %ds 0 00000F56 8B760A movw 10(%bp), %si 0 00000F59 C4560C lesw 12(%bp), %dx 0 00000F5C BF[0000] movw $buffer, %di 0 00000F5F 397506 cmpw %si, 6(%di) 0 00000F62 7505 jne .L6 0 00000F64 395508 cmpw %dx, 8(%di) 0 00000F67 7426 je .L2 34 .L6: 0 00000F69 F606[0A00] testb $1, buffer+10 0 00000F6D 01 0 00000F6E 7409 je .L5 0 00000F70 8956FE movw %dx, -2(%bp) 0 00000F73 E8BEFF call save_buffer.part.0 0 00000F76 8B56FE movw -2(%bp), %dx 40 .L5: 0 00000F79 897506 movw %si, 6(%di) 0 00000F7C 895508 movw %dx, 8(%di) 0 00000F7F 8C4504 movw %es, 4(%di) 0 00000F82 8B0D movw (%di), %cx 0 00000F84 16 pushw %ss 0 00000F85 51 pushw %cx 0 00000F86 52 pushw %dx 0 00000F87 56 pushw %si 0 00000F88 06 pushw %es 0 00000F89 E8[FEFF] call read_sector 0 00000F8C 83C40A addw $10, %sp 52 .L2: 0 00000F8F 89EC movw %bp, %sp 0 00000F91 5D popw %bp 0 00000F92 07 popw %es 0 00000F93 5F popw %di 0 00000F94 5E popw %si 0 00000F95 C3 ret 59 .size get_sectors, .-get_sectors 60 .global DirClose 61 .type DirClose, @function 62 DirClose: 0 00000F96 56 pushw %si 0 00000F97 55 pushw %bp 0 00000F98 89E5 movw %sp, %bp 0 00000F9A 8B7606 movw 6(%bp), %si 0 00000F9D F606[0A00] testb $1, buffer+10 0 00000FA1 01 0 00000FA2 7403 je .L12 0 00000FA4 E88DFF call save_buffer.part.0 70 .L12: 0 00000FA7 897606 movw %si, 6(%bp) 0 00000FAA 5D popw %bp 0 00000FAB 5E popw %si 0 00000FAC E9[FEFF] jmp free 75 .size DirClose, .-DirClose 76 .global DirWrite 77 .type DirWrite, @function 78 DirWrite: 0 00000FAF 56 pushw %si 0 00000FB0 57 pushw %di 0 00000FB1 06 pushw %es 0 00000FB2 55 pushw %bp 0 00000FB3 89E5 movw %sp, %bp 0 00000FB5 1E pushw %ds 0 00000FB6 8B5E0A movw 10(%bp), %bx 0 00000FB9 833F00 cmpw $0, (%bx) 0 00000FBC 8B3E[0000] movw fat, %di 0 00000FC0 7503E9B7 je .L18 0 00000FC4 00 0 00000FC5 8B8D8800 movw 136(%di), %cx 0 00000FC9 8B5E0A movw 10(%bp), %bx 0 00000FCC 8B470C movw 12(%bx), %ax 0 00000FCF 8B5F0E movw 14(%bx), %bx 0 00000FD2 83C0FE addw $-2, %ax 0 00000FD5 96 xchgw %ax, %si 0 00000FD6 83D3FF adcw $-1, %bx 0 00000FD9 93 xchgw %ax, %bx 0 00000FDA F7E1 mulw %cx 0 00000FDC 8946FE movw %ax, -2(%bp) 0 00000FDF 96 xchgw %ax, %si 0 00000FE0 F7E1 mulw %cx 0 00000FE2 93 xchgw %ax, %bx 0 00000FE3 89D6 movw %dx, %si 0 00000FE5 0376FE addw -2(%bp), %si 0 00000FE8 8B457E movw 126(%di), %ax 0 00000FEB 31D2 xorw %dx, %dx 0 00000FED 01D8 addw %bx, %ax 0 00000FEF 11F2 adcw %si, %dx 108 .L19: 0 00000FF1 51 pushw %cx 0 00000FF2 52 pushw %dx 0 00000FF3 50 pushw %ax 0 00000FF4 E858FF call get_sectors 0 00000FF7 800E[0A00] orb $1, buffer+10 0 00000FFB 01 0 00000FFC 83C406 addw $6, %sp 0 00000FFF 8B5E0A movw 10(%bp), %bx 0 00001002 F6473601 testb $1, 54(%bx) 0 00001006 8B4714 movw 20(%bx), %ax 0 00001009 BB[0000] movw $buffer, %bx 0 0000100C 7503E9B0 je .L22 0 00001010 00 0 00001011 8B5702 movw 2(%bx), %dx 0 00001014 29C2 subw %ax, %dx 0 00001016 0307 addw (%bx), %ax 0 00001018 52 pushw %dx 0 00001019 31D2 xorw %dx, %dx 0 0000101B 8EC2 movw %dx, %es 0 0000101D 52 pushw %dx 0 0000101E 50 pushw %ax 0 0000101F E8[FEFF] call memset 0 00001022 83C406 addw $6, %sp 0 00001025 8B5E0A movw 10(%bp), %bx 0 00001028 833F00 cmpw $0, (%bx) 0 0000102B 8CC6 movw %es, %si 0 0000102D 746B je .L23 0 0000102F FF770C pushw 12(%bx) 0 00001032 E8[FEFF] call next_cluster 0 00001035 89C7 movw %ax, %di 0 00001037 83C402 addw $2, %sp 0 0000103A 83F8F7 cmpw $-9, %ax 0 0000103D 7736 ja .L17 0 0000103F B8FFFF movw $-1, %ax 0 00001042 50 pushw %ax 0 00001043 8B5E0A movw 10(%bp), %bx 0 00001046 FF770C pushw 12(%bx) 0 00001049 E8[FEFF] call set_next_cluster 0 0000104C 83C404 addw $4, %sp 146 .L27: 0 0000104F 57 pushw %di 0 00001050 E8[FEFF] call next_cluster 0 00001053 8946FE movw %ax, -2(%bp) 0 00001056 56 pushw %si 0 00001057 57 pushw %di 0 00001058 E8[FEFF] call set_next_cluster 0 0000105B 83C406 addw $6, %sp 0 0000105E 8B46FE movw -2(%bp), %ax 0 00001061 85C0 testw %ax, %ax 0 00001063 7410 je .L17 0 00001065 97 xchgw %ax, %di 0 00001066 8B1E[0000] movw fat, %bx 0 0000106A 8B878A00 movw 138(%bx), %ax 0 0000106E 83C002 addw $2, %ax 0 00001071 39C7 cmpw %ax, %di 0 00001073 72DA jc .L27 163 .L17: 0 00001075 89EC movw %bp, %sp 0 00001077 5D popw %bp 0 00001078 07 popw %es 0 00001079 5F popw %di 0 0000107A 5E popw %si 0 0000107B C3 ret 170 .L18: 0 0000107C 8B5E0A movw 10(%bp), %bx 0 0000107F 8B470C movw 12(%bx), %ax 0 00001082 8B570E movw 14(%bx), %dx 0 00001085 8B4D7E movw 126(%di), %cx 0 00001088 8B9D8800 movw 136(%di), %bx 0 0000108C 29C1 subw %ax, %cx 0 0000108E 39D9 cmpw %bx, %cx 0 00001090 7703E95C jbe .L19 0 00001094 FF 0 00001095 89D9 movw %bx, %cx 0 00001097 E957FF jmp .L19 181 .L23: 0 0000109A 8B1E[0000] movw fat, %bx 0 0000109E 8B7E0A movw 10(%bp), %di 0 000010A1 8B4512 movw 18(%di), %ax 0 000010A4 40 incw %ax 0 000010A5 F7A78800 mulw 136(%bx) 0 000010A9 8B577A movw 122(%bx), %dx 0 000010AC 39D0 cmpw %dx, %ax 0 000010AE 73C5 jnc .L17 0 000010B0 29C2 subw %ax, %dx 0 000010B2 06 pushw %es 0 000010B3 52 pushw %dx 0 000010B4 03477C addw 124(%bx), %ax 0 000010B7 06 pushw %es 0 000010B8 50 pushw %ax 0 000010B9 E8[FEFF] call ClearSectors 0 000010BC 83C408 addw $8, %sp 0 000010BF EBB4 jmp .L17 199 .L22: 0 000010C1 BA2000 movw $32, %dx 0 000010C4 52 pushw %dx 0 000010C5 8B560A movw 10(%bp), %dx 0 000010C8 83C216 addw $22, %dx 0 000010CB 52 pushw %dx 0 000010CC 0307 addw (%bx), %ax 0 000010CE 50 pushw %ax 0 000010CF E8[FEFF] call memmove 0 000010D2 8B5E0A movw 10(%bp), %bx 0 000010D5 8B4710 movw 16(%bx), %ax 0 000010D8 40 incw %ax 0 000010D9 894710 movw %ax, 16(%bx) 0 000010DC 8B5714 movw 20(%bx), %dx 0 000010DF 8956FE movw %dx, -2(%bp) 0 000010E2 83C220 addw $32, %dx 0 000010E5 895714 movw %dx, 20(%bx) 0 000010E8 8B1E[0000] movw fat, %bx 0 000010EC 83C406 addw $6, %sp 0 000010EF 3B570E cmpw 14(%bx), %dx 0 000010F2 7281 jc .L17 0 000010F4 8B7E0A movw 10(%bp), %di 0 000010F7 833D00 cmpw $0, (%di) 0 000010FA 742A je .L28 0 000010FC FF750C pushw 12(%di) 0 000010FF E8[FEFF] call next_cluster 0 00001102 83C402 addw $2, %sp 0 00001105 83F8EF cmpw $-17, %ax 0 00001108 7603E968 ja .L17 0 0000110C FF 0 0000110D 8B5E0A movw 10(%bp), %bx 0 00001110 89470C movw %ax, 12(%bx) 0 00001113 C7470E00 movw $0, 14(%bx) 0 00001117 00 231 .L29: 0 00001118 8B5E0A movw 10(%bp), %bx 0 0000111B FF4712 incw 18(%bx) 0 0000111E C7471400 movw $0, 20(%bx) 0 00001122 00 0 00001123 E94FFF jmp .L17 236 .L28: 0 00001126 3B4712 cmpw 18(%bx), %ax 0 00001129 7203E947 jnc .L17 0 0000112D FF 0 0000112E 8B878800 movw 136(%bx), %ax 0 00001132 31D2 xorw %dx, %dx 0 00001134 8B5E0A movw 10(%bp), %bx 0 00001137 8B5F0C movw 12(%bx), %bx 0 0000113A 8B7E0A movw 10(%bp), %di 0 0000113D 8B4D0E movw 14(%di), %cx 0 00001140 01D8 addw %bx, %ax 0 00001142 11CA adcw %cx, %dx 0 00001144 89450C movw %ax, 12(%di) 0 00001147 89550E movw %dx, 14(%di) 0 0000114A EBCC jmp .L29 250 .size DirWrite, .-DirWrite 251 .global DirFindNext 252 .type DirFindNext, @function 253 DirFindNext: 0 0000114C 56 pushw %si 0 0000114D 57 pushw %di 0 0000114E 55 pushw %bp 0 0000114F 89E5 movw %sp, %bp 0 00001151 1E pushw %ds 0 00001152 8B5E08 movw 8(%bp), %bx 0 00001155 F6473601 testb $1, 54(%bx) 0 00001159 7408 je .L36 262 .L41: 0 0000115B 31C0 xorw %ax, %ax 264 .L35: 0 0000115D 89EC movw %bp, %sp 0 0000115F 5D popw %bp 0 00001160 5F popw %di 0 00001161 5E popw %si 0 00001162 C3 ret 270 .L36: 0 00001163 8B5E08 movw 8(%bp), %bx 0 00001166 8B4706 movw 6(%bx), %ax 0 00001169 92 xchgw %ax, %dx 0 0000116A 42 incw %dx 0 0000116B 895706 movw %dx, 6(%bx) 0 0000116E 8B470A movw 10(%bx), %ax 0 00001171 8946FE movw %ax, -2(%bp) 0 00001174 83C020 addw $32, %ax 0 00001177 89470A movw %ax, 10(%bx) 0 0000117A 833F00 cmpw $0, (%bx) 0 0000117D 8B1E[0000] movw fat, %bx 0 00001181 7503E9B8 je .L38 0 00001185 00 0 00001186 3B470E cmpw 14(%bx), %ax 0 00001189 723F jc .L39 0 0000118B 8B5E08 movw 8(%bp), %bx 0 0000118E FF7702 pushw 2(%bx) 0 00001191 E8[FEFF] call next_cluster 0 00001194 83C402 addw $2, %sp 0 00001197 83F8F7 cmpw $-9, %ax 0 0000119A 7610 jbe .L40 291 .L43: 0 0000119C 8B5E08 movw 8(%bp), %bx 0 0000119F 804F3601 orb $1, 54(%bx) 0 000011A3 C6471600 movb $0, 22(%bx) 295 .L49: 0 000011A7 B80100 movw $1, %ax 0 000011AA EBB1 jmp .L35 298 .L40: 0 000011AC 89C2 movw %ax, %dx 0 000011AE 4A decw %dx 0 000011AF 83FAEE cmpw $-18, %dx 0 000011B2 77A7 ja .L41 0 000011B4 8B5E08 movw 8(%bp), %bx 0 000011B7 894702 movw %ax, 2(%bx) 0 000011BA C7470400 movw $0, 4(%bx) 0 000011BE 00 306 .L42: 0 000011BF 8B5E08 movw 8(%bp), %bx 0 000011C2 FF4708 incw 8(%bx) 0 000011C5 C7470A00 movw $0, 10(%bx) 0 000011C9 00 310 .L39: 0 000011CA 8B5E08 movw 8(%bp), %bx 0 000011CD 833F00 cmpw $0, (%bx) 0 000011D0 8B3E[0000] movw fat, %di 0 000011D4 7503E994 je .L44 0 000011D8 00 0 000011D9 8B8D8800 movw 136(%di), %cx 0 000011DD 8B5E08 movw 8(%bp), %bx 0 000011E0 8B4702 movw 2(%bx), %ax 0 000011E3 8B5F04 movw 4(%bx), %bx 0 000011E6 83C0FE addw $-2, %ax 0 000011E9 96 xchgw %ax, %si 0 000011EA 83D3FF adcw $-1, %bx 0 000011ED 93 xchgw %ax, %bx 0 000011EE F7E1 mulw %cx 0 000011F0 8946FE movw %ax, -2(%bp) 0 000011F3 96 xchgw %ax, %si 0 000011F4 F7E1 mulw %cx 0 000011F6 93 xchgw %ax, %bx 0 000011F7 89D6 movw %dx, %si 0 000011F9 0376FE addw -2(%bp), %si 0 000011FC 8B457E movw 126(%di), %ax 0 000011FF 31D2 xorw %dx, %dx 0 00001201 01D8 addw %bx, %ax 0 00001203 11F2 adcw %si, %dx 334 .L45: 0 00001205 51 pushw %cx 0 00001206 52 pushw %dx 0 00001207 50 pushw %ax 0 00001208 E844FD call get_sectors 0 0000120B 8B3E[0000] movw buffer, %di 0 0000120F 8B5E08 movw 8(%bp), %bx 0 00001212 8B5F0A movw 10(%bx), %bx 0 00001215 8D01 leaw (%bx,%di), %ax 0 00001217 83C406 addw $6, %sp 0 0000121A 803900 cmpb $0, (%bx,%di) 0 0000121D 7503E97A je .L43 0 00001221 FF 0 00001222 BA2000 movw $32, %dx 0 00001225 52 pushw %dx 0 00001226 50 pushw %ax 0 00001227 8B4608 movw 8(%bp), %ax 0 0000122A 83C016 addw $22, %ax 0 0000122D 50 pushw %ax 0 0000122E E8[FEFF] call memmove 0 00001231 8B5E08 movw 8(%bp), %bx 0 00001234 806736FE andb $-2, 54(%bx) 0 00001238 83C406 addw $6, %sp 0 0000123B E969FF jmp .L49 357 .L38: 0 0000123E 3B5712 cmpw 18(%bx), %dx 0 00001241 7203E956 jnc .L43 0 00001245 FF 0 00001246 3B470E cmpw 14(%bx), %ax 0 00001249 7303E97C jc .L39 0 0000124D FF 0 0000124E 8B878800 movw 136(%bx), %ax 0 00001252 31D2 xorw %dx, %dx 0 00001254 8B5E08 movw 8(%bp), %bx 0 00001257 8B5F02 movw 2(%bx), %bx 0 0000125A 8B7E08 movw 8(%bp), %di 0 0000125D 8B4D04 movw 4(%di), %cx 0 00001260 01D8 addw %bx, %ax 0 00001262 11CA adcw %cx, %dx 0 00001264 894502 movw %ax, 2(%di) 0 00001267 895504 movw %dx, 4(%di) 0 0000126A E952FF jmp .L42 373 .L44: 0 0000126D 8B5E08 movw 8(%bp), %bx 0 00001270 8B4702 movw 2(%bx), %ax 0 00001273 8B5704 movw 4(%bx), %dx 0 00001276 8B4D7E movw 126(%di), %cx 0 00001279 8B9D8800 movw 136(%di), %bx 0 0000127D 29C1 subw %ax, %cx 0 0000127F 39D9 cmpw %bx, %cx 0 00001281 7682 jbe .L45 0 00001283 89D9 movw %bx, %cx 0 00001285 E97DFF jmp .L45 384 .size DirFindNext, .-DirFindNext 385 .global DirRewind 386 .type DirRewind, @function 387 DirRewind: 0 00001288 56 pushw %si 0 00001289 57 pushw %di 0 0000128A 55 pushw %bp 0 0000128B 89E5 movw %sp, %bp 0 0000128D 1E pushw %ds 0 0000128E 1E pushw %ds 0 0000128F 8B7608 movw 8(%bp), %si 0 00001292 C7440800 movw $0, 8(%si) 0 00001296 00 0 00001297 C7440A00 movw $0, 10(%si) 0 0000129B 00 0 0000129C 31C9 xorw %cx, %cx 0 0000129E 894C12 movw %cx, 18(%si) 0 000012A1 894C14 movw %cx, 20(%si) 0 000012A4 894C06 movw %cx, 6(%si) 0 000012A7 894C10 movw %cx, 16(%si) 0 000012AA 8B14 movw (%si), %dx 0 000012AC 39CA cmpw %cx, %dx 0 000012AE 8E1E[0000] movw fat, %ds 0 000012B2 7452 je .L51 0 000012B4 36895402 movw %dx, %ss:2(%si) 0 000012B8 36894C04 movw %cx, %ss:4(%si) 0 000012BC 3689540C movw %dx, %ss:12(%si) 0 000012C0 36894C0E movw %cx, %ss:14(%si) 0 000012C4 8CDB movw %ds, %bx 0 000012C6 368B9F88 movw %ss:136(%bx), %bx 0 000012CA 00 0 000012CB 53 pushw %bx 0 000012CC 83C2FE addw $-2, %dx 0 000012CF 92 xchgw %ax, %dx 0 000012D0 F7E3 mulw %bx 0 000012D2 8946FC movw %ax, -4(%bp) 0 000012D5 8956FE movw %dx, -2(%bp) 0 000012D8 8CDB movw %ds, %bx 0 000012DA 368B477E movw %ss:126(%bx), %ax 0 000012DE 0346FC addw -4(%bp), %ax 0 000012E1 11CA adcw %cx, %dx 422 .L59: 0 000012E3 52 pushw %dx 0 000012E4 50 pushw %ax 0 000012E5 16 pushw %ss 0 000012E6 1F popw %ds 0 000012E7 E865FC call get_sectors 0 000012EA 83C406 addw $6, %sp 0 000012ED 8B1E[0000] movw buffer, %bx 0 000012F1 8A07 movb (%bx), %al 0 000012F3 84C0 testb %al, %al 0 000012F5 7437 je .L56 0 000012F7 3CE5 cmpb $-27, %al 0 000012F9 7538 jne .L55 0 000012FB 897608 movw %si, 8(%bp) 0 000012FE 89EC movw %bp, %sp 0 00001300 5D popw %bp 0 00001301 5F popw %di 0 00001302 5E popw %si 0 00001303 E946FE jmp DirFindNext 441 .L51: 0 00001306 8CDB movw %ds, %bx 0 00001308 368B477C movw %ss:124(%bx), %ax 0 0000130C 36894402 movw %ax, %ss:2(%si) 0 00001310 36895404 movw %dx, %ss:4(%si) 0 00001314 3689440C movw %ax, %ss:12(%si) 0 00001318 3689540E movw %dx, %ss:14(%si) 0 0000131C 368B8F88 movw %ss:136(%bx), %cx 0 00001320 00 0 00001321 368B5F7A movw %ss:122(%bx), %bx 0 00001325 39CB cmpw %cx, %bx 0 00001327 7602 jbe .L53 0 00001329 89CB movw %cx, %bx 453 .L53: 0 0000132B 53 pushw %bx 0 0000132C EBB5 jmp .L59 456 .L56: 0 0000132E 36804C36 orb $1, %ss:54(%si) 0 00001332 01 458 .L55: 0 00001333 B82000 movw $32, %ax 0 00001336 50 pushw %ax 0 00001337 53 pushw %bx 0 00001338 83C616 addw $22, %si 0 0000133B 56 pushw %si 0 0000133C E8[FEFF] call memmove 0 0000133F 89EC movw %bp, %sp 0 00001341 5D popw %bp 0 00001342 5F popw %di 0 00001343 5E popw %si 0 00001344 C3 ret 470 .size DirRewind, .-DirRewind 471 .global DirOpen 472 .type DirOpen, @function 473 DirOpen: 0 00001345 56 pushw %si 0 00001346 57 pushw %di 0 00001347 55 pushw %bp 0 00001348 89E5 movw %sp, %bp 0 0000134A BE[0000] movw $buffer, %si 0 0000134D 833C00 cmpw $0, (%si) 0 00001350 7519 jne .L61 0 00001352 8B1E[0000] movw fat, %bx 0 00001356 FF770E pushw 14(%bx) 0 00001359 E8[FEFF] call xalloc 0 0000135C 8904 movw %ax, (%si) 0 0000135E 8B1E[0000] movw fat, %bx 0 00001362 8B470E movw 14(%bx), %ax 0 00001365 894402 movw %ax, 2(%si) 0 00001368 83C402 addw $2, %sp 489 .L61: 0 0000136B BF3700 movw $55, %di 0 0000136E 57 pushw %di 0 0000136F E8[FEFF] call xalloc 0 00001372 96 xchgw %ax, %si 0 00001373 57 pushw %di 0 00001374 31C0 xorw %ax, %ax 0 00001376 50 pushw %ax 0 00001377 56 pushw %si 0 00001378 E8[FEFF] call memset 0 0000137B 8B4608 movw 8(%bp), %ax 0 0000137E 8904 movw %ax, (%si) 0 00001380 56 pushw %si 0 00001381 E8[FEFF] call DirRewind 0 00001384 96 xchgw %ax, %si 0 00001385 89EC movw %bp, %sp 0 00001387 5D popw %bp 0 00001388 5F popw %di 0 00001389 5E popw %si 0 0000138A C3 ret 509 .size DirOpen, .-DirOpen 510 .local buffer 511 .comm buffer,11,1 512 .ident "GCC: (GNU) 6.3.0" === Trace listing source: diskinit.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC1: 0 00001167 4D756C74 .string "Multiplex interrupt 2Dh invalid" 0 0000116B 69706C65 0 0000116F 7820696E 0 00001173 74657272 0 00001177 75707420 8 .LC2: 0 00001187 466F756E .string "Found mpx=%02Xh vendor=\"%s\" product=\"%s\" version=%u.%02u\n" 0 0000118B 64206D70 0 0000118F 783D2530 0 00001193 32586820 0 00001197 76656E64 10 .LC3: 0 000011C1 4D617463 .string "Match" 0 000011C5 6800 12 .LC4: 0 000011C7 46756E63 .string "Function 10h not supported" 0 000011CB 74696F6E 0 000011CF 20313068 0 000011D3 206E6F74 0 000011D7 20737570 14 .LC5: 0 000011E2 46756E63 .string "Function 10h returned version %u.%02u\n" 0 000011E6 74696F6E 0 000011EA 20313068 0 000011EE 20726574 0 000011F2 75726E65 16 .LC6: 0 00001209 496E636F .string "Incompatible SRDISK version installed" 0 0000120D 6D706174 0 00001211 69626C65 0 00001215 20535244 0 00001219 49534B20 18 .LC7: 0 0000122F 46756E63 .string "Function 20h not supported" 0 00001233 74696F6E 0 00001237 20323068 0 0000123B 206E6F74 0 0000123F 20737570 20 .LC8: 0 0000124A 46756E63 .string "Function 20h returned %04Xh:%04Xh -> ctrl0 size %u, content = %04Xh:%04Xh\n" 0 0000124E 74696F6E 0 00001252 20323068 0 00001256 20726574 0 0000125A 75726E65 22 .LC9: 0 00001295 536F6D65 .string "Some other driver found at SRDISK multiplex number" 0 00001299 206F7468 0 0000129D 65722064 0 000012A1 72697665 0 000012A5 7220666F 24 .LC10: 0 000012C8 496E7661 .string "Invalid SRDISK driver version" 0 000012CC 6C696420 0 000012D0 53524449 0 000012D4 534B2064 0 000012D8 72697665 26 .LC11: 0 000012E6 43616E6E .string "Cannot read DOS Drive Parameter Block chain" 0 000012EA 6F742072 0 000012EE 65616420 0 000012F2 444F5320 0 000012F6 44726976 28 .LC12: 0 00001312 53524449 .string "SRDISK drive not in DOS Drive Parameter Block chain" 0 00001316 534B2064 0 0000131A 72697665 0 0000131E 206E6F74 0 00001322 20696E20 30 .LC13: 0 00001346 0A596F75 .string "\nYou should define the proper drive letter in CONFIG.SYS\nExample: DEVICE=SRDISK.SYS D:\ 0 0000134A 2073686F 0 0000134E 756C6420 0 00001352 64656669 0 00001356 6E652074 32 .LC14: 0 0000139E 44726976 .string "Drive not ReSizeable RAMDisk" 0 000013A2 65206E6F 0 000013A6 74205265 0 000013AA 53697A65 0 000013AE 61626C65 34 .LC15: 0 000013BB 47657420 .string "Get device type = %02Xh\n" 0 000013BF 64657669 0 000013C3 63652074 0 000013C7 79706520 0 000013CB 3D202530 36 .LC16: 0 000013D4 44726976 .string "Driver %d of %d\n Version %s\n Memory: %s\n Flags:%s\n Max size: %luK\n Size: %luK\n 0 000013D8 65722025 0 000013DC 64206F66 0 000013E0 2025640A 0 000013E4 20205665 38 .LC17: 0 00001437 4E6F2053 .string "No SRDISK driver installed" 0 0000143B 52444953 0 0000143F 4B206472 0 00001443 69766572 0 00001447 20696E73 40 .LC0: 0 00001452 65636D20 .string "ecm SRDISK " 0 00001456 20202020 0 0000145A 53524449 0 0000145E 534B2020 0 00001462 00 === Switch to base unknown -> ".TEXT" 42 .text 43 .global init_drive 44 .type init_drive, @function 45 init_drive: 0 0000138B 56 pushw %si 0 0000138C 57 pushw %di 0 0000138D 06 pushw %es 0 0000138E 55 pushw %bp 0 0000138F 89E5 movw %sp, %bp 0 00001391 83EC58 subw $88, %sp 0 00001394 8D7ECF leaw -49(%bp), %di 0 00001397 BE1000 movw $16, %si 0 0000139A 56 pushw %si 0 0000139B 31C0 xorw %ax, %ax 0 0000139D 8EC0 movw %ax, %es 0 0000139F 50 pushw %ax 0 000013A0 57 pushw %di 0 000013A1 E8[FEFF] call memset 0 000013A4 8C46B5 movw %es, -75(%bp) 0 000013A7 8C46B7 movw %es, -73(%bp) 0 000013AA 8C46B9 movw %es, -71(%bp) 0 000013AD 8C46BB movw %es, -69(%bp) 0 000013B0 8D46EF leaw -17(%bp), %ax 0 000013B3 B91100 movw $17, %cx 0 000013B6 51 pushw %cx 0 000013B7 B9[EB02] movw $.LC0, %cx 0 000013BA 51 pushw %cx 0 000013BB 50 pushw %ax 0 000013BC E8[FEFF] call memcpy 0 000013BF C746CF2D movw $13613, -49(%bp) 0 000013C3 35 72 #APP 73 ;# 209 "/home/evln/proj/build-ia16.202501/prefix/ia16-elf/include/i86.h" 1 1 /* 2 * Copyright (c) 2018--2023 TK Chia 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * * Neither the name of the developer(s) nor the names of its 14 * contributors may be used to endorse or promote products derived from 15 * this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 18 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 20 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 23 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 25 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 26 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30 #ifndef _LIBI86_I86_H_ 31 #define _LIBI86_I86_H_ 32 33 #include 34 #include 35 36 _LIBI86_BEGIN_EXTERN_C 37 38 typedef __libi86_fpv_t _fptr_t, _far16ptr_t; 39 40 /* This definition is not binary-compatible with that in Open Watcom C/C++ 41 --- the latter does not have a .bp field. */ 42 struct WORDREGS 43 { 44 unsigned short ax, bx, cx, dx, si, di, bp, cflag; 45 #ifdef _BORLANDC_SOURCE 46 unsigned flags; 47 #endif 48 }; 49 50 struct BYTEREGS 51 { 52 unsigned char al, ah, bl, bh, cl, ch, dl, dh; 53 }; 54 55 union REGS 56 { 57 struct WORDREGS x; 58 struct WORDREGS w; 59 struct BYTEREGS h; 60 }; 61 62 struct SREGS 63 { 64 unsigned short es, cs, ss, ds; 65 }; 66 67 /* Again, not compatible with Open Watcom. */ 68 struct REGPACKW 69 { 70 unsigned short ax, bx, cx, dx, bp, si, di, ds, es, flags; 71 }; 72 73 struct REGPACKB 74 { 75 unsigned char al, ah, bl, bh, cl, ch, dl, dh; 76 }; 77 78 union REGPACK 79 { 80 struct REGPACKB h; 81 struct REGPACKW w; 82 struct REGPACKW x; 83 }; 84 85 enum __libi86_intr_flags 86 { 87 INTR_OF = 1u << 11, 88 INTR_DF = 1u << 10, 89 INTR_IF = 1u << 9, 90 INTR_TF = 1u << 8, 91 INTR_SF = 1u << 7, 92 INTR_ZF = 1u << 6, 93 INTR_AF = 1u << 4, 94 INTR_PF = 1u << 2, 95 INTR_CF = 1u << 0 96 }; 97 98 extern void delay (unsigned); 99 extern void nosound (void); 100 extern void segread (struct SREGS *__seg_regs); 101 102 /* 103 * Used by the actual implementations of int86 (...), intr (...), etc. Under 104 * GCC, these are also used by the inline versions of these routines, defined 105 * further below. 106 */ 107 #if defined __GNUC__ || defined _LIBI86_COMPILING_ 108 # ifndef _BORLANDC_SOURCE 109 extern int __libi86_int86 (int, const union REGS *, union REGS *); 110 extern int __libi86_int86_do (const void *, const union REGS *, union REGS *); 111 extern int __libi86_int86x (int, const union REGS *, union REGS *, 112 struct SREGS *); 113 extern int __libi86_int86x_do (const void *, const union REGS *, union REGS *, 114 struct SREGS *); 115 # else /* _BORLANDC_SOURCE */ 116 extern int __libi86_bc_int86 (int, const union REGS *, union REGS *); 117 extern int __libi86_bc_int86_do (const void *, const union REGS *, 118 union REGS *); 119 extern int __libi86_bc_int86x (int, const union REGS *, union REGS *, 120 struct SREGS *); 121 extern int __libi86_bc_int86x_do (const void *, const union REGS *, 122 union REGS *, struct SREGS *); 123 # endif /* _BORLANDC_SOURCE */ 124 # ifndef __GNUC__ 125 extern const void *__libi86_intr_dispatch (int); 126 # endif /* __GNUC__ */ 127 extern void __libi86_intr (int, union REGPACK *); 128 extern void __libi86_intrf (int, union REGPACK *); 129 extern void __libi86_intrf_do (const void *, union REGPACK *, unsigned); 130 /* Used by the inline version of sound (.) below. */ 131 extern void __libi86_sound (unsigned); 132 extern void __libi86_sound_by_divisor (unsigned); 133 #endif /* __GNUC__ || _LIBI86_COMPILING_ */ 134 135 #ifndef _LIBI86_COMPILING_ 136 # if ! defined __GNUC__ || ! defined __OPTIMIZE__ 137 extern void _disable (void); 138 extern void _enable (void); 139 _LIBI86_BC_REDIRECT_3 (int, int86, int, const union REGS *, union REGS *) 140 _LIBI86_BC_REDIRECT_4 (int, int86x, int, const union REGS *, union REGS *, 141 struct SREGS *) 142 extern void intr (int, union REGPACK *); 143 /* The _...f (...) functions are new functions, which I am also proposing 144 (https://github.com/open-watcom/open-watcom-v2/issues/472) to add to Open 145 Watcom. These do the same thing as int86 (...), int86x (...), etc., except 146 they are also guaranteed to load at least the carry flag from the register 147 structures, before raising the interrupt. 148 149 (Of these, _intrf (...) has been accepted for inclusion in Open Watcom 150 in late 2018, under the name intrf (...). OW also kind of "redefined" 151 intr (...)'s semantics to always clear the SZAPC flags before issuing 152 the interrupt.) */ 153 _LIBI86_BC_REDIRECT_3 (int, _int86f, int, const union REGS *, union REGS *) 154 _LIBI86_BC_REDIRECT_4 (int, _int86xf, int, const union REGS *, union REGS *, 155 struct SREGS *) 156 _LIBI86_REDIRECT_2 (int, intrf, int, union REGPACK *, _intrf) 157 extern void sound (unsigned); 158 # else /* __GNUC__ && __OPTIMIZE__ */ 159 _LIBI86_ALT_INLINE void 160 _disable (void) 161 { 162 __asm volatile ("cli" : : : "memory"); 163 } 164 165 _LIBI86_ALT_INLINE void 166 _enable (void) 167 { 168 __asm volatile ("sti" : : : "memory"); 169 } 170 171 _LIBI86_ALT_INLINE int 172 _int86f (int __intr_no, const union REGS *__in_regs, union REGS *__out_regs) 173 { 174 if (__builtin_constant_p (__intr_no)) 175 { 176 const void *__intr_call; 177 __asm volatile ("{movw $__libi86_intr_call_0%c1%c2%c3, %0" 178 "|mov %0, offset __libi86_intr_call_0%c1%c2%c3}" 179 : "=g" (__intr_call) 180 : "n" ((__intr_no >> 6) & 3), "n" ((__intr_no >> 3) & 7), 181 "n" (__intr_no & 7)); 182 # ifndef _BORLANDC_SOURCE 183 return __libi86_int86_do (__intr_call, __in_regs, __out_regs); 184 # else 185 return __libi86_bc_int86_do (__intr_call, __in_regs, __out_regs); 186 # endif 187 } 188 189 # ifndef _BORLANDC_SOURCE 190 return __libi86_int86 (__intr_no, __in_regs, __out_regs); 191 # else 192 return __libi86_bc_int86 (__intr_no, __in_regs, __out_regs); 193 # endif 194 } 195 196 _LIBI86_ALT_INLINE int 197 int86 (int __intr_no, const union REGS *__in_regs, union REGS *__out_regs) 198 { 199 return _int86f (__intr_no, __in_regs, __out_regs); 200 } 201 202 _LIBI86_ALT_INLINE int 203 _int86xf (int __intr_no, const union REGS *__in_regs, union REGS *__out_regs, 204 struct SREGS *__seg_regs) 205 { 206 if (__builtin_constant_p (__intr_no)) 207 { 208 const void *__intr_call; 0 000013C4 B8[0000] __asm volatile ("{movw $__libi86_intr_call_0%c1%c2%c3, %0" 210 "|mov %0, offset __libi86_intr_call_0%c1%c2%c3}" 74 movw $__libi86_intr_call_0041, %ax 75 ;# 0 "" 2 76 #NO_APP 0 000013C7 8D4EB5 leaw -75(%bp), %cx 0 000013CA 51 pushw %cx 0 000013CB 8D4EDF leaw -33(%bp), %cx 0 000013CE 51 pushw %cx 0 000013CF 57 pushw %di 0 000013D0 50 pushw %ax 0 000013D1 E8[FEFF] call __libi86_int86x_do 0 000013D4 83C414 addw $20, %sp 0 000013D7 837EE1FF cmpw $-1, -31(%bp) 0 000013DB 8C46AE movw %es, -82(%bp) 0 000013DE 7406 je .L2 0 000013E0 837EB500 cmpw $0, -75(%bp) 0 000013E4 750A jne .L3 90 .L2: 0 000013E6 B8[0000] movw $.LC1, %ax 0 000013E9 50 pushw %ax 0 000013EA E8[FEFF] call fatal 0 000013ED 83C402 addw $2, %sp 95 .L3: 0 000013F0 C746B200 movw $0, -78(%bp) 0 000013F4 00 97 .L7: 0 000013F5 8A46B2 movb -78(%bp), %al 0 000013F8 8846D0 movb %al, -48(%bp) 0 000013FB C646CF00 movb $0, -49(%bp) 101 #APP 102 ;# 209 "/home/evln/proj/build-ia16.202501/prefix/ia16-elf/include/i86.h" 1 103 movw $__libi86_intr_call_0055, %ax 104 ;# 0 "" 2 105 #NO_APP 0 00001402 8D56B5 leaw -75(%bp), %dx 0 00001405 52 pushw %dx 0 00001406 8D56DF leaw -33(%bp), %dx 0 00001409 52 pushw %dx 0 0000140A 8D56CF leaw -49(%bp), %dx 0 0000140D 52 pushw %dx 0 0000140E 50 pushw %ax 0 0000140F E8[FEFF] call __libi86_int86x_do 0 00001412 83C408 addw $8, %sp 0 00001415 807EDFFF cmpb $-1, -33(%bp) 0 00001419 7403E904 jne .L4 0 0000141D 02 0 0000141E 36F606[00] testb $4, %ss:xvariable 0 00001422 [00]04 0 00001424 7454 je .L5 0 00001426 B90800 movw $8, %cx 0 00001429 51 pushw %cx 0 0000142A 894EB0 movw %cx, -80(%bp) 0 0000142D FF76E5 pushw -27(%bp) 0 00001430 FF76E9 pushw -23(%bp) 0 00001433 8D7EBD leaw -67(%bp), %di 0 00001436 16 pushw %ss 0 00001437 57 pushw %di 0 00001438 E8[FEFF] call _fmemcpy 0 0000143B C646C500 movb $0, -59(%bp) 0 0000143F 8B4EB0 movw -80(%bp), %cx 0 00001442 51 pushw %cx 0 00001443 8B46E9 movw -23(%bp), %ax 0 00001446 83C008 addw $8, %ax 0 00001449 FF76E5 pushw -27(%bp) 0 0000144C 50 pushw %ax 0 0000144D 8D4EC6 leaw -58(%bp), %cx 0 00001450 16 pushw %ss 0 00001451 51 pushw %cx 0 00001452 894EB0 movw %cx, -80(%bp) 0 00001455 E8[FEFF] call _fmemcpy 0 00001458 C646CE00 movb $0, -50(%bp) 0 0000145C 8A46E3 movb -29(%bp), %al 0 0000145F 30E4 xorb %ah, %ah 0 00001461 50 pushw %ax 0 00001462 8A46E4 movb -28(%bp), %al 0 00001465 30E4 xorb %ah, %ah 0 00001467 50 pushw %ax 0 00001468 8B4EB0 movw -80(%bp), %cx 0 0000146B 51 pushw %cx 0 0000146C 57 pushw %di 0 0000146D FF76B2 pushw -78(%bp) 0 00001470 B8[2000] movw $.LC2, %ax 0 00001473 50 pushw %ax 0 00001474 E8[FEFF] call printf 0 00001477 83C420 addw $32, %sp 155 .L5: 0 0000147A 56 pushw %si 0 0000147B 8D46EF leaw -17(%bp), %ax 0 0000147E 16 pushw %ss 0 0000147F 50 pushw %ax 0 00001480 FF76E5 pushw -27(%bp) 0 00001483 FF76E9 pushw -23(%bp) 0 00001486 E8[FEFF] call _fmemcmp 0 00001489 83C40A addw $10, %sp 0 0000148C 85C0 testw %ax, %ax 0 0000148E 7403E98F jne .L4 0 00001492 01 0 00001493 36F606[00] testb $4, %ss:xvariable 0 00001497 [00]04 0 00001499 740A je .L6 0 0000149B B8[5A00] movw $.LC3, %ax 0 0000149E 50 pushw %ax 0 0000149F E8[FEFF] call puts 171 .L103: 0 000014A2 83C402 addw $2, %sp 173 .L6: 0 000014A5 8A46B2 movb -78(%bp), %al 0 000014A8 8846B0 movb %al, -80(%bp) 0 000014AB 8846D0 movb %al, -48(%bp) 0 000014AE C646CF10 movb $16, -49(%bp) 178 #APP 179 ;# 209 "/home/evln/proj/build-ia16.202501/prefix/ia16-elf/include/i86.h" 1 180 movw $__libi86_intr_call_0055, %ax 181 ;# 0 "" 2 182 #NO_APP 0 000014B5 8D56B5 leaw -75(%bp), %dx 0 000014B8 52 pushw %dx 0 000014B9 8D56DF leaw -33(%bp), %dx 0 000014BC 52 pushw %dx 0 000014BD 8D56CF leaw -49(%bp), %dx 0 000014C0 52 pushw %dx 0 000014C1 50 pushw %ax 0 000014C2 E8[FEFF] call __libi86_int86x_do 0 000014C5 83C408 addw $8, %sp 0 000014C8 36F606[00] testb $4, %ss:xvariable 0 000014CC [00]04 0 000014CE 7413 je .L9 0 000014D0 807EDF00 cmpb $0, -33(%bp) 0 000014D4 7403E960 jne .L10 0 000014D8 01 0 000014D9 B8[6000] movw $.LC4, %ax 0 000014DC 50 pushw %ax 0 000014DD E8[FEFF] call puts 0 000014E0 83C402 addw $2, %sp 200 .L9: 0 000014E3 807EDF00 cmpb $0, -33(%bp) 0 000014E7 7407 je .L11 0 000014E9 817EE30A cmpw $522, -29(%bp) 0 000014ED 02 0 000014EE 740A je .L12 205 .L11: 0 000014F0 B8[A200] movw $.LC6, %ax 0 000014F3 50 pushw %ax 0 000014F4 E8[FEFF] call fatal 0 000014F7 83C402 addw $2, %sp 210 .L12: 0 000014FA 8A46B0 movb -80(%bp), %al 0 000014FD 8846D0 movb %al, -48(%bp) 0 00001500 C646CF20 movb $32, -49(%bp) 214 #APP 215 ;# 209 "/home/evln/proj/build-ia16.202501/prefix/ia16-elf/include/i86.h" 1 216 movw $__libi86_intr_call_0055, %ax 217 ;# 0 "" 2 218 #NO_APP 0 00001507 8D56B5 leaw -75(%bp), %dx 0 0000150A 52 pushw %dx 0 0000150B 8D56DF leaw -33(%bp), %dx 0 0000150E 52 pushw %dx 0 0000150F 8D56CF leaw -49(%bp), %dx 0 00001512 52 pushw %dx 0 00001513 50 pushw %ax 0 00001514 E8[FEFF] call __libi86_int86x_do 0 00001517 83C408 addw $8, %sp 0 0000151A 36F606[00] testb $4, %ss:xvariable 0 0000151E [00]04 0 00001520 7414 je .L13 0 00001522 8A46DF movb -33(%bp), %al 0 00001525 84C0 testb %al, %al 0 00001527 7403E926 jne .L14 0 0000152B 01 0 0000152C B8[C800] movw $.LC7, %ax 0 0000152F 50 pushw %ax 0 00001530 E8[FEFF] call puts 0 00001533 83C402 addw $2, %sp 237 .L13: 0 00001536 807EDF04 cmpb $4, -33(%bp) 0 0000153A 740A je .L15 0 0000153C B8[A200] movw $.LC6, %ax 0 0000153F 50 pushw %ax 0 00001540 E8[FEFF] call fatal 0 00001543 83C402 addw $2, %sp 244 .L15: 0 00001546 8B7EE1 movw -31(%bp), %di 0 00001549 8E5EE5 movw -27(%bp), %ds 0 0000154C 8B7502 movw 2(%di), %si 0 0000154F 8B1D movw (%di), %bx 0 00001551 89F0 movw %si, %ax 0 00001553 09D8 orw %bx, %ax 0 00001555 7417 je .L16 0 00001557 8EDE movw %si, %ds 0 00001559 807F0B53 cmpb $83, 11(%bx) 0 0000155D 750F jne .L16 0 0000155F 807F0C52 cmpb $82, 12(%bx) 0 00001563 7509 jne .L16 0 00001565 807F0D44 cmpb $68, 13(%bx) 0 00001569 7503E90B je .L18 0 0000156D 01 259 .L16: 0 0000156E B8[2E01] movw $.LC9, %ax 261 .L104: 0 00001571 50 pushw %ax 0 00001572 16 pushw %ss 0 00001573 1F popw %ds 0 00001574 E8[FEFF] call fatal 0 00001577 83C402 addw $2, %sp 267 .L19: 0 0000157A 56 pushw %si 0 0000157B 16 pushw %ss 0 0000157C 1F popw %ds 0 0000157D E8[FEFF] call conf_ptr 0 00001580 A3[0000] movw %ax, mainconf 0 00001583 8916[0200] movw %dx, mainconf+2 0 00001587 A3[0000] movw %ax, conf 0 0000158A 8916[0200] movw %dx, conf+2 0 0000158E 83C402 addw $2, %sp 277 .L32: 0 00001591 A1[0000] movw conf, %ax 0 00001594 8946B0 movw %ax, -80(%bp) 0 00001597 8B36[0200] movw conf+2, %si 0 0000159B 8EDE movw %si, %ds 0 0000159D 93 xchgw %ax, %bx 0 0000159E 803F24 cmpb $36, (%bx) 0 000015A1 7403E91C jne .L20 0 000015A5 01 0 000015A6 16 pushw %ss 0 000015A7 1F popw %ds 0 000015A8 E8[FEFF] call getlistoflists 0 000015AB 8EDA movw %dx, %ds 0 000015AD 93 xchgw %ax, %bx 0 000015AE C50F ldsw (%bx), %cx 0 000015B0 36803E[00] cmpb $3, %ss:_osmajor 0 000015B4 [00]03 0 000015B6 7703E9CF jbe .L65 0 000015BA 00 0 000015BB C746AA19 movw $25, -86(%bp) 0 000015BF 00 0 000015C0 C746AC13 movw $19, -84(%bp) 0 000015C4 00 295 .L21: 0 000015C5 31C0 xorw %ax, %ax 297 .L29: 0 000015C7 89CB movw %cx, %bx 0 000015C9 8A17 movb (%bx), %dl 0 000015CB 80FA1A cmpb $25+1, %dl 0 000015CE 7308 jnc .L71 0 000015D0 83F81A cmpw $26, %ax 0 000015D3 7403E9BF jne .L22 0 000015D7 00 304 .L71: 0 000015D8 B8[7F01] movw $.LC11, %ax 306 .L105: 0 000015DB 50 pushw %ax 0 000015DC 16 pushw %ss 0 000015DD 1F popw %ds 0 000015DE E8[FEFF] call warning 0 000015E1 83C402 addw $2, %sp 312 .L24: 0 000015E4 8B1E[0000] movw _impure_ptr, %bx 0 000015E8 36FF7706 pushw %ss:6(%bx) 0 000015EC B8[DF01] movw $.LC13, %ax 0 000015EF 50 pushw %ax 0 000015F0 E8[FEFF] call fputs 0 000015F3 8B1E[0000] movw mainconf, %bx 0 000015F7 8B16[0200] movw mainconf+2, %dx 0 000015FB 83C404 addw $4, %sp 0 000015FE C746B201 movw $1, -78(%bp) 0 00001602 00 322 .L30: 0 00001603 395EB0 cmpw %bx, -80(%bp) 0 00001606 7403E9B7 jne .L31 0 0000160A 03 0 0000160B 39D6 cmpw %dx, %si 0 0000160D 7403E9B0 jne .L31 0 00001611 03 0 00001612 8A46B2 movb -78(%bp), %al 0 00001615 0430 addb $48, %al 0 00001617 8EC6 movw %si, %es 0 00001619 8B5EB0 movw -80(%bp), %bx 0 0000161C 268807 movb %al, %es:(%bx) 0 0000161F E9A000 jmp .L20 333 .L4: 0 00001622 FF46B2 incw -78(%bp) 0 00001625 817EB200 cmpw $256, -78(%bp) 0 00001629 01 0 0000162A 7403E9C6 jne .L7 0 0000162E FD 0 0000162F B8[D002] movw $.LC17, %ax 0 00001632 50 pushw %ax 0 00001633 E8[FEFF] call fatal 0 00001636 E969FE jmp .L103 341 .L10: 0 00001639 8A46E3 movb -29(%bp), %al 0 0000163C 30E4 xorb %ah, %ah 0 0000163E 50 pushw %ax 0 0000163F 8A46E4 movb -28(%bp), %al 0 00001642 30E4 xorb %ah, %ah 0 00001644 50 pushw %ax 0 00001645 B8[7B00] movw $.LC5, %ax 0 00001648 50 pushw %ax 0 00001649 E8[FEFF] call printf 0 0000164C 83C406 addw $6, %sp 0 0000164F E991FE jmp .L9 353 .L14: 0 00001652 8B5EE1 movw -31(%bp), %bx 0 00001655 8E5EE5 movw -27(%bp), %ds 0 00001658 8B0F movw (%bx), %cx 0 0000165A 8B5702 movw 2(%bx), %dx 0 0000165D FF76AE pushw -82(%bp) 0 00001660 51 pushw %cx 0 00001661 FF76AE pushw -82(%bp) 0 00001664 52 pushw %dx 0 00001665 30E4 xorb %ah, %ah 0 00001667 50 pushw %ax 0 00001668 53 pushw %bx 0 00001669 1E pushw %ds 0 0000166A B8[E300] movw $.LC8, %ax 0 0000166D 50 pushw %ax 0 0000166E 16 pushw %ss 0 0000166F 1F popw %ds 0 00001670 E8[FEFF] call printf 0 00001673 83C410 addw $16, %sp 0 00001676 E9BDFE jmp .L13 373 .L18: 0 00001679 8EDE movw %si, %ds 0 0000167B 807F1701 cmpb $1, 23(%bx) 0 0000167F 7503E9F6 je .L19 0 00001683 FE 0 00001684 B8[6101] movw $.LC10, %ax 0 00001687 E9E7FE jmp .L104 379 .L65: 0 0000168A C746AA18 movw $24, -86(%bp) 0 0000168E 00 0 0000168F C746AC12 movw $18, -84(%bp) 0 00001693 00 0 00001694 E92EFF jmp .L21 383 .L22: 0 00001697 8B5EAC movw -84(%bp), %bx 0 0000169A 01CB addw %cx, %bx 0 0000169C 8B3F movw (%bx), %di 0 0000169E 8B5F02 movw 2(%bx), %bx 0 000016A1 895EB2 movw %bx, -78(%bp) 0 000016A4 8EC3 movw %bx, %es 0 000016A6 26837D04 cmpw $0, %es:4(%di) 0 000016AA 00 0 000016AB 7D03E9FC jl .L25 0 000016AF 02 0 000016B0 39DE cmpw %bx, %si 0 000016B2 7403E9BE jne .L26 0 000016B6 02 394 .L28: 0 000016B7 80C241 addb $65, %dl 0 000016BA 8EC6 movw %si, %es 0 000016BC 8B5EB0 movw -80(%bp), %bx 0 000016BF 268817 movb %dl, %es:(%bx) 399 .L20: 0 000016C2 36C41E[00] lesw %ss:conf, %bx 0 000016C6 [00] 0 000016C7 26FF773D pushw %es:61(%bx) 0 000016CB 16 pushw %ss 0 000016CC 1F popw %ds 0 000016CD E8[FEFF] call conf_ptr 0 000016D0 A3[0000] movw %ax, conf 0 000016D3 8916[0200] movw %dx, conf+2 0 000016D7 83C402 addw $2, %sp 0 000016DA 09D0 orw %dx, %ax 0 000016DC 85C0 testw %ax, %ax 0 000016DE 7403E9AE jne .L32 0 000016E2 FE 0 000016E3 36C406[00] lesw %ss:mainconf, %ax 0 000016E7 [00] 0 000016E8 A3[0000] movw %ax, conf 0 000016EB 8C06[0200] movw %es, conf+2 0 000016EF 8A0E[0000] movb drive, %cl 0 000016F3 84C9 testb %cl, %cl 0 000016F5 7508 jne .L35 0 000016F7 E8[FEFF] call _getdrive 0 000016FA 88C1 movb %al, %cl 0 000016FC 80C140 addb $64, %cl 420 .L35: 0 000016FF 36C43E[00] lesw %ss:conf, %di 0 00001703 [00] 0 00001704 8CC2 movw %es, %dx 0 00001706 268A05 movb %es:(%di), %al 0 00001709 8846B2 movb %al, -78(%bp) 0 0000170C C646B300 movb $0, -77(%bp) 0 00001710 88C8 movb %cl, %al 0 00001712 98 cbtw 0 00001713 3946B2 cmpw %ax, -78(%bp) 0 00001716 7403E9BA jne .L38 0 0000171A 02 0 0000171B 8C46B2 movw %es, -78(%bp) 0 0000171E 880E[0000] movb %cl, drive 0 00001722 BE[0000] movw $f, %si 0 00001725 B88E00 movw $142, %ax 0 00001728 50 pushw %ax 0 00001729 FF76AE pushw -82(%bp) 0 0000172C 56 pushw %si 0 0000172D E8[FEFF] call memset 0 00001730 83C406 addw $6, %sp 0 00001733 31DB xorw %bx, %bx 0 00001735 C746AC01 movw $1, -84(%bp) 0 00001739 00 0 0000173A 8B56B2 movw -78(%bp), %dx 442 .L39: 0 0000173D 89F8 movw %di, %ax 0 0000173F 09D0 orw %dx, %ax 0 00001741 85C0 testw %ax, %ax 0 00001743 7403E9DB jne .L45 0 00001747 02 0 00001748 837EAC00 cmpw $0, -84(%bp) 0 0000174C 750C jne .L46 0 0000174E C706[6000] movw $32767, f+96 0 00001752 FF7F 0 00001754 8B46AC movw -84(%bp), %ax 0 00001757 894462 movw %ax, 98(%si) 452 .L46: 0 0000175A 36C41E[00] lesw %ss:conf, %bx 0 0000175E [00] 0 0000175F 8CC2 movw %es, %dx 0 00001761 268B4734 movw %es:52(%bx), %ax 0 00001765 268B4F36 movw %es:54(%bx), %cx 0 00001769 894404 movw %ax, 4(%si) 0 0000176C 894C06 movw %cx, 6(%si) 0 0000176F 09C8 orw %cx, %ax 0 00001771 85C0 testw %ax, %ax 0 00001773 7503E973 je .L66 0 00001777 03 0 00001778 268A4738 movb %es:56(%bx), %al 0 0000177C 8846B2 movb %al, -78(%bp) 0 0000177F 2402 andb $2, %al 0 00001781 3C01 cmpb $1, %al 0 00001783 F5 cmc 0 00001784 19C0 sbbw %ax, %ax 0 00001786 83C801 orw $1, %ax 469 .L47: 0 00001789 8904 movw %ax, (%si) 0 0000178B 8EC2 movw %dx, %es 0 0000178D 268A4738 movb %es:56(%bx), %al 0 00001791 8846B2 movb %al, -78(%bp) 0 00001794 2404 andb $4, %al 0 00001796 3C01 cmpb $1, %al 0 00001798 F5 cmc 0 00001799 19C0 sbbw %ax, %ax 0 0000179B 83C801 orw $1, %ax 0 0000179E 894402 movw %ax, 2(%si) 0 000017A1 268A471A movb %es:26(%bx), %al 0 000017A5 B400 movb $0, %ah 0 000017A7 89445C movw %ax, 92(%si) 0 000017AA 268B471B movw %es:27(%bx), %ax 0 000017AE 89440C movw %ax, 12(%si) 0 000017B1 268A471D movb %es:29(%bx), %al 0 000017B5 B400 movb $0, %ah 0 000017B7 A3[8800] movw %ax, f+136 0 000017BA 268B471E movw %es:30(%bx), %ax 0 000017BE 894470 movw %ax, 112(%si) 0 000017C1 268A4720 movb %es:32(%bx), %al 0 000017C5 B400 movb $0, %ah 0 000017C7 894410 movw %ax, 16(%si) 0 000017CA 268B4721 movw %es:33(%bx), %ax 0 000017CE 894412 movw %ax, 18(%si) 0 000017D1 268B4726 movw %es:38(%bx), %ax 0 000017D5 894472 movw %ax, 114(%si) 0 000017D8 268B4723 movw %es:35(%bx), %ax 0 000017DC 85C0 testw %ax, %ax 0 000017DE 7503E90E je .L50 0 000017E2 03 0 000017E3 31C9 xorw %cx, %cx 501 .L51: 0 000017E5 894474 movw %ax, 116(%si) 0 000017E8 894C76 movw %cx, 118(%si) 0 000017EB A3[8400] movw %ax, f+132 0 000017EE 890E[8600] movw %cx, f+134 0 000017F2 8EC2 movw %dx, %es 0 000017F4 268B4728 movw %es:40(%bx), %ax 0 000017F8 894416 movw %ax, 22(%si) 0 000017FB 268B472A movw %es:42(%bx), %ax 0 000017FF 894418 movw %ax, 24(%si) 0 00001802 268A473A movb %es:58(%bx), %al 0 00001806 88441A movb %al, 26(%si) 0 00001809 36833E[00] cmpw $5, %ss:verbose 0 0000180D [00]05 0 0000180F 7E0D jle .L52 0 00001811 30E4 xorb %ah, %ah 0 00001813 50 pushw %ax 0 00001814 B8[5402] movw $.LC15, %ax 0 00001817 50 pushw %ax 0 00001818 E8[FEFF] call printf 0 0000181B 83C404 addw $4, %sp 521 .L52: 0 0000181E 36C41E[00] lesw %ss:conf, %bx 0 00001822 [00] 0 00001823 268A4725 movb %es:37(%bx), %al 0 00001827 B400 movb $0, %ah 0 00001829 894414 movw %ax, 20(%si) 0 0000182C 36837C0C cmpw $0, %ss:12(%si) 0 00001830 00 0 00001831 7506 jne .L53 0 00001833 C706[0C00] movw $128, f+12 0 00001837 8000 529 .L53: 0 00001839 36833E[88] cmpw $0, %ss:f+136 0 0000183D [00]00 0 0000183F 7506 jne .L54 0 00001841 C706[8800] movw $4, f+136 0 00001845 0400 533 .L54: 0 00001847 8B4472 movw 114(%si), %ax 0 0000184A 36F76410 mulw %ss:16(%si) 0 0000184E 894478 movw %ax, 120(%si) 0 00001851 36FF36[0C] pushw %ss:f+12 0 00001855 [00] 0 00001856 8B4412 movw 18(%si), %ax 0 00001859 B105 movb $5, %cl 0 0000185B D3E0 shlw %cl, %ax 0 0000185D 50 pushw %ax 0 0000185E E8[FEFF] call div 0 00001861 83C404 addw $4, %sp 0 00001864 83FA01 cmpw $1, %dx 0 00001867 19C9 sbbw %cx, %cx 0 00001869 41 incw %cx 0 0000186A 01C1 addw %ax, %cx 0 0000186C 894C7A movw %cx, 122(%si) 0 0000186F 8B5478 movw 120(%si), %dx 0 00001872 36035470 addw %ss:112(%si), %dx 0 00001876 89547C movw %dx, 124(%si) 0 00001879 01D1 addw %dx, %cx 0 0000187B 894C7E movw %cx, 126(%si) 0 0000187E 8E1E[8800] movw f+136, %ds 0 00001882 368B440C movw %ss:12(%si), %ax 0 00001886 8CDA movw %ds, %dx 0 00001888 F7E2 mulw %dx 0 0000188A 3689440E movw %ax, %ss:14(%si) 0 0000188E 368B7C06 movw %ss:6(%si), %di 0 00001892 368B4404 movw %ss:4(%si), %ax 0 00001896 8946B2 movw %ax, -78(%bp) 0 00001899 89F8 movw %di, %ax 0 0000189B 360B4404 orw %ss:4(%si), %ax 0 0000189F 7429 je .L55 0 000018A1 89CB movw %cx, %bx 0 000018A3 8B56AE movw -82(%bp), %dx 0 000018A6 368B4474 movw %ss:116(%si), %ax 0 000018AA 368B4C76 movw %ss:118(%si), %cx 0 000018AE 29D8 subw %bx, %ax 0 000018B0 19D1 sbbw %dx, %cx 0 000018B2 36A3[8000] movw %ax, %ss:f+128 0 000018B6 36890E[82] movw %cx, %ss:f+130 0 000018BA [00] 0 000018BB 52 pushw %dx 0 000018BC 1E pushw %ds 0 000018BD 51 pushw %cx 0 000018BE 50 pushw %ax 0 000018BF 16 pushw %ss 0 000018C0 1F popw %ds 0 000018C1 E8[FEFF] call __udivsi3 0 000018C4 83C408 addw $8, %sp 0 000018C7 A3[8A00] movw %ax, f+138 582 .L55: 0 000018CA 36813E[8A] cmpw $4086, %ss:f+138 0 000018CE [00]F60F 0 000018D1 7603E928 ja .L69 0 000018D5 02 0 000018D6 B80C00 movw $12, %ax 586 .L57: 0 000018D9 36A3[8C00] movw %ax, %ss:f+140 0 000018DD 8B46B2 movw -78(%bp), %ax 0 000018E0 09F8 orw %di, %ax 0 000018E2 7503E91D je .L70 0 000018E6 02 0 000018E7 36A1[0000] movw %ss:forced_format, %ax 0 000018EB F7D0 notw %ax 0 000018ED 99 cwtd 0 000018EE F7DA negw %dx 0 000018F0 8956B2 movw %dx, -78(%bp) 596 .L58: 0 000018F3 8A46B2 movb -78(%bp), %al 0 000018F6 B400 movb $0, %ah 0 000018F8 36A3[0000] movw %ax, %ss:data_on_disk 0 000018FC 36F606[01] testb $32, %ss:defined_format+1 0 00001900 [00]20 0 00001902 7405 je .L60 0 00001904 16 pushw %ss 0 00001905 1F popw %ds 0 00001906 E8[FEFF] call calcMaxMemory 605 .L60: 0 00001909 36833E[00] cmpw $3, %ss:verbose 0 0000190D [00]03 0 0000190F 7E09 jle .L61 0 00001911 56 pushw %si 0 00001912 16 pushw %ss 0 00001913 1F popw %ds 0 00001914 E8[FEFF] call print_format 0 00001917 83C402 addw $2, %sp 613 .L61: 0 0000191A 36833E[00] cmpw $4, %ss:verbose 0 0000191E [00]04 0 00001920 7E4A jle .L1 0 00001922 368B1E[00] movw %ss:conf, %bx 0 00001926 [00] 0 00001927 895EB2 movw %bx, -78(%bp) 0 0000192A 368B36[02] movw %ss:conf+2, %si 0 0000192E [00] 0 0000192F BF0400 movw $4, %di 0 00001932 57 pushw %di 0 00001933 56 pushw %si 0 00001934 B81200 movw $18, %ax 0 00001937 50 pushw %ax 0 00001938 8D46BD leaw -67(%bp), %ax 0 0000193B 16 pushw %ss 0 0000193C 50 pushw %ax 0 0000193D 16 pushw %ss 0 0000193E 1F popw %ds 0 0000193F E8[FEFF] call _fmemcpy 0 00001942 C646C100 movb $0, -63(%bp) 0 00001946 57 pushw %di 0 00001947 56 pushw %si 0 00001948 B80E00 movw $14, %ax 0 0000194B 50 pushw %ax 0 0000194C 8D46C6 leaw -58(%bp), %ax 0 0000194F 16 pushw %ss 0 00001950 50 pushw %ax 0 00001951 E8[FEFF] call _fmemcpy 0 00001954 C646CA00 movb $0, -54(%bp) 0 00001958 83C414 addw $20, %sp 0 0000195B BF0100 movw $1, %di 0 0000195E 8B5EB2 movw -78(%bp), %bx 643 .L63: 0 00001961 89D8 movw %bx, %ax 0 00001963 09F0 orw %si, %ax 0 00001965 85C0 testw %ax, %ax 0 00001967 7403E99E jne .L64 0 0000196B 01 648 .L1: 0 0000196C 89EC movw %bp, %sp 0 0000196E 5D popw %bp 0 0000196F 07 popw %es 0 00001970 5F popw %di 0 00001971 5E popw %si 0 00001972 16 pushw %ss 0 00001973 1F popw %ds 0 00001974 C3 ret 657 .L26: 0 00001975 8E46B2 movw -78(%bp), %es 0 00001978 268B5D06 movw %es:6(%di), %bx 0 0000197C 26803FEA cmpb $-22, %es:(%bx) 0 00001980 7519 jne .L27 0 00001982 263B7703 cmpw %es:3(%bx), %si 0 00001986 7513 jne .L27 0 00001988 268B5D08 movw %es:8(%di), %bx 0 0000198C 26803FEA cmpb $-22, %es:(%bx) 0 00001990 7509 jne .L27 0 00001992 263B7703 cmpw %es:3(%bx), %si 0 00001996 7503E91C je .L28 0 0000199A FD 669 .L27: 0 0000199B 36817D0B cmpw $-32125, %ss:11(%di) 0 0000199F 8382 0 000019A1 7509 jne .L25 0 000019A3 363B7514 cmpw %ss:20(%di), %si 0 000019A7 7503E90B je .L28 0 000019AB FD 674 .L25: 0 000019AC 034EAA addw -86(%bp), %cx 0 000019AF 89CB movw %cx, %bx 0 000019B1 C50F ldsw (%bx), %cx 0 000019B3 40 incw %ax 0 000019B4 83F9FF cmpw $-1, %cx 0 000019B7 7403E90B jne .L29 0 000019BB FC 0 000019BC B8[AB01] movw $.LC12, %ax 0 000019BF E919FC jmp .L105 683 .L31: 0 000019C2 8EC2 movw %dx, %es 0 000019C4 26FF773D pushw %es:61(%bx) 0 000019C8 E8[FEFF] call conf_ptr 0 000019CB 93 xchgw %ax, %bx 0 000019CC FF46B2 incw -78(%bp) 0 000019CF 83C402 addw $2, %sp 0 000019D2 E92EFC jmp .L30 691 .L38: 0 000019D5 884EB2 movb %cl, -78(%bp) 0 000019D8 8EC2 movw %dx, %es 0 000019DA 26FF753D pushw %es:61(%di) 0 000019DE E8[FEFF] call conf_ptr 0 000019E1 A3[0000] movw %ax, conf 0 000019E4 8916[0200] movw %dx, conf+2 0 000019E8 83C402 addw $2, %sp 0 000019EB 09D0 orw %dx, %ax 0 000019ED 8A4EB2 movb -78(%bp), %cl 0 000019F0 7403E90A jne .L35 0 000019F4 FD 0 000019F5 36803E[00] cmpb $0, %ss:drive 0 000019F9 [00]00 0 000019FB 7410 je .L36 0 000019FD B8[3702] movw $.LC14, %ax 0 00001A00 50 pushw %ax 0 00001A01 E8[FEFF] call fatal 0 00001A04 83C402 addw $2, %sp 0 00001A07 8A4EB2 movb -78(%bp), %cl 0 00001A0A E9F2FC jmp .L35 710 .L36: 0 00001A0D 8B1E[0000] movw mainconf, %bx 0 00001A11 A1[0200] movw mainconf+2, %ax 0 00001A14 891E[0000] movw %bx, conf 0 00001A18 A3[0200] movw %ax, conf+2 0 00001A1B 8EC0 movw %ax, %es 0 00001A1D 268A0F movb %es:(%bx), %cl 0 00001A20 E9DCFC jmp .L35 718 .L45: 0 00001A23 36C44460 lesw %ss:96(%si), %ax 0 00001A27 8946B2 movw %ax, -78(%bp) 0 00001A2A 8C46B0 movw %es, -80(%bp) 0 00001A2D 8B46B2 movw -78(%bp), %ax 0 00001A30 0B46B0 orw -80(%bp), %ax 0 00001A33 7503E99A je .L40 0 00001A37 00 0 00001A38 31C0 xorw %ax, %ax 0 00001A3A 89C1 movw %ax, %cx 0 00001A3C 2B46B2 subw -78(%bp), %ax 0 00001A3F 1B4EB0 sbbw -80(%bp), %cx 0 00001A42 8EC2 movw %dx, %es 0 00001A44 26394D0E cmpw %cx, %es:14(%di) 0 00001A48 7303E985 jc .L40 0 00001A4C 00 0 00001A4D 7506 jne .L72 0 00001A4F 2639450C cmpw %ax, %es:12(%di) 0 00001A53 727D jc .L40 735 .L72: 0 00001A55 C706[6000] movw $-1, f+96 0 00001A59 FFFF 0 00001A5B C706[6200] movw $-1, f+98 0 00001A5F FFFF 738 .L43: 0 00001A61 8EC2 movw %dx, %es 0 00001A63 268B4510 movw %es:16(%di), %ax 0 00001A67 8946B2 movw %ax, -78(%bp) 0 00001A6A 268B4512 movw %es:18(%di), %ax 0 00001A6E 8946B0 movw %ax, -80(%bp) 0 00001A71 8B4464 movw 100(%si), %ax 0 00001A74 8B4C66 movw 102(%si), %cx 0 00001A77 0346B2 addw -78(%bp), %ax 0 00001A7A 134EB0 adcw -80(%bp), %cx 0 00001A7D 894464 movw %ax, 100(%si) 0 00001A80 894C66 movw %cx, 102(%si) 0 00001A83 89BF[1B00] movw %di, f+27(%bx) 0 00001A87 8997[1D00] movw %dx, f+29(%bx) 0 00001A8B 268B4D0C movw %es:12(%di), %cx 0 00001A8F 268B450E movw %es:14(%di), %ax 0 00001A93 898F[1F00] movw %cx, f+31(%bx) 0 00001A97 8987[2100] movw %ax, f+33(%bx) 0 00001A9B 8B46B2 movw -78(%bp), %ax 0 00001A9E 8987[2300] movw %ax, f+35(%bx) 0 00001AA2 8B46B0 movw -80(%bp), %ax 0 00001AA5 8987[2500] movw %ax, f+37(%bx) 0 00001AA9 26F64501 testb $4, %es:1(%di) 0 00001AAD 04 0 00001AAE 7505 jne .L44 0 00001AB0 C746AC00 movw $0, -84(%bp) 0 00001AB4 00 763 .L44: 0 00001AB5 895EB2 movw %bx, -78(%bp) 0 00001AB8 36FF445E incw %ss:94(%si) 0 00001ABC 8EC2 movw %dx, %es 0 00001ABE 26FF750A pushw %es:10(%di) 0 00001AC2 E8[FEFF] call conf_ptr 0 00001AC5 97 xchgw %ax, %di 0 00001AC6 8B5EB2 movw -78(%bp), %bx 0 00001AC9 83C30D addw $13, %bx 0 00001ACC 83C402 addw $2, %sp 0 00001ACF E96BFC jmp .L39 774 .L40: 0 00001AD2 8EC2 movw %dx, %es 0 00001AD4 268B4D0C movw %es:12(%di), %cx 0 00001AD8 268B450E movw %es:14(%di), %ax 0 00001ADC 034EB2 addw -78(%bp), %cx 0 00001ADF 1346B0 adcw -80(%bp), %ax 0 00001AE2 894C60 movw %cx, 96(%si) 0 00001AE5 894462 movw %ax, 98(%si) 0 00001AE8 E976FF jmp .L43 783 .L66: 0 00001AEB B8FFFF movw $-1, %ax 0 00001AEE E998FC jmp .L47 786 .L50: 0 00001AF1 8EC2 movw %dx, %es 0 00001AF3 268B4730 movw %es:48(%bx), %ax 0 00001AF7 268B4F32 movw %es:50(%bx), %cx 0 00001AFB E9E7FC jmp .L51 791 .L69: 0 00001AFE B81000 movw $16, %ax 0 00001B01 E9D5FD jmp .L57 794 .L70: 0 00001B04 8846B2 movb %al, -78(%bp) 0 00001B07 E9E9FD jmp .L58 797 .L64: 0 00001B0A 8EC6 movw %si, %es 0 00001B0C 268B4716 movw %es:22(%bx), %ax 0 00001B10 8946B2 movw %ax, -78(%bp) 0 00001B13 268E4718 movw %es:24(%bx), %es 0 00001B17 8EDE movw %si, %ds 0 00001B19 8B4710 movw 16(%bx), %ax 0 00001B1C 8946B0 movw %ax, -80(%bp) 0 00001B1F 8B4712 movw 18(%bx), %ax 0 00001B22 8946AE movw %ax, -82(%bp) 0 00001B25 8B470C movw 12(%bx), %ax 0 00001B28 8946AC movw %ax, -84(%bp) 0 00001B2B 8B470E movw 14(%bx), %ax 0 00001B2E 8946AA movw %ax, -86(%bp) 0 00001B31 8A4701 movb 1(%bx), %al 0 00001B34 895EA8 movw %bx, -88(%bp) 0 00001B37 30E4 xorb %ah, %ah 0 00001B39 50 pushw %ax 0 00001B3A 16 pushw %ss 0 00001B3B 1F popw %ds 0 00001B3C E8[FEFF] call stringisize_flags 0 00001B3F 06 pushw %es 0 00001B40 FF76B2 pushw -78(%bp) 0 00001B43 FF76AE pushw -82(%bp) 0 00001B46 FF76B0 pushw -80(%bp) 0 00001B49 FF76AA pushw -86(%bp) 0 00001B4C FF76AC pushw -84(%bp) 0 00001B4F 50 pushw %ax 0 00001B50 8D46C6 leaw -58(%bp), %ax 0 00001B53 50 pushw %ax 0 00001B54 8D46BD leaw -67(%bp), %ax 0 00001B57 50 pushw %ax 0 00001B58 36FF36[5E] pushw %ss:f+94 0 00001B5C [00] 0 00001B5D 57 pushw %di 0 00001B5E B8[6D02] movw $.LC16, %ax 0 00001B61 50 pushw %ax 0 00001B62 E8[FEFF] call printf 0 00001B65 8EC6 movw %si, %es 0 00001B67 8B5EA8 movw -88(%bp), %bx 0 00001B6A 26FF770A pushw %es:10(%bx) 0 00001B6E E8[FEFF] call conf_ptr 0 00001B71 93 xchgw %ax, %bx 0 00001B72 89D6 movw %dx, %si 0 00001B74 47 incw %di 0 00001B75 83C41C addw $28, %sp 0 00001B78 E9E6FD jmp .L63 843 .size init_drive, .-init_drive 844 .ident "GCC: (GNU) 6.3.0" 845 .weak __ia16_use_printf_nofloat.v1 846 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: diskio.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 00001463 77726974 .string "write" 0 00001467 6500 8 .LC1: 0 00001469 72656164 .string "read" 0 0000146D 00 10 .LC2: 0 0000146E 4469736B .string "Disk %s failure!" 0 00001472 20257320 0 00001476 6661696C 0 0000147A 75726521 0 0000147E 00 === Switch to base unknown -> ".TEXT" 12 .text 13 .type xfer_sector, @function 14 xfer_sector: 0 00001B7B 55 pushw %bp 0 00001B7C 89E5 movw %sp, %bp 0 00001B7E 1E pushw %ds 0 00001B7F 8A5604 movb 4(%bp), %dl 0 00001B82 36C51E[00] ldsw %ss:conf, %bx 0 00001B86 [00] 0 00001B87 8B473F movw 63(%bx), %ax 0 00001B8A 1E pushw %ds 0 00001B8B 50 pushw %ax 0 00001B8C FF760E pushw 14(%bp) 0 00001B8F FF760C pushw 12(%bp) 0 00001B92 FF760A pushw 10(%bp) 0 00001B95 FF7608 pushw 8(%bp) 0 00001B98 FF7606 pushw 6(%bp) 0 00001B9B 52 pushw %dx 0 00001B9C 8856FF movb %dl, -1(%bp) 0 00001B9F 16 pushw %ss 0 00001BA0 1F popw %ds 0 00001BA1 E8[FEFF] call asm_xfer_sector 0 00001BA4 83C410 addw $16, %sp 0 00001BA7 85C0 testw %ax, %ax 0 00001BA9 741D je .L1 36 .L3: 37 .L4: 0 00001BAB 8A56FF movb -1(%bp), %dl 0 00001BAE 84D2 testb %dl, %dl 0 00001BB0 7511 jne .L6 0 00001BB2 B8[0600] movw $.LC1, %ax 42 .L5: 0 00001BB5 894606 movw %ax, 6(%bp) 0 00001BB8 C74604[0B] movw $.LC2, 4(%bp) 0 00001BBC [00] 0 00001BBD 89EC movw %bp, %sp 0 00001BBF 5D popw %bp 0 00001BC0 E9[FEFF] jmp error 48 .L6: 0 00001BC3 B8[0000] movw $.LC0, %ax 0 00001BC6 EBED jmp .L5 51 .L1: 0 00001BC8 89EC movw %bp, %sp 0 00001BCA 5D popw %bp 0 00001BCB C3 ret 55 .size xfer_sector, .-xfer_sector 56 .global _fstrncmp 57 .type _fstrncmp, @function 58 _fstrncmp: 0 00001BCC 56 pushw %si 0 00001BCD 06 pushw %es 0 00001BCE 55 pushw %bp 0 00001BCF 89E5 movw %sp, %bp 0 00001BD1 C57608 ldsw 8(%bp), %si 0 00001BD4 8B5E0C movw 12(%bp), %bx 0 00001BD7 8B4E0E movw 14(%bp), %cx 0 00001BDA 8B4610 movw 16(%bp), %ax 67 .L9: 0 00001BDD 85C0 testw %ax, %ax 0 00001BDF 7418 je .L8 0 00001BE1 8A14 movb (%si), %dl 0 00001BE3 84D2 testb %dl, %dl 0 00001BE5 7407 je .L11 0 00001BE7 8EC1 movw %cx, %es 0 00001BE9 263A17 cmpb %es:(%bx), %dl 0 00001BEC 7411 je .L12 76 .L11: 0 00001BEE 88D0 movb %dl, %al 0 00001BF0 8EC1 movw %cx, %es 0 00001BF2 268A17 movb %es:(%bx), %dl 0 00001BF5 28D0 subb %dl, %al 0 00001BF7 18E4 sbbb %ah, %ah 82 .L8: 0 00001BF9 5D popw %bp 0 00001BFA 07 popw %es 0 00001BFB 5E popw %si 0 00001BFC 16 pushw %ss 0 00001BFD 1F popw %ds 0 00001BFE C3 ret 89 .L12: 0 00001BFF 46 incw %si 0 00001C00 43 incw %bx 0 00001C01 48 decw %ax 0 00001C02 EBD9 jmp .L9 94 .size _fstrncmp, .-_fstrncmp === Switch to base unknown -> ".RODATA.STR1.1" 95 .section .rodata.str1.1 96 .LC3: 0 0000147F 584D5320 .string "XMS " 0 00001483 00 98 .LC4: 0 00001484 454D5320 .string "EMS " 0 00001488 00 100 .LC5: 0 00001489 454D5333 .string "EMS3" 0 0000148D 00 === Switch to base unknown -> ".TEXT" 102 .text 103 .type identify_memory, @function 104 identify_memory: 0 00001C04 56 pushw %si 0 00001C05 57 pushw %di 0 00001C06 06 pushw %es 0 00001C07 55 pushw %bp 0 00001C08 89E5 movw %sp, %bp 0 00001C0A 8B760C movw 12(%bp), %si 0 00001C0D 8B460A movw 10(%bp), %ax 0 00001C10 83C00E addw $14, %ax 0 00001C13 8EC0 movw %ax, %es 0 00001C15 BF0400 movw $4, %di 0 00001C18 57 pushw %di 0 00001C19 56 pushw %si 0 00001C1A 50 pushw %ax 0 00001C1B 16 pushw %ss 0 00001C1C B8[1C00] movw $.LC3, %ax 0 00001C1F 50 pushw %ax 0 00001C20 E8[FEFF] call _fstrncmp 0 00001C23 83C40A addw $10, %sp 0 00001C26 85C0 testw %ax, %ax 0 00001C28 742A je .L20 0 00001C2A 57 pushw %di 0 00001C2B 56 pushw %si 0 00001C2C 06 pushw %es 0 00001C2D 16 pushw %ss 0 00001C2E B8[2100] movw $.LC4, %ax 0 00001C31 50 pushw %ax 0 00001C32 E8[FEFF] call _fstrncmp 0 00001C35 83C40A addw $10, %sp 0 00001C38 B201 movb $1, %dl 0 00001C3A 85C0 testw %ax, %ax 0 00001C3C 7418 je .L18 0 00001C3E 57 pushw %di 0 00001C3F 56 pushw %si 0 00001C40 06 pushw %es 0 00001C41 16 pushw %ss 0 00001C42 B8[2600] movw $.LC5, %ax 0 00001C45 50 pushw %ax 0 00001C46 E8[FEFF] call _fstrncmp 0 00001C49 83C40A addw $10, %sp 0 00001C4C 83F801 cmpw $1, %ax 0 00001C4F F5 cmc 0 00001C50 18C0 sbbb %al, %al 0 00001C52 0C01 orb $1, %al 148 .L20: 0 00001C54 88C2 movb %al, %dl 150 .L18: 0 00001C56 88D0 movb %dl, %al 0 00001C58 89EC movw %bp, %sp 0 00001C5A 5D popw %bp 0 00001C5B 07 popw %es 0 00001C5C 5F popw %di 0 00001C5D 5E popw %si 0 00001C5E C3 ret 158 .size identify_memory, .-identify_memory 159 .global read_sector 160 .type read_sector, @function 161 read_sector: 0 00001C5F 55 pushw %bp 0 00001C60 89E5 movw %sp, %bp 0 00001C62 FF760C pushw 12(%bp) 0 00001C65 FF760A pushw 10(%bp) 0 00001C68 FF7608 pushw 8(%bp) 0 00001C6B FF7606 pushw 6(%bp) 0 00001C6E FF7604 pushw 4(%bp) 0 00001C71 30C0 xorb %al, %al 0 00001C73 50 pushw %ax 0 00001C74 E804FF call xfer_sector 0 00001C77 89EC movw %bp, %sp 0 00001C79 5D popw %bp 0 00001C7A C3 ret 175 .size read_sector, .-read_sector 176 .global write_sector 177 .type write_sector, @function 178 write_sector: 0 00001C7B 55 pushw %bp 0 00001C7C 89E5 movw %sp, %bp 0 00001C7E C706[0000] movw $1, disk_touched 0 00001C82 0100 0 00001C84 FF760C pushw 12(%bp) 0 00001C87 FF760A pushw 10(%bp) 0 00001C8A FF7608 pushw 8(%bp) 0 00001C8D FF7606 pushw 6(%bp) 0 00001C90 FF7604 pushw 4(%bp) 0 00001C93 B001 movb $1, %al 0 00001C95 50 pushw %ax 0 00001C96 E8E2FE call xfer_sector 0 00001C99 89EC movw %bp, %sp 0 00001C9B 5D popw %bp 0 00001C9C C3 ret 193 .size write_sector, .-write_sector === Switch to base unknown -> ".RODATA.STR1.1" 194 .section .rodata.str1.1 195 .LC6: 0 0000148E 44617461 .string "Data lost when allocating" 0 00001492 206C6F73 0 00001496 74207768 0 0000149A 656E2061 0 0000149E 6C6C6F63 === Switch to base unknown -> ".TEXT" 197 .text 198 .global physical_alloc 199 .type physical_alloc, @function 200 physical_alloc: 0 00001C9D 56 pushw %si 0 00001C9E 57 pushw %di 0 00001C9F 06 pushw %es 0 00001CA0 55 pushw %bp 0 00001CA1 89E5 movw %sp, %bp 0 00001CA3 83EC08 subw $8, %sp 0 00001CA6 8E460C movw 12(%bp), %es 0 00001CA9 8B460E movw 14(%bp), %ax 0 00001CAC 8946FC movw %ax, -4(%bp) 0 00001CAF 8B4E10 movw 16(%bp), %cx 0 00001CB2 894EFA movw %cx, -6(%bp) 0 00001CB5 8B4612 movw 18(%bp), %ax 0 00001CB8 8946FE movw %ax, -2(%bp) 0 00001CBB 8B7614 movw 20(%bp), %si 0 00001CBE 8B7E16 movw 22(%bp), %di 0 00001CC1 C706[0000] movw $1, mem_allocated 0 00001CC5 0100 0 00001CC7 FF76FC pushw -4(%bp) 0 00001CCA 06 pushw %es 0 00001CCB 8B5E0A movw 10(%bp), %bx 0 00001CCE FF17 call *(%bx) 0 00001CD0 83C404 addw $4, %sp 0 00001CD3 85C0 testw %ax, %ax 0 00001CD5 8B4EFA movw -6(%bp), %cx 0 00001CD8 7503E926 je .L29 0 00001CDC 01 0 00001CDD 89F0 movw %si, %ax 0 00001CDF 09F8 orw %di, %ax 0 00001CE1 7503E902 je .L30 0 00001CE5 01 0 00001CE6 833E[0000] cmpw $0, data_on_disk 0 00001CEA 00 0 00001CEB 7503E9F8 je .L30 0 00001CEF 00 0 00001CF0 8B5EFE movw -2(%bp), %bx 0 00001CF3 F606[0000] testb $1, xvariable 0 00001CF7 01 0 00001CF8 751C jne .L32 0 00001CFA 57 pushw %di 0 00001CFB 56 pushw %si 0 00001CFC 53 pushw %bx 0 00001CFD 51 pushw %cx 0 00001CFE 894EF8 movw %cx, -8(%bp) 0 00001D01 FF76FC pushw -4(%bp) 0 00001D04 06 pushw %es 0 00001D05 8B5E0A movw 10(%bp), %bx 0 00001D08 FF5704 call *4(%bx) 0 00001D0B 8946FA movw %ax, -6(%bp) 0 00001D0E 89D3 movw %dx, %bx 0 00001D10 83C40C addw $12, %sp 0 00001D13 8B4EF8 movw -8(%bp), %cx 246 .L32: 0 00001D16 8B46FE movw -2(%bp), %ax 0 00001D19 39F8 cmpw %di, %ax 0 00001D1B 7706 ja .L35 0 00001D1D 7508 jne .L34 0 00001D1F 39F1 cmpw %si, %cx 0 00001D21 7604 jbe .L34 253 .L35: 0 00001D23 89F1 movw %si, %cx 0 00001D25 89F8 movw %di, %ax 256 .L34: 0 00001D27 39D8 cmpw %bx, %ax 0 00001D29 7707 ja .L46 0 00001D2B 7515 jne .L33 0 00001D2D 3B4EFA cmpw -6(%bp), %cx 0 00001D30 7610 jbe .L33 262 .L46: 0 00001D32 895EFE movw %bx, -2(%bp) 0 00001D35 B8[2B00] movw $.LC6, %ax 0 00001D38 50 pushw %ax 0 00001D39 E8[FEFF] call error 0 00001D3C 83C402 addw $2, %sp 0 00001D3F 8B5EFE movw -2(%bp), %bx 269 .L33: 0 00001D42 3976FA cmpw %si, -6(%bp) 0 00001D45 7507 jne .L47 0 00001D47 39FB cmpw %di, %bx 0 00001D49 7503E98C je .L37 0 00001D4D 00 274 .L47: 0 00001D4E 895EFE movw %bx, -2(%bp) 0 00001D51 FF76FC pushw -4(%bp) 0 00001D54 06 pushw %es 0 00001D55 8B5E0A movw 10(%bp), %bx 0 00001D58 FF5711 call *17(%bx) 0 00001D5B 83C404 addw $4, %sp 0 00001D5E 39D7 cmpw %dx, %di 0 00001D60 8B5EFE movw -2(%bp), %bx 0 00001D63 7775 ja .L37 0 00001D65 7504 jne .L48 0 00001D67 39C6 cmpw %ax, %si 0 00001D69 776F ja .L37 287 .L48: 0 00001D6B 53 pushw %bx 0 00001D6C FF76FA pushw -6(%bp) 0 00001D6F FF76FC pushw -4(%bp) 0 00001D72 06 pushw %es 0 00001D73 8B5E0A movw 10(%bp), %bx 0 00001D76 FF5708 call *8(%bx) 0 00001D79 57 pushw %di 0 00001D7A 56 pushw %si 0 00001D7B FF76FC pushw -4(%bp) 0 00001D7E 06 pushw %es 0 00001D7F 8B5E0A movw 10(%bp), %bx 0 00001D82 FF5702 call *2(%bx) 0 00001D85 89C1 movw %ax, %cx 0 00001D87 8956FE movw %dx, -2(%bp) 0 00001D8A 83C410 addw $16, %sp 0 00001D8D 39D7 cmpw %dx, %di 0 00001D8F 7706 ja .L43 0 00001D91 7517 jne .L40 0 00001D93 39C6 cmpw %ax, %si 0 00001D95 7613 jbe .L40 308 .L43: 0 00001D97 FF76FC pushw -4(%bp) 0 00001D9A 06 pushw %es 0 00001D9B 8B5E0A movw 10(%bp), %bx 0 00001D9E FF570E call *14(%bx) 0 00001DA1 91 xchgw %ax, %cx 0 00001DA2 8956FE movw %dx, -2(%bp) 0 00001DA5 83C404 addw $4, %sp 0 00001DA8 EB25 jmp .L42 317 .L40: 0 00001DAA 894EFA movw %cx, -6(%bp) 0 00001DAD 57 pushw %di 0 00001DAE 56 pushw %si 0 00001DAF FF76FC pushw -4(%bp) 0 00001DB2 06 pushw %es 0 00001DB3 8B5E0A movw 10(%bp), %bx 0 00001DB6 FF570A call *10(%bx) 0 00001DB9 83C408 addw $8, %sp 0 00001DBC 85C0 testw %ax, %ax 0 00001DBE 74D7 je .L43 0 00001DC0 8B5E0A movw 10(%bp), %bx 0 00001DC3 FF570C call *12(%bx) 0 00001DC6 C706[0000] movw $1, disk_touched 0 00001DCA 0100 0 00001DCC 8B4EFA movw -6(%bp), %cx 332 .L42: 0 00001DCF 91 xchgw %ax, %cx 0 00001DD0 8B56FE movw -2(%bp), %dx 0 00001DD3 89EC movw %bp, %sp 0 00001DD5 5D popw %bp 0 00001DD6 07 popw %es 0 00001DD7 5F popw %di 0 00001DD8 5E popw %si 0 00001DD9 C3 ret 341 .L37: 0 00001DDA C706[0000] movw $1, disk_touched 0 00001DDE 0100 0 00001DE0 8B4EFA movw -6(%bp), %cx 0 00001DE3 895EFE movw %bx, -2(%bp) 0 00001DE6 EBE7 jmp .L42 346 .L30: 0 00001DE8 FF76FE pushw -2(%bp) 0 00001DEB 51 pushw %cx 0 00001DEC FF76FC pushw -4(%bp) 0 00001DEF 06 pushw %es 0 00001DF0 8B5E0A movw 10(%bp), %bx 0 00001DF3 FF5706 call *6(%bx) 0 00001DF6 91 xchgw %ax, %cx 0 00001DF7 8956FE movw %dx, -2(%bp) 0 00001DFA C706[0000] movw $1, disk_touched 0 00001DFE 0100 0 00001E00 83C408 addw $8, %sp 357 .L29: 0 00001E03 89F0 movw %si, %ax 0 00001E05 09F8 orw %di, %ax 0 00001E07 74C6 je .L42 0 00001E09 57 pushw %di 0 00001E0A 56 pushw %si 0 00001E0B FF76FC pushw -4(%bp) 0 00001E0E 06 pushw %es 0 00001E0F 8B5E0A movw 10(%bp), %bx 0 00001E12 FF5702 call *2(%bx) 0 00001E15 91 xchgw %ax, %cx 0 00001E16 8956FE movw %dx, -2(%bp) 0 00001E19 83C408 addw $8, %sp 0 00001E1C EBB1 jmp .L42 371 .size physical_alloc, .-physical_alloc === Switch to base unknown -> ".RODATA.STR1.1" 372 .section .rodata.str1.1 373 .LC7: 0 000014A8 446F6E27 .string "Don't know how to allocate memory" 0 000014AC 74206B6E 0 000014B0 6F772068 0 000014B4 6F772074 0 000014B8 6F20616C === Switch to base unknown -> ".TEXT" 375 .text 376 .global disk_alloc 377 .type disk_alloc, @function 378 disk_alloc: 0 00001E1E 56 pushw %si 0 00001E1F 57 pushw %di 0 00001E20 06 pushw %es 0 00001E21 55 pushw %bp 0 00001E22 89E5 movw %sp, %bp 0 00001E24 83EC06 subw $6, %sp 0 00001E27 8B760A movw 10(%bp), %si 0 00001E2A 8B7E0C movw 12(%bp), %di 0 00001E2D C4460E lesw 14(%bp), %ax 0 00001E30 8946FC movw %ax, -4(%bp) 0 00001E33 31C0 xorw %ax, %ax 0 00001E35 8EDF movw %di, %ds 0 00001E37 8B5406 movw 6(%si), %dx 0 00001E3A 8956FE movw %dx, -2(%bp) 0 00001E3D F6440108 testb $8, 1(%si) 0 00001E41 7525 jne .L61 0 00001E43 06 pushw %es 0 00001E44 FF76FC pushw -4(%bp) 0 00001E47 57 pushw %di 0 00001E48 52 pushw %dx 0 00001E49 16 pushw %ss 0 00001E4A 1F popw %ds 0 00001E4B E8[FEFF] call asm_call_alloc 0 00001E4E C706[0000] movw $1, disk_touched 0 00001E52 0100 0 00001E54 83C408 addw $8, %sp 404 .L62: 0 00001E57 8EC7 movw %di, %es 0 00001E59 26894410 movw %ax, %es:16(%si) 0 00001E5D 26895412 movw %dx, %es:18(%si) 0 00001E61 89EC movw %bp, %sp 0 00001E63 5D popw %bp 0 00001E64 07 popw %es 0 00001E65 5F popw %di 0 00001E66 5E popw %si 0 00001E67 C3 ret 414 .L61: 0 00001E68 57 pushw %di 0 00001E69 50 pushw %ax 0 00001E6A 16 pushw %ss 0 00001E6B 1F popw %ds 0 00001E6C E895FD call identify_memory 0 00001E6F 83C404 addw $4, %sp 0 00001E72 3CFF cmpb $-1, %al 0 00001E74 7510 jne .L63 0 00001E76 8846FB movb %al, -5(%bp) 0 00001E79 BA[4500] movw $.LC7, %dx 0 00001E7C 52 pushw %dx 0 00001E7D E8[FEFF] call fatal 0 00001E80 83C402 addw $2, %sp 0 00001E83 8A46FB movb -5(%bp), %al 429 .L63: 0 00001E86 06 pushw %es 0 00001E87 FF76FC pushw -4(%bp) 0 00001E8A 8EC7 movw %di, %es 0 00001E8C 26FF7412 pushw %es:18(%si) 0 00001E90 26FF7410 pushw %es:16(%si) 0 00001E94 57 pushw %di 0 00001E95 FF76FE pushw -2(%bp) 0 00001E98 98 cbtw 0 00001E99 BA1300 movw $19, %dx 0 00001E9C F7E2 mulw %dx 0 00001E9E 05[0000] addw $phys_interface, %ax 0 00001EA1 50 pushw %ax 0 00001EA2 E8[FEFF] call physical_alloc 0 00001EA5 83C40E addw $14, %sp 0 00001EA8 EBAD jmp .L62 445 .size disk_alloc, .-disk_alloc === Switch to base unknown -> ".RODATA.STR1.1" 446 .section .rodata.str1.1 447 .LC8: 0 000014CA 446F6E27 .string "Don't know how to handle memory" 0 000014CE 74206B6E 0 000014D2 6F772068 0 000014D6 6F772074 0 000014DA 6F206861 === Switch to base unknown -> ".TEXT" 449 .text 450 .global max_size 451 .type max_size, @function 452 max_size: 0 00001EAA 56 pushw %si 0 00001EAB 57 pushw %di 0 00001EAC 06 pushw %es 0 00001EAD 55 pushw %bp 0 00001EAE 89E5 movw %sp, %bp 0 00001EB0 1E pushw %ds 0 00001EB1 1E pushw %ds 0 00001EB2 C47E0A lesw 10(%bp), %di 0 00001EB5 8CC6 movw %es, %si 0 00001EB7 268E4508 movw %es:8(%di), %es 0 00001EBB 8CC0 movw %es, %ax 0 00001EBD 85C0 testw %ax, %ax 0 00001EBF 740C je .L66 0 00001EC1 8C460A movw %es, 10(%bp) 0 00001EC4 89EC movw %bp, %sp 0 00001EC6 5D popw %bp 0 00001EC7 07 popw %es 0 00001EC8 5F popw %di 0 00001EC9 5E popw %si 0 00001ECA E9[FEFF] jmp asm_freemem 473 .L66: 0 00001ECD 8EDE movw %si, %ds 0 00001ECF 8B4506 movw 6(%di), %ax 0 00001ED2 8946FE movw %ax, -2(%bp) 0 00001ED5 56 pushw %si 0 00001ED6 06 pushw %es 0 00001ED7 16 pushw %ss 0 00001ED8 1F popw %ds 0 00001ED9 E828FD call identify_memory 0 00001EDC 83C404 addw $4, %sp 0 00001EDF 3CFF cmpb $-1, %al 0 00001EE1 751B jne .L67 0 00001EE3 B8[6700] movw $.LC8, %ax 0 00001EE6 50 pushw %ax 0 00001EE7 E8[FEFF] call fatal 0 00001EEA 83C402 addw $2, %sp 0 00001EED 06 pushw %es 0 00001EEE 1F popw %ds 0 00001EEF 8CC3 movw %es, %bx 492 .L65: 0 00001EF1 8CD8 movw %ds, %ax 0 00001EF3 89DA movw %bx, %dx 0 00001EF5 89EC movw %bp, %sp 0 00001EF7 5D popw %bp 0 00001EF8 07 popw %es 0 00001EF9 5F popw %di 0 00001EFA 5E popw %si 0 00001EFB 16 pushw %ss 0 00001EFC 1F popw %ds 0 00001EFD C3 ret 503 .L67: 0 00001EFE 897EFC movw %di, -4(%bp) 0 00001F01 98 cbtw 0 00001F02 BA1300 movw $19, %dx 0 00001F05 F7E2 mulw %dx 0 00001F07 8EC0 movw %ax, %es 0 00001F09 56 pushw %si 0 00001F0A FF76FE pushw -2(%bp) 0 00001F0D 93 xchgw %ax, %bx 0 00001F0E 36FF97[11] call *%ss:phys_interface+17(%bx) 0 00001F12 [00] 0 00001F13 8ED8 movw %ax, %ds 0 00001F15 89D3 movw %dx, %bx 0 00001F17 8CC7 movw %es, %di 0 00001F19 368B85[10] movw %ss:phys_interface+16(%di), %ax 0 00001F1D [00] 0 00001F1E B10E movb $14, %cl 0 00001F20 D3E0 shlw %cl, %ax 0 00001F22 99 cwtd 0 00001F23 8956FE movw %dx, -2(%bp) 0 00001F26 83C404 addw $4, %sp 0 00001F29 807EFE00 cmpb $0, -2(%bp) 0 00001F2D 74C2 je .L65 0 00001F2F 8EC6 movw %si, %es 0 00001F31 8B7EFC movw -4(%bp), %di 0 00001F34 268B4510 movw %es:16(%di), %ax 0 00001F38 268B5512 movw %es:18(%di), %dx 0 00001F3C 8CD9 movw %ds, %cx 0 00001F3E 01C8 addw %cx, %ax 0 00001F40 11DA adcw %bx, %dx 0 00001F42 8ED8 movw %ax, %ds 0 00001F44 89D3 movw %dx, %bx 0 00001F46 EBA9 jmp .L65 534 .size max_size, .-max_size 535 .global safe_size 536 .type safe_size, @function 537 safe_size: 0 00001F48 56 pushw %si 0 00001F49 57 pushw %di 0 00001F4A 06 pushw %es 0 00001F4B 55 pushw %bp 0 00001F4C 89E5 movw %sp, %bp 0 00001F4E 1E pushw %ds 0 00001F4F 1E pushw %ds 0 00001F50 C47E0A lesw 10(%bp), %di 0 00001F53 268B7508 movw %es:8(%di), %si 0 00001F57 85F6 testw %si, %si 0 00001F59 740C je .L74 0 00001F5B 89760A movw %si, 10(%bp) 0 00001F5E 89EC movw %bp, %sp 0 00001F60 5D popw %bp 0 00001F61 07 popw %es 0 00001F62 5F popw %di 0 00001F63 5E popw %si 0 00001F64 E9[FEFF] jmp asm_freemem 556 .L74: 0 00001F67 268B4506 movw %es:6(%di), %ax 0 00001F6B 8946FE movw %ax, -2(%bp) 0 00001F6E 06 pushw %es 0 00001F6F 56 pushw %si 0 00001F70 E891FC call identify_memory 0 00001F73 83C404 addw $4, %sp 0 00001F76 3CFF cmpb $-1, %al 0 00001F78 7515 jne .L75 0 00001F7A B8[6700] movw $.LC8, %ax 0 00001F7D 50 pushw %ax 0 00001F7E E8[FEFF] call fatal 0 00001F81 83C402 addw $2, %sp 0 00001F84 89F0 movw %si, %ax 0 00001F86 89F2 movw %si, %dx 571 .L73: 0 00001F88 89EC movw %bp, %sp 0 00001F8A 5D popw %bp 0 00001F8B 07 popw %es 0 00001F8C 5F popw %di 0 00001F8D 5E popw %si 0 00001F8E C3 ret 578 .L75: 0 00001F8F 98 cbtw 0 00001F90 BA1300 movw $19, %dx 0 00001F93 F7E2 mulw %dx 0 00001F95 89C3 movw %ax, %bx 0 00001F97 06 pushw %es 0 00001F98 FF76FE pushw -2(%bp) 0 00001F9B 8946FC movw %ax, -4(%bp) 0 00001F9E FF97[1100] call *phys_interface+17(%bx) 0 00001FA2 8946FE movw %ax, -2(%bp) 0 00001FA5 89D6 movw %dx, %si 0 00001FA7 8B5EFC movw -4(%bp), %bx 0 00001FAA 8B87[1000] movw phys_interface+16(%bx), %ax 0 00001FAE B10F movb $15, %cl 0 00001FB0 D3E0 shlw %cl, %ax 0 00001FB2 99 cwtd 0 00001FB3 8956FC movw %dx, -4(%bp) 0 00001FB6 83C404 addw $4, %sp 0 00001FB9 268B4510 movw %es:16(%di), %ax 0 00001FBD 268B5512 movw %es:18(%di), %dx 0 00001FC1 807EFC00 cmpb $0, -4(%bp) 0 00001FC5 7407 je .L77 0 00001FC7 0346FE addw -2(%bp), %ax 0 00001FCA 11F2 adcw %si, %dx 0 00001FCC EBBA jmp .L73 603 .L77: 0 00001FCE 39D6 cmpw %dx, %si 0 00001FD0 7707 ja .L79 0 00001FD2 75B4 jne .L73 0 00001FD4 3946FE cmpw %ax, -2(%bp) 0 00001FD7 76AF jbe .L73 609 .L79: 0 00001FD9 8B46FE movw -2(%bp), %ax 0 00001FDC 89F2 movw %si, %dx 0 00001FDE EBA8 jmp .L73 613 .size safe_size, .-safe_size === Switch to base unknown -> ".DATA" 614 .data 615 .type phys_interface, @object 616 .size phys_interface, 38 617 phys_interface: 0 000027CE [0000] .hword XMSf_has_memory 0 000027D0 [0000] .hword XMSf_alloc 0 000027D2 [0000] .hword XMSf_realloc 0 000027D4 [0000] .hword XMSf_free 0 000027D6 [0000] .hword XMSf_save_buffer 0 000027D8 [0000] .hword XMSf_copy_to_new 0 000027DA [0000] .hword XMSf_free_old 0 000027DC [0000] .hword XMSf_restore_buffer 0 000027DE 02 .byte 2 0 000027DF [0000] .hword XMSf_mem_avail 0 000027E1 [0000] .hword EMSf_has_memory 0 000027E3 [0000] .hword EMSf_alloc 0 000027E5 [0000] .hword EMSf_realloc 0 000027E7 [0000] .hword EMSf_free 0 000027E9 [0000] .hword EMSf_save_buffer 0 000027EB [0000] .hword EMSf_copy_to_new 0 000027ED [0000] .hword EMSf_free_old 0 000027EF [0000] .hword EMSf_restore_buffer 0 000027F1 03 .byte 3 0 000027F2 [0000] .hword EMSf_mem_avail 638 .global mem_allocated === Switch to base unknown -> ".BSS" 639 .bss 640 .p2align 1 641 .type mem_allocated, @object 642 .size mem_allocated, 2 643 mem_allocated: 0 00002A60 0000 .skip 2,0 645 .ident "GCC: (GNU) 6.3.0" === Trace listing source: env.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC1: 0 000014EA 3D00 .string "=" 8 .LC2: 0 000014EC 53657420 .string "Set %s=%s\n" 0 000014F0 25733D25 0 000014F4 730A00 10 .LC3: 0 000014F7 4E6F7420 .string "Not enough environment space" 0 000014FB 656E6F75 0 000014FF 67682065 0 00001503 6E766972 0 00001507 6F6E6D65 12 .LC4: 0 00001514 4E6F2065 .string "No environment found to modify" 0 00001518 6E766972 0 0000151C 6F6E6D65 0 00001520 6E742066 0 00001524 6F756E64 14 .LC0: 0 00001533 53524449 .string "SRDISK1" 0 00001537 534B3100 === Switch to base unknown -> ".TEXT" 16 .text 17 .global set_env 18 .type set_env, @function 19 set_env: 0 00001FE0 56 pushw %si 0 00001FE1 57 pushw %di 0 00001FE2 06 pushw %es 0 00001FE3 55 pushw %bp 0 00001FE4 89E5 movw %sp, %bp 0 00001FE6 83EC14 subw $20, %sp 0 00001FE9 C406[0000] lesw mainconf, %ax 0 00001FED 8946F2 movw %ax, -14(%bp) 0 00001FF0 8C46F0 movw %es, -16(%bp) 0 00001FF3 C406[4900] lesw .LC0, %ax 0 00001FF7 8946F8 movw %ax, -8(%bp) 0 00001FFA 8C46FA movw %es, -6(%bp) 0 00001FFD C406[0400] lesw .LC0+4, %ax 0 00002001 8946FC movw %ax, -4(%bp) 0 00002004 8C46FE movw %es, -2(%bp) 0 00002007 C746F641 movw $65, -10(%bp) 0 0000200B 00 36 .L13: 0 0000200C 8E46F0 movw -16(%bp), %es 0 0000200F 8B5EF2 movw -14(%bp), %bx 0 00002012 268A07 movb %es:(%bx), %al 0 00002015 8846F6 movb %al, -10(%bp) 0 00002018 31DB xorw %bx, %bx 0 0000201A 8E06[0000] movw _psp, %es 0 0000201E 26A11600 movw %es:22, %ax 0 00002022 39D8 cmpw %bx, %ax 0 00002024 7503E99F je .L2 0 00002028 01 0 00002029 8EC0 movw %ax, %es 0 0000202B 26813FCD cmpw $8397, %es:(%bx) 0 0000202F 20 0 00002030 7403E993 jne .L2 0 00002034 01 0 00002035 89C2 movw %ax, %dx 0 00002037 4A decw %dx 0 00002038 8EC2 movw %dx, %es 0 0000203A 263B0601 cmpw %es:1, %ax 0 0000203E 00 0 0000203F 7403E984 jne .L2 0 00002043 01 0 00002044 8EC0 movw %ax, %es 0 00002046 268B3E2C movw %es:44, %di 0 0000204A 00 0 0000204B 39DF cmpw %bx, %di 0 0000204D 7503E9FD je .L4 0 00002051 00 0 00002052 8D45FF leaw -1(%di), %ax 59 .L5: 0 00002055 8EC0 movw %ax, %es 0 00002057 268B1603 movw %es:3, %dx 0 0000205B 00 0 0000205C B104 movb $4, %cl 0 0000205E D3E2 shlw %cl, %dx 0 00002060 8956EC movw %dx, -20(%bp) 0 00002063 89D9 movw %bx, %cx 0 00002065 09F9 orw %di, %cx 0 00002067 7503E95C je .L2 0 0000206B 01 0 0000206C 8D46F8 leaw -8(%bp), %ax 0 0000206F 50 pushw %ax 0 00002070 E8[FEFF] call strlen 0 00002073 83C402 addw $2, %sp 0 00002076 8946EE movw %ax, -18(%bp) 0 00002079 C746F400 movw $0, -12(%bp) 0 0000207D 00 74 .L7: 0 0000207E 8EC7 movw %di, %es 0 00002080 8B5EF4 movw -12(%bp), %bx 0 00002083 26803F00 cmpb $0, %es:(%bx) 0 00002087 7403E9D2 jne .L10 0 0000208B 00 0 0000208C 16 pushw %ss 0 0000208D 07 popw %es 0 0000208E 16 pushw %ss 0 0000208F 8D46F6 leaw -10(%bp), %ax 0 00002092 50 pushw %ax 0 00002093 E8[FEFF] call _fstrlen 0 00002096 83C404 addw $4, %sp 0 00002099 85C0 testw %ax, %ax 0 0000209B 7503E91B je .L11 0 0000209F 01 0 000020A0 8B56EC movw -20(%bp), %dx 0 000020A3 2B56F4 subw -12(%bp), %dx 0 000020A6 8956EC movw %dx, -20(%bp) 0 000020A9 06 pushw %es 0 000020AA 8D46F6 leaw -10(%bp), %ax 0 000020AD 50 pushw %ax 0 000020AE E8[FEFF] call _fstrlen 0 000020B1 93 xchgw %ax, %bx 0 000020B2 8B76EE movw -18(%bp), %si 0 000020B5 8D4004 leaw 4(%bx,%si), %ax 0 000020B8 83C404 addw $4, %sp 0 000020BB 8B56EC movw -20(%bp), %dx 0 000020BE 39C2 cmpw %ax, %dx 0 000020C0 7303E9F6 jc .L11 0 000020C4 00 0 000020C5 8D46F8 leaw -8(%bp), %ax 0 000020C8 16 pushw %ss 0 000020C9 50 pushw %ax 0 000020CA 57 pushw %di 0 000020CB FF76F4 pushw -12(%bp) 0 000020CE E8[FEFF] call _fstrcpy 0 000020D1 16 pushw %ss 0 000020D2 B8[0000] movw $.LC1, %ax 0 000020D5 50 pushw %ax 0 000020D6 57 pushw %di 0 000020D7 FF76F4 pushw -12(%bp) 0 000020DA E8[FEFF] call _fstrcat 0 000020DD 06 pushw %es 0 000020DE 8D46F6 leaw -10(%bp), %ax 0 000020E1 50 pushw %ax 0 000020E2 57 pushw %di 0 000020E3 FF76F4 pushw -12(%bp) 0 000020E6 E8[FEFF] call _fstrcat 0 000020E9 57 pushw %di 0 000020EA FF76F4 pushw -12(%bp) 0 000020ED E8[FEFF] call _fstrlen 0 000020F0 89C3 movw %ax, %bx 0 000020F2 8B76F4 movw -12(%bp), %si 0 000020F5 8D5801 leaw 1(%bx,%si), %bx 0 000020F8 8EC7 movw %di, %es 0 000020FA 26C60700 movb $0, %es:(%bx) 0 000020FE 93 xchgw %ax, %bx 0 000020FF 8B76F4 movw -12(%bp), %si 0 00002102 8D5802 leaw 2(%bx,%si), %bx 0 00002105 26C70700 movw $0, %es:(%bx) 0 00002109 00 0 0000210A 83C41C addw $28, %sp 133 .L14: 0 0000210D 833E[0000] cmpw $1, verbose 0 00002111 01 0 00002112 7E12 jle .L12 0 00002114 8D46F6 leaw -10(%bp), %ax 0 00002117 50 pushw %ax 0 00002118 8D46F8 leaw -8(%bp), %ax 0 0000211B 50 pushw %ax 0 0000211C B8[0200] movw $.LC2, %ax 0 0000211F 50 pushw %ax 0 00002120 E8[FEFF] call printf 0 00002123 83C406 addw $6, %sp 144 .L12: 0 00002126 FE46FE incb -2(%bp) 0 00002129 8E46F0 movw -16(%bp), %es 0 0000212C 8B5EF2 movw -14(%bp), %bx 0 0000212F 26FF773D pushw %es:61(%bx) 0 00002133 E8[FEFF] call conf_ptr 0 00002136 8946F2 movw %ax, -14(%bp) 0 00002139 8956F0 movw %dx, -16(%bp) 0 0000213C 83C402 addw $2, %sp 0 0000213F 09D0 orw %dx, %ax 0 00002141 85C0 testw %ax, %ax 0 00002143 7403E9C4 jne .L13 0 00002147 FE 0 00002148 89EC movw %bp, %sp 0 0000214A 5D popw %bp 0 0000214B 07 popw %es 0 0000214C 5F popw %di 0 0000214D 5E popw %si 0 0000214E C3 ret 162 .L4: 0 0000214F 8EC2 movw %dx, %es 0 00002151 26030603 addw %es:3, %ax 0 00002155 00 0 00002156 89C7 movw %ax, %di 0 00002158 47 incw %di 0 00002159 31DB xorw %bx, %bx 0 0000215B E9F7FE jmp .L5 169 .L10: 0 0000215E 8B46EE movw -18(%bp), %ax 0 00002161 50 pushw %ax 0 00002162 57 pushw %di 0 00002163 FF76F4 pushw -12(%bp) 0 00002166 8D46F8 leaw -8(%bp), %ax 0 00002169 16 pushw %ss 0 0000216A 50 pushw %ax 0 0000216B E8[FEFF] call _fstrncmp 0 0000216E 83C40A addw $10, %sp 0 00002171 85C0 testw %ax, %ax 0 00002173 752F jne .L8 0 00002175 8B5EEE movw -18(%bp), %bx 0 00002178 035EF4 addw -12(%bp), %bx 0 0000217B 8EC7 movw %di, %es 0 0000217D 26803F3D cmpb $61, %es:(%bx) 0 00002181 7521 jne .L8 0 00002183 57 pushw %di 0 00002184 FF76F4 pushw -12(%bp) 0 00002187 E8[FEFF] call _fstrlen 0 0000218A 93 xchgw %ax, %bx 0 0000218B 8B76F4 movw -12(%bp), %si 0 0000218E 8D4001 leaw 1(%bx,%si), %ax 0 00002191 8B56EC movw -20(%bp), %dx 0 00002194 29C2 subw %ax, %dx 0 00002196 52 pushw %dx 0 00002197 57 pushw %di 0 00002198 50 pushw %ax 0 00002199 57 pushw %di 0 0000219A 56 pushw %si 0 0000219B E8[FEFF] call _fmemmove 0 0000219E 83C40E addw $14, %sp 0 000021A1 E9DAFE jmp .L7 202 .L8: 0 000021A4 57 pushw %di 0 000021A5 FF76F4 pushw -12(%bp) 0 000021A8 E8[FEFF] call _fstrlen 0 000021AB 93 xchgw %ax, %bx 0 000021AC 8B76F4 movw -12(%bp), %si 0 000021AF 8D4001 leaw 1(%bx,%si), %ax 0 000021B2 8946F4 movw %ax, -12(%bp) 0 000021B5 83C404 addw $4, %sp 0 000021B8 E9C3FE jmp .L7 212 .L11: 0 000021BB B8[0D00] movw $.LC3, %ax 214 .L27: 0 000021BE 50 pushw %ax 0 000021BF E8[FEFF] call fatal 0 000021C2 83C402 addw $2, %sp 0 000021C5 E945FF jmp .L14 219 .L2: 0 000021C8 B8[2A00] movw $.LC4, %ax 0 000021CB EBF1 jmp .L27 222 .size set_env, .-set_env 223 .ident "GCC: (GNU) 6.3.0" 224 .weak __ia16_use_printf_nofloat.v1 225 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: error.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type __sputc_r, @function 7 __sputc_r: 0 000021CD 56 pushw %si 0 000021CE 57 pushw %di 0 000021CF 55 pushw %bp 0 000021D0 89E5 movw %sp, %bp 0 000021D2 1E pushw %ds 0 000021D3 8B7E08 movw 8(%bp), %di 0 000021D6 8B560A movw 10(%bp), %dx 0 000021D9 8B760C movw 12(%bp), %si 0 000021DC 8B4407 movw 7(%si), %ax 0 000021DF B106 movb $6, %cl 0 000021E1 D3E8 shrw %cl, %ax 0 000021E3 83E001 andw $1, %ax 0 000021E6 8946FE movw %ax, -2(%bp) 0 000021E9 807EFE00 cmpb $0, -2(%bp) 0 000021ED 7417 je .L2 0 000021EF 83FA0A cmpw $10, %dx 0 000021F2 7512 jne .L2 0 000021F4 8956FE movw %dx, -2(%bp) 0 000021F7 56 pushw %si 0 000021F8 B80D00 movw $13, %ax 0 000021FB 50 pushw %ax 0 000021FC 57 pushw %di 0 000021FD E8CDFF call __sputc_r 0 00002200 83C406 addw $6, %sp 0 00002203 8B56FE movw -2(%bp), %dx 33 .L2: 0 00002206 8B4404 movw 4(%si), %ax 0 00002209 48 decw %ax 0 0000220A 894404 movw %ax, 4(%si) 0 0000220D 85C0 testw %ax, %ax 0 0000220F 7D1B jge .L3 0 00002211 3B440E cmpw 14(%si), %ax 0 00002214 7C05 jl .L4 0 00002216 80FA0A cmpb $10, %dl 0 00002219 7511 jne .L3 43 .L4: 0 0000221B 89760C movw %si, 12(%bp) 0 0000221E 89560A movw %dx, 10(%bp) 0 00002221 897E08 movw %di, 8(%bp) 0 00002224 89EC movw %bp, %sp 0 00002226 5D popw %bp 0 00002227 5F popw %di 0 00002228 5E popw %si 0 00002229 E9[FEFF] jmp __swbuf_r 52 .L3: 0 0000222C 8B1C movw (%si), %bx 0 0000222E 8D4701 leaw 1(%bx), %ax 0 00002231 8904 movw %ax, (%si) 0 00002233 8817 movb %dl, (%bx) 0 00002235 92 xchgw %ax, %dx 0 00002236 30E4 xorb %ah, %ah 0 00002238 89EC movw %bp, %sp 0 0000223A 5D popw %bp 0 0000223B 5F popw %di 0 0000223C 5E popw %si 0 0000223D C3 ret 64 .size __sputc_r, .-__sputc_r === Switch to base unknown -> ".RODATA.STR1.1" 65 .section .rodata.str1.1,"aMS",@progbits,1 66 .LC0: 0 0000153B 54727969 .string "Trying to make clear disk with the old format" 0 0000153F 6E672074 0 00001543 6F206D61 0 00001547 6B652063 0 0000154B 6C656172 68 .LC1: 0 00001569 54727969 .string "Trying to make a clear disk" 0 0000156D 6E672074 0 00001571 6F206D61 0 00001575 6B652061 0 00001579 20636C65 70 .LC2: 0 00001585 0A4D616E .string "\nManaged to make a valid disk" 0 00001589 61676564 0 0000158D 20746F20 0 00001591 6D616B65 0 00001595 20612076 === Switch to base unknown -> ".TEXT" 72 .text 73 .type finnish_disk, @function 74 finnish_disk: 0 0000223E 8A0E[0000] movb disk_repair, %cl 0 00002242 80F903 cmpb $3, %cl 0 00002245 745C je .L43 0 00002247 56 pushw %si 0 00002248 57 pushw %di 0 00002249 06 pushw %es 0 0000224A 55 pushw %bp 0 0000224B 89E5 movw %sp, %bp 0 0000224D 1E pushw %ds 0 0000224E BB[0000] movw $f, %bx 0 00002251 8B775E movw 94(%bx), %si 0 00002254 C746FE00 movw $0, -2(%bp) 0 00002258 00 0 00002259 8EC3 movw %bx, %es 0 0000225B BF[2600] movw $f+38, %di 89 .L16: 0 0000225E 3976FE cmpw %si, -2(%bp) 0 00002261 7541 jne .L18 0 00002263 84C9 testb %cl, %cl 0 00002265 741F je .L19 0 00002267 8CC3 movw %es, %bx 0 00002269 8B4704 movw 4(%bx), %ax 0 0000226C 8B5706 movw 6(%bx), %dx 0 0000226F 89C3 movw %ax, %bx 0 00002271 09D3 orw %dx, %bx 0 00002273 7411 je .L19 0 00002275 BE[0000] movw $newf, %si 0 00002278 8B5C06 movw 6(%si), %bx 0 0000227B 8E5C04 movw 4(%si), %ds 0 0000227E 89DF movw %bx, %di 0 00002280 360B7C04 orw %ss:4(%si), %di 0 00002284 752F jne .L21 106 .L19: 0 00002286 16 pushw %ss 0 00002287 1F popw %ds 0 00002288 E8[FEFF] call disable_disk 110 .L22: 0 0000228B 36833E[00] cmpw $1, %ss:verbose 0 0000228F [00]01 0 00002291 750A jne .L14 0 00002293 B8[4A00] movw $.LC2, %ax 0 00002296 50 pushw %ax 0 00002297 E8[FEFF] call puts 0 0000229A 83C402 addw $2, %sp 117 .L14: 0 0000229D 89EC movw %bp, %sp 0 0000229F 5D popw %bp 0 000022A0 07 popw %es 0 000022A1 5F popw %di 0 000022A2 5E popw %si 123 .L43: 0 000022A3 C3 ret 125 .L18: 0 000022A4 B80D00 movw $13, %ax 0 000022A7 F766FE mulw -2(%bp) 0 000022AA 93 xchgw %ax, %bx 0 000022AB 36806101 andb $-3, %ss:1(%bx,%di) 0 000022AF FD 0 000022B0 FF46FE incw -2(%bp) 0 000022B3 EBA9 jmp .L16 132 .L21: 0 000022B5 80F902 cmpb $2, %cl 0 000022B8 7421 je .L29 0 000022BA 39D3 cmpw %dx, %bx 0 000022BC 771D ja .L29 0 000022BE 7506 jne .L26 0 000022C0 8CDA movw %ds, %dx 0 000022C2 39C2 cmpw %ax, %dx 0 000022C4 7715 ja .L29 141 .L26: 0 000022C6 36833E[00] cmpw $1, %ss:verbose 0 000022CA [00]01 0 000022CC 7F31 jg .L41 144 .L28: 0 000022CE 36C606[00] movb $0, %ss:disk_repair 0 000022D2 [00]00 0 000022D4 16 pushw %ss 0 000022D5 1F popw %ds 0 000022D6 E8[FEFF] call WriteNewFormat 0 000022D9 EBB0 jmp .L22 150 .L29: 0 000022DB 36833E[00] cmpw $1, %ss:verbose 0 000022DF [00]01 0 000022E1 7E0C jle .L27 0 000022E3 B8[0000] movw $.LC0, %ax 0 000022E6 50 pushw %ax 0 000022E7 16 pushw %ss 0 000022E8 1F popw %ds 0 000022E9 E8[FEFF] call puts 0 000022EC 83C402 addw $2, %sp 159 .L27: 0 000022EF B88E00 movw $142, %ax 0 000022F2 50 pushw %ax 0 000022F3 06 pushw %es 0 000022F4 56 pushw %si 0 000022F5 16 pushw %ss 0 000022F6 1F popw %ds 0 000022F7 E8[FEFF] call memcpy 0 000022FA 83C406 addw $6, %sp 0 000022FD EBCF jmp .L28 169 .L41: 0 000022FF B8[2E00] movw $.LC1, %ax 0 00002302 50 pushw %ax 0 00002303 16 pushw %ss 0 00002304 1F popw %ds 0 00002305 E8[FEFF] call puts 0 00002308 83C402 addw $2, %sp 0 0000230B EBC1 jmp .L28 177 .size finnish_disk, .-finnish_disk === Switch to base unknown -> ".RODATA.STR1.1" 178 .section .rodata.str1.1 179 .LC3: 0 000015A3 0741626F .string "\007Aborted" 0 000015A7 72746564 0 000015AB 00 181 .LC4: 0 000015AC 07546F6F .string "\007Too many errors - aborting." 0 000015B0 206D616E 0 000015B4 79206572 0 000015B8 726F7273 0 000015BC 202D2061 183 .LC5: 0 000015C9 466F726D .string "Formatting aborted due to error while disk image is bad\nOK to wipe off any data possibly 0 000015CD 61747469 0 000015D1 6E672061 0 000015D5 626F7274 0 000015D9 65642064 185 .LC6: 0 0000163C 4661696C .string "Failed to reformat while disk image is bad" 0 00001640 65642074 0 00001644 6F207265 0 00001648 666F726D 0 0000164C 61742077 187 .LC7: 0 00001667 4469736B .string "Disk has been modified - it may not be reliable" 0 0000166B 20686173 0 0000166F 20626565 0 00001673 6E206D6F 0 00001677 64696669 === Switch to base unknown -> ".TEXT" 189 .text 190 .type crash.constprop.0, @function 191 crash.constprop.0: 0 0000230D 56 pushw %si 0 0000230E 57 pushw %di 0 0000230F E8[FEFF] call FAT_close 0 00002312 B8[6800] movw $.LC3, %ax 0 00002315 50 pushw %ax 0 00002316 E8[FEFF] call puts 0 00002319 A1[0000] movw crashed, %ax 0 0000231C 40 incw %ax 0 0000231D A3[0000] movw %ax, crashed 0 00002320 83C402 addw $2, %sp 0 00002323 83F802 cmpw $2, %ax 0 00002326 7E0E jle .L47 0 00002328 B8[7100] movw $.LC4, %ax 0 0000232B 50 pushw %ax 0 0000232C E8[FEFF] call puts 0 0000232F B80200 movw $2, %ax 0 00002332 50 pushw %ax 0 00002333 E8[FEFF] call exit 210 .L47: 0 00002336 A1[0200] movw conf+2, %ax 0 00002339 360B06[00] orw %ss:conf, %ax 0 0000233D [00] 0 0000233E 7455 je .L49 0 00002340 36833E[00] cmpw $0, %ss:data_on_disk 0 00002344 [00]00 0 00002346 7473 je .L50 0 00002348 36833E[00] cmpw $0, %ss:disk_bad 0 0000234C [00]00 0 0000234E 7457 je .L51 0 00002350 36833E[00] cmpw $0, %ss:force_f 0 00002354 [00]00 0 00002356 7546 jne .L52 0 00002358 B8[8E00] movw $.LC5, %ax 0 0000235B 50 pushw %ax 0 0000235C E8[FEFF] call printf 0 0000235F E8[FEFF] call getYN 224 .L59: 0 00002362 83C402 addw $2, %sp 0 00002365 36833E[00] cmpw $1, %ss:force_f 0 00002369 [00]01 0 0000236B 7510 jne .L54 0 0000236D 36803E[00] cmpb $3, %ss:disk_repair 0 00002371 [00]03 0 00002373 7505 jne .L55 0 00002375 C606[0000] movb $1, disk_repair 0 00002379 01 231 .L55: 0 0000237A E8C1FE call finnish_disk 233 .L54: 0 0000237D 36833E[00] cmpw $0, %ss:data_on_disk 0 00002381 [00]00 0 00002383 7410 je .L49 236 .L56: 0 00002385 8B3E[0000] movw conf, %di 0 00002389 8B36[0200] movw conf+2, %si 0 0000238D E8[FEFF] call makeRWaccess 0 00002390 8EDE movw %si, %ds 0 00002392 884538 movb %al, 56(%di) 242 .L49: 0 00002395 B80100 movw $1, %ax 0 00002398 50 pushw %ax 0 00002399 16 pushw %ss 0 0000239A 1F popw %ds 0 0000239B E8[FEFF] call exit 248 .L52: 0 0000239E B8[0101] movw $.LC6, %ax 0 000023A1 50 pushw %ax 0 000023A2 E8[FEFF] call puts 0 000023A5 EBBB jmp .L59 253 .L51: 0 000023A7 36833E[00] cmpw $0, %ss:disk_touched 0 000023AB [00]00 0 000023AD 74D6 je .L56 0 000023AF B8[2C01] movw $.LC7, %ax 0 000023B2 50 pushw %ax 0 000023B3 E8[FEFF] call puts 0 000023B6 83C402 addw $2, %sp 0 000023B9 EBC2 jmp .L54 261 .L50: 0 000023BB 36833E[00] cmpw $0, %ss:disk_bad 0 000023BF [00]00 0 000023C1 74D2 je .L49 0 000023C3 E878FE call finnish_disk 0 000023C6 EBCD jmp .L49 266 .size crash.constprop.0, .-crash.constprop.0 === Switch to base unknown -> ".RODATA.STR1.1" 267 .section .rodata.str1.1 268 .LC8: 0 00001697 53796E74 .string "Syntax error: " 0 0000169B 61782065 0 0000169F 72726F72 0 000016A3 3A2000 270 .LC9: 0 000016A6 466F7220 .string "For help type 'SRDISK /?'." 0 000016AA 68656C70 0 000016AE 20747970 0 000016B2 65202753 0 000016B6 52444953 === Switch to base unknown -> ".TEXT" 272 .text 273 .global syntax 274 .type syntax, @function 275 syntax: 0 000023C8 56 pushw %si 0 000023C9 55 pushw %bp 0 000023CA 89E5 movw %sp, %bp 0 000023CC 1E pushw %ds 0 000023CD 8D4608 leaw 8(%bp), %ax 0 000023D0 8946FE movw %ax, -2(%bp) 0 000023D3 E8[FEFF] call force_banner 0 000023D6 8B1E[0000] movw _impure_ptr, %bx 0 000023DA FF7706 pushw 6(%bx) 0 000023DD B8[5C01] movw $.LC8, %ax 0 000023E0 50 pushw %ax 0 000023E1 E8[FEFF] call fputs 0 000023E4 FF76FE pushw -2(%bp) 0 000023E7 FF7606 pushw 6(%bp) 0 000023EA 8B1E[0000] movw _impure_ptr, %bx 0 000023EE FF7706 pushw 6(%bx) 0 000023F1 E8[FEFF] call vfprintf 0 000023F4 8B1E[0000] movw _impure_ptr, %bx 0 000023F8 FF7704 pushw 4(%bx) 0 000023FB BE0A00 movw $10, %si 0 000023FE 56 pushw %si 0 000023FF 53 pushw %bx 0 00002400 E8CAFD call __sputc_r 0 00002403 B8[6B01] movw $.LC9, %ax 0 00002406 50 pushw %ax 0 00002407 E8[FEFF] call puts 0 0000240A 56 pushw %si 0 0000240B E8[FEFF] call exit 304 .size syntax, .-syntax === Switch to base unknown -> ".RODATA.STR1.1" 305 .section .rodata.str1.1 306 .LC10: 0 000016C1 46617461 .string "Fatal error: " 0 000016C5 6C206572 0 000016C9 726F723A 0 000016CD 2000 === Switch to base unknown -> ".TEXT" 308 .text 309 .global fatal 310 .type fatal, @function 311 fatal: 0 0000240E 55 pushw %bp 0 0000240F 89E5 movw %sp, %bp 0 00002411 1E pushw %ds 0 00002412 8D4606 leaw 6(%bp), %ax 0 00002415 8946FE movw %ax, -2(%bp) 0 00002418 E8[FEFF] call force_banner 0 0000241B 8B1E[0000] movw _impure_ptr, %bx 0 0000241F FF7706 pushw 6(%bx) 0 00002422 B8[8601] movw $.LC10, %ax 0 00002425 50 pushw %ax 0 00002426 E8[FEFF] call fputs 0 00002429 FF76FE pushw -2(%bp) 0 0000242C FF7604 pushw 4(%bp) 0 0000242F 8B1E[0000] movw _impure_ptr, %bx 0 00002433 FF7706 pushw 6(%bx) 0 00002436 E8[FEFF] call vfprintf 0 00002439 8B1E[0000] movw _impure_ptr, %bx 0 0000243D FF7704 pushw 4(%bx) 0 00002440 B80A00 movw $10, %ax 0 00002443 50 pushw %ax 0 00002444 53 pushw %bx 0 00002445 E885FD call __sputc_r 0 00002448 FF06[0000] incw error_count 0 0000244C E8BEFE call crash.constprop.0 336 .size fatal, .-fatal === Switch to base unknown -> ".RODATA.STR1.1" 337 .section .rodata.str1.1 338 .LC11: 0 000016CF 4572726F .string "Error: " 0 000016D3 723A2000 === Switch to base unknown -> ".TEXT" 340 .text 341 .global error 342 .type error, @function 343 error: 0 0000244F 55 pushw %bp 0 00002450 89E5 movw %sp, %bp 0 00002452 1E pushw %ds 0 00002453 8D4606 leaw 6(%bp), %ax 0 00002456 8946FE movw %ax, -2(%bp) 0 00002459 E8[FEFF] call force_banner 0 0000245C 8B1E[0000] movw _impure_ptr, %bx 0 00002460 FF7706 pushw 6(%bx) 0 00002463 B8[9401] movw $.LC11, %ax 0 00002466 50 pushw %ax 0 00002467 E8[FEFF] call fputs 0 0000246A FF76FE pushw -2(%bp) 0 0000246D FF7604 pushw 4(%bp) 0 00002470 8B1E[0000] movw _impure_ptr, %bx 0 00002474 FF7706 pushw 6(%bx) 0 00002477 E8[FEFF] call vfprintf 0 0000247A 8B1E[0000] movw _impure_ptr, %bx 0 0000247E FF7704 pushw 4(%bx) 0 00002481 B80A00 movw $10, %ax 0 00002484 50 pushw %ax 0 00002485 53 pushw %bx 0 00002486 E844FD call __sputc_r 0 00002489 C706[0000] movw $1, return_val 0 0000248D 0100 0 0000248F 83C410 addw $16, %sp 0 00002492 833E[0000] cmpw $0, disk_touched 0 00002496 00 0 00002497 7408 je .L65 0 00002499 A1[0000] movw error_count, %ax 0 0000249C 83F809 cmpw $9, %ax 0 0000249F 7E03 jle .L66 373 .L65: 0 000024A1 E869FE call crash.constprop.0 375 .L66: 0 000024A4 40 incw %ax 0 000024A5 A3[0000] movw %ax, error_count 0 000024A8 89EC movw %bp, %sp 0 000024AA 5D popw %bp 0 000024AB C3 ret 381 .size error, .-error === Switch to base unknown -> ".RODATA.STR1.1" 382 .section .rodata.str1.1 383 .LC12: 0 000016D7 5761726E .string "Warning: " 0 000016DB 696E673A 0 000016DF 2000 === Switch to base unknown -> ".TEXT" 385 .text 386 .global warning 387 .type warning, @function 388 warning: 0 000024AC 55 pushw %bp 0 000024AD 89E5 movw %sp, %bp 0 000024AF 1E pushw %ds 0 000024B0 8D4606 leaw 6(%bp), %ax 0 000024B3 8946FE movw %ax, -2(%bp) 0 000024B6 E8[FEFF] call force_banner 0 000024B9 8B1E[0000] movw _impure_ptr, %bx 0 000024BD FF7706 pushw 6(%bx) 0 000024C0 B8[9C01] movw $.LC12, %ax 0 000024C3 50 pushw %ax 0 000024C4 E8[FEFF] call fputs 0 000024C7 FF76FE pushw -2(%bp) 0 000024CA FF7604 pushw 4(%bp) 0 000024CD 8B1E[0000] movw _impure_ptr, %bx 0 000024D1 FF7706 pushw 6(%bx) 0 000024D4 E8[FEFF] call vfprintf 0 000024D7 8B1E[0000] movw _impure_ptr, %bx 0 000024DB FF7704 pushw 4(%bx) 0 000024DE B80A00 movw $10, %ax 0 000024E1 50 pushw %ax 0 000024E2 53 pushw %bx 0 000024E3 E8E7FC call __sputc_r 0 000024E6 89EC movw %bp, %sp 0 000024E8 5D popw %bp 0 000024E9 C3 ret 414 .size warning, .-warning 415 .local crashed 416 .comm crashed,2,2 417 .global disk_repair === Switch to base unknown -> ".DATA" 418 .data 419 .type disk_repair, @object 420 .size disk_repair, 1 421 disk_repair: 0 000027F4 03 .byte 3 423 .comm data_on_disk,2,2 424 .comm disk_bad,2,2 425 .comm disk_touched,2,2 426 .comm error_count,2,2 427 .ident "GCC: (GNU) 6.3.0" 428 .weak __ia16_use_printf_nofloat.v1 429 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: fat.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type save_buffer, @function 7 save_buffer: 0 000024EA 56 pushw %si 0 000024EB 55 pushw %bp 0 000024EC 89E5 movw %sp, %bp 0 000024EE 1E pushw %ds 0 000024EF BE[0800] movw $buffer, %si 0 000024F2 B80700 movw $7, %ax 0 000024F5 F76606 mulw 6(%bp) 0 000024F8 93 xchgw %ax, %bx 0 000024F9 8B00 movw (%bx,%si), %ax 0 000024FB 16 pushw %ss 0 000024FC 50 pushw %ax 0 000024FD 8D7002 leaw 2(%bx,%si), %si 0 00002500 895EFE movw %bx, -2(%bp) 0 00002503 FF7402 pushw 2(%si) 0 00002506 FF34 pushw (%si) 0 00002508 B80100 movw $1, %ax 0 0000250B 50 pushw %ax 0 0000250C E8[FEFF] call write_sector 0 0000250F 8B5EFE movw -2(%bp), %bx 0 00002512 80A7[0E00] andb $-2, buffer+6(%bx) 0 00002516 FE 0 00002517 89EC movw %bp, %sp 0 00002519 5D popw %bp 0 0000251A 5E popw %si 0 0000251B C3 ret 32 .size save_buffer, .-save_buffer 33 .type get_FAT_sector, @function 34 get_FAT_sector: 0 0000251C 56 pushw %si 0 0000251D 57 pushw %di 0 0000251E 06 pushw %es 0 0000251F 55 pushw %bp 0 00002520 89E5 movw %sp, %bp 0 00002522 83EC06 subw $6, %sp 0 00002525 8B760A movw 10(%bp), %si 0 00002528 8B560C movw 12(%bp), %dx 0 0000252B 8B1E[0000] movw fat, %bx 0 0000252F 8B4F70 movw 112(%bx), %cx 0 00002532 31C0 xorw %ax, %ax 0 00002534 01F1 addw %si, %cx 0 00002536 11D0 adcw %dx, %ax 0 00002538 89C6 movw %ax, %si 0 0000253A BB[0800] movw $buffer, %bx 0 0000253D 394F09 cmpw %cx, 9(%bx) 0 00002540 89DF movw %bx, %di 0 00002542 7505 jne .L12 0 00002544 39470B cmpw %ax, 11(%bx) 0 00002547 747E je .L14 55 .L12: 0 00002549 394D02 cmpw %cx, 2(%di) 0 0000254C 7508 jne .L13 0 0000254E 397504 cmpw %si, 4(%di) 0 00002551 7503E982 je .L15 0 00002555 00 60 .L13: 0 00002556 894EFA movw %cx, -6(%bp) 0 00002559 A1[0600] movw bufferLRU, %ax 0 0000255C 40 incw %ax 0 0000255D BB0200 movw $2, %bx 0 00002560 99 cwtd 0 00002561 F7FB idivw %bx 0 00002563 89D3 movw %dx, %bx 0 00002565 8EC2 movw %dx, %es 0 00002567 B80700 movw $7, %ax 0 0000256A F7E3 mulw %bx 0 0000256C 93 xchgw %ax, %bx 0 0000256D 8B87[0E00] movw buffer+6(%bx), %ax 0 00002571 B10F movb $15, %cl 0 00002573 D3E0 shlw %cl, %ax 0 00002575 99 cwtd 0 00002576 8956FE movw %dx, -2(%bp) 0 00002579 807EFE00 cmpb $0, -2(%bp) 0 0000257D 8CC3 movw %es, %bx 0 0000257F 8B4EFA movw -6(%bp), %cx 0 00002582 7413 je .L8 0 00002584 894EFC movw %cx, -4(%bp) 0 00002587 06 pushw %es 0 00002588 8C46FE movw %es, -2(%bp) 0 0000258B E85CFF call save_buffer 0 0000258E 83C402 addw $2, %sp 0 00002591 8B4EFC movw -4(%bp), %cx 0 00002594 8B5EFE movw -2(%bp), %bx 88 .L8: 0 00002597 B80700 movw $7, %ax 0 0000259A F7E3 mulw %bx 0 0000259C 89FB movw %di, %bx 0 0000259E 01C3 addw %ax, %bx 0 000025A0 895EFC movw %bx, -4(%bp) 0 000025A3 93 xchgw %ax, %bx 0 000025A4 8B01 movw (%bx,%di), %ax 0 000025A6 16 pushw %ss 0 000025A7 50 pushw %ax 0 000025A8 56 pushw %si 0 000025A9 51 pushw %cx 0 000025AA 894EFE movw %cx, -2(%bp) 0 000025AD B80100 movw $1, %ax 0 000025B0 50 pushw %ax 0 000025B1 E8[FEFF] call read_sector 0 000025B4 8B5EFC movw -4(%bp), %bx 0 000025B7 83C302 addw $2, %bx 0 000025BA 8B4EFE movw -2(%bp), %cx 0 000025BD 890F movw %cx, (%bx) 0 000025BF 897702 movw %si, 2(%bx) 0 000025C2 83C40A addw $10, %sp 0 000025C5 EB08 jmp .L3 111 .L14: 0 000025C7 B80100 movw $1, %ax 113 .L17: 0 000025CA 8EC0 movw %ax, %es 0 000025CC A3[0600] movw %ax, bufferLRU 116 .L3: 0 000025CF 8CC0 movw %es, %ax 0 000025D1 89EC movw %bp, %sp 0 000025D3 5D popw %bp 0 000025D4 07 popw %es 0 000025D5 5F popw %di 0 000025D6 5E popw %si 0 000025D7 C3 ret 124 .L15: 0 000025D8 31C0 xorw %ax, %ax 0 000025DA EBEE jmp .L17 127 .size get_FAT_sector, .-get_FAT_sector 128 .global save_FAT_buffer 129 .type save_FAT_buffer, @function 130 save_FAT_buffer: 0 000025DC 55 pushw %bp 0 000025DD 89E5 movw %sp, %bp 0 000025DF 1E pushw %ds 0 000025E0 A1[1500] movw buffer+13, %ax 0 000025E3 B10F movb $15, %cl 0 000025E5 D3E0 shlw %cl, %ax 0 000025E7 99 cwtd 0 000025E8 8956FE movw %dx, -2(%bp) 0 000025EB 807EFE00 cmpb $0, -2(%bp) 0 000025EF 740A je .L19 0 000025F1 B80100 movw $1, %ax 0 000025F4 50 pushw %ax 0 000025F5 E8F2FE call save_buffer 0 000025F8 83C402 addw $2, %sp 145 .L19: 0 000025FB A1[0E00] movw buffer+6, %ax 0 000025FE B10F movb $15, %cl 0 00002600 D3E0 shlw %cl, %ax 0 00002602 99 cwtd 0 00002603 8956FE movw %dx, -2(%bp) 0 00002606 807EFE00 cmpb $0, -2(%bp) 0 0000260A 7409 je .L18 0 0000260C 31C0 xorw %ax, %ax 0 0000260E 50 pushw %ax 0 0000260F E8D8FE call save_buffer 0 00002612 83C402 addw $2, %sp 157 .L18: 0 00002615 89EC movw %bp, %sp 0 00002617 5D popw %bp 0 00002618 C3 ret 161 .size save_FAT_buffer, .-save_FAT_buffer 162 .global next_cluster 163 .type next_cluster, @function 164 next_cluster: 0 00002619 56 pushw %si 0 0000261A 57 pushw %di 0 0000261B 06 pushw %es 0 0000261C 55 pushw %bp 0 0000261D 89E5 movw %sp, %bp 0 0000261F 1E pushw %ds 0 00002620 1E pushw %ds 0 00002621 8B460A movw 10(%bp), %ax 0 00002624 8946FC movw %ax, -4(%bp) 0 00002627 BE[0000] movw $read_location, %si 0 0000262A 363904 cmpw %ax, %ss:(%si) 0 0000262D 7429 je .L29 0 0000262F 8904 movw %ax, (%si) 0 00002631 8B1E[0000] movw fat, %bx 0 00002635 3683BF8C cmpw $12, %ss:140(%bx) 0 00002639 000C 0 0000263B 7403E9CD jne .L30 0 0000263F 00 0 00002640 36FF770C pushw %ss:12(%bx) 0 00002644 D1E0 shlw $1, %ax 0 00002646 0346FC addw -4(%bp), %ax 0 00002649 D1E8 shrw $1, %ax 0 0000264B 50 pushw %ax 0 0000264C E8[FEFF] call div 0 0000264F 894402 movw %ax, 2(%si) 0 00002652 895404 movw %dx, 4(%si) 0 00002655 83C404 addw $4, %sp 190 .L29: 0 00002658 8B4402 movw 2(%si), %ax 0 0000265B 99 cwtd 0 0000265C 52 pushw %dx 0 0000265D 50 pushw %ax 0 0000265E E8BBFE call get_FAT_sector 0 00002661 8B4C04 movw 4(%si), %cx 0 00002664 BA[0800] movw $buffer, %dx 0 00002667 8EC2 movw %dx, %es 0 00002669 BA0700 movw $7, %dx 0 0000266C F7E2 mulw %dx 0 0000266E 8CC7 movw %es, %di 0 00002670 93 xchgw %ax, %bx 0 00002671 8E19 movw (%bx,%di), %ds 0 00002673 8CDF movw %ds, %di 0 00002675 89CB movw %cx, %bx 0 00002677 368B01 movw %ss:(%bx,%di), %ax 0 0000267A 8946FE movw %ax, -2(%bp) 0 0000267D 36A1[0000] movw %ss:fat, %ax 0 00002681 83C404 addw $4, %sp 0 00002684 89C3 movw %ax, %bx 0 00002686 3683BF8C cmpw $12, %ss:140(%bx) 0 0000268A 000C 0 0000268C 7403E9A9 jne .L31 0 00002690 00 0 00002691 368B470C movw %ss:12(%bx), %ax 0 00002695 48 decw %ax 0 00002696 39C1 cmpw %ax, %cx 0 00002698 752A jne .L32 0 0000269A 368B4402 movw %ss:2(%si), %ax 0 0000269E 40 incw %ax 0 0000269F 99 cwtd 0 000026A0 52 pushw %dx 0 000026A1 50 pushw %ax 0 000026A2 16 pushw %ss 0 000026A3 1F popw %ds 0 000026A4 E875FE call get_FAT_sector 0 000026A7 C646FF00 movb $0, -1(%bp) 0 000026AB BA0700 movw $7, %dx 0 000026AE F7E2 mulw %dx 0 000026B0 8CC7 movw %es, %di 0 000026B2 93 xchgw %ax, %bx 0 000026B3 8B19 movw (%bx,%di), %bx 0 000026B5 8B07 movw (%bx), %ax 0 000026B7 B108 movb $8, %cl 0 000026B9 D3E0 shlw %cl, %ax 0 000026BB 0B46FE orw -2(%bp), %ax 0 000026BE 8946FE movw %ax, -2(%bp) 0 000026C1 83C404 addw $4, %sp 237 .L32: 0 000026C4 F646FC01 testb $1, -4(%bp) 0 000026C8 7466 je .L33 0 000026CA B104 movb $4, %cl 0 000026CC D36EFE shrw %cl, -2(%bp) 0 000026CF 36834404 addw $2, %ss:4(%si) 0 000026D3 02 243 .L34: 0 000026D4 368B4404 movw %ss:4(%si), %ax 0 000026D8 368B1E[00] movw %ss:fat, %bx 0 000026DC [00] 0 000026DD 368B570C movw %ss:12(%bx), %dx 0 000026E1 39D0 cmpw %dx, %ax 0 000026E3 720A jc .L35 0 000026E5 29D0 subw %dx, %ax 0 000026E7 36894404 movw %ax, %ss:4(%si) 0 000026EB 36FF4402 incw %ss:2(%si) 252 .L35: 0 000026EF 8B46FE movw -2(%bp), %ax 0 000026F2 25F00F andw $4080, %ax 0 000026F5 3DF00F cmpw $4080, %ax 0 000026F8 7504 jne .L36 0 000026FA 804EFFF0 orb $-16, -1(%bp) 258 .L36: 0 000026FE 36FF04 incw %ss:(%si) 0 00002701 8B46FE movw -2(%bp), %ax 0 00002704 89EC movw %bp, %sp 0 00002706 5D popw %bp 0 00002707 07 popw %es 0 00002708 5F popw %di 0 00002709 5E popw %si 0 0000270A 16 pushw %ss 0 0000270B 1F popw %ds 0 0000270C C3 ret 269 .L30: 0 0000270D 8A4F5C movb 92(%bx), %cl 0 00002710 FEC9 decb %cl 0 00002712 8B46FC movw -4(%bp), %ax 0 00002715 D3E8 shrw %cl, %ax 0 00002717 894402 movw %ax, 2(%si) 0 0000271A 8B4F0C movw 12(%bx), %cx 0 0000271D D1E9 shrw $1, %cx 0 0000271F 8B46FC movw -4(%bp), %ax 0 00002722 31D2 xorw %dx, %dx 0 00002724 F7F1 divw %cx 0 00002726 89D3 movw %dx, %bx 0 00002728 D1E3 shlw $1, %bx 0 0000272A 895C04 movw %bx, 4(%si) 0 0000272D E928FF jmp .L29 284 .L33: 0 00002730 8066FF0F andb $15, -1(%bp) 0 00002734 36FF4404 incw %ss:4(%si) 0 00002738 EB9A jmp .L34 288 .L31: 0 0000273A 83C102 addw $2, %cx 0 0000273D 36894C04 movw %cx, %ss:4(%si) 0 00002741 97 xchgw %ax, %di 0 00002742 363B4D0C cmpw %ss:12(%di), %cx 0 00002746 72B6 jc .L36 0 00002748 36C706[04] movw $0, %ss:read_location+4 0 0000274C [00]0000 0 0000274F 36FF4402 incw %ss:2(%si) 0 00002753 EBA9 jmp .L36 297 .size next_cluster, .-next_cluster 298 .global set_next_cluster 299 .type set_next_cluster, @function 300 set_next_cluster: 0 00002755 56 pushw %si 0 00002756 57 pushw %di 0 00002757 06 pushw %es 0 00002758 55 pushw %bp 0 00002759 89E5 movw %sp, %bp 0 0000275B 83EC06 subw $6, %sp 0 0000275E 8B1E[0000] movw fat, %bx 0 00002762 83BF8C00 cmpw $12, 140(%bx) 0 00002766 0C 0 00002767 7403E9B5 jne .L39 0 0000276B 00 0 0000276C FF770C pushw 12(%bx) 0 0000276F 8B460A movw 10(%bp), %ax 0 00002772 D1E0 shlw $1, %ax 0 00002774 03460A addw 10(%bp), %ax 0 00002777 D1E8 shrw $1, %ax 0 00002779 50 pushw %ax 0 0000277A E8[FEFF] call div 0 0000277D 8946FE movw %ax, -2(%bp) 0 00002780 8956FC movw %dx, -4(%bp) 0 00002783 83C404 addw $4, %sp 320 .L40: 0 00002786 8B46FE movw -2(%bp), %ax 0 00002789 99 cwtd 0 0000278A 52 pushw %dx 0 0000278B 50 pushw %ax 0 0000278C E88DFD call get_FAT_sector 0 0000278F BF[0E00] movw $buffer+6, %di 0 00002792 BA0700 movw $7, %dx 0 00002795 F7E2 mulw %dx 0 00002797 93 xchgw %ax, %bx 0 00002798 800901 orb $1, (%bx,%di) 0 0000279B BE[0800] movw $buffer, %si 0 0000279E 8B00 movw (%bx,%si), %ax 0 000027A0 8946FA movw %ax, -6(%bp) 0 000027A3 83C404 addw $4, %sp 0 000027A6 837E0C00 cmpw $0, 12(%bp) 0 000027AA 8EC7 movw %di, %es 0 000027AC 750E jne .L41 0 000027AE BB[0000] movw $fatstat, %bx 0 000027B1 8B460A movw 10(%bp), %ax 0 000027B4 3B4706 cmpw 6(%bx), %ax 0 000027B7 7303 jnc .L41 0 000027B9 894706 movw %ax, 6(%bx) 343 .L41: 0 000027BC 8B5EFA movw -6(%bp), %bx 0 000027BF 035EFC addw -4(%bp), %bx 0 000027C2 A1[0000] movw fat, %ax 0 000027C5 97 xchgw %ax, %di 0 000027C6 83BD8C00 cmpw $12, 140(%di) 0 000027CA 0C 0 000027CB 7403E9C1 jne .L42 0 000027CF 00 0 000027D0 F6460A01 testb $1, 10(%bp) 0 000027D4 8B450C movw 12(%di), %ax 0 000027D7 8B560C movw 12(%bp), %dx 0 000027DA 7476 je .L43 0 000027DC B104 movb $4, %cl 0 000027DE D3E2 shlw %cl, %dx 0 000027E0 8956FA movw %dx, -6(%bp) 0 000027E3 48 decw %ax 0 000027E4 3946FC cmpw %ax, -4(%bp) 0 000027E7 755D jne .L44 0 000027E9 8A07 movb (%bx), %al 0 000027EB 240F andb $15, %al 0 000027ED 8A66FA movb -6(%bp), %ah 0 000027F0 80E4F0 andb $-16, %ah 0 000027F3 08E0 orb %ah, %al 0 000027F5 8807 movb %al, (%bx) 0 000027F7 8B46FE movw -2(%bp), %ax 0 000027FA 40 incw %ax 0 000027FB 99 cwtd 0 000027FC 52 pushw %dx 0 000027FD 50 pushw %ax 0 000027FE E81BFD call get_FAT_sector 0 00002801 BA0700 movw $7, %dx 0 00002804 F7E2 mulw %dx 0 00002806 93 xchgw %ax, %bx 0 00002807 8CC7 movw %es, %di 0 00002809 800901 orb $1, (%bx,%di) 0 0000280C 8B18 movw (%bx,%si), %bx 0 0000280E 8B46FA movw -6(%bp), %ax 0 00002811 B108 movb $8, %cl 0 00002813 D3E8 shrw %cl, %ax 381 .L48: 0 00002815 8807 movb %al, (%bx) 0 00002817 83C404 addw $4, %sp 384 .L38: 0 0000281A 89EC movw %bp, %sp 0 0000281C 5D popw %bp 0 0000281D 07 popw %es 0 0000281E 5F popw %di 0 0000281F 5E popw %si 0 00002820 C3 ret 391 .L39: 0 00002821 8A4F5C movb 92(%bx), %cl 0 00002824 FEC9 decb %cl 0 00002826 8B460A movw 10(%bp), %ax 0 00002829 D3E8 shrw %cl, %ax 0 0000282B 8946FE movw %ax, -2(%bp) 0 0000282E 8B570C movw 12(%bx), %dx 0 00002831 D1EA shrw $1, %dx 0 00002833 89D1 movw %dx, %cx 0 00002835 8B460A movw 10(%bp), %ax 0 00002838 31D2 xorw %dx, %dx 0 0000283A F7F1 divw %cx 0 0000283C 89D1 movw %dx, %cx 0 0000283E D1E1 shlw $1, %cx 0 00002840 894EFC movw %cx, -4(%bp) 0 00002843 E940FF jmp .L40 407 .L44: 0 00002846 8A07 movb (%bx), %al 0 00002848 83E00F andw $15, %ax 410 .L49: 0 0000284B 0B46FA orw -6(%bp), %ax 0 0000284E 8907 movw %ax, (%bx) 0 00002850 EBC8 jmp .L38 414 .L43: 0 00002852 80E60F andb $15, %dh 0 00002855 8956FA movw %dx, -6(%bp) 0 00002858 48 decw %ax 0 00002859 3946FC cmpw %ax, -4(%bp) 0 0000285C 752C jne .L46 0 0000285E 8A46FA movb -6(%bp), %al 0 00002861 8807 movb %al, (%bx) 0 00002863 8B46FE movw -2(%bp), %ax 0 00002866 40 incw %ax 0 00002867 99 cwtd 0 00002868 52 pushw %dx 0 00002869 50 pushw %ax 0 0000286A E8AFFC call get_FAT_sector 0 0000286D BA0700 movw $7, %dx 0 00002870 F7E2 mulw %dx 0 00002872 93 xchgw %ax, %bx 0 00002873 8CC7 movw %es, %di 0 00002875 800901 orb $1, (%bx,%di) 0 00002878 8B18 movw (%bx,%si), %bx 0 0000287A 8A17 movb (%bx), %dl 0 0000287C 80E2F0 andb $-16, %dl 0 0000287F 8B46FA movw -6(%bp), %ax 0 00002882 B108 movb $8, %cl 0 00002884 D3E8 shrw %cl, %ax 0 00002886 08D0 orb %dl, %al 0 00002888 EB8B jmp .L48 441 .L46: 0 0000288A 8B07 movw (%bx), %ax 0 0000288C 2500F0 andw $-4096, %ax 0 0000288F EBBA jmp .L49 445 .L42: 0 00002891 8B7EFA movw -6(%bp), %di 0 00002894 8B5EFC movw -4(%bp), %bx 0 00002897 8B460C movw 12(%bp), %ax 0 0000289A 8901 movw %ax, (%bx,%di) 0 0000289C E97BFF jmp .L38 451 .size set_next_cluster, .-set_next_cluster 452 .global FAT_open 453 .type FAT_open, @function 454 FAT_open: 0 0000289F 56 pushw %si 0 000028A0 57 pushw %di 0 000028A1 06 pushw %es 0 000028A2 55 pushw %bp 0 000028A3 89E5 movw %sp, %bp 0 000028A5 8B760A movw 10(%bp), %si 0 000028A8 8936[0000] movw %si, fat 0 000028AC BF[0800] movw $buffer, %di 0 000028AF B80E00 movw $14, %ax 0 000028B2 50 pushw %ax 0 000028B3 31C0 xorw %ax, %ax 0 000028B5 8EC0 movw %ax, %es 0 000028B7 50 pushw %ax 0 000028B8 57 pushw %di 0 000028B9 E8[FEFF] call memset 0 000028BC 8B440C movw 12(%si), %ax 0 000028BF D1E0 shlw $1, %ax 0 000028C1 50 pushw %ax 0 000028C2 E8[FEFF] call xalloc 0 000028C5 8905 movw %ax, (%di) 0 000028C7 03440C addw 12(%si), %ax 0 000028CA 894507 movw %ax, 7(%di) 0 000028CD BE[0000] movw $fatstat, %si 0 000028D0 B80C00 movw $12, %ax 0 000028D3 50 pushw %ax 0 000028D4 06 pushw %es 0 000028D5 56 pushw %si 0 000028D6 E8[FEFF] call memset 0 000028D9 C7440602 movw $2, 6(%si) 0 000028DD 00 0 000028DE B80100 movw $1, %ax 0 000028E1 89EC movw %bp, %sp 0 000028E3 5D popw %bp 0 000028E4 07 popw %es 0 000028E5 5F popw %di 0 000028E6 5E popw %si 0 000028E7 C3 ret 491 .size FAT_open, .-FAT_open 492 .global FAT_close 493 .type FAT_close, @function 494 FAT_close: 0 000028E8 833E[0800] cmpw $1, buffer 0 000028EC 01 0 000028ED 7213 jc .L52 0 000028EF E8[FEFF] call save_FAT_buffer 0 000028F2 FF36[0800] pushw buffer 0 000028F6 E8[FEFF] call free 0 000028F9 C706[0800] movw $0, buffer 0 000028FD 0000 0 000028FF 83C402 addw $2, %sp 502 .L52: 0 00002902 C3 ret 504 .size FAT_close, .-FAT_close 505 .global FindFirstFreeCluster 506 .type FindFirstFreeCluster, @function 507 FindFirstFreeCluster: 0 00002903 56 pushw %si 0 00002904 57 pushw %di 0 00002905 BE[0000] movw $fatstat, %si 0 00002908 8B7C06 movw 6(%si), %di 512 .L55: 0 0000290B 8B1E[0000] movw fat, %bx 0 0000290F 8B878A00 movw 138(%bx), %ax 0 00002913 83C002 addw $2, %ax 0 00002916 39C7 cmpw %ax, %di 0 00002918 7204 jc .L58 0 0000291A 31FF xorw %di, %di 0 0000291C EB11 jmp .L54 520 .L58: 0 0000291E 57 pushw %di 0 0000291F E8[FEFF] call next_cluster 0 00002922 83C402 addw $2, %sp 0 00002925 85C0 testw %ax, %ax 0 00002927 750A jne .L56 0 00002929 8D4501 leaw 1(%di), %ax 0 0000292C 894406 movw %ax, 6(%si) 528 .L54: 0 0000292F 97 xchgw %ax, %di 0 00002930 5F popw %di 0 00002931 5E popw %si 0 00002932 C3 ret 533 .L56: 0 00002933 47 incw %di 0 00002934 EBD5 jmp .L55 536 .size FindFirstFreeCluster, .-FindFirstFreeCluster 537 .global FAT_stats 538 .type FAT_stats, @function 539 FAT_stats: 0 00002936 56 pushw %si 0 00002937 57 pushw %di 0 00002938 BE[0000] movw $fatstat, %si 0 0000293B 837C0A00 cmpw $0, 10(%si) 0 0000293F 7524 jne .L60 0 00002941 B80C00 movw $12, %ax 0 00002944 50 pushw %ax 0 00002945 31C0 xorw %ax, %ax 0 00002947 50 pushw %ax 0 00002948 56 pushw %si 0 00002949 E8[FEFF] call memset 0 0000294C 83C406 addw $6, %sp 0 0000294F BF0200 movw $2, %di 553 .L62: 0 00002952 8B1E[0000] movw fat, %bx 0 00002956 8B878A00 movw 138(%bx), %ax 0 0000295A 40 incw %ax 0 0000295B 39C7 cmpw %ax, %di 0 0000295D 7609 jbe .L66 0 0000295F C706[0A00] movw $1, fatstat+10 0 00002963 0100 560 .L60: 0 00002965 5F popw %di 0 00002966 5E popw %si 0 00002967 C3 ret 564 .L66: 0 00002968 57 pushw %di 0 00002969 E8[FEFF] call next_cluster 0 0000296C 83C402 addw $2, %sp 0 0000296F 85C0 testw %ax, %ax 0 00002971 750E jne .L63 0 00002973 FF04 incw (%si) 0 00002975 837C0600 cmpw $0, 6(%si) 0 00002979 7503 jne .L64 0 0000297B 897C06 movw %di, 6(%si) 574 .L64: 0 0000297E 47 incw %di 0 0000297F EBD1 jmp .L62 577 .L63: 0 00002981 83F8F7 cmpw $-9, %ax 0 00002984 7712 ja .L65 0 00002986 8B1E[0000] movw fat, %bx 0 0000298A 8B978A00 movw 138(%bx), %dx 0 0000298E 42 incw %dx 0 0000298F 39D0 cmpw %dx, %ax 0 00002991 7605 jbe .L65 0 00002993 FF4404 incw 4(%si) 0 00002996 EBE6 jmp .L64 587 .L65: 0 00002998 FF4402 incw 2(%si) 0 0000299B 897C08 movw %di, 8(%si) 0 0000299E EBDE jmp .L64 591 .size FAT_stats, .-FAT_stats 592 .local read_location 593 .comm read_location,6,1 594 .local bufferLRU 595 .comm bufferLRU,2,2 596 .local buffer 597 .comm buffer,14,1 598 .comm fatstat,12,1 599 .comm fat,2,2 600 .ident "GCC: (GNU) 6.3.0" === Trace listing source: format.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 000016E1 204E4F4E .string " NONE" 0 000016E5 4500 8 .LC1: 0 000016E7 20415050 .string " APPENDED" 0 000016EB 454E4445 0 000016EF 4400 10 .LC2: 0 000016F1 204D554C .string " MULTIPLE" 0 000016F5 5449504C 0 000016F9 4500 12 .LC3: 0 000016FB 20333242 .string " 32BITSEC" 0 000016FF 49545345 0 00001703 4300 14 .LC4: 0 00001705 204E4F41 .string " NOALLOC" 0 00001709 4C4C4F43 0 0000170D 00 16 .LC5: 0 0000170E 2047494F .string " GIOCTL" 0 00001712 43544C00 18 .LC6: 0 00001716 20756E6B .string " unknown" 0 0000171A 6E6F776E 0 0000171E 00 === Switch to base unknown -> ".TEXT" 20 .text 21 .global stringisize_flags 22 .type stringisize_flags, @function 23 stringisize_flags: 0 000029A0 56 pushw %si 0 000029A1 55 pushw %bp 0 000029A2 89E5 movw %sp, %bp 0 000029A4 C606[0000] movb $0, _string.3809 0 000029A8 00 0 000029A9 837E0600 cmpw $0, 6(%bp) 0 000029AD 746E je .L8 0 000029AF BE[0000] movw $_string.3809, %si 0 000029B2 F6460601 testb $1, 6(%bp) 0 000029B6 740B je .L3 0 000029B8 B8[0600] movw $.LC1, %ax 0 000029BB 50 pushw %ax 0 000029BC 56 pushw %si 0 000029BD E8[FEFF] call strcat 0 000029C0 83C404 addw $4, %sp 38 .L3: 0 000029C3 F6460602 testb $2, 6(%bp) 0 000029C7 740B je .L4 0 000029C9 B8[1000] movw $.LC2, %ax 0 000029CC 50 pushw %ax 0 000029CD 56 pushw %si 0 000029CE E8[FEFF] call strcat 0 000029D1 83C404 addw $4, %sp 46 .L4: 0 000029D4 F6460604 testb $4, 6(%bp) 0 000029D8 740B je .L5 0 000029DA B8[1A00] movw $.LC3, %ax 0 000029DD 50 pushw %ax 0 000029DE 56 pushw %si 0 000029DF E8[FEFF] call strcat 0 000029E2 83C404 addw $4, %sp 54 .L5: 0 000029E5 F6460608 testb $8, 6(%bp) 0 000029E9 740B je .L6 0 000029EB B8[2400] movw $.LC4, %ax 0 000029EE 50 pushw %ax 0 000029EF 56 pushw %si 0 000029F0 E8[FEFF] call strcat 0 000029F3 83C404 addw $4, %sp 62 .L6: 0 000029F6 F6460610 testb $16, 6(%bp) 0 000029FA 740B je .L7 0 000029FC B8[2D00] movw $.LC5, %ax 0 000029FF 50 pushw %ax 0 00002A00 56 pushw %si 0 00002A01 E8[FEFF] call strcat 0 00002A04 83C404 addw $4, %sp 70 .L7: 0 00002A07 F64606C0 testb $-64, 6(%bp) 0 00002A0B 740B je .L9 0 00002A0D B8[3500] movw $.LC6, %ax 0 00002A10 50 pushw %ax 0 00002A11 56 pushw %si 0 00002A12 E8[FEFF] call strcat 0 00002A15 83C404 addw $4, %sp 78 .L9: 0 00002A18 B8[0000] movw $_string.3809, %ax 0 00002A1B EB03 jmp .L1 81 .L8: 0 00002A1D B8[0000] movw $.LC0, %ax 83 .L1: 0 00002A20 89EC movw %bp, %sp 0 00002A22 5D popw %bp 0 00002A23 5E popw %si 0 00002A24 C3 ret 88 .size stringisize_flags, .-stringisize_flags === Switch to base unknown -> ".RODATA.STR1.1" 89 .section .rodata.str1.1 90 .LC7: 0 0000171F 4F4E00 .string "ON" 92 .LC8: 0 00001722 4F464600 .string "OFF" 94 .LC9: 0 00001726 44726976 .string "Drive %c:\n Disk size: %luK\n Cluster size: %u bytes\n Sector size: %d bytes\n Direct 0 0000172A 65202563 0 0000172E 3A0A2020 0 00001732 4469736B 0 00001736 2073697A 96 .LC10: 0 000017DB 20205365 .string " Sectors: %lu\n Reserved sectors: %d\n FAT sectors: %d\n Directory sectors: %d\n Sec 0 000017DF 63746F72 0 000017E3 733A2025 0 000017E7 6C750A20 0 000017EB 20526573 === Switch to base unknown -> ".TEXT" 98 .text 99 .global print_format 100 .type print_format, @function 101 print_format: 0 00002A25 56 pushw %si 0 00002A26 06 pushw %es 0 00002A27 55 pushw %bp 0 00002A28 89E5 movw %sp, %bp 0 00002A2A 8B7608 movw 8(%bp), %si 0 00002A2D 837C0201 cmpw $1, 2(%si) 0 00002A31 747E je .L30 0 00002A33 BA[4100] movw $.LC8, %dx 110 .L27: 0 00002A36 833C01 cmpw $1, (%si) 0 00002A39 747B je .L31 0 00002A3B B8[4100] movw $.LC8, %ax 114 .L28: 0 00002A3E 8B4C0E movw 14(%si), %cx 0 00002A41 52 pushw %dx 0 00002A42 50 pushw %ax 0 00002A43 89C8 movw %cx, %ax 0 00002A45 F7A48A00 mulw 138(%si) 0 00002A49 52 pushw %dx 0 00002A4A 50 pushw %ax 0 00002A4B FF7410 pushw 16(%si) 0 00002A4E FF7412 pushw 18(%si) 0 00002A51 FF740C pushw 12(%si) 0 00002A54 51 pushw %cx 0 00002A55 FF7406 pushw 6(%si) 0 00002A58 FF7404 pushw 4(%si) 0 00002A5B A0[0000] movb drive, %al 0 00002A5E 98 cbtw 0 00002A5F 50 pushw %ax 0 00002A60 B8[4500] movw $.LC9, %ax 0 00002A63 50 pushw %ax 0 00002A64 E8[FEFF] call printf 0 00002A67 83C418 addw $24, %sp 0 00002A6A 833E[0000] cmpw $3, verbose 0 00002A6E 03 0 00002A6F 7E3A jle .L26 0 00002A71 FF7418 pushw 24(%si) 0 00002A74 FF7416 pushw 22(%si) 0 00002A77 8A441A movb 26(%si), %al 0 00002A7A 30E4 xorb %ah, %ah 0 00002A7C 50 pushw %ax 0 00002A7D FF7414 pushw 20(%si) 0 00002A80 FF7462 pushw 98(%si) 0 00002A83 FF7460 pushw 96(%si) 0 00002A86 FFB48C00 pushw 140(%si) 0 00002A8A FFB48A00 pushw 138(%si) 0 00002A8E FFB48800 pushw 136(%si) 0 00002A92 FF747A pushw 122(%si) 0 00002A95 FF7478 pushw 120(%si) 0 00002A98 FF7470 pushw 112(%si) 0 00002A9B FF7476 pushw 118(%si) 0 00002A9E FF7474 pushw 116(%si) 0 00002AA1 B8[FA00] movw $.LC10, %ax 0 00002AA4 50 pushw %ax 0 00002AA5 E8[FEFF] call printf 0 00002AA8 83C41E addw $30, %sp 157 .L26: 0 00002AAB 89EC movw %bp, %sp 0 00002AAD 5D popw %bp 0 00002AAE 07 popw %es 0 00002AAF 5E popw %si 0 00002AB0 C3 ret 163 .L30: 0 00002AB1 BA[3E00] movw $.LC7, %dx 0 00002AB4 EB80 jmp .L27 166 .L31: 0 00002AB6 B8[3E00] movw $.LC7, %ax 0 00002AB9 EB83 jmp .L28 169 .size print_format, .-print_format === Switch to base unknown -> ".RODATA.STR1.1" 170 .section .rodata.str1.1 171 .LC11: 0 000018BD 4E657720 .string "New disk configuration:\n" 0 000018C1 6469736B 0 000018C5 20636F6E 0 000018C9 66696775 0 000018CD 72617469 173 .LC12: 0 000018D6 00 .string "" === Switch to base unknown -> ".TEXT" 175 .text 176 .global print_newf 177 .type print_newf, @function 178 print_newf: 0 00002ABB 833E[0000] cmpw $1, verbose 0 00002ABF 01 0 00002AC0 7E18 jle .L33 0 00002AC2 B8[DC01] movw $.LC11, %ax 0 00002AC5 50 pushw %ax 0 00002AC6 E8[FEFF] call puts 0 00002AC9 B8[0000] movw $newf, %ax 0 00002ACC 50 pushw %ax 0 00002ACD E8[FEFF] call print_format 0 00002AD0 B8[F501] movw $.LC12, %ax 0 00002AD3 50 pushw %ax 0 00002AD4 E8[FEFF] call puts 0 00002AD7 83C406 addw $6, %sp 191 .L33: 0 00002ADA C3 ret 193 .size print_newf, .-print_newf === Switch to base unknown -> ".RODATA.STR1.1" 194 .section .rodata.str1.1 195 .LC13: 0 000018D7 52414D44 .string "RAMDisk disabled" 0 000018DB 69736B20 0 000018DF 64697361 0 000018E3 626C6564 0 000018E7 00 === Switch to base unknown -> ".TEXT" 197 .text 198 .global disable_disk 199 .type disable_disk, @function 200 disable_disk: 0 00002ADB C706[0000] movw $0, data_on_disk 0 00002ADF 0000 0 00002AE1 C606[0000] movb $0, disk_repair 0 00002AE5 00 0 00002AE6 A1[0400] movw newf+4, %ax 0 00002AE9 0B06[0600] orw newf+6, %ax 0 00002AED 7415 je .L36 0 00002AEF C706[0400] movw $0, newf+4 0 00002AF3 0000 0 00002AF5 C706[0600] movw $0, newf+6 0 00002AF9 0000 0 00002AFB C706[0000] movw $2, defined_format 0 00002AFF 0200 0 00002B01 E8[FEFF] call make_newf 210 .L36: 0 00002B04 E8[FEFF] call DiskAllocate 0 00002B07 E8[FEFF] call configure_drive 0 00002B0A C706[0000] movw $0, disk_bad 0 00002B0E 0000 0 00002B10 833E[0000] cmpw $1, verbose 0 00002B14 01 0 00002B15 7E0A jle .L35 0 00002B17 B8[F601] movw $.LC13, %ax 0 00002B1A 50 pushw %ax 0 00002B1B E8[FEFF] call puts 0 00002B1E 83C402 addw $2, %sp 220 .L35: 0 00002B21 C3 ret 222 .size disable_disk, .-disable_disk 223 .global ReConfig 224 .type ReConfig, @function 225 ReConfig: 0 00002B22 56 pushw %si 0 00002B23 BB[0000] movw $newf, %bx 0 00002B26 8B470E movw 14(%bx), %ax 0 00002B29 31D2 xorw %dx, %dx 0 00002B2B F7770C divw 12(%bx) 0 00002B2E 89878800 movw %ax, 136(%bx) 0 00002B32 BE[0000] movw $f, %si 0 00002B35 8B4470 movw 112(%si), %ax 0 00002B38 894770 movw %ax, 112(%bx) 0 00002B3B 8B4472 movw 114(%si), %ax 0 00002B3E 894772 movw %ax, 114(%bx) 0 00002B41 8B848400 movw 132(%si), %ax 0 00002B45 89878400 movw %ax, 132(%bx) 0 00002B49 8B848600 movw 134(%si), %ax 0 00002B4D 89878600 movw %ax, 134(%bx) 0 00002B51 5E popw %si 0 00002B52 E9[FEFF] jmp ConfigNonFormat 243 .size ReConfig, .-ReConfig === Switch to base unknown -> ".RODATA.STR1.1" 244 .section .rodata.str1.1 245 .LC14: 0 000018E8 57726974 .string "Write protect enabled" 0 000018EC 65207072 0 000018F0 6F746563 0 000018F4 7420656E 0 000018F8 61626C65 247 .LC15: 0 000018FE 57726974 .string "Write protect disabled" 0 00001902 65207072 0 00001906 6F746563 0 0000190A 74206469 0 0000190E 7361626C === Switch to base unknown -> ".TEXT" 249 .text 250 .global set_write_protect 251 .type set_write_protect, @function 252 set_write_protect: 0 00002B55 36833E[00] cmpw $1, %ss:newf 0 00002B59 [00]01 0 00002B5B 36C51E[00] ldsw %ss:conf, %bx 0 00002B5F [00] 0 00002B60 751B jne .L45 0 00002B62 806738FD andb $-3, 56(%bx) 0 00002B66 36833E[00] cmpw $1, %ss:verbose 0 00002B6A [00]01 0 00002B6C 7E0C jle .L44 0 00002B6E B8[0702] movw $.LC14, %ax 260 .L49: 0 00002B71 50 pushw %ax 0 00002B72 16 pushw %ss 0 00002B73 1F popw %ds 0 00002B74 E8[FEFF] call puts 0 00002B77 83C402 addw $2, %sp 266 .L44: 0 00002B7A 16 pushw %ss 0 00002B7B 1F popw %ds 0 00002B7C C3 ret 270 .L45: 0 00002B7D 804F3802 orb $2, 56(%bx) 0 00002B81 36833E[00] cmpw $1, %ss:verbose 0 00002B85 [00]01 0 00002B87 7EF1 jle .L44 0 00002B89 B8[1D02] movw $.LC15, %ax 0 00002B8C EBE3 jmp .L49 276 .size set_write_protect, .-set_write_protect 277 .global count_root 278 .type count_root, @function 279 count_root: 0 00002B8E 56 pushw %si 0 00002B8F 57 pushw %di 0 00002B90 06 pushw %es 0 00002B91 55 pushw %bp 0 00002B92 89E5 movw %sp, %bp 0 00002B94 83EC0A subw $10, %sp 0 00002B97 A1[0000] movw data_on_disk, %ax 0 00002B9A 8946F8 movw %ax, -8(%bp) 0 00002B9D 85C0 testw %ax, %ax 0 00002B9F 7437 je .L51 0 00002BA1 BB[0000] movw $f, %bx 0 00002BA4 8B477C movw 124(%bx), %ax 0 00002BA7 8946FA movw %ax, -6(%bp) 0 00002BAA 31F6 xorw %si, %si 0 00002BAC 8B4712 movw 18(%bx), %ax 0 00002BAF 895EFC movw %bx, -4(%bp) 0 00002BB2 8946F6 movw %ax, -10(%bp) 0 00002BB5 FF36[0C00] pushw f+12 0 00002BB9 E8[FEFF] call xalloc 0 00002BBC 97 xchgw %ax, %di 0 00002BBD 83C402 addw $2, %sp 0 00002BC0 8976F8 movw %si, -8(%bp) 0 00002BC3 89F0 movw %si, %ax 303 .L52: 0 00002BC5 837EF600 cmpw $0, -10(%bp) 0 00002BC9 751B jne .L58 306 .L54: 0 00002BCB 8946F6 movw %ax, -10(%bp) 0 00002BCE 57 pushw %di 0 00002BCF E8[FEFF] call free 0 00002BD2 83C402 addw $2, %sp 0 00002BD5 8B46F6 movw -10(%bp), %ax 312 .L51: 0 00002BD8 8B56F8 movw -8(%bp), %dx 0 00002BDB 8916[0000] movw %dx, data_on_disk 0 00002BDF 89EC movw %bp, %sp 0 00002BE1 5D popw %bp 0 00002BE2 07 popw %es 0 00002BE3 5F popw %di 0 00002BE4 5E popw %si 0 00002BE5 C3 ret 321 .L58: 0 00002BE6 8946FE movw %ax, -2(%bp) 0 00002BE9 16 pushw %ss 0 00002BEA 57 pushw %di 0 00002BEB 56 pushw %si 0 00002BEC FF76FA pushw -6(%bp) 0 00002BEF B80100 movw $1, %ax 0 00002BF2 8EC0 movw %ax, %es 0 00002BF4 50 pushw %ax 0 00002BF5 E8[FEFF] call read_sector 0 00002BF8 8B5EFC movw -4(%bp), %bx 0 00002BFB 8B4F0C movw 12(%bx), %cx 0 00002BFE 83C40A addw $10, %sp 0 00002C01 31DB xorw %bx, %bx 0 00002C03 8B46FE movw -2(%bp), %ax 336 .L53: 0 00002C06 39D9 cmpw %bx, %cx 0 00002C08 7606 jbe .L56 0 00002C0A 837EF600 cmpw $0, -10(%bp) 0 00002C0E 7509 jne .L57 341 .L56: 0 00002C10 8346FA01 addw $1, -6(%bp) 0 00002C14 83D600 adcw $0, %si 0 00002C17 EBAC jmp .L52 345 .L57: 0 00002C19 8A11 movb (%bx,%di), %dl 0 00002C1B 84D2 testb %dl, %dl 0 00002C1D 74AC je .L54 0 00002C1F 80FAE5 cmpb $-27, %dl 0 00002C22 740A je .L55 0 00002C24 40 incw %ax 0 00002C25 F6410B08 testb $8, 11(%bx,%di) 0 00002C29 7503 jne .L55 0 00002C2B 8C46F8 movw %es, -8(%bp) 355 .L55: 0 00002C2E FF4EF6 decw -10(%bp) 0 00002C31 83C320 addw $32, %bx 0 00002C34 EBD0 jmp .L53 359 .size count_root, .-count_root === Switch to base unknown -> ".RODATA.STR1.1" 360 .section .rodata.str1.1 361 .LC16: 0 00001915 0741626F .string "\007About to destroy all files on drive %c!\n\007Continue (Y/N) ? " 0 00001919 75742074 0 0000191D 6F206465 0 00001921 7374726F 0 00001925 7920616C 363 .LC17: 0 00001951 4F706572 .string "Operation aborted" 0 00001955 6174696F 0 00001959 6E206162 0 0000195D 6F727465 0 00001961 6400 === Switch to base unknown -> ".TEXT" 365 .text 366 .global licence_to_kill 367 .type licence_to_kill, @function 368 licence_to_kill: 0 00002C36 833E[0000] cmpw $0, data_on_disk 0 00002C3A 00 0 00002C3B 743F je .L68 0 00002C3D 833E[0000] cmpw $0, defined_format 0 00002C41 00 0 00002C42 7C38 jl .L68 0 00002C44 833E[0000] cmpw $0, force_f 0 00002C48 00 0 00002C49 7515 jne .L69 0 00002C4B E8[FEFF] call force_banner 0 00002C4E A0[0000] movb drive, %al 0 00002C51 98 cbtw 0 00002C52 50 pushw %ax 0 00002C53 B8[3402] movw $.LC16, %ax 0 00002C56 50 pushw %ax 0 00002C57 E8[FEFF] call printf 0 00002C5A E8[FEFF] call getYN 0 00002C5D 83C404 addw $4, %sp 384 .L69: 0 00002C60 833E[0000] cmpw $-1, force_f 0 00002C64 FF 0 00002C65 7515 jne .L68 0 00002C67 833E[0000] cmpw $0, verbose 0 00002C6B 00 0 00002C6C 7E0A jle .L71 0 00002C6E B8[7002] movw $.LC17, %ax 0 00002C71 50 pushw %ax 0 00002C72 E8[FEFF] call puts 0 00002C75 83C402 addw $2, %sp 393 .L71: 0 00002C78 31C0 xorw %ax, %ax 0 00002C7A EB09 jmp .L67 396 .L68: 0 00002C7C C706[0000] movw $0, data_on_disk 0 00002C80 0000 0 00002C82 B80100 movw $1, %ax 399 .L67: 0 00002C85 C3 ret 401 .size licence_to_kill, .-licence_to_kill === Switch to base unknown -> ".RODATA.STR1.1" 402 .section .rodata.str1.1 403 .LC18: 0 00001963 4469736B .string "Disk formatted" 0 00001967 20666F72 0 0000196B 6D617474 0 0000196F 656400 === Switch to base unknown -> ".TEXT" 405 .text 406 .global WriteNewFormat 407 .type WriteNewFormat, @function 408 WriteNewFormat: 0 00002C86 E8[FEFF] call licence_to_kill 0 00002C89 85C0 testw %ax, %ax 0 00002C8B 7509 jne .L73 0 00002C8D C706[0000] movw $1, return_val 0 00002C91 0100 413 .L72: 0 00002C93 16 pushw %ss 0 00002C94 1F popw %ds 0 00002C95 C3 ret 417 .L73: 0 00002C96 E8[FEFF] call print_newf 0 00002C99 E8[FEFF] call makeNewDisk 0 00002C9C 36803E[00] cmpb $5, %ss:_osmajor 0 00002CA0 [00]05 0 00002CA2 7522 jne .L76 0 00002CA4 A1[0C00] movw newf+12, %ax 0 00002CA7 363B06[0C] cmpw %ss:f+12, %ax 0 00002CAB [00] 0 00002CAC 7618 jbe .L76 0 00002CAE 36FF36[00] pushw %ss:drive 0 00002CB2 [00] 0 00002CB3 E8[FEFF] call asm_query_drive 0 00002CB6 83C402 addw $2, %sp 0 00002CB9 85C0 testw %ax, %ax 0 00002CBB 7409 je .L76 0 00002CBD 36C51E[00] ldsw %ss:conf, %bx 0 00002CC1 [00] 0 00002CC2 C64739FF movb $-1, 57(%bx) 432 .L76: 0 00002CC6 36833E[00] cmpw $1, %ss:verbose 0 00002CCA [00]01 0 00002CCC 7EC5 jle .L72 0 00002CCE B8[8202] movw $.LC18, %ax 0 00002CD1 50 pushw %ax 0 00002CD2 16 pushw %ss 0 00002CD3 1F popw %ds 0 00002CD4 E8[FEFF] call puts 0 00002CD7 83C402 addw $2, %sp 0 00002CDA EBB7 jmp .L72 442 .size WriteNewFormat, .-WriteNewFormat === Switch to base unknown -> ".RODATA.STR1.1" 443 .section .rodata.str1.1 444 .LC19: 0 00001972 46696C65 .string "Files open on drive" 0 00001976 73206F70 0 0000197A 656E206F 0 0000197E 6E206472 0 00001982 69766500 446 .LC20: 0 00001986 4368616E .string "Changes requested for nonremovable drive" 0 0000198A 67657320 0 0000198E 72657175 0 00001992 65737465 0 00001996 6420666F 448 .LC21: 0 000019AF 41626F72 .string "Aborted: Impossible format for disk" 0 000019B3 7465643A 0 000019B7 20496D70 0 000019BB 6F737369 0 000019BF 626C6520 450 .LC22: 0 000019D3 41626F72 .string "Aborted: Not enough memory for the disk" 0 000019D7 7465643A 0 000019DB 204E6F74 0 000019DF 20656E6F 0 000019E3 75676820 452 .LC23: 0 000019FB 496D706F .string "Impossible format for disk - restoring old format" 0 000019FF 73736962 0 00001A03 6C652066 0 00001A07 6F726D61 0 00001A0B 7420666F 454 .LC24: 0 00001A2D 4E6F2063 .string "No change in format - disk remains untouched" 0 00001A31 68616E67 0 00001A35 6520696E 0 00001A39 20666F72 0 00001A3D 6D617420 456 .LC25: 0 00001A5A 44726976 .string "Drive made nonremovable" 0 00001A5E 65206D61 0 00001A62 6465206E 0 00001A66 6F6E7265 0 00001A6A 6D6F7661 458 .LC26: 0 00001A72 44726976 .string "Drive made removable" 0 00001A76 65206D61 0 00001A7A 64652072 0 00001A7E 656D6F76 0 00001A82 61626C65 460 .LC27: 0 00001A87 4661696C .string "Failed to rearrange memory" 0 00001A8B 65642074 0 00001A8F 6F207265 0 00001A93 61727261 0 00001A97 6E676520 462 .LC28: 0 00001AA2 4E657720 .string "New configuration saved for later use" 0 00001AA6 636F6E66 0 00001AAA 69677572 0 00001AAE 6174696F 0 00001AB2 6E207361 464 .LC29: 0 00001AC8 44726976 .string "Drive %c: reconfigured\n" 0 00001ACC 65202563 0 00001AD0 3A207265 0 00001AD4 636F6E66 0 00001AD8 69677572 === Switch to base unknown -> ".TEXT" 466 .text 467 .global format_disk 468 .type format_disk, @function 469 format_disk: 0 00002CDC 36833E[00] cmpw $1, %ss:force_f 0 00002CE0 [00]01 0 00002CE2 7417 je .L82 0 00002CE4 36C51E[00] ldsw %ss:conf, %bx 0 00002CE8 [00] 0 00002CE9 837F3B00 cmpw $0, 59(%bx) 0 00002CED 740C je .L82 0 00002CEF B8[9102] movw $.LC19, %ax 0 00002CF2 50 pushw %ax 0 00002CF3 16 pushw %ss 0 00002CF4 1F popw %ds 0 00002CF5 E8[FEFF] call fatal 0 00002CF8 83C402 addw $2, %sp 481 .L82: 0 00002CFB 36833E[00] cmpw $1, %ss:force_f 0 00002CFF [00]01 0 00002D01 7436 je .L84 0 00002D03 36833E[02] cmpw $-1, %ss:f+2 0 00002D07 [00]FF 0 00002D09 722E jc .L84 0 00002D0B 36A1[0000] movw %ss:defined_format, %ax 0 00002D0F F6C440 testb $64, %ah 0 00002D12 7408 je .L86 0 00002D14 36833E[02] cmpw $-1, %ss:newf+2 0 00002D18 [00]FF 0 00002D1A 721D jc .L84 491 .L86: 0 00002D1C 36A3[0000] movw %ax, %ss:changed_format 0 00002D20 A9BEBF testw $-16450, %ax 0 00002D23 7508 jne .L87 0 00002D25 36833E[00] cmpw $0, %ss:bootsectorfile 0 00002D29 [00]00 0 00002D2B 740C je .L84 497 .L87: 0 00002D2D B8[A502] movw $.LC20, %ax 0 00002D30 50 pushw %ax 0 00002D31 16 pushw %ss 0 00002D32 1F popw %ds 0 00002D33 E8[FEFF] call fatal 0 00002D36 83C402 addw $2, %sp 504 .L84: 0 00002D39 16 pushw %ss 0 00002D3A 1F popw %ds 0 00002D3B E8[FEFF] call make_newf 0 00002D3E A3[0000] movw %ax, return_val 0 00002D41 85C0 testw %ax, %ax 0 00002D43 743C je .L88 0 00002D45 83F80B cmpw $11, %ax 0 00002D48 752A jne .L89 0 00002D4A C706[0000] movw $.LC21, return_msg 0 00002D4E [CE02] 514 .L90: 0 00002D50 36833E[00] cmpw $0, %ss:disk_bad 0 00002D54 [00]00 0 00002D56 7460 je .L81 0 00002D58 B8[1A03] movw $.LC23, %ax 0 00002D5B 50 pushw %ax 0 00002D5C E8[FEFF] call warning 0 00002D5F B88E00 movw $142, %ax 0 00002D62 50 pushw %ax 0 00002D63 B8[0000] movw $f, %ax 0 00002D66 50 pushw %ax 0 00002D67 B8[0000] movw $newf, %ax 0 00002D6A 50 pushw %ax 0 00002D6B E8[FEFF] call memcpy 0 00002D6E 83C408 addw $8, %sp 528 .L127: 0 00002D71 E912FF jmp WriteNewFormat 530 .L89: 0 00002D74 83F80C cmpw $12, %ax 0 00002D77 75D7 jne .L90 0 00002D79 C706[0000] movw $.LC22, return_msg 0 00002D7D [F202] 0 00002D7F EBCF jmp .L90 535 .L88: 0 00002D81 8B16[0000] movw disk_bad, %dx 0 00002D85 85D2 testw %dx, %dx 0 00002D87 7403E9AB jne .L93 0 00002D8B 00 0 00002D8C A1[0000] movw changed_format, %ax 0 00002D8F A9BEBF testw $-16450, %ax 0 00002D92 7403E9A0 jne .L93 0 00002D96 00 0 00002D97 36833E[00] cmpw $0, %ss:bootsectorfile 0 00002D9B [00]00 0 00002D9D 7403E995 jne .L93 0 00002DA1 00 0 00002DA2 85C0 testw %ax, %ax 0 00002DA4 7515 jne .L94 0 00002DA6 36833E[00] cmpw $0, %ss:verbose 0 00002DAA [00]00 0 00002DAC 7E0A jle .L81 0 00002DAE B8[4C03] movw $.LC24, %ax 0 00002DB1 50 pushw %ax 0 00002DB2 E8[FEFF] call warning 551 .L126: 0 00002DB5 83C402 addw $2, %sp 553 .L81: 0 00002DB8 16 pushw %ss 0 00002DB9 1F popw %ds 0 00002DBA C3 ret 557 .L94: 0 00002DBB A801 testb $1, %al 0 00002DBD 7403 je .L96 0 00002DBF E8[FEFF] call set_write_protect 561 .L96: 0 00002DC2 36F606[01] testb $64, %ss:changed_format+1 0 00002DC6 [00]40 0 00002DC8 7425 je .L98 0 00002DCA 36833E[02] cmpw $-1, %ss:newf+2 0 00002DCE [00]FF 0 00002DD0 36C51E[00] ldsw %ss:conf, %bx 0 00002DD4 [00] 0 00002DD5 724A jc .L99 0 00002DD7 804F3804 orb $4, 56(%bx) 0 00002DDB 36833E[00] cmpw $1, %ss:verbose 0 00002DDF [00]01 0 00002DE1 7E0C jle .L98 0 00002DE3 B8[7903] movw $.LC25, %ax 571 .L125: 0 00002DE6 50 pushw %ax 0 00002DE7 16 pushw %ss 0 00002DE8 1F popw %ds 0 00002DE9 E8[FEFF] call puts 0 00002DEC 83C402 addw $2, %sp 577 .L98: 0 00002DEF 36F606[00] testb $64, %ss:changed_format 0 00002DF3 [00]40 0 00002DF5 74C1 je .L81 0 00002DF7 36A1[0400] movw %ss:f+4, %ax 0 00002DFB 360B06[06] orw %ss:f+6, %ax 0 00002DFF [00] 0 00002E00 7430 je .L101 0 00002E02 36FF36[76] pushw %ss:f+118 0 00002E06 [00] 0 00002E07 36FF36[74] pushw %ss:f+116 0 00002E0B [00] 0 00002E0C 16 pushw %ss 0 00002E0D 1F popw %ds 0 00002E0E E8[FEFF] call SavingDiskAllocate 0 00002E11 83C404 addw $4, %sp 0 00002E14 85C0 testw %ax, %ax 0 00002E16 75A0 jne .L81 0 00002E18 B8[A603] movw $.LC27, %ax 0 00002E1B 50 pushw %ax 0 00002E1C E8[FEFF] call error 0 00002E1F EB94 jmp .L126 595 .L99: 0 00002E21 806738FB andb $-5, 56(%bx) 0 00002E25 36833E[00] cmpw $1, %ss:verbose 0 00002E29 [00]01 0 00002E2B 7EC2 jle .L98 0 00002E2D B8[9103] movw $.LC26, %ax 0 00002E30 EBB4 jmp .L125 601 .L101: 0 00002E32 16 pushw %ss 0 00002E33 1F popw %ds 0 00002E34 E9[FEFF] jmp ConfigMaxAlloc 605 .L93: 0 00002E37 A1[0400] movw newf+4, %ax 0 00002E3A 360B06[06] orw %ss:newf+6, %ax 0 00002E3E [00] 0 00002E3F 7535 jne .L103 0 00002E41 A1[0400] movw f+4, %ax 0 00002E44 360B06[06] orw %ss:f+6, %ax 0 00002E48 [00] 0 00002E49 7518 jne .L104 0 00002E4B E8[FEFF] call configure_drive 0 00002E4E 36833E[00] cmpw $1, %ss:verbose 0 00002E52 [00]01 0 00002E54 7F03E95F jle .L81 0 00002E58 FF 0 00002E59 B8[C103] movw $.LC28, %ax 0 00002E5C 50 pushw %ax 0 00002E5D E8[FEFF] call puts 0 00002E60 E952FF jmp .L126 619 .L104: 0 00002E63 E8[FEFF] call licence_to_kill 0 00002E66 85C0 testw %ax, %ax 0 00002E68 7509 jne .L105 0 00002E6A C706[0000] movw $1, return_val 0 00002E6E 0100 0 00002E70 E945FF jmp .L81 625 .L105: 0 00002E73 E965FC jmp disable_disk 627 .L103: 0 00002E76 A1[0000] movw changed_format, %ax 0 00002E79 A93EB8 testw $-18370, %ax 0 00002E7C 7504 jne .L112 0 00002E7E 85D2 testw %dx, %dx 0 00002E80 740E je .L106 633 .L112: 0 00002E82 36833E[00] cmpw $0, %ss:data_on_disk 0 00002E86 [00]00 0 00002E88 7503E9E4 je .L127 0 00002E8C FE 0 00002E8D E9[FEFF] jmp Resize 637 .L106: 0 00002E90 A98007 testw $1920, %ax 0 00002E93 750B jne .L109 0 00002E95 36833E[00] cmpw $0, %ss:bootsectorfile 0 00002E99 [00]00 0 00002E9B 7503E918 je .L81 0 00002E9F FF 642 .L109: 0 00002EA0 E8[FEFF] call ReConfig 0 00002EA3 A1[0400] movw f+4, %ax 0 00002EA6 360B06[06] orw %ss:f+6, %ax 0 00002EAA [00] 0 00002EAB 7403 je .L110 0 00002EAD E8[FEFF] call RefreshBootSector 648 .L110: 0 00002EB0 36833E[00] cmpw $1, %ss:verbose 0 00002EB4 [00]01 0 00002EB6 7F03E9FD jle .L81 0 00002EBA FE 0 00002EBB A0[0000] movb drive, %al 0 00002EBE 98 cbtw 0 00002EBF 50 pushw %ax 0 00002EC0 B8[E703] movw $.LC29, %ax 0 00002EC3 50 pushw %ax 0 00002EC4 E8[FEFF] call printf 0 00002EC7 83C404 addw $4, %sp 0 00002ECA E9EBFE jmp .L81 659 .size format_disk, .-format_disk 660 .local _string.3809 661 .comm _string.3809,60,1 662 .ident "GCC: (GNU) 6.3.0" 663 .weak __ia16_use_printf_nofloat.v1 664 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: formutil.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .global calcMaxMemory 7 .type calcMaxMemory, @function 8 calcMaxMemory: 0 00002ECD 56 pushw %si 0 00002ECE 57 pushw %di 0 00002ECF 06 pushw %es 0 00002ED0 36C43E[00] lesw %ss:conf, %di 0 00002ED4 [00] 0 00002ED5 C706[6800] movw $0, f+104 0 00002ED9 0000 0 00002EDB C706[6A00] movw $0, f+106 0 00002EDF 0000 0 00002EE1 C706[6C00] movw $0, f+108 0 00002EE5 0000 0 00002EE7 C706[6E00] movw $0, f+110 0 00002EEB 0000 17 .L2: 0 00002EED 06 pushw %es 0 00002EEE 57 pushw %di 0 00002EEF E8[FEFF] call safe_size 0 00002EF2 93 xchgw %ax, %bx 0 00002EF3 89D1 movw %dx, %cx 0 00002EF5 BE[0000] movw $f, %si 0 00002EF8 8B4468 movw 104(%si), %ax 0 00002EFB 8B546A movw 106(%si), %dx 0 00002EFE 01D8 addw %bx, %ax 0 00002F00 11D1 adcw %dx, %cx 0 00002F02 894468 movw %ax, 104(%si) 0 00002F05 894C6A movw %cx, 106(%si) 0 00002F08 06 pushw %es 0 00002F09 57 pushw %di 0 00002F0A E8[FEFF] call max_size 0 00002F0D 93 xchgw %ax, %bx 0 00002F0E 89D1 movw %dx, %cx 0 00002F10 8B446C movw 108(%si), %ax 0 00002F13 8B546E movw 110(%si), %dx 0 00002F16 01D8 addw %bx, %ax 0 00002F18 11D1 adcw %dx, %cx 0 00002F1A 89446C movw %ax, 108(%si) 0 00002F1D 894C6E movw %cx, 110(%si) 0 00002F20 06 pushw %es 0 00002F21 1F popw %ds 0 00002F22 FF750A pushw 10(%di) 0 00002F25 16 pushw %ss 0 00002F26 1F popw %ds 0 00002F27 E8[FEFF] call conf_ptr 0 00002F2A 97 xchgw %ax, %di 0 00002F2B 8EC2 movw %dx, %es 0 00002F2D 83C40A addw $10, %sp 0 00002F30 92 xchgw %ax, %dx 0 00002F31 09F8 orw %di, %ax 0 00002F33 85C0 testw %ax, %ax 0 00002F35 75B6 jne .L2 0 00002F37 8B5464 movw 100(%si), %dx 0 00002F3A 8B4466 movw 102(%si), %ax 0 00002F3D 3639446A cmpw %ax, %ss:106(%si) 0 00002F41 7208 jc .L5 0 00002F43 750C jne .L1 0 00002F45 36395468 cmpw %dx, %ss:104(%si) 0 00002F49 7306 jnc .L1 61 .L5: 0 00002F4B 895468 movw %dx, 104(%si) 0 00002F4E 89446A movw %ax, 106(%si) 64 .L1: 0 00002F51 07 popw %es 0 00002F52 5F popw %di 0 00002F53 5E popw %si 0 00002F54 C3 ret 69 .size calcMaxMemory, .-calcMaxMemory === Switch to base unknown -> ".RODATA.STR1.1" 70 .section .rodata.str1.1,"aMS",@progbits,1 71 .LC0: 0 00001AE0 41646A75 .string "Adjusted max allocation sizes" 0 00001AE4 73746564 0 00001AE8 206D6178 0 00001AEC 20616C6C 0 00001AF0 6F636174 === Switch to base unknown -> ".TEXT" 73 .text 74 .global ConfigMaxAlloc 75 .type ConfigMaxAlloc, @function 76 ConfigMaxAlloc: 0 00002F55 36F606[00] testb $64, %ss:changed_format 0 00002F59 [00]40 0 00002F5B 743E je .L17 0 00002F5D 56 pushw %si 0 00002F5E 57 pushw %di 0 00002F5F 06 pushw %es 0 00002F60 55 pushw %bp 0 00002F61 89E5 movw %sp, %bp 0 00002F63 1E pushw %ds 0 00002F64 B80D00 movw $13, %ax 0 00002F67 36F726[5E] mulw %ss:f+94 0 00002F6B [00] 0 00002F6C 31DB xorw %bx, %bx 0 00002F6E BF[1F00] movw $newf+31, %di 0 00002F71 BA[1B00] movw $f+27, %dx 0 00002F74 8956FE movw %dx, -2(%bp) 91 .L10: 0 00002F77 39D8 cmpw %bx, %ax 0 00002F79 7523 jne .L11 0 00002F7B 36833E[00] cmpw $1, %ss:verbose 0 00002F7F [00]01 0 00002F81 7E0C jle .L12 0 00002F83 B8[0000] movw $.LC0, %ax 0 00002F86 50 pushw %ax 0 00002F87 16 pushw %ss 0 00002F88 1F popw %ds 0 00002F89 E8[FEFF] call puts 0 00002F8C 83C402 addw $2, %sp 102 .L12: 0 00002F8F 368026[00] andb $-65, %ss:changed_format 0 00002F93 [00]BF 0 00002F95 89EC movw %bp, %sp 0 00002F97 5D popw %bp 0 00002F98 07 popw %es 0 00002F99 5F popw %di 0 00002F9A 5E popw %si 109 .L17: 0 00002F9B 16 pushw %ss 0 00002F9C 1F popw %ds 0 00002F9D C3 ret 113 .L11: 0 00002F9E 368B11 movw %ss:(%bx,%di), %dx 0 00002FA1 89D1 movw %dx, %cx 0 00002FA3 368E9F[21] movw %ss:newf+33(%bx), %ds 0 00002FA7 [00] 0 00002FA8 8B76FE movw -2(%bp), %si 0 00002FAB 368B30 movw %ss:(%bx,%si), %si 0 00002FAE 368B97[1D] movw %ss:f+29(%bx), %dx 0 00002FB2 [00] 0 00002FB3 8EC2 movw %dx, %es 0 00002FB5 26894C0C movw %cx, %es:12(%si) 0 00002FB9 268C5C0E movw %ds, %es:14(%si) 0 00002FBD 83C30D addw $13, %bx 0 00002FC0 EBB5 jmp .L10 125 .size ConfigMaxAlloc, .-ConfigMaxAlloc 126 .global FillBootSectorBPB 127 .type FillBootSectorBPB, @function 128 FillBootSectorBPB: 0 00002FC2 56 pushw %si 0 00002FC3 57 pushw %di 0 00002FC4 89E3 movw %sp, %bx 0 00002FC6 8B7706 movw 6(%bx), %si 0 00002FC9 BB[0000] movw $newf, %bx 0 00002FCC 8B470C movw 12(%bx), %ax 0 00002FCF 89440B movw %ax, 11(%si) 0 00002FD2 A1[8800] movw newf+136, %ax 0 00002FD5 88440D movb %al, 13(%si) 0 00002FD8 8B4770 movw 112(%bx), %ax 0 00002FDB 89440E movw %ax, 14(%si) 0 00002FDE 8B4710 movw 16(%bx), %ax 0 00002FE1 884410 movb %al, 16(%si) 0 00002FE4 8B4712 movw 18(%bx), %ax 0 00002FE7 894411 movw %ax, 17(%si) 0 00002FEA 8B4714 movw 20(%bx), %ax 0 00002FED 884415 movb %al, 21(%si) 0 00002FF0 8B4772 movw 114(%bx), %ax 0 00002FF3 894416 movw %ax, 22(%si) 0 00002FF6 8B4716 movw 22(%bx), %ax 0 00002FF9 894418 movw %ax, 24(%si) 0 00002FFC 8B4718 movw 24(%bx), %ax 0 00002FFF 89441A movw %ax, 26(%si) 0 00003002 36C53E[00] ldsw %ss:conf, %di 0 00003006 [00] 0 00003007 F6450104 testb $4, 1(%di) 0 0000300B 89DF movw %bx, %di 0 0000300D 7424 je .L21 0 0000300F 368B5774 movw %ss:116(%bx), %dx 0 00003013 368B4776 movw %ss:118(%bx), %ax 0 00003017 85C0 testw %ax, %ax 0 00003019 7505 jne .L24 0 0000301B 83FAFE cmpw $-2, %dx 0 0000301E 7613 jbe .L21 162 .L24: 0 00003020 36C74413 movw $0, %ss:19(%si) 0 00003024 0000 0 00003026 36895420 movw %dx, %ss:32(%si) 0 0000302A 36894422 movw %ax, %ss:34(%si) 166 .L20: 0 0000302E 5F popw %di 0 0000302F 5E popw %si 0 00003030 16 pushw %ss 0 00003031 1F popw %ds 0 00003032 C3 ret 172 .L21: 0 00003033 368B4574 movw %ss:116(%di), %ax 0 00003037 36894413 movw %ax, %ss:19(%si) 0 0000303B EBF1 jmp .L20 176 .size FillBootSectorBPB, .-FillBootSectorBPB === Switch to base unknown -> ".RODATA.STR1.1" 177 .section .rodata.str1.1 178 .LC1: 0 00001AFE 43616E20 .string "Can not open boot sector image file %s - using default" 0 00001B02 6E6F7420 0 00001B06 6F70656E 0 00001B0A 20626F6F 0 00001B0E 74207365 180 .LC2: 0 00001B35 43616E20 .string "Can not read boot sector image - using default" 0 00001B39 6E6F7420 0 00001B3D 72656164 0 00001B41 20626F6F 0 00001B45 74207365 182 .LC3: 0 00001B64 496E7661 .string "Invalid boot sector image - using default" 0 00001B68 6C696420 0 00001B6C 626F6F74 0 00001B70 20736563 0 00001B74 746F7220 === Switch to base unknown -> ".TEXT" 184 .text 185 .global FileBootSector 186 .type FileBootSector, @function 187 FileBootSector: 0 0000303D 57 pushw %di 0 0000303E 55 pushw %bp 0 0000303F 89E5 movw %sp, %bp 0 00003041 8B7E08 movw 8(%bp), %di 0 00003044 31C0 xorw %ax, %ax 0 00003046 50 pushw %ax 0 00003047 FF7606 pushw 6(%bp) 0 0000304A E8[FEFF] call open 0 0000304D 83C404 addw $4, %sp 0 00003050 85C0 testw %ax, %ax 0 00003052 7D15 jge .L30 0 00003054 FF36[0000] pushw bootsectorfile 0 00003058 B8[1E00] movw $.LC1, %ax 0 0000305B 50 pushw %ax 0 0000305C E8[FEFF] call warning 0 0000305F 83C404 addw $4, %sp 0 00003062 B001 movb $1, %al 205 .L29: 0 00003064 89EC movw %bp, %sp 0 00003066 5D popw %bp 0 00003067 5F popw %di 0 00003068 C3 ret 210 .L30: 0 00003069 FF36[0C00] pushw newf+12 0 0000306D 57 pushw %di 0 0000306E 50 pushw %ax 0 0000306F E8[FEFF] call read 0 00003072 89C3 movw %ax, %bx 0 00003074 83C406 addw $6, %sp 0 00003077 3B06[0C00] cmpw newf+12, %ax 0 0000307B 740E je .L32 0 0000307D B8[5500] movw $.LC2, %ax 0 00003080 50 pushw %ax 0 00003081 E8[FEFF] call warning 0 00003084 83C402 addw $2, %sp 0 00003087 B002 movb $2, %al 0 00003089 EBD9 jmp .L29 225 .L32: 0 0000308B 8179FE55 cmpw $-21931, -2(%bx,%di) 0 0000308F AA 0 00003090 740E je .L33 0 00003092 B8[8400] movw $.LC3, %ax 0 00003095 50 pushw %ax 0 00003096 E8[FEFF] call warning 0 00003099 83C402 addw $2, %sp 0 0000309C B003 movb $3, %al 0 0000309E EBC4 jmp .L29 234 .L33: 0 000030A0 57 pushw %di 0 000030A1 E8[FEFF] call FillBootSectorBPB 0 000030A4 83C402 addw $2, %sp 0 000030A7 30C0 xorb %al, %al 0 000030A9 EBB9 jmp .L29 240 .size FileBootSector, .-FileBootSector 241 .global RefreshBootSector 242 .type RefreshBootSector, @function 243 RefreshBootSector: 0 000030AB A1[6400] movw f+100, %ax 0 000030AE 0B06[6600] orw f+102, %ax 0 000030B2 7443 je .L49 0 000030B4 A1[6400] movw newf+100, %ax 0 000030B7 0B06[6600] orw newf+102, %ax 0 000030BB 743A je .L49 0 000030BD 56 pushw %si 0 000030BE 57 pushw %di 0 000030BF 06 pushw %es 0 000030C0 FF36[0C00] pushw newf+12 0 000030C4 E8[FEFF] call xalloc 0 000030C7 96 xchgw %ax, %si 0 000030C8 A1[0000] movw bootsectorfile, %ax 0 000030CB 83C402 addw $2, %sp 0 000030CE 85C0 testw %ax, %ax 0 000030D0 BF0000 movw $0, %di 0 000030D3 BA0100 movw $1, %dx 0 000030D6 8EC2 movw %dx, %es 0 000030D8 751E jne .L39 263 .L41: 0 000030DA 16 pushw %ss 0 000030DB 56 pushw %si 0 000030DC 57 pushw %di 0 000030DD 57 pushw %di 0 000030DE 06 pushw %es 0 000030DF E8[FEFF] call read_sector 0 000030E2 83C40A addw $10, %sp 271 .L40: 0 000030E5 56 pushw %si 0 000030E6 E8[FEFF] call FillBootSectorBPB 0 000030E9 16 pushw %ss 0 000030EA 56 pushw %si 0 000030EB 57 pushw %di 0 000030EC 57 pushw %di 0 000030ED 06 pushw %es 0 000030EE E8[FEFF] call write_sector 0 000030F1 83C40C addw $12, %sp 0 000030F4 07 popw %es 0 000030F5 5F popw %di 0 000030F6 5E popw %si 284 .L49: 0 000030F7 C3 ret 286 .L39: 0 000030F8 56 pushw %si 0 000030F9 50 pushw %ax 0 000030FA E8[FEFF] call FileBootSector 0 000030FD 83C404 addw $4, %sp 0 00003100 84C0 testb %al, %al 0 00003102 75D6 jne .L41 0 00003104 EBDF jmp .L40 294 .size RefreshBootSector, .-RefreshBootSector === Switch to base unknown -> ".RODATA.STR1.1" 295 .section .rodata.str1.1 296 .LC4: 0 00001B8E 5265636F .string "Reconfig device type = %02Xh\n" 0 00001B92 6E666967 0 00001B96 20646576 0 00001B9A 69636520 0 00001B9E 74797065 === Switch to base unknown -> ".TEXT" 298 .text 299 .global ConfigNonFormat 300 .type ConfigNonFormat, @function 301 ConfigNonFormat: 0 00003106 56 pushw %si 0 00003107 8B36[0000] movw conf, %si 0 0000310B 8B16[0200] movw conf+2, %dx 0 0000310F BB[0000] movw $newf, %bx 0 00003112 8B4714 movw 20(%bx), %ax 0 00003115 8EDA movw %dx, %ds 0 00003117 884425 movb %al, 37(%si) 0 0000311A 368B4716 movw %ss:22(%bx), %ax 0 0000311E 894428 movw %ax, 40(%si) 0 00003121 368B4718 movw %ss:24(%bx), %ax 0 00003125 89442A movw %ax, 42(%si) 0 00003128 368A471A movb %ss:26(%bx), %al 0 0000312C 88443A movb %al, 58(%si) 0 0000312F 36833E[00] cmpw $5, %ss:verbose 0 00003133 [00]05 0 00003135 7E0F jle .L53 0 00003137 30E4 xorb %ah, %ah 0 00003139 50 pushw %ax 0 0000313A B8[AE00] movw $.LC4, %ax 0 0000313D 50 pushw %ax 0 0000313E 16 pushw %ss 0 0000313F 1F popw %ds 0 00003140 E8[FEFF] call printf 0 00003143 83C404 addw $4, %sp 325 .L53: 0 00003146 36C51E[00] ldsw %ss:conf, %bx 0 0000314A [00] 0 0000314B C64739FF movb $-1, 57(%bx) 0 0000314F 5E popw %si 0 00003150 16 pushw %ss 0 00003151 1F popw %ds 0 00003152 C3 ret 332 .size ConfigNonFormat, .-ConfigNonFormat 333 .global configure_drive 334 .type configure_drive, @function 335 configure_drive: 0 00003153 56 pushw %si 0 00003154 57 pushw %di 0 00003155 55 pushw %bp 0 00003156 89E5 movw %sp, %bp 0 00003158 83EC08 subw $8, %sp 0 0000315B 36C51E[00] ldsw %ss:conf, %bx 0 0000315F [00] 0 00003160 C6473800 movb $0, 56(%bx) 0 00003164 16 pushw %ss 0 00003165 1F popw %ds 0 00003166 E8[FEFF] call ConfigMaxAlloc 0 00003169 8B1E[0000] movw conf, %bx 0 0000316D A1[0200] movw conf+2, %ax 0 00003170 8946F8 movw %ax, -8(%bp) 349 .L56: 0 00003173 8B46F8 movw -8(%bp), %ax 0 00003176 09D8 orw %bx, %ax 0 00003178 85C0 testw %ax, %ax 0 0000317A BE[0000] movw $newf, %si 0 0000317D 757F jne .L57 0 0000317F 8B1E[0000] movw conf, %bx 0 00003183 8B16[0200] movw conf+2, %dx 0 00003187 A1[8800] movw newf+136, %ax 0 0000318A 8EDA movw %dx, %ds 0 0000318C 88471D movb %al, 29(%bx) 0 0000318F 368B4470 movw %ss:112(%si), %ax 0 00003193 89471E movw %ax, 30(%bx) 0 00003196 368B4410 movw %ss:16(%si), %ax 0 0000319A 884720 movb %al, 32(%bx) 0 0000319D 368B4412 movw %ss:18(%si), %ax 0 000031A1 894721 movw %ax, 33(%bx) 0 000031A4 F6470104 testb $4, 1(%bx) 0 000031A8 7414 je .L58 0 000031AA 36837C76 cmpw $0, %ss:118(%si) 0 000031AE 00 0 000031AF 7403E9B0 jne .L61 0 000031B3 00 0 000031B4 36837C74 cmpw $-2, %ss:116(%si) 0 000031B8 FE 0 000031B9 7603E9A6 ja .L61 0 000031BD 00 372 .L58: 0 000031BE 368B4474 movw %ss:116(%si), %ax 374 .L59: 0 000031C2 8EDA movw %dx, %ds 0 000031C4 894723 movw %ax, 35(%bx) 0 000031C7 368B4472 movw %ss:114(%si), %ax 0 000031CB 894726 movw %ax, 38(%bx) 0 000031CE C7472C00 movw $0, 44(%bx) 0 000031D2 00 0 000031D3 C7472E00 movw $0, 46(%bx) 0 000031D7 00 0 000031D8 368B4474 movw %ss:116(%si), %ax 0 000031DC 894730 movw %ax, 48(%bx) 0 000031DF 368B4476 movw %ss:118(%si), %ax 0 000031E3 894732 movw %ax, 50(%bx) 0 000031E6 368B4404 movw %ss:4(%si), %ax 0 000031EA 894734 movw %ax, 52(%bx) 0 000031ED 368B4406 movw %ss:6(%si), %ax 0 000031F1 894736 movw %ax, 54(%bx) 0 000031F4 16 pushw %ss 0 000031F5 1F popw %ds 0 000031F6 89EC movw %bp, %sp 0 000031F8 5D popw %bp 0 000031F9 5F popw %di 0 000031FA 5E popw %si 0 000031FB E908FF jmp ConfigNonFormat 396 .L57: 0 000031FE 8B7C0C movw 12(%si), %di 0 00003201 8E5EF8 movw -8(%bp), %ds 0 00003204 8B5710 movw 16(%bx), %dx 0 00003207 89D0 movw %dx, %ax 0 00003209 B106 movb $6, %cl 0 0000320B D3E8 shrw %cl, %ax 0 0000320D 8946FA movw %ax, -6(%bp) 0 00003210 8B4712 movw 18(%bx), %ax 0 00003213 895EFE movw %bx, -2(%bp) 0 00003216 8946FC movw %ax, -4(%bp) 0 00003219 B10A movb $10, %cl 0 0000321B D3E0 shlw %cl, %ax 0 0000321D 0B46FA orw -6(%bp), %ax 0 00003220 D3E2 shlw %cl, %dx 0 00003222 31C9 xorw %cx, %cx 0 00003224 51 pushw %cx 0 00003225 57 pushw %di 0 00003226 50 pushw %ax 0 00003227 52 pushw %dx 0 00003228 16 pushw %ss 0 00003229 1F popw %ds 0 0000322A E8[FEFF] call __udivsi3 0 0000322D 83C408 addw $8, %sp 0 00003230 8E5EF8 movw -8(%bp), %ds 0 00003233 8B5EFE movw -2(%bp), %bx 0 00003236 894716 movw %ax, 22(%bx) 0 00003239 8E5EF8 movw -8(%bp), %ds 0 0000323C 895718 movw %dx, 24(%bx) 0 0000323F 8E5EF8 movw -8(%bp), %ds 0 00003242 897F1B movw %di, 27(%bx) 0 00003245 368B445C movw %ss:92(%si), %ax 0 00003249 8E5EF8 movw -8(%bp), %ds 0 0000324C 88471A movb %al, 26(%bx) 0 0000324F 8E5EF8 movw -8(%bp), %ds 0 00003252 FF770A pushw 10(%bx) 0 00003255 16 pushw %ss 0 00003256 1F popw %ds 0 00003257 E8[FEFF] call conf_ptr 0 0000325A 93 xchgw %ax, %bx 0 0000325B 8956F8 movw %dx, -8(%bp) 0 0000325E 83C402 addw $2, %sp 0 00003261 E90FFF jmp .L56 439 .L61: 0 00003264 31C0 xorw %ax, %ax 0 00003266 E959FF jmp .L59 442 .size configure_drive, .-configure_drive 443 .ident "GCC: (GNU) 6.3.0" 444 .weak __ia16_use_printf_nofloat.v1 445 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: getopt.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .global get_opt 7 .type get_opt, @function 8 get_opt: 0 00003269 56 pushw %si 0 0000326A 57 pushw %di 0 0000326B 06 pushw %es 0 0000326C 55 pushw %bp 0 0000326D 89E5 movw %sp, %bp 0 0000326F 83EC0E subw $14, %sp 0 00003272 8B5E0A movw 10(%bp), %bx 0 00003275 8E07 movw (%bx), %es 0 00003277 8B3E[0000] movw __ctype_ptr__, %di 0 0000327B 8CC6 movw %es, %si 19 .L2: 0 0000327D 8A04 movb (%si), %al 0 0000327F 98 cbtw 0 00003280 93 xchgw %ax, %bx 0 00003281 36F64101 testb $8, %ss:1(%bx,%di) 0 00003285 08 0 00003286 7549 jne .L3 0 00003288 8B5E0A movw 10(%bp), %bx 0 0000328B 8937 movw %si, (%bx) 0 0000328D 8A04 movb (%si), %al 0 0000328F 24FD andb $-3, %al 0 00003291 3C2D cmpb $45, %al 0 00003293 7403E9E7 jne .L15 0 00003297 00 0 00003298 89F3 movw %si, %bx 0 0000329A 43 incw %bx 0 0000329B 895EF4 movw %bx, -12(%bp) 0 0000329E A1[0000] movw __ctype_ptr__, %ax 0 000032A1 97 xchgw %ax, %di 0 000032A2 31C0 xorw %ax, %ax 0 000032A4 8ED8 movw %ax, %ds 0 000032A6 8946FA movw %ax, -6(%bp) 0 000032A9 8946FE movw %ax, -2(%bp) 0 000032AC B9FFFF movw $-1, %cx 41 .L5: 0 000032AF 8B46FE movw -2(%bp), %ax 0 000032B2 3B460E cmpw 14(%bp), %ax 0 000032B5 7C1D jl .L13 0 000032B7 837EFA00 cmpw $0, -6(%bp) 0 000032BB 7503E9C4 je .L18 0 000032BF 00 0 000032C0 8CD8 movw %ds, %ax 0 000032C2 8CC6 movw %es, %si 0 000032C4 85C0 testw %ax, %ax 0 000032C6 7503E99A je .L12 0 000032CA 00 0 000032CB B9FDFF movw $-3, %cx 0 000032CE E9A400 jmp .L1 53 .L3: 0 000032D1 46 incw %si 0 000032D2 EBA9 jmp .L2 56 .L13: 0 000032D4 B80C00 movw $12, %ax 0 000032D7 F766FE mulw -2(%bp) 0 000032DA 8B760C movw 12(%bp), %si 0 000032DD 93 xchgw %ax, %bx 0 000032DE 368B00 movw %ss:(%bx,%si), %ax 0 000032E1 8946F6 movw %ax, -10(%bp) 0 000032E4 8B76F4 movw -12(%bp), %si 0 000032E7 8946FC movw %ax, -4(%bp) 65 .L6: 0 000032EA 8B56FC movw -4(%bp), %dx 0 000032ED 2B56F6 subw -10(%bp), %dx 0 000032F0 368A04 movb %ss:(%si), %al 0 000032F3 8846F9 movb %al, -7(%bp) 0 000032F6 84C0 testb %al, %al 0 000032F8 742B je .L7 0 000032FA 8B5EFC movw -4(%bp), %bx 0 000032FD 368A07 movb %ss:(%bx), %al 0 00003300 84C0 testb %al, %al 0 00003302 7421 je .L7 0 00003304 98 cbtw 0 00003305 8946F2 movw %ax, -14(%bp) 0 00003308 8A46F9 movb -7(%bp), %al 0 0000330B 98 cbtw 0 0000330C 89C3 movw %ax, %bx 0 0000330E 368A7901 movb %ss:1(%bx,%di), %bh 0 00003312 887EF8 movb %bh, -8(%bp) 0 00003315 80E703 andb $3, %bh 0 00003318 80FF02 cmpb $2, %bh 0 0000331B 7503 jne .L9 0 0000331D 83C0E0 addw $-32, %ax 87 .L9: 0 00003320 3B46F2 cmpw -14(%bp), %ax 0 00003323 742B je .L10 90 .L7: 0 00003325 85D2 testw %dx, %dx 0 00003327 7421 je .L11 0 00003329 8A46F9 movb -7(%bp), %al 0 0000332C 98 cbtw 0 0000332D 93 xchgw %ax, %bx 0 0000332E 36F64101 testb $3, %ss:1(%bx,%di) 0 00003332 03 0 00003333 7515 jne .L11 0 00003335 8B5EFC movw -4(%bp), %bx 0 00003338 36803F00 cmpb $0, %ss:(%bx) 0 0000333C 7424 je .L16 0 0000333E 3956FA cmpw %dx, -6(%bp) 0 00003341 7C13 jl .L17 0 00003343 7505 jne .L11 0 00003345 B80100 movw $1, %ax 105 .L30: 0 00003348 8ED8 movw %ax, %ds 107 .L11: 0 0000334A FF46FE incw -2(%bp) 0 0000334D E95FFF jmp .L5 110 .L10: 0 00003350 FF46FC incw -4(%bp) 0 00003353 46 incw %si 0 00003354 EB94 jmp .L6 114 .L17: 0 00003356 8956FA movw %dx, -6(%bp) 0 00003359 8B4EFE movw -2(%bp), %cx 0 0000335C 8EC6 movw %si, %es 0 0000335E 31C0 xorw %ax, %ax 0 00003360 EBE6 jmp .L30 120 .L16: 0 00003362 8B4EFE movw -2(%bp), %cx 122 .L12: 0 00003365 36803C3A cmpb $58, %ss:(%si) 0 00003369 9F lahf 0 0000336A D0E4 shlb %ah 0 0000336C 99 cwtd 0 0000336D 29D6 subw %dx, %si 0 0000336F 8B5E0A movw 10(%bp), %bx 0 00003372 368937 movw %si, %ss:(%bx) 130 .L1: 0 00003375 91 xchgw %ax, %cx 0 00003376 89EC movw %bp, %sp 0 00003378 5D popw %bp 0 00003379 07 popw %es 0 0000337A 5F popw %di 0 0000337B 5E popw %si 0 0000337C 16 pushw %ss 0 0000337D 1F popw %ds 0 0000337E C3 ret 140 .L15: 0 0000337F B9FFFF movw $-1, %cx 0 00003382 EBF1 jmp .L1 143 .L18: 0 00003384 B9FEFF movw $-2, %cx 0 00003387 EBEC jmp .L1 146 .size get_opt, .-get_opt 147 .ident "GCC: (GNU) 6.3.0" === Trace listing source: makenewf.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type fix_dir_sectors, @function 7 fix_dir_sectors: 0 00003389 56 pushw %si 0 0000338A 57 pushw %di 0 0000338B BF[0000] movw $newf, %di 0 0000338E 8B750C movw 12(%di), %si 0 00003391 B105 movb $5, %cl 0 00003393 D3EE shrw %cl, %si 0 00003395 8B5D12 movw 18(%di), %bx 0 00003398 8D40FF leaw -1(%bx,%si), %ax 0 0000339B 31D2 xorw %dx, %dx 0 0000339D F7F6 divw %si 0 0000339F 89457A movw %ax, 122(%di) 0 000033A2 F606[0000] testb $16, defined_format 0 000033A6 10 0 000033A7 7505 jne .L1 0 000033A9 F7E6 mulw %si 0 000033AB 894512 movw %ax, 18(%di) 23 .L1: 0 000033AE 5F popw %di 0 000033AF 5E popw %si 0 000033B0 C3 ret 27 .size fix_dir_sectors, .-fix_dir_sectors 28 .type freeDiskMemory, @function 29 freeDiskMemory: 0 000033B1 56 pushw %si 0 000033B2 57 pushw %di 0 000033B3 06 pushw %es 0 000033B4 55 pushw %bp 0 000033B5 89E5 movw %sp, %bp 0 000033B7 83EC08 subw $8, %sp 0 000033BA C746F800 movw $0, -8(%bp) 0 000033BE 00 0 000033BF 8E46F8 movw -8(%bp), %es 38 .L5: 0 000033C2 BE[0000] movw $f, %si 0 000033C5 8B46F8 movw -8(%bp), %ax 0 000033C8 3639445E cmpw %ax, %ss:94(%si) 0 000033CC 7717 ja .L8 0 000033CE 36C706[00] movw $0, %ss:data_on_disk 0 000033D2 [00]0000 0 000033D5 36C706[00] movw $1, %ss:root_files 0 000033D9 [00]0100 0 000033DC 89EC movw %bp, %sp 0 000033DE 5D popw %bp 0 000033DF 07 popw %es 0 000033E0 5F popw %di 0 000033E1 5E popw %si 0 000033E2 16 pushw %ss 0 000033E3 1F popw %ds 0 000033E4 C3 ret 53 .L8: 0 000033E5 B80D00 movw $13, %ax 0 000033E8 F766F8 mulw -8(%bp) 0 000033EB 89C3 movw %ax, %bx 0 000033ED 06 pushw %es 0 000033EE 06 pushw %es 0 000033EF 36FFB7[1D] pushw %ss:f+29(%bx) 0 000033F3 [00] 0 000033F4 36FFB7[1B] pushw %ss:f+27(%bx) 0 000033F8 [00] 0 000033F9 8946FE movw %ax, -2(%bp) 0 000033FC 16 pushw %ss 0 000033FD 1F popw %ds 0 000033FE E8[FEFF] call disk_alloc 0 00003401 91 xchgw %ax, %cx 0 00003402 8956FA movw %dx, -6(%bp) 0 00003405 B8[2300] movw $f+35, %ax 0 00003408 8ED8 movw %ax, %ds 0 0000340A 97 xchgw %ax, %di 0 0000340B 8B5EFE movw -2(%bp), %bx 0 0000340E 368B01 movw %ss:(%bx,%di), %ax 0 00003411 97 xchgw %ax, %di 0 00003412 368B87[25] movw %ss:f+37(%bx), %ax 0 00003416 [00] 0 00003417 8946FC movw %ax, -4(%bp) 0 0000341A 83C408 addw $8, %sp 0 0000341D 39F9 cmpw %di, %cx 0 0000341F 7505 jne .L9 0 00003421 3B56FC cmpw -4(%bp), %dx 0 00003424 7407 je .L6 80 .L9: 0 00003426 36C706[00] movw $1, %ss:disk_bad 0 0000342A [00]0100 82 .L6: 0 0000342D 368B4464 movw %ss:100(%si), %ax 0 00003431 368B5466 movw %ss:102(%si), %dx 0 00003435 29F8 subw %di, %ax 0 00003437 1B56FC sbbw -4(%bp), %dx 0 0000343A 01C8 addw %cx, %ax 0 0000343C 1356FA adcw -6(%bp), %dx 0 0000343F 36894464 movw %ax, %ss:100(%si) 0 00003443 36895466 movw %dx, %ss:102(%si) 0 00003447 8CDF movw %ds, %di 0 00003449 368909 movw %cx, %ss:(%bx,%di) 0 0000344C 8B46FA movw -6(%bp), %ax 0 0000344F 368987[25] movw %ax, %ss:f+37(%bx) 0 00003453 [00] 0 00003454 FF46F8 incw -8(%bp) 0 00003457 E968FF jmp .L5 97 .size freeDiskMemory, .-freeDiskMemory === Switch to base unknown -> ".RODATA.STR1.1" 98 .section .rodata.str1.1,"aMS",@progbits,1 99 .LC0: 0 00001BAC 546F6F20 .string "Too many /M values" 0 00001BB0 6D616E79 0 00001BB4 202F4D20 0 00001BB8 76616C75 0 00001BBC 657300 101 .LC1: 0 00001BBF 6D61785F .string "max_part_size" 0 00001BC3 70617274 0 00001BC7 5F73697A 0 00001BCB 6500 103 .LC2: 0 00001BCD 546F6F20 .string "Too many sectors per cluster - using larger sectors" 0 00001BD1 6D616E79 0 00001BD5 20736563 0 00001BD9 746F7273 0 00001BDD 20706572 105 .LC3: 0 00001C01 546F6F20 .string "Too many sectors per cluster - using smaller clusters" 0 00001C05 6D616E79 0 00001C09 20736563 0 00001C0D 746F7273 0 00001C11 20706572 107 .LC4: 0 00001C37 43616E20 .string "Can not preserve contents when sector or cluster size change" 0 00001C3B 6E6F7420 0 00001C3F 70726573 0 00001C43 65727665 0 00001C47 20636F6E 109 .LC5: 0 00001C74 4469736B .string "Disk contains data, can not change cluster nor sector size" 0 00001C78 20636F6E 0 00001C7C 7461696E 0 00001C80 73206461 0 00001C84 74612C20 111 .LC6: 0 00001CAF 526F6F74 .string "Root directory has %d entries, can not make it smaller" 0 00001CB3 20646972 0 00001CB7 6563746F 0 00001CBB 72792068 0 00001CBF 61732025 113 .LC7: 0 00001CE6 44656669 .string "Defined cluster size can not support large enough disk" 0 00001CEA 6E656420 0 00001CEE 636C7573 0 00001CF2 74657220 0 00001CF6 73697A65 115 .LC8: 0 00001D1D 53656374 .string "Sector size larger than 512 bytes, may crash DOS" 0 00001D21 6F722073 0 00001D25 697A6520 0 00001D29 6C617267 0 00001D2D 65722074 117 .LC9: 0 00001D4E 43616E20 .string "Can not take use of the last %ld Kbyte(s); size adjusted" 0 00001D52 6E6F7420 0 00001D56 74616B65 0 00001D5A 20757365 0 00001D5E 206F6620 119 .LC10: 0 00001D87 6D61736B .string "mask=%04X dtmask=%04X type=%c old=%04lX new=%04lX\n" 0 00001D8B 3D253034 0 00001D8F 58206474 0 00001D93 6D61736B 0 00001D97 3D253034 === Switch to base unknown -> ".TEXT" 121 .text 122 .global make_newf 123 .type make_newf, @function 124 make_newf: 0 0000345A 56 pushw %si 0 0000345B 57 pushw %di 0 0000345C 06 pushw %es 0 0000345D 55 pushw %bp 0 0000345E 89E5 movw %sp, %bp 0 00003460 83EC20 subw $32, %sp 0 00003463 BB[0000] movw $f, %bx 0 00003466 8B4F5E movw 94(%bx), %cx 0 00003469 BF[0000] movw $newf, %di 0 0000346C 894D5E movw %cx, 94(%di) 0 0000346F C706[7000] movw $1, newf+112 0 00003473 0100 0 00003475 C706[0000] movw $0, changed_format 0 00003479 0000 0 0000347B C746F404 movw $4, -12(%bp) 0 0000347F 00 0 00003480 895EF0 movw %bx, -16(%bp) 0 00003483 B8[2600] movw $newf+38, %ax 0 00003486 8ED8 movw %ax, %ds 141 .L12: 0 00003488 3B4EF4 cmpw -12(%bp), %cx 0 0000348B 7703E9DE jbe .L15 0 0000348F 00 0 00003490 36C706[64] movw $0, %ss:newf+100 0 00003494 [00]0000 0 00003497 36C706[66] movw $0, %ss:newf+102 0 0000349B [00]0000 0 0000349E 36C706[60] movw $0, %ss:newf+96 0 000034A2 [00]0000 0 000034A5 36C706[62] movw $0, %ss:newf+98 0 000034A9 [00]0000 0 000034AC BB1F00 movw $31, %bx 0 000034AF C746E800 movw $0, -24(%bp) 0 000034B3 00 0 000034B4 31C0 xorw %ax, %ax 0 000034B6 8946F4 movw %ax, -12(%bp) 0 000034B9 8946EE movw %ax, -18(%bp) 0 000034BC 8946EC movw %ax, -20(%bp) 0 000034BF 8946E6 movw %ax, -26(%bp) 0 000034C2 8946EA movw %ax, -22(%bp) 0 000034C5 B8[0400] movw $newf+4, %ax 0 000034C8 8EC0 movw %ax, %es 158 .L19: 0 000034CA 897EE4 movw %di, -28(%bp) 0 000034CD 89DE movw %bx, %si 0 000034CF B80D00 movw $13, %ax 0 000034D2 F766EA mulw -22(%bp) 0 000034D5 8CDF movw %ds, %di 0 000034D7 93 xchgw %ax, %bx 0 000034D8 36F64101 testb $1, %ss:1(%bx,%di) 0 000034DC 01 0 000034DD 89F3 movw %si, %bx 0 000034DF 8B7EE4 movw -28(%bp), %di 0 000034E2 7403E96E jne .L16 0 000034E6 01 0 000034E7 8B76F0 movw -16(%bp), %si 0 000034EA 368B00 movw %ss:(%bx,%si), %ax 0 000034ED 368901 movw %ax, %ss:(%bx,%di) 0 000034F0 368B87[02] movw %ss:f+2(%bx), %ax 0 000034F4 [00] 0 000034F5 368987[02] movw %ax, %ss:newf+2(%bx) 0 000034F9 [00] 174 .L17: 0 000034FA 368B01 movw %ss:(%bx,%di), %ax 0 000034FD 368B8F[02] movw %ss:newf+2(%bx), %cx 0 00003501 [00] 0 00003502 0346EE addw -18(%bp), %ax 0 00003505 134EEC adcw -20(%bp), %cx 0 00003508 8946EE movw %ax, -18(%bp) 0 0000350B 894EEC movw %cx, -20(%bp) 0 0000350E BE[0400] movw $f+4, %si 0 00003511 368B00 movw %ss:(%bx,%si), %ax 0 00003514 368B97[06] movw %ss:f+6(%bx), %dx 0 00003518 [00] 0 00003519 8CC6 movw %es, %si 0 0000351B 368900 movw %ax, %ss:(%bx,%si) 0 0000351E 368997[06] movw %dx, %ss:newf+6(%bx) 0 00003522 [00] 0 00003523 0146E8 addw %ax, -24(%bp) 0 00003526 1156F4 adcw %dx, -12(%bp) 0 00003529 FF46EA incw -22(%bp) 0 0000352C 83C30D addw $13, %bx 0 0000352F 837EEA05 cmpw $5, -22(%bp) 0 00003533 7595 jne .L19 0 00003535 8B46EE movw -18(%bp), %ax 0 00003538 36894560 movw %ax, %ss:96(%di) 0 0000353C 36894D62 movw %cx, %ss:98(%di) 0 00003540 8B46E8 movw -24(%bp), %ax 0 00003543 36894564 movw %ax, %ss:100(%di) 0 00003547 8B46F4 movw -12(%bp), %ax 0 0000354A 36894566 movw %ax, %ss:102(%di) 0 0000354E 837EE600 cmpw $0, -26(%bp) 0 00003552 7439 je .L14 0 00003554 36C706[00] movw $64, %ss:changed_format 0 00003558 [00]4000 0 0000355B 36833E[00] cmpw $5, %ss:verbose 0 0000355F [00]05 0 00003561 7E2A jle .L14 0 00003563 B8[1300] movw $.LC1, %ax 0 00003566 50 pushw %ax 0 00003567 16 pushw %ss 0 00003568 1F popw %ds 0 00003569 E8[FEFF] call puts 0 0000356C EB1C jmp .L279 211 .L15: 0 0000356E B80D00 movw $13, %ax 0 00003571 F766F4 mulw -12(%bp) 0 00003574 93 xchgw %ax, %bx 0 00003575 8CDE movw %ds, %si 0 00003577 36F64001 testb $1, %ss:1(%bx,%si) 0 0000357B 01 0 0000357C 7503E9CE je .L13 0 00003580 00 0 00003581 B8[0000] movw $.LC0, %ax 0 00003584 50 pushw %ax 0 00003585 16 pushw %ss 0 00003586 1F popw %ds 0 00003587 E8[FEFF] call error 223 .L279: 0 0000358A 83C402 addw $2, %sp 225 .L14: 0 0000358D BB[0000] movw $change.3337, %bx 0 00003590 8B76F0 movw -16(%bp), %si 0 00003593 36C44404 lesw %ss:4(%si), %ax 0 00003597 36894707 movw %ax, %ss:7(%bx) 0 0000359B 368C4709 movw %es, %ss:9(%bx) 231 .L27: 0 0000359F 36A1[0000] movw %ss:defined_format, %ax 0 000035A3 368507 testw %ss:(%bx), %ax 0 000035A6 7528 jne .L22 0 000035A8 36833E[00] cmpw $0, %ss:use_old_format_f 0 000035AC [00]00 0 000035AE 7503E9C2 je .L23 0 000035B2 00 0 000035B3 368B7705 movw %ss:5(%bx), %si 0 000035B7 368B04 movw %ss:(%si), %ax 0 000035BA 368B4C02 movw %ss:2(%si), %cx 240 .L24: 0 000035BE 368A5702 movb %ss:2(%bx), %dl 0 000035C2 84D2 testb %dl, %dl 0 000035C4 368B7703 movw %ss:3(%bx), %si 0 000035C8 7403E9B3 jne .L25 0 000035CC 00 0 000035CD 368804 movb %al, %ss:(%si) 246 .L22: 0 000035D0 83C30B addw $11, %bx 0 000035D3 81FB[7900] cmpw $change.3337+121, %bx 0 000035D7 72C6 jc .L27 0 000035D9 368B750E movw %ss:14(%di), %si 0 000035DD 368B5D0C movw %ss:12(%di), %bx 0 000035E1 89F0 movw %si, %ax 0 000035E3 31D2 xorw %dx, %dx 0 000035E5 F7F3 divw %bx 0 000035E7 3D8000 cmpw $128, %ax 0 000035EA 7703E90D jbe .L28 0 000035EE 01 0 000035EF 36A0[0000] movb %ss:forced_format, %al 0 000035F3 83E008 andw $8, %ax 0 000035F6 8946EC movw %ax, -20(%bp) 0 000035F9 36A0[0000] movb %ss:defined_format, %al 0 000035FD 83E008 andw $8, %ax 0 00003600 8946EA movw %ax, -22(%bp) 0 00003603 36A0[0000] movb %ss:forced_format, %al 0 00003607 83E004 andw $4, %ax 0 0000360A 8946E8 movw %ax, -24(%bp) 0 0000360D 36A0[0000] movb %ss:defined_format, %al 0 00003611 83E004 andw $4, %ax 0 00003614 8946EE movw %ax, -18(%bp) 0 00003617 895EF4 movw %bx, -12(%bp) 270 .L37: 0 0000361A 837EEC00 cmpw $0, -20(%bp) 0 0000361E 7572 jne .L162 0 00003620 837EEA01 cmpw $1, -22(%bp) 0 00003624 F5 cmc 0 00003625 19D2 sbbw %dx, %dx 0 00003627 83C202 addw $2, %dx 277 .L29: 0 0000362A 817EF4FF cmpw $511, -12(%bp) 0 0000362E 01 0 0000362F 7765 ja .L165 0 00003631 837EE800 cmpw $0, -24(%bp) 0 00003635 755F jne .L165 0 00003637 837EEE01 cmpw $1, -18(%bp) 0 0000363B F5 cmc 0 0000363C 19C0 sbbw %ax, %ax 0 0000363E 83C002 addw $2, %ax 286 .L30: 0 00003641 89D1 movw %dx, %cx 0 00003643 01C1 addw %ax, %cx 0 00003645 85C9 testw %cx, %cx 0 00003647 7551 jne .L31 291 .L289: 0 00003649 B80B00 movw $11, %ax 0 0000364C E9DC06 jmp .L11 294 .L13: 0 0000364F FF4EF4 decw -12(%bp) 0 00003652 E933FE jmp .L12 297 .L16: 0 00003655 368B01 movw %ss:(%bx,%di), %ax 0 00003658 8B76F0 movw -16(%bp), %si 0 0000365B 363B00 cmpw %ss:(%bx,%si), %ax 0 0000365E 750F jne .L182 0 00003660 368B87[02] movw %ss:newf+2(%bx), %ax 0 00003664 [00] 0 00003665 363B87[02] cmpw %ss:f+2(%bx), %ax 0 00003669 [00] 0 0000366A 7503E98B je .L17 0 0000366E FE 305 .L182: 0 0000366F FF46E6 incw -26(%bp) 0 00003672 E985FE jmp .L17 308 .L23: 0 00003675 368B4707 movw %ss:7(%bx), %ax 0 00003679 368B4F09 movw %ss:9(%bx), %cx 0 0000367D E93EFF jmp .L24 312 .L25: 0 00003680 368904 movw %ax, %ss:(%si) 0 00003683 80FA02 cmpb $2, %dl 0 00003686 7403E945 jne .L22 0 0000368A FF 0 0000368B 36894C02 movw %cx, %ss:2(%si) 0 0000368F E93EFF jmp .L22 318 .L162: 0 00003692 31D2 xorw %dx, %dx 0 00003694 EB94 jmp .L29 321 .L165: 0 00003696 31C0 xorw %ax, %ax 0 00003698 EBA7 jmp .L30 324 .L31: 0 0000369A 85C0 testw %ax, %ax 0 0000369C 7503E9AF je .L33 0 000036A0 00 0 000036A1 39C2 cmpw %ax, %dx 0 000036A3 7603E9A8 ja .L33 0 000036A7 00 0 000036A8 89F0 movw %si, %ax 0 000036AA B107 movb $7, %cl 0 000036AC D3E8 shrw %cl, %ax 0 000036AE 8946F4 movw %ax, -12(%bp) 333 .L35: 0 000036B1 89F0 movw %si, %ax 0 000036B3 31D2 xorw %dx, %dx 0 000036B5 F776F4 divw -12(%bp) 0 000036B8 3D8000 cmpw $128, %ax 0 000036BB 7603E95A ja .L37 0 000036BF FF 0 000036C0 395EF4 cmpw %bx, -12(%bp) 0 000036C3 7412 je .L38 0 000036C5 837EEE01 cmpw $1, -18(%bp) 0 000036C9 720C jc .L38 0 000036CB B8[2100] movw $.LC2, %ax 0 000036CE 50 pushw %ax 0 000036CF 16 pushw %ss 0 000036D0 1F popw %ds 0 000036D1 E8[FEFF] call warning 0 000036D4 83C402 addw $2, %sp 349 .L38: 0 000036D7 36F606[00] testb $8, %ss:defined_format 0 000036DB [00]08 0 000036DD 7412 je .L39 0 000036DF 363B750E cmpw %ss:14(%di), %si 0 000036E3 740C je .L39 0 000036E5 B8[5500] movw $.LC3, %ax 0 000036E8 50 pushw %ax 0 000036E9 16 pushw %ss 0 000036EA 1F popw %ds 0 000036EB E8[FEFF] call warning 0 000036EE 83C402 addw $2, %sp 360 .L39: 0 000036F1 3689750E movw %si, %ss:14(%di) 0 000036F5 8B46F4 movw -12(%bp), %ax 0 000036F8 3689450C movw %ax, %ss:12(%di) 364 .L28: 0 000036FC 36833E[00] cmpw $0, %ss:defined_format 0 00003700 [00]00 0 00003702 7D05 jge .L40 0 00003704 16 pushw %ss 0 00003705 1F popw %ds 0 00003706 E8A8FC call freeDiskMemory 370 .L40: 0 00003709 16 pushw %ss 0 0000370A 1F popw %ds 0 0000370B E8[FEFF] call count_root 0 0000370E A3[0000] movw %ax, root_files 0 00003711 36833E[00] cmpw $0, %ss:data_on_disk 0 00003715 [00]00 0 00003717 7503E985 je .L42 0 0000371B 00 0 0000371C 8B450C movw 12(%di), %ax 0 0000371F 8B5EF0 movw -16(%bp), %bx 0 00003722 363B470C cmpw %ss:12(%bx), %ax 0 00003726 7509 jne .L43 0 00003728 8B450E movw 14(%di), %ax 0 0000372B 363B470E cmpw %ss:14(%bx), %ax 0 0000372F 7451 je .L44 384 .L43: 0 00003731 36F606[00] testb $12, %ss:forced_format 0 00003735 [00]0C 0 00003737 742A je .L45 0 00003739 B8[8B00] movw $.LC4, %ax 0 0000373C 50 pushw %ax 0 0000373D E8[FEFF] call warning 0 00003740 E8[FEFF] call licence_to_kill 0 00003743 83C402 addw $2, %sp 0 00003746 85C0 testw %ax, %ax 0 00003748 7538 jne .L44 0 0000374A B80100 movw $1, %ax 0 0000374D E9DB05 jmp .L11 396 .L33: 0 00003750 85D2 testw %dx, %dx 0 00003752 7503E9F2 je .L289 0 00003756 FE 0 00003757 39C2 cmpw %ax, %dx 0 00003759 7303E9EB jc .L289 0 0000375D FE 0 0000375E D1EE shrw $1, %si 0 00003760 E94EFF jmp .L35 403 .L45: 0 00003763 36F606[00] testb $12, %ss:defined_format 0 00003767 [00]0C 0 00003769 740A je .L47 0 0000376B B8[C800] movw $.LC5, %ax 0 0000376E 50 pushw %ax 0 0000376F E8[FEFF] call warning 0 00003772 83C402 addw $2, %sp 410 .L47: 0 00003775 8B5EF0 movw -16(%bp), %bx 0 00003778 36C4470C lesw %ss:12(%bx), %ax 0 0000377C 89450C movw %ax, 12(%di) 0 0000377F 8C450E movw %es, 14(%di) 415 .L44: 0 00003782 A1[0000] movw root_files, %ax 0 00003785 36394512 cmpw %ax, %ss:18(%di) 0 00003789 7316 jnc .L42 0 0000378B 894512 movw %ax, 18(%di) 0 0000378E 36F606[00] testb $16, %ss:defined_format 0 00003792 [00]10 0 00003794 740B je .L42 0 00003796 50 pushw %ax 0 00003797 B8[0301] movw $.LC6, %ax 0 0000379A 50 pushw %ax 0 0000379B E8[FEFF] call warning 0 0000379E 83C404 addw $4, %sp 427 .L42: 0 000037A1 8B1E[0000] movw defined_format, %bx 0 000037A5 F6C718 testb $24, %bh 0 000037A8 7503E9D6 je .L49 0 000037AC 05 0 000037AD 36833E[00] cmpw $0, %ss:data_on_disk 0 000037B1 [00]00 0 000037B3 B80000 movw $0, %ax 0 000037B6 8EC0 movw %ax, %es 0 000037B8 B106 movb $6, %cl 0 000037BA 7503E9D3 je .L50 0 000037BE 00 0 000037BF 895EEE movw %bx, -18(%bp) 0 000037C2 8B5508 movw 8(%di), %dx 0 000037C5 89D6 movw %dx, %si 0 000037C7 D3EE shrw %cl, %si 0 000037C9 B10A movb $10, %cl 0 000037CB 8B450A movw 10(%di), %ax 0 000037CE D3E0 shlw %cl, %ax 0 000037D0 09F0 orw %si, %ax 0 000037D2 D3E2 shlw %cl, %dx 0 000037D4 06 pushw %es 0 000037D5 36FF750E pushw %ss:14(%di) 0 000037D9 50 pushw %ax 0 000037DA 52 pushw %dx 0 000037DB E8[FEFF] call __udivsi3 0 000037DE 83C408 addw $8, %sp 0 000037E1 8946F4 movw %ax, -12(%bp) 0 000037E4 89D6 movw %dx, %si 0 000037E6 8B5EEE movw -18(%bp), %bx 0 000037E9 F6C708 testb $8, %bh 0 000037EC 7419 je .L51 0 000037EE FF76F0 pushw -16(%bp) 0 000037F1 E8[FEFF] call FAT_open 0 000037F4 E8[FEFF] call FAT_stats 0 000037F7 E8[FEFF] call FAT_close 0 000037FA A1[0200] movw fatstat+2, %ax 0 000037FD 8CC2 movw %es, %dx 0 000037FF 0146F4 addw %ax, -12(%bp) 0 00003802 11D6 adcw %dx, %si 0 00003804 83C402 addw $2, %sp 465 .L51: 0 00003807 8B450A movw 10(%di), %ax 0 0000380A 360B4508 orw %ss:8(%di), %ax 0 0000380E 750E jne .L52 0 00003810 36F606[00] testb $16, %ss:forced_format 0 00003814 [00]10 0 00003816 7506 jne .L52 0 00003818 A1[0000] movw root_files, %ax 0 0000381B 894512 movw %ax, 18(%di) 473 .L52: 0 0000381E 8B46F4 movw -12(%bp), %ax 0 00003821 09F0 orw %si, %ax 0 00003823 85C0 testw %ax, %ax 0 00003825 7503E991 je .L62 0 00003829 00 0 0000382A A0[0000] movb defined_format, %al 0 0000382D 83E008 andw $8, %ax 0 00003830 8946F0 movw %ax, -16(%bp) 0 00003833 8E1E[0000] movw data_on_disk, %ds 0 00003837 368B5D0E movw %ss:14(%di), %bx 0 0000383B 30C0 xorb %al, %al 0 0000383D B501 movb $1, %ch 0 0000383F 88C1 movb %al, %cl 486 .L64: 0 00003841 8B56F4 movw -12(%bp), %dx 0 00003844 81C211F0 addw $-4079, %dx 0 00003848 8956EE movw %dx, -18(%bp) 0 0000384B 89F2 movw %si, %dx 0 0000384D 83D2FF adcw $-1, %dx 0 00003850 88EC movb %ch, %ah 0 00003852 85D2 testw %dx, %dx 0 00003854 7506 jne .L77 0 00003856 837EEE08 cmpw $8, -18(%bp) 0 0000385A 7602 jbe .L76 497 .L77: 0 0000385C 88CC movb %cl, %ah 499 .L76: 0 0000385E 88EA movb %ch, %dl 0 00003860 85F6 testw %si, %si 0 00003862 7508 jne .L78 0 00003864 837EF4EE cmpw $-18, -12(%bp) 0 00003868 7702 ja .L78 0 0000386A 88CA movb %cl, %dl 506 .L78: 0 0000386C 08D4 orb %dl, %ah 0 0000386E 7403E914 jne .L80 0 00003872 03 0 00003873 84C0 testb %al, %al 0 00003875 7404 je .L81 0 00003877 36895D0E movw %bx, %ss:14(%di) 512 .L81: 0 0000387B 85F6 testw %si, %si 0 0000387D 7403E924 jne .L285 0 00003881 03 0 00003882 817EF4F7 cmpw $4087, -12(%bp) 0 00003886 0F 0 00003887 7603E91A ja .L285 0 0000388B 03 0 0000388C B80C00 movw $12, %ax 0 0000388F E91703 jmp .L68 519 .L50: 0 00003892 8B7508 movw 8(%di), %si 0 00003895 8B450A movw 10(%di), %ax 0 00003898 8946F4 movw %ax, -12(%bp) 0 0000389B F6C308 testb $8, %bl 0 0000389E 7503E958 je .L53 0 000038A2 02 0 000038A3 8B450E movw 14(%di), %ax 526 .L54: 0 000038A6 8B550C movw 12(%di), %dx 0 000038A9 39C2 cmpw %ax, %dx 0 000038AB 7301 jnc .L59 0 000038AD 92 xchgw %ax, %dx 531 .L59: 0 000038AE 89550E movw %dx, 14(%di) 0 000038B1 8B46F4 movw -12(%bp), %ax 0 000038B4 09F0 orw %si, %ax 0 000038B6 7403E9A9 jne .L60 0 000038BA 02 536 .L62: 0 000038BB C706[0400] movw $0, newf+4 0 000038BF 0000 0 000038C1 C706[0600] movw $0, newf+6 0 000038C5 0000 539 .L61: 0 000038C7 C706[8C00] movw $12, newf+140 0 000038CB 0C00 0 000038CD 36C44504 lesw %ss:4(%di), %ax 0 000038D1 8946F4 movw %ax, -12(%bp) 0 000038D4 8C46EC movw %es, -20(%bp) 0 000038D7 8B46F4 movw -12(%bp), %ax 0 000038DA B106 movb $6, %cl 0 000038DC D3E8 shrw %cl, %ax 0 000038DE B10A movb $10, %cl 0 000038E0 8B56EC movw -20(%bp), %dx 0 000038E3 D3E2 shlw %cl, %dx 0 000038E5 8956EA movw %dx, -22(%bp) 0 000038E8 0946EA orw %ax, -22(%bp) 0 000038EB 8B46F4 movw -12(%bp), %ax 0 000038EE D3E0 shlw %cl, %ax 0 000038F0 8946E2 movw %ax, -30(%bp) 0 000038F3 A1[0000] movw data_on_disk, %ax 0 000038F6 8946F0 movw %ax, -16(%bp) 0 000038F9 A1[0000] movw forced_format, %ax 0 000038FC 8946EE movw %ax, -18(%bp) 0 000038FF 83E004 andw $4, %ax 0 00003902 8946E4 movw %ax, -28(%bp) 0 00003905 8B750C movw 12(%di), %si 0 00003908 36C41E[00] lesw %ss:conf, %bx 0 0000390C [00] 0 0000390D 26F64701 testb $4, %es:1(%bx) 0 00003911 04 0 00003912 B80000 movw $0, %ax 0 00003915 8EC0 movw %ax, %es 0 00003917 7503E94F je .L100 0 0000391B 05 0 0000391C C746E8FF movw $-1, -24(%bp) 0 00003920 FF 0 00003921 C746E67F movw $127, -26(%bp) 0 00003925 00 569 .L101: 0 00003926 30C9 xorb %cl, %cl 571 .L102: 0 00003928 884EE1 movb %cl, -31(%bp) 0 0000392B 06 pushw %es 0 0000392C 56 pushw %si 0 0000392D FF76EA pushw -22(%bp) 0 00003930 FF76E2 pushw -30(%bp) 0 00003933 E8[FEFF] call __udivsi3 0 00003936 83C408 addw $8, %sp 0 00003939 3B56E6 cmpw -26(%bp), %dx 0 0000393C 8A4EE1 movb -31(%bp), %cl 0 0000393F 7603E932 ja .L107 0 00003943 05 0 00003944 7508 jne .L191 0 00003946 3B46E8 cmpw -24(%bp), %ax 0 00003949 7603E928 ja .L107 0 0000394D 05 585 .L191: 0 0000394E 894574 movw %ax, 116(%di) 0 00003951 895576 movw %dx, 118(%di) 0 00003954 84C9 testb %cl, %cl 0 00003956 7403 je .L109 0 00003958 89750C movw %si, 12(%di) 591 .L109: 0 0000395B 3639750E cmpw %si, %ss:14(%di) 0 0000395F 7315 jnc .L110 0 00003961 837EF000 cmpw $0, -16(%bp) 0 00003965 7403E9DF jne .L289 0 00003969 FC 0 0000396A F646EE08 testb $8, -18(%bp) 0 0000396E 7403E9D6 jne .L289 0 00003972 FC 0 00003973 89750E movw %si, 14(%di) 599 .L110: 0 00003976 36F606[00] testb $16, %ss:defined_format 0 0000397A [00]10 0 0000397C 7539 jne .L111 0 0000397E 837EEC00 cmpw $0, -20(%bp) 0 00003982 7403E915 jne .L176 0 00003986 05 0 00003987 817EF400 cmpw $8192, -12(%bp) 0 0000398B 20 0 0000398C 7603E90B ja .L176 0 00003990 05 0 00003991 8B5EF4 movw -12(%bp), %bx 0 00003994 B104 movb $4, %cl 0 00003996 D3EB shrw %cl, %bx 0 00003998 895EF4 movw %bx, -12(%bp) 0 0000399B B105 movb $5, %cl 0 0000399D D3EE shrw %cl, %si 0 0000399F 93 xchgw %ax, %bx 0 000039A0 31D2 xorw %dx, %dx 0 000039A2 F7F6 divw %si 0 000039A4 8B46F4 movw -12(%bp), %ax 0 000039A7 01F0 addw %si, %ax 0 000039A9 29D0 subw %dx, %ax 0 000039AB 92 xchgw %ax, %dx 619 .L112: 0 000039AC A1[0000] movw root_files, %ax 0 000039AF 39D0 cmpw %dx, %ax 0 000039B1 7301 jnc .L114 0 000039B3 92 xchgw %ax, %dx 624 .L114: 0 000039B4 894512 movw %ax, 18(%di) 626 .L111: 0 000039B7 E8CFF9 call fix_dir_sectors 0 000039BA C746E800 movw $0, -24(%bp) 0 000039BE 00 0 000039BF 31C0 xorw %ax, %ax 0 000039C1 8946F0 movw %ax, -16(%bp) 0 000039C4 8946EC movw %ax, -20(%bp) 632 .L115: 0 000039C7 8B557A movw 122(%di), %dx 0 000039CA 36035570 addw %ss:112(%di), %dx 0 000039CE 89557E movw %dx, 126(%di) 0 000039D1 8B7574 movw 116(%di), %si 0 000039D4 8B4576 movw 118(%di), %ax 0 000039D7 31C9 xorw %cx, %cx 0 000039D9 39C1 cmpw %ax, %cx 0 000039DB 7507 jne .L193 0 000039DD 39F2 cmpw %si, %dx 0 000039DF 7603E9BE ja .L177 0 000039E3 04 643 .L193: 0 000039E4 29D6 subw %dx, %si 0 000039E6 8976F4 movw %si, -12(%bp) 0 000039E9 19C8 sbbw %cx, %ax 0 000039EB 8946EE movw %ax, -18(%bp) 648 .L116: 0 000039EE 8B46F4 movw -12(%bp), %ax 0 000039F1 A3[8000] movw %ax, newf+128 0 000039F4 8B46EE movw -18(%bp), %ax 0 000039F7 A3[8200] movw %ax, newf+130 0 000039FA 8B450E movw 14(%di), %ax 0 000039FD 31D2 xorw %dx, %dx 0 000039FF 36F7750C divw %ss:12(%di) 0 00003A03 8946EA movw %ax, -22(%bp) 0 00003A06 A3[8800] movw %ax, newf+136 0 00003A09 A1[8C00] movw newf+140, %ax 0 00003A0C 36F76510 mulw %ss:16(%di) 0 00003A10 31F6 xorw %si, %si 0 00003A12 8B550E movw 14(%di), %dx 0 00003A15 89F1 movw %si, %cx 0 00003A17 D1E2 shlw %dx 0 00003A19 D1D1 rclw %cx 0 00003A1B D1E2 shlw %dx 0 00003A1D D1D1 rclw %cx 0 00003A1F D1E2 shlw %dx 0 00003A21 D1D1 rclw %cx 0 00003A23 8956E6 movw %dx, -26(%bp) 0 00003A26 89CB movw %cx, %bx 0 00003A28 01D0 addw %dx, %ax 0 00003A2A 11F3 adcw %si, %bx 0 00003A2C 53 pushw %bx 0 00003A2D 50 pushw %ax 0 00003A2E 8B46EA movw -22(%bp), %ax 0 00003A31 D1E0 shlw $1, %ax 0 00003A33 89F1 movw %si, %cx 0 00003A35 8B5EF4 movw -12(%bp), %bx 0 00003A38 01C3 addw %ax, %bx 0 00003A3A 134EEE adcw -18(%bp), %cx 0 00003A3D 91 xchgw %ax, %cx 0 00003A3E 36F726[8C] mulw %ss:newf+140 0 00003A42 [00] 0 00003A43 91 xchgw %ax, %cx 0 00003A44 93 xchgw %ax, %bx 0 00003A45 36F726[8C] mulw %ss:newf+140 0 00003A49 [00] 0 00003A4A 01D1 addw %dx, %cx 0 00003A4C 51 pushw %cx 0 00003A4D 50 pushw %ax 0 00003A4E 8D46F8 leaw -8(%bp), %ax 0 00003A51 50 pushw %ax 0 00003A52 E8[FEFF] call ldiv 0 00003A55 8B56F8 movw -8(%bp), %dx 0 00003A58 8B4EFA movw -6(%bp), %cx 0 00003A5B 8B46FC movw -4(%bp), %ax 0 00003A5E 8B5EFE movw -2(%bp), %bx 0 00003A61 09D8 orw %bx, %ax 0 00003A63 83C40A addw $10, %sp 0 00003A66 83F801 cmpw $1, %ax 0 00003A69 18C0 sbbb %al, %al 0 00003A6B FEC0 incb %al 0 00003A6D 30E4 xorb %ah, %ah 0 00003A6F 89F3 movw %si, %bx 0 00003A71 01D0 addw %dx, %ax 0 00003A73 11F1 adcw %si, %cx 0 00003A75 39F1 cmpw %si, %cx 0 00003A77 7E03E92F jg .L194 0 00003A7B 04 0 00003A7C 894572 movw %ax, 114(%di) 0 00003A7F 36F76510 mulw %ss:16(%di) 0 00003A83 894578 movw %ax, 120(%di) 0 00003A86 3601457E addw %ax, %ss:126(%di) 0 00003A8A 8B16[8000] movw newf+128, %dx 0 00003A8E 8B0E[8200] movw newf+130, %cx 0 00003A92 39CE cmpw %cx, %si 0 00003A94 7403E939 jne .L123 0 00003A98 04 0 00003A99 39D0 cmpw %dx, %ax 0 00003A9B 7703E932 jbe .L123 0 00003A9F 04 0 00003AA0 89F2 movw %si, %dx 0 00003AA2 89F1 movw %si, %cx 719 .L125: 0 00003AA4 8916[8000] movw %dx, newf+128 0 00003AA8 890E[8200] movw %cx, newf+130 0 00003AAC 06 pushw %es 0 00003AAD 36FF36[88] pushw %ss:newf+136 0 00003AB1 [00] 0 00003AB2 51 pushw %cx 0 00003AB3 52 pushw %dx 0 00003AB4 E8[FEFF] call __udivsi3 0 00003AB7 83C408 addw $8, %sp 0 00003ABA 8946F4 movw %ax, -12(%bp) 0 00003ABD 89D6 movw %dx, %si 0 00003ABF A1[8C00] movw newf+140, %ax 0 00003AC2 83F80F cmpw $15, %ax 0 00003AC5 7603E914 ja .L127 0 00003AC9 04 0 00003ACA 85D2 testw %dx, %dx 0 00003ACC 750A jne .L196 0 00003ACE 817EF4EE cmpw $4078, -12(%bp) 0 00003AD2 0F 0 00003AD3 7703E901 jbe .L277 0 00003AD7 04 737 .L196: 0 00003AD8 837EF000 cmpw $0, -16(%bp) 0 00003ADC 7514 jne .L197 0 00003ADE 817EE8F7 cmpw $4087, -24(%bp) 0 00003AE2 0F 0 00003AE3 770D ja .L197 0 00003AE5 8A56EC movb -20(%bp), %dl 0 00003AE8 80E201 andb $1, %dl 0 00003AEB 84D2 testb %dl, %dl 0 00003AED 7403E97F jne .L130 0 00003AF1 06 746 .L197: 0 00003AF2 C706[8C00] movw $16, newf+140 0 00003AF6 1000 0 00003AF8 E9CCFE jmp .L115 749 .L53: 0 00003AFB 89F2 movw %si, %dx 0 00003AFD D3EA shrw %cl, %dx 0 00003AFF B10A movb $10, %cl 0 00003B01 8B46F4 movw -12(%bp), %ax 0 00003B04 D3E0 shlw %cl, %ax 0 00003B06 09D0 orw %dx, %ax 0 00003B08 89F2 movw %si, %dx 0 00003B0A D3E2 shlw %cl, %dx 0 00003B0C 06 pushw %es 0 00003B0D 36FF750C pushw %ss:12(%di) 0 00003B11 50 pushw %ax 0 00003B12 52 pushw %dx 0 00003B13 E8[FEFF] call __udivsi3 0 00003B16 83C408 addw $8, %sp 0 00003B19 85D2 testw %dx, %dx 0 00003B1B 750B jne .L183 0 00003B1D 3D60EA cmpw $-5536, %ax 0 00003B20 7712 ja .L169 0 00003B22 B80002 movw $512, %ax 0 00003B25 E97EFD jmp .L54 770 .L183: 0 00003B28 83FA01 cmpw $1, %dx 0 00003B2B 770D ja .L184 0 00003B2D 7505 jne .L169 0 00003B2F 3DC0D4 cmpw $-11072, %ax 0 00003B32 7712 ja .L170 776 .L169: 0 00003B34 B80004 movw $1024, %ax 0 00003B37 E96CFD jmp .L54 779 .L184: 0 00003B3A 83FA03 cmpw $3, %dx 0 00003B3D 770D ja .L185 0 00003B3F 7505 jne .L170 0 00003B41 3D80A9 cmpw $-22144, %ax 0 00003B44 7718 ja .L171 785 .L170: 0 00003B46 B80008 movw $2048, %ax 0 00003B49 E95AFD jmp .L54 788 .L185: 0 00003B4C 83FA07 cmpw $7, %dx 0 00003B4F 7707 ja .L186 0 00003B51 750B jne .L171 0 00003B53 3D0053 cmpw $21248, %ax 0 00003B56 7606 jbe .L171 794 .L186: 0 00003B58 B80020 movw $8192, %ax 0 00003B5B E948FD jmp .L54 797 .L171: 0 00003B5E B80010 movw $4096, %ax 0 00003B61 E942FD jmp .L54 800 .L60: 0 00003B64 89F0 movw %si, %ax 0 00003B66 B106 movb $6, %cl 0 00003B68 D3E8 shrw %cl, %ax 0 00003B6A B10A movb $10, %cl 0 00003B6C 8B5EF4 movw -12(%bp), %bx 0 00003B6F D3E3 shlw %cl, %bx 0 00003B71 09C3 orw %ax, %bx 0 00003B73 D3E6 shlw %cl, %si 0 00003B75 06 pushw %es 0 00003B76 52 pushw %dx 0 00003B77 53 pushw %bx 0 00003B78 56 pushw %si 0 00003B79 E8[FEFF] call __udivsi3 0 00003B7C 83C408 addw $8, %sp 0 00003B7F 8946F4 movw %ax, -12(%bp) 0 00003B82 89D6 movw %dx, %si 0 00003B84 E997FC jmp .L52 818 .L80: 0 00003B87 85F6 testw %si, %si 0 00003B89 7403E9A6 jne .L65 0 00003B8D 01 0 00003B8E 837EF4EE cmpw $-18, -12(%bp) 0 00003B92 7603E99D ja .L65 0 00003B96 01 0 00003B97 84C0 testb %al, %al 0 00003B99 7404 je .L67 0 00003B9B 36895D0E movw %bx, %ss:14(%di) 826 .L67: 0 00003B9F C746F4F8 movw $4088, -12(%bp) 0 00003BA3 0F 828 .L284: 0 00003BA4 31F6 xorw %si, %si 830 .L285: 0 00003BA6 B81000 movw $16, %ax 832 .L68: 0 00003BA9 36A3[8C00] movw %ax, %ss:newf+140 0 00003BAD 36F606[00] testb $16, %ss:defined_format 0 00003BB1 [00]10 0 00003BB3 7575 jne .L83 0 00003BB5 368B5D0C movw %ss:12(%di), %bx 0 00003BB9 368B4D0E movw %ss:14(%di), %cx 0 00003BBD 89C8 movw %cx, %ax 0 00003BBF F7E6 mulw %si 0 00003BC1 8946EE movw %ax, -18(%bp) 0 00003BC4 91 xchgw %ax, %cx 0 00003BC5 F766F4 mulw -12(%bp) 0 00003BC8 8946F0 movw %ax, -16(%bp) 0 00003BCB 8956F2 movw %dx, -14(%bp) 0 00003BCE 8B46EE movw -18(%bp), %ax 0 00003BD1 0146F2 addw %ax, -14(%bp) 0 00003BD4 8B46F2 movw -14(%bp), %ax 0 00003BD7 B106 movb $6, %cl 0 00003BD9 D3E0 shlw %cl, %ax 0 00003BDB 8B56F0 movw -16(%bp), %dx 0 00003BDE B10A movb $10, %cl 0 00003BE0 D3EA shrw %cl, %dx 0 00003BE2 09C2 orw %ax, %dx 0 00003BE4 8B46F2 movw -14(%bp), %ax 0 00003BE7 D3E8 shrw %cl, %ax 0 00003BE9 7403E987 jne .L173 0 00003BED 01 0 00003BEE 81FA0020 cmpw $8192, %dx 0 00003BF2 7603E97E ja .L173 0 00003BF6 01 0 00003BF7 8B56F2 movw -14(%bp), %dx 0 00003BFA B102 movb $2, %cl 0 00003BFC D3E2 shlw %cl, %dx 0 00003BFE B10E movb $14, %cl 0 00003C00 8B46F0 movw -16(%bp), %ax 0 00003C03 D3E8 shrw %cl, %ax 0 00003C05 8946F0 movw %ax, -16(%bp) 0 00003C08 0956F0 orw %dx, -16(%bp) 0 00003C0B B105 movb $5, %cl 0 00003C0D D3EB shrw %cl, %bx 0 00003C0F 8B46F0 movw -16(%bp), %ax 0 00003C12 31D2 xorw %dx, %dx 0 00003C14 F7F3 divw %bx 0 00003C16 8B4EF0 movw -16(%bp), %cx 0 00003C19 01D9 addw %bx, %cx 0 00003C1B 29D1 subw %dx, %cx 875 .L84: 0 00003C1D 36A1[0000] movw %ss:root_files, %ax 0 00003C21 39C8 cmpw %cx, %ax 0 00003C23 7301 jnc .L86 0 00003C25 91 xchgw %ax, %cx 880 .L86: 0 00003C26 36894512 movw %ax, %ss:18(%di) 882 .L83: 0 00003C2A 16 pushw %ss 0 00003C2B 1F popw %ds 0 00003C2C E85AF7 call fix_dir_sectors 0 00003C2F 8B46F4 movw -12(%bp), %ax 0 00003C32 83C002 addw $2, %ax 0 00003C35 8946F0 movw %ax, -16(%bp) 0 00003C38 89F1 movw %si, %cx 0 00003C3A 83D100 adcw $0, %cx 0 00003C3D 8B1E[8C00] movw newf+140, %bx 0 00003C41 91 xchgw %ax, %cx 0 00003C42 F7E3 mulw %bx 0 00003C44 91 xchgw %ax, %cx 0 00003C45 8B46F0 movw -16(%bp), %ax 0 00003C48 F7E3 mulw %bx 0 00003C4A 01CA addw %cx, %dx 0 00003C4C 91 xchgw %ax, %cx 0 00003C4D 83C107 addw $7, %cx 0 00003C50 89D3 movw %dx, %bx 0 00003C52 83D300 adcw $0, %bx 0 00003C55 8B450C movw 12(%di), %ax 0 00003C58 8946EC movw %ax, -20(%bp) 0 00003C5B 8C46EE movw %es, -18(%bp) 0 00003C5E 92 xchgw %ax, %dx 0 00003C5F 83C2FF addw $-1, %dx 0 00003C62 8CC0 movw %es, %ax 0 00003C64 83D0FF adcw $-1, %ax 0 00003C67 8946EA movw %ax, -22(%bp) 0 00003C6A D1EB shrw %bx 0 00003C6C 91 xchgw %ax, %cx 0 00003C6D D1D8 rcrw %ax 0 00003C6F D1EB shrw %bx 0 00003C71 D1D8 rcrw %ax 0 00003C73 D1EB shrw %bx 0 00003C75 D1D8 rcrw %ax 0 00003C77 8946F0 movw %ax, -16(%bp) 0 00003C7A 89D9 movw %bx, %cx 0 00003C7C 01C2 addw %ax, %dx 0 00003C7E 134EEA adcw -22(%bp), %cx 0 00003C81 06 pushw %es 0 00003C82 FF76EC pushw -20(%bp) 0 00003C85 51 pushw %cx 0 00003C86 52 pushw %dx 0 00003C87 E8[FEFF] call __udivsi3 0 00003C8A 83C408 addw $8, %sp 0 00003C8D 894572 movw %ax, 114(%di) 0 00003C90 36F76510 mulw %ss:16(%di) 0 00003C94 894578 movw %ax, 120(%di) 0 00003C97 8B5D7A movw 122(%di), %bx 0 00003C9A 36035D70 addw %ss:112(%di), %bx 0 00003C9E 01C3 addw %ax, %bx 0 00003CA0 895EEA movw %bx, -22(%bp) 0 00003CA3 895D7E movw %bx, 126(%di) 0 00003CA6 8B450E movw 14(%di), %ax 0 00003CA9 31D2 xorw %dx, %dx 0 00003CAB F776EC divw -20(%bp) 0 00003CAE 89C3 movw %ax, %bx 0 00003CB0 A3[8800] movw %ax, newf+136 0 00003CB3 F7E6 mulw %si 0 00003CB5 91 xchgw %ax, %cx 0 00003CB6 93 xchgw %ax, %bx 0 00003CB7 F766F4 mulw -12(%bp) 0 00003CBA 01D1 addw %dx, %cx 0 00003CBC 894EF2 movw %cx, -14(%bp) 0 00003CBF A3[8000] movw %ax, newf+128 0 00003CC2 890E[8200] movw %cx, newf+130 0 00003CC6 8B5EEA movw -22(%bp), %bx 0 00003CC9 8CC1 movw %es, %cx 0 00003CCB 01C3 addw %ax, %bx 0 00003CCD 134EF2 adcw -14(%bp), %cx 0 00003CD0 894EF0 movw %cx, -16(%bp) 0 00003CD3 895D74 movw %bx, 116(%di) 0 00003CD6 894D76 movw %cx, 118(%di) 0 00003CD9 B80004 movw $1024, %ax 0 00003CDC 31D2 xorw %dx, %dx 0 00003CDE F776EC divw -20(%bp) 0 00003CE1 89C1 movw %ax, %cx 0 00003CE3 8CC2 movw %es, %dx 0 00003CE5 83C0FF addw $-1, %ax 0 00003CE8 83D2FF adcw $-1, %dx 0 00003CEB 01D8 addw %bx, %ax 0 00003CED 895EEC movw %bx, -20(%bp) 0 00003CF0 1356F0 adcw -16(%bp), %dx 0 00003CF3 06 pushw %es 0 00003CF4 51 pushw %cx 0 00003CF5 52 pushw %dx 0 00003CF6 50 pushw %ax 0 00003CF7 E8[FEFF] call __udivsi3 0 00003CFA 83C408 addw $8, %sp 0 00003CFD 894504 movw %ax, 4(%di) 0 00003D00 895506 movw %dx, 6(%di) 0 00003D03 36C41E[00] lesw %ss:conf, %bx 0 00003D07 [00] 0 00003D08 26F64701 testb $4, %es:1(%bx) 0 00003D0C 04 0 00003D0D 8B5EEC movw -20(%bp), %bx 0 00003D10 7569 jne .L174 0 00003D12 B8FEFF movw $-2, %ax 0 00003D15 31D2 xorw %dx, %dx 979 .L87: 0 00003D17 3956F0 cmpw %dx, -16(%bp) 0 00003D1A 770C ja .L157 0 00003D1C 7403E914 jne .L88 0 00003D20 02 0 00003D21 39C3 cmpw %ax, %bx 0 00003D23 7703E90D jbe .L88 0 00003D27 02 985 .L157: 0 00003D28 B80C00 movw $12, %ax 987 .L11: 0 00003D2B 89EC movw %bp, %sp 0 00003D2D 5D popw %bp 0 00003D2E 07 popw %es 0 00003D2F 5F popw %di 0 00003D30 5E popw %si 0 00003D31 16 pushw %ss 0 00003D32 1F popw %ds 0 00003D33 C3 ret 996 .L65: 0 00003D34 837EF000 cmpw $0, -16(%bp) 0 00003D38 741C je .L69 999 .L283: 0 00003D3A 84C0 testb %al, %al 0 00003D3C 7404 je .L73 0 00003D3E 36895D0E movw %bx, %ss:14(%di) 1003 .L73: 0 00003D42 B8[3A01] movw $.LC7, %ax 0 00003D45 50 pushw %ax 0 00003D46 16 pushw %ss 0 00003D47 1F popw %ds 0 00003D48 E8[FEFF] call warning 0 00003D4B 83C402 addw $2, %sp 0 00003D4E C746F4EE movw $-18, -12(%bp) 0 00003D52 FF 0 00003D53 E94EFE jmp .L284 1012 .L69: 0 00003D56 8CDA movw %ds, %dx 0 00003D58 85D2 testw %dx, %dx 0 00003D5A 75DE jne .L283 0 00003D5C D1E3 shlw $1, %bx 0 00003D5E F646F401 testb $1, -12(%bp) 0 00003D62 7407 je .L74 0 00003D64 8346F401 addw $1, -12(%bp) 0 00003D68 83D600 adcw $0, %si 1021 .L74: 0 00003D6B D1EE shrw %si 0 00003D6D D15EF4 rcrw -12(%bp) 0 00003D70 88E0 movb %ah, %al 0 00003D72 E9CCFA jmp .L64 1026 .L173: 0 00003D75 B90002 movw $512, %cx 0 00003D78 E9A2FE jmp .L84 1029 .L174: 0 00003D7B B8FFFF movw $-1, %ax 0 00003D7E BA7F00 movw $127, %dx 0 00003D81 EB94 jmp .L87 1033 .L49: 0 00003D83 F6C720 testb $32, %bh 0 00003D86 7503E9CA je .L90 0 00003D8A 00 0 00003D8B 36833E[00] cmpw $0, %ss:data_on_disk 0 00003D8F [00]00 0 00003D91 7503 jne .L91 0 00003D93 E81BF6 call freeDiskMemory 1039 .L91: 0 00003D96 E8[FEFF] call calcMaxMemory 0 00003D99 8B5EF0 movw -16(%bp), %bx 0 00003D9C 8B476C movw 108(%bx), %ax 0 00003D9F 8B576E movw 110(%bx), %dx 0 00003DA2 8B5D08 movw 8(%di), %bx 0 00003DA5 8B4D0A movw 10(%di), %cx 0 00003DA8 39D1 cmpw %dx, %cx 0 00003DAA 7777 ja .L175 0 00003DAC 7504 jne .L190 0 00003DAE 39C3 cmpw %ax, %bx 0 00003DB0 7771 ja .L175 1051 .L190: 0 00003DB2 29D8 subw %bx, %ax 0 00003DB4 19CA sbbw %cx, %dx 1054 .L92: 0 00003DB6 8B5EF0 movw -16(%bp), %bx 0 00003DB9 8B7768 movw 104(%bx), %si 0 00003DBC 8B4F6A movw 106(%bx), %cx 0 00003DBF 894EF4 movw %cx, -12(%bp) 0 00003DC2 39D1 cmpw %dx, %cx 0 00003DC4 7706 ja .L95 0 00003DC6 7508 jne .L94 0 00003DC8 39C6 cmpw %ax, %si 0 00003DCA 7604 jbe .L94 1064 .L95: 0 00003DCC 96 xchgw %ax, %si 0 00003DCD 8956F4 movw %dx, -12(%bp) 1067 .L94: 0 00003DD0 8B5EF0 movw -16(%bp), %bx 0 00003DD3 8B471B movw 27(%bx), %ax 0 00003DD6 8946EE movw %ax, -18(%bp) 0 00003DD9 8B471D movw 29(%bx), %ax 0 00003DDC 8946EC movw %ax, -20(%bp) 0 00003DDF 8EC0 movw %ax, %es 0 00003DE1 8B5EEE movw -18(%bp), %bx 0 00003DE4 268B4F14 movw %es:20(%bx), %cx 0 00003DE8 8B5EF0 movw -16(%bp), %bx 0 00003DEB 8B475E movw 94(%bx), %ax 0 00003DEE 8946EE movw %ax, -18(%bp) 0 00003DF1 C746F001 movw $1, -16(%bp) 0 00003DF5 00 0 00003DF6 B8[1B00] movw $f+27, %ax 0 00003DF9 8ED8 movw %ax, %ds 1082 .L96: 0 00003DFB 8B46EE movw -18(%bp), %ax 0 00003DFE 3B46F0 cmpw -16(%bp), %ax 0 00003E01 7726 ja .L99 0 00003E03 31C0 xorw %ax, %ax 0 00003E05 50 pushw %ax 0 00003E06 51 pushw %cx 0 00003E07 FF76F4 pushw -12(%bp) 0 00003E0A 56 pushw %si 0 00003E0B 16 pushw %ss 0 00003E0C 1F popw %ds 0 00003E0D E8[FEFF] call __umodsi3 0 00003E10 83C408 addw $8, %sp 0 00003E13 29C6 subw %ax, %si 0 00003E15 8B46F4 movw -12(%bp), %ax 0 00003E18 19D0 sbbw %dx, %ax 0 00003E1A 897504 movw %si, 4(%di) 1099 .L286: 0 00003E1D 894506 movw %ax, 6(%di) 0 00003E20 E9A4FA jmp .L61 1102 .L175: 0 00003E23 31C0 xorw %ax, %ax 0 00003E25 89C2 movw %ax, %dx 0 00003E27 EB8D jmp .L92 1106 .L99: 0 00003E29 897EEC movw %di, -20(%bp) 0 00003E2C B80D00 movw $13, %ax 0 00003E2F F766F0 mulw -16(%bp) 0 00003E32 93 xchgw %ax, %bx 0 00003E33 8CDF movw %ds, %di 0 00003E35 368B11 movw %ss:(%bx,%di), %dx 0 00003E38 368B9F[1D] movw %ss:f+29(%bx), %bx 0 00003E3C [00] 0 00003E3D 8EC3 movw %bx, %es 0 00003E3F 89D3 movw %dx, %bx 0 00003E41 268B5714 movw %es:20(%bx), %dx 0 00003E45 39CA cmpw %cx, %dx 0 00003E47 8B7EEC movw -20(%bp), %di 0 00003E4A 7602 jbe .L97 0 00003E4C 89CA movw %cx, %dx 1121 .L97: 0 00003E4E 89D1 movw %dx, %cx 0 00003E50 FF46F0 incw -16(%bp) 0 00003E53 EBA6 jmp .L96 1125 .L90: 0 00003E55 F6C302 testb $2, %bl 0 00003E58 7403E96A jne .L61 0 00003E5C FA 0 00003E5D 8B5EF0 movw -16(%bp), %bx 0 00003E60 8B4704 movw 4(%bx), %ax 0 00003E63 894504 movw %ax, 4(%di) 0 00003E66 8B4706 movw 6(%bx), %ax 0 00003E69 EBB2 jmp .L286 1133 .L100: 0 00003E6B C746E8FE movw $-2, -24(%bp) 0 00003E6F FF 0 00003E70 8946E6 movw %ax, -26(%bp) 0 00003E73 E9B0FA jmp .L101 1137 .L107: 0 00003E76 837EF000 cmpw $0, -16(%bp) 0 00003E7A 7413 je .L103 1140 .L281: 0 00003E7C 894574 movw %ax, 116(%di) 0 00003E7F 895576 movw %dx, 118(%di) 0 00003E82 84C9 testb %cl, %cl 0 00003E84 7503E9C0 je .L289 0 00003E88 F7 0 00003E89 89750C movw %si, 12(%di) 0 00003E8C E9BAF7 jmp .L289 1147 .L103: 0 00003E8F 837EE400 cmpw $0, -28(%bp) 0 00003E93 75E7 jne .L281 0 00003E95 D1E6 shlw $1, %si 0 00003E97 B101 movb $1, %cl 0 00003E99 E98CFA jmp .L102 1153 .L176: 0 00003E9C BA0002 movw $512, %dx 0 00003E9F E90AFB jmp .L112 1156 .L177: 0 00003EA2 894EF4 movw %cx, -12(%bp) 0 00003EA5 894EEE movw %cx, -18(%bp) 0 00003EA8 E943FB jmp .L116 1160 .L194: 0 00003EAB 36833E[00] cmpw $0, %ss:data_on_disk 0 00003EAF [00]00 0 00003EB1 7403E993 jne .L289 0 00003EB5 F7 0 00003EB6 8B450C movw 12(%di), %ax 0 00003EB9 3DFF01 cmpw $511, %ax 0 00003EBC 7742 ja .L287 0 00003EBE D1E0 shlw $1, %ax 0 00003EC0 89450C movw %ax, 12(%di) 0 00003EC3 363B450E cmpw %ss:14(%di), %ax 0 00003EC7 7703E9FB jbe .L115 0 00003ECB FA 0 00003ECC 89450E movw %ax, 14(%di) 0 00003ECF E9F5FA jmp .L115 1172 .L123: 0 00003ED2 29C2 subw %ax, %dx 0 00003ED4 19D9 sbbw %bx, %cx 0 00003ED6 E9CBFB jmp .L125 1176 .L277: 0 00003ED9 83F80C cmpw $12, %ax 0 00003EDC 7657 jbe .L88 1179 .L127: 0 00003EDE 8B46F4 movw -12(%bp), %ax 0 00003EE1 0508F0 addw $-4088, %ax 0 00003EE4 89F2 movw %si, %dx 0 00003EE6 83D2FF adcw $-1, %dx 0 00003EE9 85D2 testw %dx, %dx 0 00003EEB 7505 jne .L161 0 00003EED 3DF6EF cmpw $-4106, %ax 1187 .L290: 0 00003EF0 7643 jbe .L88 1189 .L161: 0 00003EF2 36833E[00] cmpw $0, %ss:data_on_disk 0 00003EF6 [00]00 0 00003EF8 750D jne .L135 0 00003EFA C706[8C00] movw $12, newf+140 0 00003EFE 0C00 1193 .L287: 0 00003F00 36D1650E shlw $1, %ss:14(%di) 0 00003F04 E9C0FA jmp .L115 1196 .L135: 0 00003F07 837EEC00 cmpw $0, -20(%bp) 0 00003F0B 7517 jne .L136 0 00003F0D C706[8C00] movw $12, newf+140 0 00003F11 0C00 0 00003F13 8B46F4 movw -12(%bp), %ax 0 00003F16 8946E8 movw %ax, -24(%bp) 0 00003F19 8976F0 movw %si, -16(%bp) 0 00003F1C C746EC01 movw $1, -20(%bp) 0 00003F20 00 0 00003F21 E9A3FA jmp .L115 1205 .L136: 0 00003F24 85F6 testw %si, %si 0 00003F26 7506 jne .L138 0 00003F28 837EF4EE cmpw $-18, -12(%bp) 0 00003F2C 7607 jbe .L88 1210 .L138: 0 00003F2E C746F4EE movw $-18, -12(%bp) 0 00003F32 FF 0 00003F33 31F6 xorw %si, %si 1213 .L88: 0 00003F35 36817D0C cmpw $512, %ss:12(%di) 0 00003F39 0002 0 00003F3B 7612 jbe .L139 0 00003F3D 36833E[00] cmpw $1, %ss:verbose 0 00003F41 [00]01 0 00003F43 7E0A jle .L139 0 00003F45 B8[7101] movw $.LC8, %ax 0 00003F48 50 pushw %ax 0 00003F49 E8[FEFF] call warning 0 00003F4C 83C402 addw $2, %sp 1222 .L139: 0 00003F4F 8B46F4 movw -12(%bp), %ax 0 00003F52 A3[8A00] movw %ax, newf+138 0 00003F55 8B450C movw 12(%di), %ax 0 00003F58 8946F0 movw %ax, -16(%bp) 0 00003F5B C706[5C00] movw $0, newf+92 0 00003F5F 0000 0 00003F61 93 xchgw %ax, %bx 0 00003F62 31C0 xorw %ax, %ax 0 00003F64 88C2 movb %al, %dl 0 00003F66 8EC0 movw %ax, %es 0 00003F68 B601 movb $1, %dh 1233 .L140: 0 00003F6A 89C1 movw %ax, %cx 0 00003F6C 41 incw %cx 0 00003F6D D1EB shrw $1, %bx 0 00003F6F 7403E9A1 jne .L178 0 00003F73 01 0 00003F74 84D2 testb %dl, %dl 0 00003F76 7403 je .L141 0 00003F78 89455C movw %ax, 92(%di) 1241 .L141: 0 00003F7B 8B4578 movw 120(%di), %ax 0 00003F7E 36034570 addw %ss:112(%di), %ax 0 00003F82 89457C movw %ax, 124(%di) 0 00003F85 8B0E[8800] movw newf+136, %cx 0 00003F89 96 xchgw %ax, %si 0 00003F8A F7E1 mulw %cx 0 00003F8C 96 xchgw %ax, %si 0 00003F8D 8B46F4 movw -12(%bp), %ax 0 00003F90 F7E1 mulw %cx 0 00003F92 8946F4 movw %ax, -12(%bp) 0 00003F95 01D6 addw %dx, %si 0 00003F97 8976F6 movw %si, -10(%bp) 0 00003F9A A3[8000] movw %ax, newf+128 0 00003F9D 8936[8200] movw %si, newf+130 0 00003FA1 8B4D74 movw 116(%di), %cx 0 00003FA4 8B5D76 movw 118(%di), %bx 0 00003FA7 89CE movw %cx, %si 0 00003FA9 09DE orw %bx, %si 0 00003FAB 85F6 testw %si, %si 0 00003FAD 740A je .L142 0 00003FAF 8B4D7E movw 126(%di), %cx 0 00003FB2 8CC3 movw %es, %bx 0 00003FB4 01C1 addw %ax, %cx 0 00003FB6 135EF6 adcw -10(%bp), %bx 1266 .L142: 0 00003FB9 890E[8400] movw %cx, newf+132 0 00003FBD 891E[8600] movw %bx, newf+134 0 00003FC1 8D76F8 leaw -8(%bp), %si 0 00003FC4 B80004 movw $1024, %ax 0 00003FC7 31D2 xorw %dx, %dx 0 00003FC9 F776F0 divw -16(%bp) 0 00003FCC 06 pushw %es 0 00003FCD 50 pushw %ax 0 00003FCE 53 pushw %bx 0 00003FCF 51 pushw %cx 0 00003FD0 56 pushw %si 0 00003FD1 E8[FEFF] call ldiv 0 00003FD4 8B76F8 movw -8(%bp), %si 0 00003FD7 8B4EFA movw -6(%bp), %cx 0 00003FDA 8B46FC movw -4(%bp), %ax 0 00003FDD 8946F4 movw %ax, -12(%bp) 0 00003FE0 8B46FE movw -2(%bp), %ax 0 00003FE3 8946F0 movw %ax, -16(%bp) 0 00003FE6 8B5504 movw 4(%di), %dx 0 00003FE9 8B5D06 movw 6(%di), %bx 0 00003FEC 89D0 movw %dx, %ax 0 00003FEE 29F0 subw %si, %ax 0 00003FF0 8946EE movw %ax, -18(%bp) 0 00003FF3 89DE movw %bx, %si 0 00003FF5 19CE sbbw %cx, %si 0 00003FF7 8B46F4 movw -12(%bp), %ax 0 00003FFA 0B46F0 orw -16(%bp), %ax 0 00003FFD 83C40A addw $10, %sp 0 00004000 83F801 cmpw $1, %ax 0 00004003 18C0 sbbb %al, %al 0 00004005 FEC0 incb %al 0 00004007 30E4 xorb %ah, %ah 0 00004009 8946F4 movw %ax, -12(%bp) 0 0000400C 8CC1 movw %es, %cx 0 0000400E 8B46EE movw -18(%bp), %ax 0 00004011 2B46F4 subw -12(%bp), %ax 0 00004014 8946F4 movw %ax, -12(%bp) 0 00004017 19CE sbbw %cx, %si 0 00004019 85F6 testw %si, %si 0 0000401B C746F000 movw $1024, -16(%bp) 0 0000401F 04 0 00004020 7D03E924 jl .L289 0 00004024 F6 0 00004025 8B46F4 movw -12(%bp), %ax 0 00004028 09F0 orw %si, %ax 0 0000402A 7443 je .L147 0 0000402C 2B56F4 subw -12(%bp), %dx 0 0000402F 93 xchgw %ax, %bx 0 00004030 19F0 sbbw %si, %ax 0 00004032 895504 movw %dx, 4(%di) 0 00004035 894506 movw %ax, 6(%di) 0 00004038 89D3 movw %dx, %bx 0 0000403A B106 movb $6, %cl 0 0000403C D3EB shrw %cl, %bx 0 0000403E B10A movb $10, %cl 0 00004040 D3E0 shlw %cl, %ax 0 00004042 09D8 orw %bx, %ax 0 00004044 D3E2 shlw %cl, %dx 0 00004046 06 pushw %es 0 00004047 36FF750C pushw %ss:12(%di) 0 0000404B 50 pushw %ax 0 0000404C 52 pushw %dx 0 0000404D E8[FEFF] call __udivsi3 0 00004050 83C408 addw $8, %sp 0 00004053 894574 movw %ax, 116(%di) 0 00004056 895576 movw %dx, 118(%di) 0 00004059 36833E[00] cmpw $2, %ss:verbose 0 0000405D [00]02 0 0000405F 7E0E jle .L147 0 00004061 56 pushw %si 0 00004062 FF76F4 pushw -12(%bp) 0 00004065 B8[A201] movw $.LC9, %ax 0 00004068 50 pushw %ax 0 00004069 E8[FEFF] call warning 0 0000406C 83C406 addw $6, %sp 1339 .L147: 0 0000406F BE[0000] movw $change.3337, %si 1341 .L156: 0 00004072 368A4402 movb %ss:2(%si), %al 0 00004076 84C0 testb %al, %al 0 00004078 368B5405 movw %ss:5(%si), %dx 0 0000407C 8956F4 movw %dx, -12(%bp) 0 0000407F 368E5C03 movw %ss:3(%si), %ds 0 00004083 8CDB movw %ds, %bx 0 00004085 7403E991 jne .L149 0 00004089 00 0 0000408A 368A27 movb %ss:(%bx), %ah 0 0000408D 89D3 movw %dx, %bx 0 0000408F 363227 xorb %ss:(%bx), %ah 0 00004092 80FC01 cmpb $1, %ah 1353 .L288: 0 00004095 18E4 sbbb %ah, %ah 0 00004097 FEC4 incb %ah 0 00004099 84E4 testb %ah, %ah 0 0000409B 7443 je .L153 0 0000409D 368B14 movw %ss:(%si), %dx 0 000040A0 360916[00] orw %dx, %ss:changed_format 0 000040A4 [00] 0 000040A5 36833E[00] cmpw $5, %ss:verbose 0 000040A9 [00]05 0 000040AB 7E33 jle .L153 0 000040AD 8CDB movw %ds, %bx 0 000040AF 368E07 movw %ss:(%bx), %es 0 000040B2 368B4F02 movw %ss:2(%bx), %cx 0 000040B6 8B5EF4 movw -12(%bp), %bx 0 000040B9 368E1F movw %ss:(%bx), %ds 0 000040BC 368B5F02 movw %ss:2(%bx), %bx 0 000040C0 84C0 testb %al, %al 0 000040C2 7479 je .L179 0 000040C4 3C02 cmpb $2, %al 0 000040C6 747A je .L180 0 000040C8 B87700 movw $119, %ax 1373 .L155: 0 000040CB 51 pushw %cx 0 000040CC 06 pushw %es 0 000040CD 53 pushw %bx 0 000040CE 1E pushw %ds 0 000040CF 50 pushw %ax 0 000040D0 FF76F0 pushw -16(%bp) 0 000040D3 52 pushw %dx 0 000040D4 B8[DB01] movw $.LC10, %ax 0 000040D7 50 pushw %ax 0 000040D8 16 pushw %ss 0 000040D9 1F popw %ds 0 000040DA E8[FEFF] call printf 0 000040DD 83C410 addw $16, %sp 1387 .L153: 0 000040E0 83C60B addw $11, %si 0 000040E3 81FE[7900] cmpw $change.3337+121, %si 0 000040E7 7289 jc .L156 0 000040E9 16 pushw %ss 0 000040EA 1F popw %ds 0 000040EB E8[FEFF] call calc_alloc 0 000040EE 8B4504 movw 4(%di), %ax 0 000040F1 8B5506 movw 6(%di), %dx 0 000040F4 36395566 cmpw %dx, %ss:102(%di) 0 000040F8 7303E92B jc .L157 0 000040FC FC 0 000040FD 7509 jne .L198 0 000040FF 36394564 cmpw %ax, %ss:100(%di) 0 00004103 7303E920 jc .L157 0 00004107 FC 1401 .L198: 0 00004108 09D0 orw %dx, %ax 0 0000410A 753B jne .L159 0 0000410C A3[8400] movw %ax, newf+132 0 0000410F A3[8600] movw %ax, newf+134 0 00004112 E916FC jmp .L11 1407 .L178: 0 00004115 91 xchgw %ax, %cx 0 00004116 88F2 movb %dh, %dl 0 00004118 E94FFE jmp .L140 1411 .L149: 0 0000411B 368B17 movw %ss:(%bx), %dx 0 0000411E 8B5EF4 movw -12(%bp), %bx 0 00004121 363317 xorw %ss:(%bx), %dx 0 00004124 3C02 cmpb $2, %al 0 00004126 750F jne .L151 0 00004128 8CDB movw %ds, %bx 0 0000412A 368B4F02 movw %ss:2(%bx), %cx 0 0000412E 8B5EF4 movw -12(%bp), %bx 0 00004131 36334F02 xorw %ss:2(%bx), %cx 0 00004135 09CA orw %cx, %dx 1422 .L151: 0 00004137 83FA01 cmpw $1, %dx 0 0000413A E958FF jmp .L288 1425 .L179: 0 0000413D B86200 movw $98, %ax 0 00004140 EB89 jmp .L155 1428 .L180: 0 00004142 B86400 movw $100, %ax 0 00004145 EB84 jmp .L155 1431 .L159: 0 00004147 A1[8600] movw newf+134, %ax 0 0000414A 363B4576 cmpw %ss:118(%di), %ax 0 0000414E 7603E9F6 ja .L289 0 00004152 F4 0 00004153 750C jne .L199 0 00004155 A1[8400] movw newf+132, %ax 0 00004158 363B4574 cmpw %ss:116(%di), %ax 0 0000415C 7603E9E8 ja .L289 0 00004160 F4 1439 .L199: 0 00004161 36833E[8A] cmpw $0, %ss:newf+138 0 00004165 [00]00 0 00004167 7503E9DD je .L289 0 0000416B F4 0 0000416C 31C0 xorw %ax, %ax 0 0000416E E9BAFB jmp .L11 1444 .L130: 0 00004171 C746F4EE movw $4078, -12(%bp) 0 00004175 0F 0 00004176 8B76F0 movw -16(%bp), %si 0 00004179 83F80C cmpw $12, %ax 0 0000417C E971FD jmp .L290 1449 .size make_newf, .-make_newf === Switch to base unknown -> ".DATA" 1450 .data 1451 .type change.3337, @object 1452 .size change.3337, 121 1453 change.3337: 0 000027F5 0200 .hword 2 0 000027F7 02 .byte 2 0 000027F8 [0400] .hword newf+4 0 000027FA [0400] .hword f+4 0 000027FC 0000 .hword 0 0 000027FE 0000 .hword 0 0 00002800 0400 .hword 4 0 00002802 01 .byte 1 0 00002803 [0C00] .hword newf+12 0 00002805 [0C00] .hword f+12 0 00002807 0002 .hword 512 0 00002809 0000 .hword 0 0 0000280B 0800 .hword 8 0 0000280D 01 .byte 1 0 0000280E [0E00] .hword newf+14 0 00002810 [0E00] .hword f+14 0 00002812 0002 .hword 512 0 00002814 0000 .hword 0 0 00002816 1000 .hword 16 0 00002818 01 .byte 1 0 00002819 [1200] .hword newf+18 0 0000281B [1200] .hword f+18 0 0000281D 0001 .hword 256 0 0000281F 0000 .hword 0 0 00002821 8000 .hword 128 0 00002823 00 .byte 0 0 00002824 [1400] .hword newf+20 0 00002826 [1400] .hword f+20 0 00002828 FA00 .hword 250 0 0000282A 0000 .hword 0 0 0000282C 0001 .hword 256 0 0000282E 01 .byte 1 0 0000282F [1600] .hword newf+22 0 00002831 [1600] .hword f+22 0 00002833 2400 .hword 36 0 00002835 0000 .hword 0 0 00002837 0002 .hword 512 0 00002839 01 .byte 1 0 0000283A [1800] .hword newf+24 0 0000283C [1800] .hword f+24 0 0000283E 1000 .hword 16 0 00002840 0000 .hword 0 0 00002842 0004 .hword 1024 0 00002844 00 .byte 0 0 00002845 [1A00] .hword newf+26 0 00002847 [1A00] .hword f+26 0 00002849 0A00 .hword 10 0 0000284B 0000 .hword 0 0 0000284D 0100 .hword 1 0 0000284F 00 .byte 0 0 00002850 [0000] .hword newf 0 00002852 [0000] .hword f 0 00002854 FFFF .hword -1 0 00002856 FFFF .hword -1 0 00002858 0040 .hword 16384 0 0000285A 00 .byte 0 0 0000285B [0200] .hword newf+2 0 0000285D [0200] .hword f+2 0 0000285F 0100 .hword 1 0 00002861 0000 .hword 0 0 00002863 2000 .hword 32 0 00002865 00 .byte 0 0 00002866 [1000] .hword newf+16 0 00002868 [1000] .hword f+16 0 0000286A 0100 .hword 1 0 0000286C 0000 .hword 0 1520 .ident "GCC: (GNU) 6.3.0" 1521 .weak __ia16_use_printf_nofloat.v1 1522 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: packdata.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type relocate, @function 7 relocate: 0 0000417F 56 pushw %si 0 00004180 57 pushw %di 0 00004181 55 pushw %bp 0 00004182 89E5 movw %sp, %bp 0 00004184 83EC08 subw $8, %sp 0 00004187 E8[FEFF] call FindFirstFreeCluster 0 0000418A 8946FA movw %ax, -6(%bp) 0 0000418D 85C0 testw %ax, %ax 0 0000418F 746A je .L1 0 00004191 8B1E[0000] movw fat, %bx 0 00004195 8BB78800 movw 136(%bx), %si 0 00004199 16 pushw %ss 0 0000419A FF36[0200] pushw buffer 0 0000419E 8B4E08 movw 8(%bp), %cx 0 000041A1 83C1FE addw $-2, %cx 0 000041A4 91 xchgw %ax, %cx 0 000041A5 F7E6 mulw %si 0 000041A7 8946FC movw %ax, -4(%bp) 0 000041AA 8956FE movw %dx, -2(%bp) 0 000041AD 8B577E movw 126(%bx), %dx 0 000041B0 C746F800 movw $0, -8(%bp) 0 000041B4 00 0 000041B5 01C2 addw %ax, %dx 0 000041B7 8B46FE movw -2(%bp), %ax 0 000041BA 1346F8 adcw -8(%bp), %ax 0 000041BD 50 pushw %ax 0 000041BE 52 pushw %dx 0 000041BF 56 pushw %si 0 000041C0 E8[FEFF] call read_sector 0 000041C3 8B1E[0000] movw fat, %bx 0 000041C7 8B8F8800 movw 136(%bx), %cx 0 000041CB 16 pushw %ss 0 000041CC FF36[0200] pushw buffer 0 000041D0 8B5EFA movw -6(%bp), %bx 0 000041D3 83C3FE addw $-2, %bx 0 000041D6 93 xchgw %ax, %bx 0 000041D7 F7E1 mulw %cx 0 000041D9 93 xchgw %ax, %bx 0 000041DA 89D6 movw %dx, %si 0 000041DC 8B3E[0000] movw fat, %di 0 000041E0 8B457E movw 126(%di), %ax 0 000041E3 31D2 xorw %dx, %dx 0 000041E5 01D8 addw %bx, %ax 0 000041E7 11F2 adcw %si, %dx 0 000041E9 52 pushw %dx 0 000041EA 50 pushw %ax 0 000041EB 51 pushw %cx 0 000041EC E8[FEFF] call write_sector 0 000041EF FF76F8 pushw -8(%bp) 0 000041F2 FF7608 pushw 8(%bp) 0 000041F5 E8[FEFF] call set_next_cluster 0 000041F8 83C418 addw $24, %sp 59 .L1: 0 000041FB 8B46FA movw -6(%bp), %ax 0 000041FE 89EC movw %bp, %sp 0 00004200 5D popw %bp 0 00004201 5F popw %di 0 00004202 5E popw %si 0 00004203 C3 ret 66 .size relocate, .-relocate === Switch to base unknown -> ".RODATA.STR1.1" 67 .section .rodata.str1.1,"aMS",@progbits,1 68 .LC0: 0 00001DBA 2E202020 .string ". " 0 00001DBE 20202020 0 00001DC2 20202000 70 .LC1: 0 00001DC6 2E2E2020 .string ".. " 0 00001DCA 20202020 0 00001DCE 20202000 72 .LC2: 0 00001DD2 46696C65 .string "File %s crosslinked at %ud" 0 00001DD6 20257320 0 00001DDA 63726F73 0 00001DDE 736C696E 0 00001DE2 6B656420 === Switch to base unknown -> ".TEXT" 74 .text 75 .type packdir, @function 76 packdir: 0 00004204 56 pushw %si 0 00004205 57 pushw %di 0 00004206 06 pushw %es 0 00004207 55 pushw %bp 0 00004208 89E5 movw %sp, %bp 0 0000420A 83EC0E subw $14, %sp 0 0000420D 8B460A movw 10(%bp), %ax 0 00004210 8946FA movw %ax, -6(%bp) 0 00004213 85C0 testw %ax, %ax 0 00004215 7407 je .L8 0 00004217 93 xchgw %ax, %bx 0 00004218 8B4730 movw 48(%bx), %ax 0 0000421B 8946FA movw %ax, -6(%bp) 90 .L8: 0 0000421E B8[0400] movw $path, %ax 0 00004221 8EC0 movw %ax, %es 0 00004223 50 pushw %ax 0 00004224 E8[FEFF] call strlen 0 00004227 83C402 addw $2, %sp 0 0000422A 8946FC movw %ax, -4(%bp) 0 0000422D FF76FA pushw -6(%bp) 0 00004230 E8[FEFF] call DirOpen 0 00004233 89C7 movw %ax, %di 0 00004235 83C402 addw $2, %sp 0 00004238 85C0 testw %ax, %ax 0 0000423A 7509 jne .L9 103 .L31: 0 0000423C 31C0 xorw %ax, %ax 105 .L7: 0 0000423E 89EC movw %bp, %sp 0 00004240 5D popw %bp 0 00004241 07 popw %es 0 00004242 5F popw %di 0 00004243 5E popw %si 0 00004244 C3 ret 112 .L9: 0 00004245 8B5EFC movw -4(%bp), %bx 0 00004248 C687[0400] movb $92, path(%bx) 0 0000424C 5C 115 .L11: 0 0000424D F6453601 testb $1, 54(%di) 0 00004251 7403E918 jne .L32 0 00004255 01 0 00004256 8B46FC movw -4(%bp), %ax 0 00004259 8946FE movw %ax, -2(%bp) 0 0000425C 89FE movw %di, %si 0 0000425E 29C6 subw %ax, %si 0 00004260 8976F8 movw %si, -8(%bp) 0 00004263 EB0A jmp .L33 124 .L12: 0 00004265 FF46FE incw -2(%bp) 0 00004268 8CC6 movw %es, %si 0 0000426A 8B5EFE movw -2(%bp), %bx 0 0000426D 8800 movb %al, (%bx,%si) 129 .L33: 0 0000426F 8B76F8 movw -8(%bp), %si 0 00004272 8B5EFE movw -2(%bp), %bx 0 00004275 8A4016 movb 22(%bx,%si), %al 0 00004278 3C20 cmpb $32, %al 0 0000427A 75E9 jne .L12 0 0000427C 807D1E20 cmpb $32, 30(%di) 0 00004280 741D je .L13 0 00004282 FF46FE incw -2(%bp) 0 00004285 8B5EFE movw -2(%bp), %bx 0 00004288 C687[0400] movb $46, path(%bx) 0 0000428C 2E 0 0000428D B80800 movw $8, %ax 141 .L14: 0 00004290 89C3 movw %ax, %bx 0 00004292 8A5116 movb 22(%bx,%di), %dl 0 00004295 80FA20 cmpb $32, %dl 0 00004298 7405 je .L13 0 0000429A 83F80B cmpw $11, %ax 0 0000429D 7545 jne .L15 148 .L13: 0 0000429F 8B5EFE movw -2(%bp), %bx 0 000042A2 C687[0500] movb $0, path+1(%bx) 0 000042A6 00 0 000042A7 8D7516 leaw 22(%di), %si 0 000042AA BA0B00 movw $11, %dx 0 000042AD 52 pushw %dx 0 000042AE 8956FE movw %dx, -2(%bp) 0 000042B1 B8[0000] movw $.LC0, %ax 0 000042B4 50 pushw %ax 0 000042B5 56 pushw %si 0 000042B6 E8[FEFF] call strncmp 0 000042B9 83C406 addw $6, %sp 0 000042BC 85C0 testw %ax, %ax 0 000042BE 8B56FE movw -2(%bp), %dx 0 000042C1 752E jne .L17 0 000042C3 8B46FA movw -6(%bp), %ax 164 .L52: 0 000042C6 894530 movw %ax, 48(%di) 166 .L18: 0 000042C9 C706[0000] movw $1, disk_bad 0 000042CD 0100 0 000042CF 57 pushw %di 0 000042D0 E8[FEFF] call DirWrite 0 000042D3 57 pushw %di 0 000042D4 E8[FEFF] call DirFindNext 0 000042D7 83C404 addw $4, %sp 0 000042DA 85C0 testw %ax, %ax 0 000042DC 7403E96C jne .L11 0 000042E0 FF 0 000042E1 E958FF jmp .L31 176 .L15: 0 000042E4 FF46FE incw -2(%bp) 0 000042E7 40 incw %ax 0 000042E8 8CC6 movw %es, %si 0 000042EA 8B5EFE movw -2(%bp), %bx 0 000042ED 8810 movb %dl, (%bx,%si) 0 000042EF EB9F jmp .L14 183 .L17: 0 000042F1 52 pushw %dx 0 000042F2 B8[0C00] movw $.LC1, %ax 0 000042F5 50 pushw %ax 0 000042F6 56 pushw %si 0 000042F7 E8[FEFF] call strncmp 0 000042FA 83C406 addw $6, %sp 0 000042FD 85C0 testw %ax, %ax 0 000042FF 7507 jne .L19 0 00004301 8B5E0A movw 10(%bp), %bx 0 00004304 8B07 movw (%bx), %ax 0 00004306 EBBE jmp .L52 195 .L19: 0 00004308 8B4530 movw 48(%di), %ax 0 0000430B 8946FE movw %ax, -2(%bp) 0 0000430E 85C0 testw %ax, %ax 0 00004310 7431 je .L20 0 00004312 93 xchgw %ax, %bx 0 00004313 B103 movb $3, %cl 0 00004315 D3EB shrw %cl, %bx 0 00004317 8B36[0000] movw visited_clusters, %si 0 0000431B 8A00 movb (%bx,%si), %al 0 0000431D 98 cbtw 0 0000431E 8A4EFE movb -2(%bp), %cl 0 00004321 80E107 andb $7, %cl 0 00004324 D3F8 sarw %cl, %ax 0 00004326 A801 testb $1, %al 0 00004328 745D je .L21 0 0000432A FF76FE pushw -2(%bp) 0 0000432D 06 pushw %es 0 0000432E B8[1800] movw $.LC2, %ax 0 00004331 50 pushw %ax 0 00004332 E8[FEFF] call warning 0 00004335 83C406 addw $6, %sp 217 .L26: 0 00004338 C746FE00 movw $0, -2(%bp) 0 0000433C 00 219 .L22: 0 0000433D 8B46FE movw -2(%bp), %ax 0 00004340 894530 movw %ax, 48(%di) 222 .L20: 0 00004343 F6452110 testb $16, 33(%di) 0 00004347 7480 je .L18 0 00004349 57 pushw %di 0 0000434A E8B7FE call packdir 0 0000434D 83C402 addw $2, %sp 0 00004350 85C0 testw %ax, %ax 0 00004352 7403E972 jne .L18 0 00004356 FF 230 .L29: 0 00004357 8946FE movw %ax, -2(%bp) 0 0000435A 57 pushw %di 0 0000435B E8[FEFF] call DirClose 0 0000435E 8B5EFC movw -4(%bp), %bx 0 00004361 8B46FE movw -2(%bp), %ax 0 00004364 8887[0400] movb %al, path(%bx) 0 00004368 83C402 addw $2, %sp 0 0000436B E9D0FE jmp .L7 239 .L32: 0 0000436E 57 pushw %di 0 0000436F E8[FEFF] call DirWrite 0 00004372 57 pushw %di 0 00004373 E8[FEFF] call DirClose 0 00004376 8B5EFC movw -4(%bp), %bx 0 00004379 C687[0400] movb $0, path(%bx) 0 0000437D 00 0 0000437E 83C404 addw $4, %sp 0 00004381 B80100 movw $1, %ax 0 00004384 E9B7FE jmp .L7 249 .L21: 0 00004387 FF76FE pushw -2(%bp) 0 0000438A E8[FEFF] call next_cluster 0 0000438D 92 xchgw %ax, %dx 0 0000438E 83C402 addw $2, %sp 0 00004391 8B46FE movw -2(%bp), %ax 0 00004394 3B06[3001] cmpw topcluster, %ax 0 00004398 7626 jbe .L35 0 0000439A 8956F8 movw %dx, -8(%bp) 0 0000439D FF76FE pushw -2(%bp) 0 000043A0 E8DCFD call relocate 0 000043A3 8946FE movw %ax, -2(%bp) 0 000043A6 83C402 addw $2, %sp 0 000043A9 85C0 testw %ax, %ax 0 000043AB 8B56F8 movw -8(%bp), %dx 0 000043AE 7488 je .L26 0 000043B0 52 pushw %dx 0 000043B1 8956F8 movw %dx, -8(%bp) 0 000043B4 FF76FE pushw -2(%bp) 0 000043B7 E8[FEFF] call set_next_cluster 0 000043BA 83C404 addw $4, %sp 0 000043BD 8B56F8 movw -8(%bp), %dx 271 .L35: 0 000043C0 8B5EFE movw -2(%bp), %bx 0 000043C3 B103 movb $3, %cl 0 000043C5 D3EB shrw %cl, %bx 0 000043C7 B80100 movw $1, %ax 0 000043CA 8A4EFE movb -2(%bp), %cl 0 000043CD 80E107 andb $7, %cl 0 000043D0 89C6 movw %ax, %si 0 000043D2 D3E6 shlw %cl, %si 0 000043D4 8976F8 movw %si, -8(%bp) 0 000043D7 8A4EF8 movb -8(%bp), %cl 0 000043DA 8B36[0000] movw visited_clusters, %si 0 000043DE 0808 orb %cl, (%bx,%si) 0 000043E0 8B4EFE movw -2(%bp), %cx 0 000043E3 894EF6 movw %cx, -10(%bp) 0 000043E6 8946F4 movw %ax, -12(%bp) 287 .L24: 0 000043E9 89D0 movw %dx, %ax 0 000043EB 48 decw %ax 0 000043EC 83F8EE cmpw $-18, %ax 0 000043EF 7603E949 ja .L22 0 000043F3 FF 0 000043F4 89D3 movw %dx, %bx 0 000043F6 B103 movb $3, %cl 0 000043F8 D3EB shrw %cl, %bx 0 000043FA 8B36[0000] movw visited_clusters, %si 0 000043FE 8A00 movb (%bx,%si), %al 0 00004400 98 cbtw 0 00004401 88D1 movb %dl, %cl 0 00004403 80E107 andb $7, %cl 0 00004406 D3F8 sarw %cl, %ax 0 00004408 A801 testb $1, %al 0 0000440A 740F je .L25 0 0000440C 52 pushw %dx 0 0000440D 06 pushw %es 0 0000440E B8[1800] movw $.LC2, %ax 0 00004411 50 pushw %ax 0 00004412 E8[FEFF] call warning 0 00004415 83C406 addw $6, %sp 0 00004418 E922FF jmp .L22 310 .L25: 0 0000441B 52 pushw %dx 0 0000441C 8956F2 movw %dx, -14(%bp) 0 0000441F E8[FEFF] call next_cluster 0 00004422 8946F8 movw %ax, -8(%bp) 0 00004425 83C402 addw $2, %sp 0 00004428 8B56F2 movw -14(%bp), %dx 0 0000442B 3B16[3001] cmpw topcluster, %dx 0 0000442F 7628 jbe .L37 0 00004431 52 pushw %dx 0 00004432 E84AFD call relocate 0 00004435 83C402 addw $2, %sp 0 00004438 85C0 testw %ax, %ax 0 0000443A 7503E9F9 je .L26 0 0000443E FE 0 0000443F FF76F8 pushw -8(%bp) 0 00004442 50 pushw %ax 0 00004443 8946F2 movw %ax, -14(%bp) 0 00004446 E8[FEFF] call set_next_cluster 0 00004449 8B56F2 movw -14(%bp), %dx 0 0000444C 52 pushw %dx 0 0000444D FF76F6 pushw -10(%bp) 0 00004450 E8[FEFF] call set_next_cluster 0 00004453 83C408 addw $8, %sp 0 00004456 8B56F2 movw -14(%bp), %dx 334 .L37: 0 00004459 89D3 movw %dx, %bx 0 0000445B B103 movb $3, %cl 0 0000445D D3EB shrw %cl, %bx 0 0000445F 88D1 movb %dl, %cl 0 00004461 80E107 andb $7, %cl 0 00004464 8B46F4 movw -12(%bp), %ax 0 00004467 D3E0 shlw %cl, %ax 0 00004469 8B36[0000] movw visited_clusters, %si 0 0000446D 0800 orb %al, (%bx,%si) 0 0000446F 8956F6 movw %dx, -10(%bp) 0 00004472 8B56F8 movw -8(%bp), %dx 0 00004475 E971FF jmp .L24 347 .size packdir, .-packdir === Switch to base unknown -> ".RODATA.STR1.1" 348 .section .rodata.str1.1 349 .LC3: 0 00001DED 5061636B .string "Packing files failed" 0 00001DF1 696E6720 0 00001DF5 66696C65 0 00001DF9 73206661 0 00001DFD 696C6564 === Switch to base unknown -> ".TEXT" 351 .text 352 .global packdata 353 .type packdata, @function 354 packdata: 0 00004478 56 pushw %si 0 00004479 57 pushw %di 0 0000447A 8B3E[0000] movw disk_bad, %di 0 0000447E BE[0000] movw $fatstat, %si 0 00004481 8B4402 movw 2(%si), %ax 0 00004484 40 incw %ax 0 00004485 A3[3001] movw %ax, topcluster 0 00004488 8B1E[0000] movw fat, %bx 0 0000448C FF770E pushw 14(%bx) 0 0000448F E8[FEFF] call xalloc 0 00004492 A3[0200] movw %ax, buffer 0 00004495 8B1E[0000] movw fat, %bx 0 00004499 8B878A00 movw 138(%bx), %ax 0 0000449D 83C002 addw $2, %ax 0 000044A0 50 pushw %ax 0 000044A1 E8[FEFF] call bitmap_new 0 000044A4 A3[0000] movw %ax, visited_clusters 0 000044A7 C606[0400] movb $0, path 0 000044AB 00 0 000044AC 31C0 xorw %ax, %ax 0 000044AE 50 pushw %ax 0 000044AF E852FD call packdir 0 000044B2 83C406 addw $6, %sp 0 000044B5 85C0 testw %ax, %ax 0 000044B7 750A jne .L54 0 000044B9 B8[3300] movw $.LC3, %ax 0 000044BC 50 pushw %ax 0 000044BD E8[FEFF] call fatal 0 000044C0 83C402 addw $2, %sp 383 .L54: 0 000044C3 893E[0000] movw %di, disk_bad 0 000044C7 A1[3001] movw topcluster, %ax 0 000044CA 894408 movw %ax, 8(%si) 0 000044CD FF36[0000] pushw visited_clusters 0 000044D1 E8[FEFF] call free 0 000044D4 FF36[0200] pushw buffer 0 000044D8 E8[FEFF] call free 0 000044DB 83C404 addw $4, %sp 0 000044DE 5F popw %di 0 000044DF 5E popw %si 0 000044E0 C3 ret 395 .size packdata, .-packdata 396 .local visited_clusters 397 .comm visited_clusters,2,2 398 .local buffer 399 .comm buffer,2,2 400 .local path 401 .comm path,300,1 402 .local topcluster 403 .comm topcluster,2,2 404 .ident "GCC: (GNU) 6.3.0" === Trace listing source: realloc.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type AllocPart, @function 7 AllocPart: 0 000044E1 56 pushw %si 0 000044E2 57 pushw %di 0 000044E3 06 pushw %es 0 000044E4 55 pushw %bp 0 000044E5 89E5 movw %sp, %bp 0 000044E7 83EC1C subw $28, %sp 0 000044EA C4460C lesw 12(%bp), %ax 0 000044ED 8946FA movw %ax, -6(%bp) 0 000044F0 8C46F8 movw %es, -8(%bp) 0 000044F3 C44610 lesw 16(%bp), %ax 0 000044F6 8946EE movw %ax, -18(%bp) 0 000044F9 8C46EC movw %es, -20(%bp) 0 000044FC 8B7E0A movw 10(%bp), %di 0 000044FF B80D00 movw $13, %ax 0 00004502 F7E7 mulw %di 0 00004504 05[1B00] addw $f+27, %ax 0 00004507 8946F6 movw %ax, -10(%bp) 25 .L2: 0 0000450A BB[0000] movw $f, %bx 0 0000450D 36397F5E cmpw %di, %ss:94(%bx) 0 00004511 8EC3 movw %bx, %es 0 00004513 7703E9AF jbe .L1 0 00004517 01 0 00004518 8B5EF6 movw -10(%bp), %bx 0 0000451B 368B07 movw %ss:(%bx), %ax 0 0000451E 8946F4 movw %ax, -12(%bp) 0 00004521 368B4702 movw %ss:2(%bx), %ax 0 00004525 8946F2 movw %ax, -14(%bp) 0 00004528 8ED8 movw %ax, %ds 0 0000452A 8B5EF4 movw -12(%bp), %bx 0 0000452D 8A571A movb 26(%bx), %dl 0 00004530 30F6 xorb %dh, %dh 0 00004532 B80A00 movw $10, %ax 0 00004535 29D0 subw %dx, %ax 0 00004537 8946F0 movw %ax, -16(%bp) 0 0000453A 50 pushw %ax 0 0000453B 8B5EF6 movw -10(%bp), %bx 0 0000453E 36FF770A pushw %ss:10(%bx) 0 00004542 36FF7708 pushw %ss:8(%bx) 0 00004546 16 pushw %ss 0 00004547 1F popw %ds 0 00004548 E8[FEFF] call __ashlsi3 0 0000454B 83C406 addw $6, %sp 0 0000454E 8946E4 movw %ax, -28(%bp) 0 00004551 8956E6 movw %dx, -26(%bp) 0 00004554 B80D00 movw $13, %ax 0 00004557 F7E7 mulw %di 0 00004559 93 xchgw %ax, %bx 0 0000455A 8B97[2300] movw newf+35(%bx), %dx 0 0000455E 8956EA movw %dx, -22(%bp) 0 00004561 8B87[2500] movw newf+37(%bx), %ax 0 00004565 8946E8 movw %ax, -24(%bp) 0 00004568 FF76F0 pushw -16(%bp) 0 0000456B 50 pushw %ax 0 0000456C 52 pushw %dx 0 0000456D E8[FEFF] call __ashlsi3 0 00004570 83C406 addw $6, %sp 0 00004573 8946FE movw %ax, -2(%bp) 0 00004576 8956FC movw %dx, -4(%bp) 0 00004579 8B5EE6 movw -26(%bp), %bx 0 0000457C 39D3 cmpw %dx, %bx 0 0000457E 8B4EE4 movw -28(%bp), %cx 0 00004581 770C ja .L23 0 00004583 7403E948 jne .L4 0 00004587 01 0 00004588 39C1 cmpw %ax, %cx 0 0000458A 7703E941 jbe .L4 0 0000458E 01 73 .L23: 0 0000458F 8B46FA movw -6(%bp), %ax 0 00004592 01C8 addw %cx, %ax 0 00004594 8946F6 movw %ax, -10(%bp) 0 00004597 8B76F8 movw -8(%bp), %si 0 0000459A 11DE adcw %bx, %si 0 0000459C 034EEE addw -18(%bp), %cx 0 0000459F 135EEC adcw -20(%bp), %bx 0 000045A2 53 pushw %bx 0 000045A3 51 pushw %cx 0 000045A4 56 pushw %si 0 000045A5 50 pushw %ax 0 000045A6 8D4501 leaw 1(%di), %ax 0 000045A9 50 pushw %ax 0 000045AA E834FF call AllocPart 0 000045AD A1[0600] movw used_sectors, %ax 0 000045B0 8B16[0800] movw used_sectors+2, %dx 0 000045B4 2B46FA subw -6(%bp), %ax 0 000045B7 1B56F8 sbbw -8(%bp), %dx 0 000045BA 2B46FE subw -2(%bp), %ax 0 000045BD 1B56FC sbbw -4(%bp), %dx 0 000045C0 83C40A addw $10, %sp 0 000045C3 85D2 testw %dx, %dx 0 000045C5 7F06 jg .L24 0 000045C7 751E jne .L6 0 000045C9 85C0 testw %ax, %ax 0 000045CB 741A je .L6 100 .L24: 0 000045CD 52 pushw %dx 0 000045CE 50 pushw %ax 0 000045CF 8B46FE movw -2(%bp), %ax 0 000045D2 0346FA addw -6(%bp), %ax 0 000045D5 8B56FC movw -4(%bp), %dx 0 000045D8 1356F8 adcw -8(%bp), %dx 0 000045DB 52 pushw %dx 0 000045DC 50 pushw %ax 0 000045DD 56 pushw %si 0 000045DE FF76F6 pushw -10(%bp) 0 000045E1 E8[FEFF] call MoveSectors 0 000045E4 83C40C addw $12, %sp 113 .L6: 0 000045E7 57 pushw %di 0 000045E8 E8[FEFF] call AllocMem 0 000045EB 83C402 addw $2, %sp 0 000045EE 3946EA cmpw %ax, -22(%bp) 0 000045F1 7508 jne .L25 0 000045F3 3956E8 cmpw %dx, -24(%bp) 0 000045F6 7503E9B2 je .L32 0 000045FA 00 121 .L25: 0 000045FB C706[0C00] movw $1, alloc_fail_f 0 000045FF 0100 0 00004601 FF76F0 pushw -16(%bp) 0 00004604 52 pushw %dx 0 00004605 50 pushw %ax 0 00004606 E8[FEFF] call __ashlsi3 0 00004609 83C406 addw $6, %sp 0 0000460C 89C1 movw %ax, %cx 0 0000460E 89D3 movw %dx, %bx 0 00004610 3B56FC cmpw -4(%bp), %dx 0 00004613 7707 ja .L26 0 00004615 756E jne .L10 0 00004617 3B46FE cmpw -2(%bp), %ax 0 0000461A 7669 jbe .L10 135 .L26: 0 0000461C 895EF6 movw %bx, -10(%bp) 0 0000461F B80D00 movw $13, %ax 0 00004622 F7E7 mulw %di 0 00004624 89C7 movw %ax, %di 0 00004626 8BBD[1B00] movw f+27(%di), %di 0 0000462A 8CC6 movw %es, %si 0 0000462C 93 xchgw %ax, %bx 0 0000462D 8B401D movw 29(%bx,%si), %ax 0 00004630 8EC0 movw %ax, %es 0 00004632 26894D16 movw %cx, %es:22(%di) 0 00004636 8B5EF6 movw -10(%bp), %bx 0 00004639 26895D18 movw %bx, %es:24(%di) 0 0000463D A1[0600] movw used_sectors, %ax 0 00004640 8B16[0800] movw used_sectors+2, %dx 0 00004644 2B46FA subw -6(%bp), %ax 0 00004647 1B56F8 sbbw -8(%bp), %dx 0 0000464A 2B46FE subw -2(%bp), %ax 0 0000464D 1B56FC sbbw -4(%bp), %dx 0 00004650 85D2 testw %dx, %dx 0 00004652 7F06 jg .L27 0 00004654 7522 jne .L34 0 00004656 85C0 testw %ax, %ax 0 00004658 741E je .L34 159 .L27: 0 0000465A 52 pushw %dx 0 0000465B 50 pushw %ax 0 0000465C 034EFA addw -6(%bp), %cx 0 0000465F 135EF8 adcw -8(%bp), %bx 0 00004662 53 pushw %bx 0 00004663 51 pushw %cx 0 00004664 8B46FE movw -2(%bp), %ax 0 00004667 0346FA addw -6(%bp), %ax 0 0000466A 8B56FC movw -4(%bp), %dx 0 0000466D 1356F8 adcw -8(%bp), %dx 0 00004670 52 pushw %dx 0 00004671 50 pushw %ax 0 00004672 E8[FEFF] call MoveSectors 0 00004675 83C40C addw $12, %sp 174 .L34: 0 00004678 B80100 movw $1, %ax 0 0000467B 50 pushw %ax 0 0000467C B8[0E00] movw $jmp_allocfail, %ax 0 0000467F 50 pushw %ax 0 00004680 16 pushw %ss 0 00004681 1F popw %ds 0 00004682 E8[FEFF] call longjmp 182 .L10: 0 00004685 8E46F2 movw -14(%bp), %es 0 00004688 8B76F4 movw -12(%bp), %si 0 0000468B 26894C16 movw %cx, %es:22(%si) 0 0000468F 8E46F2 movw -14(%bp), %es 0 00004692 8B76F4 movw -12(%bp), %si 0 00004695 26895C18 movw %bx, %es:24(%si) 189 .L36: 0 00004699 C706[0A00] movw $1, data_lost_f 0 0000469D 0100 191 .L35: 0 0000469F B80D00 movw $13, %ax 0 000046A2 F7E7 mulw %di 0 000046A4 93 xchgw %ax, %bx 0 000046A5 36808F[27] orb $2, %ss:f+39(%bx) 0 000046A9 [00]02 0 000046AB EBCB jmp .L34 197 .L32: 0 000046AD 8E46F2 movw -14(%bp), %es 0 000046B0 8B5EF4 movw -12(%bp), %bx 0 000046B3 8B46FE movw -2(%bp), %ax 0 000046B6 26894716 movw %ax, %es:22(%bx) 0 000046BA 8E46F2 movw -14(%bp), %es 0 000046BD 8B5EF4 movw -12(%bp), %bx 0 000046C0 8B46FC movw -4(%bp), %ax 0 000046C3 26894718 movw %ax, %es:24(%bx) 206 .L1: 0 000046C7 89EC movw %bp, %sp 0 000046C9 5D popw %bp 0 000046CA 07 popw %es 0 000046CB 5F popw %di 0 000046CC 5E popw %si 0 000046CD 16 pushw %ss 0 000046CE 1F popw %ds 0 000046CF C3 ret 215 .L4: 0 000046D0 395EFC cmpw %bx, -4(%bp) 0 000046D3 770D ja .L28 0 000046D5 7403E9C6 jne .L14 0 000046D9 00 0 000046DA 394EFE cmpw %cx, -2(%bp) 0 000046DD 7703E9BE jbe .L14 0 000046E1 00 221 .L28: 0 000046E2 895EF2 movw %bx, -14(%bp) 0 000046E5 894EF4 movw %cx, -12(%bp) 0 000046E8 57 pushw %di 0 000046E9 E8[FEFF] call AllocMem 0 000046EC 83C402 addw $2, %sp 0 000046EF 3946EA cmpw %ax, -22(%bp) 0 000046F2 8B4EF4 movw -12(%bp), %cx 0 000046F5 8B5EF2 movw -14(%bp), %bx 0 000046F8 7505 jne .L29 0 000046FA 3956E8 cmpw %dx, -24(%bp) 0 000046FD 7433 je .L16 233 .L29: 0 000046FF 895EF2 movw %bx, -14(%bp) 0 00004702 894EF4 movw %cx, -12(%bp) 0 00004705 C706[0C00] movw $1, alloc_fail_f 0 00004709 0100 0 0000470B FF76F0 pushw -16(%bp) 0 0000470E 52 pushw %dx 0 0000470F 50 pushw %ax 0 00004710 E8[FEFF] call __ashlsi3 0 00004713 83C406 addw $6, %sp 0 00004716 8946FE movw %ax, -2(%bp) 0 00004719 8956FC movw %dx, -4(%bp) 0 0000471C 8B5EF2 movw -14(%bp), %bx 0 0000471F 39D3 cmpw %dx, %bx 0 00004721 7603E973 ja .L36 0 00004725 FF 0 00004726 8B4EF4 movw -12(%bp), %cx 0 00004729 7507 jne .L16 0 0000472B 39C1 cmpw %ax, %cx 0 0000472D 7603E967 ja .L36 0 00004731 FF 251 .L16: 0 00004732 8B76F6 movw -10(%bp), %si 0 00004735 36C414 lesw %ss:(%si), %dx 0 00004738 89D6 movw %dx, %si 0 0000473A 8E5EFE movw -2(%bp), %ds 0 0000473D 268C5C16 movw %ds, %es:22(%si) 0 00004741 8B46FC movw -4(%bp), %ax 0 00004744 26894418 movw %ax, %es:24(%si) 0 00004748 36A1[0600] movw %ss:used_sectors, %ax 0 0000474C 368B16[08] movw %ss:used_sectors+2, %dx 0 00004750 [00] 0 00004751 2B46FA subw -6(%bp), %ax 0 00004754 1B56F8 sbbw -8(%bp), %dx 0 00004757 29C8 subw %cx, %ax 0 00004759 19DA sbbw %bx, %dx 0 0000475B 85D2 testw %dx, %dx 0 0000475D 7F06 jg .L31 0 0000475F 7534 jne .L19 0 00004761 85C0 testw %ax, %ax 0 00004763 7430 je .L19 270 .L31: 0 00004765 52 pushw %dx 0 00004766 50 pushw %ax 0 00004767 8B46FE movw -2(%bp), %ax 0 0000476A 0346FA addw -6(%bp), %ax 0 0000476D 8B56FC movw -4(%bp), %dx 0 00004770 1356F8 adcw -8(%bp), %dx 0 00004773 52 pushw %dx 0 00004774 50 pushw %ax 0 00004775 8B46FA movw -6(%bp), %ax 0 00004778 01C8 addw %cx, %ax 0 0000477A 894EF2 movw %cx, -14(%bp) 0 0000477D 8B56F8 movw -8(%bp), %dx 0 00004780 11DA adcw %bx, %dx 0 00004782 895EF4 movw %bx, -12(%bp) 0 00004785 52 pushw %dx 0 00004786 50 pushw %ax 0 00004787 16 pushw %ss 0 00004788 1F popw %ds 0 00004789 E8[FEFF] call MoveSectors 0 0000478C 83C40C addw $12, %sp 0 0000478F 8B4EF2 movw -14(%bp), %cx 0 00004792 8B5EF4 movw -12(%bp), %bx 293 .L19: 0 00004795 36833E[0C] cmpw $0, %ss:alloc_fail_f 0 00004799 [00]00 0 0000479B 7403E9FF jne .L35 0 0000479F FE 296 .L14: 0 000047A0 014EEE addw %cx, -18(%bp) 0 000047A3 115EEC adcw %bx, -20(%bp) 0 000047A6 8B46FE movw -2(%bp), %ax 0 000047A9 0146FA addw %ax, -6(%bp) 0 000047AC 8B46FC movw -4(%bp), %ax 0 000047AF 1146F8 adcw %ax, -8(%bp) 0 000047B2 47 incw %di 0 000047B3 8346F60D addw $13, -10(%bp) 0 000047B7 E950FD jmp .L2 306 .size AllocPart, .-AllocPart === Switch to base unknown -> ".RODATA.STR1.1" 307 .section .rodata.str1.1,"aMS",@progbits,1 308 .LC0: 0 00001E02 44617461 .string "Data lost due to allocation error" 0 00001E06 206C6F73 0 00001E0A 74206475 0 00001E0E 6520746F 0 00001E12 20616C6C === Switch to base unknown -> ".TEXT" 310 .text 311 .global SavingDiskAllocate 312 .type SavingDiskAllocate, @function 313 SavingDiskAllocate: 0 000047BA 56 pushw %si 0 000047BB 57 pushw %di 0 000047BC 55 pushw %bp 0 000047BD 89E5 movw %sp, %bp 0 000047BF 8B7E08 movw 8(%bp), %di 0 000047C2 8B760A movw 10(%bp), %si 0 000047C5 A1[0000] movw disk_bad, %ax 0 000047C8 A3[0400] movw %ax, old_disk_bad.3244 0 000047CB C706[0200] movw $1, ok.3245 0 000047CF 0100 0 000047D1 C706[0000] movw $0, tries.3246 0 000047D5 0000 0 000047D7 E8[FEFF] call ConfigMaxAlloc 0 000047DA 893E[0600] movw %di, used_sectors 0 000047DE 8936[0800] movw %si, used_sectors+2 0 000047E2 B8[0E00] movw $jmp_allocfail, %ax 0 000047E5 50 pushw %ax 0 000047E6 E8[FEFF] call setjmp 0 000047E9 83C402 addw $2, %sp 0 000047EC 85C0 testw %ax, %ax 0 000047EE 740B je .L39 0 000047F0 833E[0A00] cmpw $0, data_lost_f 0 000047F4 00 0 000047F5 7535 jne .L40 335 .L41: 0 000047F7 FF06[0000] incw tries.3246 337 .L39: 0 000047FB 833E[0000] cmpw $2, tries.3246 0 000047FF 02 0 00004800 7F57 jg .L42 0 00004802 E8[FEFF] call calc_alloc 0 00004805 BB[0000] movw $newf, %bx 0 00004808 8B4706 movw 6(%bx), %ax 0 0000480B 3B4766 cmpw 102(%bx), %ax 0 0000480E 770A ja .L47 0 00004810 7526 jne .L43 0 00004812 8B4704 movw 4(%bx), %ax 0 00004815 3B4764 cmpw 100(%bx), %ax 0 00004818 761E jbe .L43 349 .L47: 0 0000481A C706[0200] movw $0, ok.3245 0 0000481E 0000 351 .L45: 0 00004820 E8[FEFF] call set_sectors 353 .L46: 0 00004823 A1[0200] movw ok.3245, %ax 0 00004826 89EC movw %bp, %sp 0 00004828 5D popw %bp 0 00004829 5F popw %di 0 0000482A 5E popw %si 0 0000482B C3 ret 360 .L40: 0 0000482C B8[0000] movw $.LC0, %ax 0 0000482F 50 pushw %ax 0 00004830 E8[FEFF] call fatal 0 00004833 83C402 addw $2, %sp 0 00004836 EBBF jmp .L41 366 .L43: 0 00004838 C706[0C00] movw $0, alloc_fail_f 0 0000483C 0000 0 0000483E C706[0A00] movw $0, data_lost_f 0 00004842 0000 0 00004844 31C0 xorw %ax, %ax 0 00004846 50 pushw %ax 0 00004847 50 pushw %ax 0 00004848 50 pushw %ax 0 00004849 50 pushw %ax 0 0000484A 50 pushw %ax 0 0000484B E893FC call AllocPart 0 0000484E 83C40A addw $10, %sp 0 00004851 A1[0400] movw old_disk_bad.3244, %ax 0 00004854 A3[0000] movw %ax, disk_bad 0 00004857 EBC7 jmp .L45 380 .L42: 0 00004859 C706[0200] movw $0, ok.3245 0 0000485D 0000 0 0000485F EBC2 jmp .L46 383 .size SavingDiskAllocate, .-SavingDiskAllocate 384 .local tries.3246 385 .comm tries.3246,2,2 386 .local ok.3245 387 .comm ok.3245,2,2 388 .local old_disk_bad.3244 389 .comm old_disk_bad.3244,2,2 390 .local used_sectors 391 .comm used_sectors,4,2 392 .local data_lost_f 393 .comm data_lost_f,2,2 394 .local alloc_fail_f 395 .comm alloc_fail_f,2,2 396 .local jmp_allocfail 397 .comm jmp_allocfail,20,2 398 .ident "GCC: (GNU) 6.3.0" === Trace listing source: resize.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .type AllocSectorBuffer, @function 7 AllocSectorBuffer: 0 00004861 36833E[00] cmpw $0, %ss:buffer_size 0 00004865 [00]00 0 00004867 7560 jne .L13 0 00004869 56 pushw %si 0 0000486A 57 pushw %di 0 0000486B 36C51E[00] ldsw %ss:conf, %bx 0 0000486F [00] 0 00004870 8B7F1B movw 27(%bx), %di 0 00004873 BE00F0 movw $-4096, %si 0 00004876 56 pushw %si 0 00004877 16 pushw %ss 0 00004878 1F popw %ds 0 00004879 E8[FEFF] call _fmalloc 0 0000487C A3[0200] movw %ax, sector_buffer 0 0000487F 8916[0400] movw %dx, sector_buffer+2 0 00004883 83C402 addw $2, %sp 0 00004886 09D0 orw %dx, %ax 0 00004888 740A je .L4 24 .L16: 0 0000488A 96 xchgw %ax, %si 0 0000488B 31D2 xorw %dx, %dx 0 0000488D F7F7 divw %di 0 0000488F A3[0000] movw %ax, buffer_size 0 00004892 EB17 jmp .L6 30 .L4: 0 00004894 BE0078 movw $30720, %si 0 00004897 56 pushw %si 0 00004898 E8[FEFF] call _fmalloc 0 0000489B A3[0200] movw %ax, sector_buffer 0 0000489E 8916[0400] movw %dx, sector_buffer+2 0 000048A2 83C402 addw $2, %sp 0 000048A5 09D0 orw %dx, %ax 0 000048A7 85C0 testw %ax, %ax 0 000048A9 75DF jne .L16 40 .L6: 0 000048AB 36833E[00] cmpw $0, %ss:buffer_size 0 000048AF [00]00 0 000048B1 7514 jne .L1 0 000048B3 57 pushw %di 0 000048B4 E8[FEFF] call xalloc 0 000048B7 A3[0200] movw %ax, sector_buffer 0 000048BA 8C16[0400] movw %ss, sector_buffer+2 0 000048BE C706[0000] movw $1, buffer_size 0 000048C2 0100 0 000048C4 83C402 addw $2, %sp 49 .L1: 0 000048C7 5F popw %di 0 000048C8 5E popw %si 52 .L13: 0 000048C9 C3 ret 54 .size AllocSectorBuffer, .-AllocSectorBuffer 55 .global MoveSectors 56 .type MoveSectors, @function 57 MoveSectors: 0 000048CA 56 pushw %si 0 000048CB 57 pushw %di 0 000048CC 06 pushw %es 0 000048CD 55 pushw %bp 0 000048CE 89E5 movw %sp, %bp 0 000048D0 83EC0E subw $14, %sp 0 000048D3 8B460A movw 10(%bp), %ax 0 000048D6 8946FC movw %ax, -4(%bp) 0 000048D9 8B7E0C movw 12(%bp), %di 0 000048DC C44E0E lesw 14(%bp), %cx 0 000048DF 894EF6 movw %cx, -10(%bp) 0 000048E2 8C46F8 movw %es, -8(%bp) 0 000048E5 C44612 lesw 18(%bp), %ax 0 000048E8 8946FE movw %ax, -2(%bp) 0 000048EB 8C46FA movw %es, -6(%bp) 0 000048EE E870FF call AllocSectorBuffer 0 000048F1 8B56F8 movw -8(%bp), %dx 0 000048F4 39FA cmpw %di, %dx 0 000048F6 8B5EFA movw -6(%bp), %bx 0 000048F9 8B4EF6 movw -10(%bp), %cx 0 000048FC 770D ja .L34 0 000048FE 7403E998 jne .L18 0 00004902 00 0 00004903 3B4EFC cmpw -4(%bp), %cx 0 00004906 7703E990 jbe .L18 0 0000490A 00 82 .L34: 0 0000490B 89C8 movw %cx, %ax 0 0000490D 2B46FC subw -4(%bp), %ax 0 00004910 89D6 movw %dx, %si 0 00004912 19FE sbbw %di, %si 0 00004914 8976F8 movw %si, -8(%bp) 0 00004917 8B36[0000] movw buffer_size, %si 0 0000491B 8976FA movw %si, -6(%bp) 0 0000491E 31F6 xorw %si, %si 0 00004920 3B76F8 cmpw -8(%bp), %si 0 00004923 7508 jne .L22 0 00004925 3946FA cmpw %ax, -6(%bp) 0 00004928 7603 jbe .L22 0 0000492A 8946FA movw %ax, -6(%bp) 96 .L22: 0 0000492D 8B46FE movw -2(%bp), %ax 0 00004930 09D8 orw %bx, %ax 0 00004932 7507 jne .L25 100 .L17: 0 00004934 89EC movw %bp, %sp 0 00004936 5D popw %bp 0 00004937 07 popw %es 0 00004938 5F popw %di 0 00004939 5E popw %si 0 0000493A C3 ret 107 .L25: 0 0000493B 8B46FE movw -2(%bp), %ax 0 0000493E 96 xchgw %ax, %si 0 0000493F 89D8 movw %bx, %ax 0 00004941 85DB testw %bx, %bx 0 00004943 7707 ja .L24 0 00004945 750B jne .L23 0 00004947 3B76FA cmpw -6(%bp), %si 0 0000494A 7606 jbe .L23 116 .L24: 0 0000494C 8B46FA movw -6(%bp), %ax 0 0000494F 96 xchgw %ax, %si 0 00004950 31C0 xorw %ax, %ax 120 .L23: 0 00004952 895EF2 movw %bx, -14(%bp) 0 00004955 8946F4 movw %ax, -12(%bp) 0 00004958 FF36[0400] pushw sector_buffer+2 0 0000495C FF36[0200] pushw sector_buffer 0 00004960 52 pushw %dx 0 00004961 8956F6 movw %dx, -10(%bp) 0 00004964 51 pushw %cx 0 00004965 894EF8 movw %cx, -8(%bp) 0 00004968 56 pushw %si 0 00004969 E8[FEFF] call read_sector 0 0000496C FF36[0400] pushw sector_buffer+2 0 00004970 FF36[0200] pushw sector_buffer 0 00004974 57 pushw %di 0 00004975 FF76FC pushw -4(%bp) 0 00004978 56 pushw %si 0 00004979 E8[FEFF] call write_sector 0 0000497C 8B4EF8 movw -8(%bp), %cx 0 0000497F 01F1 addw %si, %cx 0 00004981 8B56F6 movw -10(%bp), %dx 0 00004984 8B46F4 movw -12(%bp), %ax 0 00004987 11C2 adcw %ax, %dx 0 00004989 0176FC addw %si, -4(%bp) 0 0000498C 11C7 adcw %ax, %di 0 0000498E 2976FE subw %si, -2(%bp) 0 00004991 8B5EF2 movw -14(%bp), %bx 0 00004994 19C3 sbbw %ax, %bx 0 00004996 83C414 addw $20, %sp 0 00004999 EB92 jmp .L22 149 .L18: 0 0000499B 39D7 cmpw %dx, %di 0 0000499D 7707 ja .L35 0 0000499F 7593 jne .L17 0 000049A1 394EFC cmpw %cx, -4(%bp) 0 000049A4 768E jbe .L17 155 .L35: 0 000049A6 8B46FC movw -4(%bp), %ax 0 000049A9 29C8 subw %cx, %ax 0 000049AB 89FE movw %di, %si 0 000049AD 19D6 sbbw %dx, %si 0 000049AF 8976FA movw %si, -6(%bp) 0 000049B2 8E06[0000] movw buffer_size, %es 0 000049B6 31F6 xorw %si, %si 0 000049B8 3B76FA cmpw -6(%bp), %si 0 000049BB 7508 jne .L28 0 000049BD 8CC6 movw %es, %si 0 000049BF 39C6 cmpw %ax, %si 0 000049C1 7602 jbe .L28 0 000049C3 8EC0 movw %ax, %es 169 .L28: 0 000049C5 034EFE addw -2(%bp), %cx 0 000049C8 11DA adcw %bx, %dx 0 000049CA 8B76FC movw -4(%bp), %si 0 000049CD 0376FE addw -2(%bp), %si 0 000049D0 11DF adcw %bx, %di 0 000049D2 897EFC movw %di, -4(%bp) 176 .L30: 0 000049D5 8B46FE movw -2(%bp), %ax 0 000049D8 09D8 orw %bx, %ax 0 000049DA 7503E955 je .L17 0 000049DE FF 0 000049DF 8CC7 movw %es, %di 0 000049E1 31C0 xorw %ax, %ax 0 000049E3 39D8 cmpw %bx, %ax 0 000049E5 7707 ja .L32 0 000049E7 750A jne .L31 0 000049E9 3B7EFE cmpw -2(%bp), %di 0 000049EC 7605 jbe .L31 187 .L32: 0 000049EE 8B7EFE movw -2(%bp), %di 0 000049F1 89D8 movw %bx, %ax 190 .L31: 0 000049F3 895EF4 movw %bx, -12(%bp) 0 000049F6 29F9 subw %di, %cx 0 000049F8 19C2 sbbw %ax, %dx 0 000049FA 8946FA movw %ax, -6(%bp) 0 000049FD FF36[0400] pushw sector_buffer+2 0 00004A01 FF36[0200] pushw sector_buffer 0 00004A05 52 pushw %dx 0 00004A06 8956F6 movw %dx, -10(%bp) 0 00004A09 51 pushw %cx 0 00004A0A 894EF8 movw %cx, -8(%bp) 0 00004A0D 57 pushw %di 0 00004A0E E8[FEFF] call read_sector 0 00004A11 29FE subw %di, %si 0 00004A13 8B46FA movw -6(%bp), %ax 0 00004A16 1946FC sbbw %ax, -4(%bp) 0 00004A19 FF36[0400] pushw sector_buffer+2 0 00004A1D FF36[0200] pushw sector_buffer 0 00004A21 FF76FC pushw -4(%bp) 0 00004A24 56 pushw %si 0 00004A25 57 pushw %di 0 00004A26 E8[FEFF] call write_sector 0 00004A29 297EFE subw %di, -2(%bp) 0 00004A2C 8B46FA movw -6(%bp), %ax 0 00004A2F 8B5EF4 movw -12(%bp), %bx 0 00004A32 19C3 sbbw %ax, %bx 0 00004A34 83C414 addw $20, %sp 0 00004A37 8B56F6 movw -10(%bp), %dx 0 00004A3A 8B4EF8 movw -8(%bp), %cx 0 00004A3D EB96 jmp .L30 220 .size MoveSectors, .-MoveSectors 221 .type RelocateRootDir, @function 222 RelocateRootDir: 0 00004A3F BB[0000] movw $newf, %bx 0 00004A42 31C0 xorw %ax, %ax 0 00004A44 50 pushw %ax 0 00004A45 FF777A pushw 122(%bx) 0 00004A48 50 pushw %ax 0 00004A49 FF36[7C00] pushw f+124 0 00004A4D 8B577C movw 124(%bx), %dx 0 00004A50 50 pushw %ax 0 00004A51 52 pushw %dx 0 00004A52 E8[FEFF] call MoveSectors 0 00004A55 83C40C addw $12, %sp 0 00004A58 C3 ret 235 .size RelocateRootDir, .-RelocateRootDir 236 .type RelocateClusters, @function 237 RelocateClusters: 0 00004A59 56 pushw %si 0 00004A5A 06 pushw %es 0 00004A5B 8B16[0800] movw fatstat+8, %dx 0 00004A5F 4A decw %dx 0 00004A60 BE[0000] movw $newf, %si 0 00004A63 92 xchgw %ax, %dx 0 00004A64 F7A48800 mulw 136(%si) 0 00004A68 52 pushw %dx 0 00004A69 50 pushw %ax 0 00004A6A 31C0 xorw %ax, %ax 0 00004A6C 50 pushw %ax 0 00004A6D FF36[7E00] pushw f+126 0 00004A71 8B547E movw 126(%si), %dx 0 00004A74 50 pushw %ax 0 00004A75 52 pushw %dx 0 00004A76 E8[FEFF] call MoveSectors 0 00004A79 83C40C addw $12, %sp 0 00004A7C 07 popw %es 0 00004A7D 5E popw %si 0 00004A7E C3 ret 258 .size RelocateClusters, .-RelocateClusters 259 .global ClearSectors 260 .type ClearSectors, @function 261 ClearSectors: 0 00004A7F 56 pushw %si 0 00004A80 57 pushw %di 0 00004A81 06 pushw %es 0 00004A82 55 pushw %bp 0 00004A83 89E5 movw %sp, %bp 0 00004A85 83EC0E subw $14, %sp 0 00004A88 C4460A lesw 10(%bp), %ax 0 00004A8B 8946FC movw %ax, -4(%bp) 0 00004A8E 8C46FA movw %es, -6(%bp) 0 00004A91 8B760E movw 14(%bp), %si 0 00004A94 8B4610 movw 16(%bp), %ax 0 00004A97 8946FE movw %ax, -2(%bp) 0 00004A9A E8C4FD call AllocSectorBuffer 0 00004A9D 8B1E[0000] movw buffer_size, %bx 0 00004AA1 31C9 xorw %cx, %cx 0 00004AA3 3B4EFE cmpw -2(%bp), %cx 0 00004AA6 8ED9 movw %cx, %ds 0 00004AA8 7506 jne .L41 0 00004AAA 39F3 cmpw %si, %bx 0 00004AAC 7602 jbe .L41 0 00004AAE 89F3 movw %si, %bx 283 .L41: 0 00004AB0 894EF6 movw %cx, -10(%bp) 0 00004AB3 36C43E[00] lesw %ss:conf, %di 0 00004AB7 [00] 0 00004AB8 268B451B movw %es:27(%di), %ax 0 00004ABC F7E3 mulw %bx 0 00004ABE 895EF8 movw %bx, -8(%bp) 0 00004AC1 50 pushw %ax 0 00004AC2 1E pushw %ds 0 00004AC3 36FF36[04] pushw %ss:sector_buffer+2 0 00004AC7 [00] 0 00004AC8 36FF36[02] pushw %ss:sector_buffer 0 00004ACC [00] 0 00004ACD 16 pushw %ss 0 00004ACE 1F popw %ds 0 00004ACF E8[FEFF] call _fmemset 0 00004AD2 83C408 addw $8, %sp 0 00004AD5 8B5EF8 movw -8(%bp), %bx 0 00004AD8 8B4EF6 movw -10(%bp), %cx 299 .L43: 0 00004ADB 89F0 movw %si, %ax 0 00004ADD 0B46FE orw -2(%bp), %ax 0 00004AE0 7507 jne .L46 0 00004AE2 89EC movw %bp, %sp 0 00004AE4 5D popw %bp 0 00004AE5 07 popw %es 0 00004AE6 5F popw %di 0 00004AE7 5E popw %si 0 00004AE8 C3 ret 309 .L46: 0 00004AE9 89F0 movw %si, %ax 0 00004AEB 8B56FE movw -2(%bp), %dx 0 00004AEE 39CA cmpw %cx, %dx 0 00004AF0 7706 ja .L45 0 00004AF2 7508 jne .L44 0 00004AF4 39DE cmpw %bx, %si 0 00004AF6 7604 jbe .L44 317 .L45: 0 00004AF8 89D8 movw %bx, %ax 0 00004AFA 89CA movw %cx, %dx 320 .L44: 0 00004AFC 8956F2 movw %dx, -14(%bp) 0 00004AFF 894EF4 movw %cx, -12(%bp) 0 00004B02 895EF6 movw %bx, -10(%bp) 0 00004B05 36FF36[04] pushw %ss:sector_buffer+2 0 00004B09 [00] 0 00004B0A 36FF36[02] pushw %ss:sector_buffer 0 00004B0E [00] 0 00004B0F FF76FA pushw -6(%bp) 0 00004B12 FF76FC pushw -4(%bp) 0 00004B15 50 pushw %ax 0 00004B16 8946F8 movw %ax, -8(%bp) 0 00004B19 E8[FEFF] call write_sector 0 00004B1C 8B46F8 movw -8(%bp), %ax 0 00004B1F 0146FC addw %ax, -4(%bp) 0 00004B22 8B56F2 movw -14(%bp), %dx 0 00004B25 1156FA adcw %dx, -6(%bp) 0 00004B28 29C6 subw %ax, %si 0 00004B2A 1956FE sbbw %dx, -2(%bp) 0 00004B2D 83C40A addw $10, %sp 0 00004B30 8B4EF4 movw -12(%bp), %cx 0 00004B33 8B5EF6 movw -10(%bp), %bx 0 00004B36 EBA3 jmp .L43 341 .size ClearSectors, .-ClearSectors === Switch to base unknown -> ".RODATA.STR1.1" 342 .section .rodata.str1.1,"aMS",@progbits,1 343 .LC0: 0 00001E24 43616E20 .string "Can not determine current directory on drive %c" 0 00001E28 6E6F7420 0 00001E2C 64657465 0 00001E30 726D696E 0 00001E34 65206375 345 .LC1: 0 00001E54 43616E20 .string "Can not open fat" 0 00001E58 6E6F7420 0 00001E5C 6F70656E 0 00001E60 20666174 0 00001E64 00 347 .LC2: 0 00001E65 46415420 .string "FAT has bad units in it" 0 00001E69 68617320 0 00001E6D 62616420 0 00001E71 756E6974 0 00001E75 7320696E 349 .LC3: 0 00001E7D 416C6C20 .string "All data can not fit the new disk" 0 00001E81 64617461 0 00001E85 2063616E 0 00001E89 206E6F74 0 00001E8D 20666974 351 .LC4: 0 00001E9F 52657369 .string "Resizing in progress..." 0 00001EA3 7A696E67 0 00001EA7 20696E20 0 00001EAB 70726F67 0 00001EAF 72657373 353 .LC5: 0 00001EB7 6E657766 .string "newf.size > f.size and !SavingDiskAllocate newf.size=%08lX f.size=%08lX\n" 0 00001EBB 2E73697A 0 00001EBF 65203E20 0 00001EC3 662E7369 0 00001EC7 7A652061 355 .LC6: 0 00001F00 4661696C .string "Failed to allocate memory" 0 00001F04 65642074 0 00001F08 6F20616C 0 00001F0C 6C6F6361 0 00001F10 7465206D 357 .LC7: 0 00001F1A 6E657766 .string "newf.size < f.size and !SavingDiskAllocate newf.size=%08lX f.size=%08lX\n" 0 00001F1E 2E73697A 0 00001F22 65203C20 0 00001F26 662E7369 0 00001F2A 7A652061 359 .LC8: 0 00001F63 436F756C .string "Could not find current directory" 0 00001F67 64206E6F 0 00001F6B 74206669 0 00001F6F 6E642063 0 00001F73 75727265 361 .LC9: 0 00001F84 4469736B .string "Disk resized" 0 00001F88 20726573 0 00001F8C 697A6564 0 00001F90 00 === Switch to base unknown -> ".TEXT" 363 .text 364 .global Resize 365 .type Resize, @function 366 Resize: 0 00004B38 56 pushw %si 0 00004B39 57 pushw %di 0 00004B3A 06 pushw %es 0 00004B3B 55 pushw %bp 0 00004B3C 89E5 movw %sp, %bp 0 00004B3E 81EC2201 subw $290, %sp 0 00004B42 B80401 movw $260, %ax 0 00004B45 50 pushw %ax 0 00004B46 8D86FCFE leaw -260(%bp), %ax 0 00004B4A 50 pushw %ax 0 00004B4B A0[0000] movb drive, %al 0 00004B4E 98 cbtw 0 00004B4F 83C0C0 addw $-64, %ax 0 00004B52 50 pushw %ax 0 00004B53 E8[FEFF] call _getdcwd 0 00004B56 83C406 addw $6, %sp 0 00004B59 85C0 testw %ax, %ax 0 00004B5B 750F jne .L49 0 00004B5D A0[0000] movb drive, %al 0 00004B60 98 cbtw 0 00004B61 50 pushw %ax 0 00004B62 B8[0000] movw $.LC0, %ax 0 00004B65 50 pushw %ax 0 00004B66 E8[FEFF] call fatal 0 00004B69 83C404 addw $4, %sp 392 .L49: 0 00004B6C BE[0000] movw $f, %si 0 00004B6F 56 pushw %si 0 00004B70 E8[FEFF] call FAT_open 0 00004B73 83C402 addw $2, %sp 0 00004B76 85C0 testw %ax, %ax 0 00004B78 89B6EAFE movw %si, -278(%bp) 0 00004B7C 750A jne .L50 0 00004B7E B8[3000] movw $.LC1, %ax 0 00004B81 50 pushw %ax 0 00004B82 E8[FEFF] call fatal 0 00004B85 83C402 addw $2, %sp 404 .L50: 0 00004B88 E8[FEFF] call FAT_stats 0 00004B8B BB[0000] movw $fatstat, %bx 0 00004B8E 837F0400 cmpw $0, 4(%bx) 0 00004B92 899EE4FE movw %bx, -284(%bp) 0 00004B96 740A je .L51 0 00004B98 B8[4100] movw $.LC2, %ax 0 00004B9B 50 pushw %ax 0 00004B9C E8[FEFF] call error 0 00004B9F 83C402 addw $2, %sp 414 .L51: 0 00004BA2 8B9EE4FE movw -284(%bp), %bx 0 00004BA6 8B4702 movw 2(%bx), %ax 0 00004BA9 85C0 testw %ax, %ax 0 00004BAB 7511 jne .L52 0 00004BAD 833E[0000] cmpw $0, data_on_disk 0 00004BB1 00 0 00004BB2 750A jne .L52 0 00004BB4 E8[FEFF] call WriteNewFormat 422 .L48: 0 00004BB7 89EC movw %bp, %sp 0 00004BB9 5D popw %bp 0 00004BBA 07 popw %es 0 00004BBB 5F popw %di 0 00004BBC 5E popw %si 0 00004BBD C3 ret 429 .L52: 0 00004BBE 3B06[8A00] cmpw newf+138, %ax 0 00004BC2 BF[0000] movw $newf, %di 0 00004BC5 760F jbe .L54 0 00004BC7 B8[5900] movw $.LC3, %ax 0 00004BCA 50 pushw %ax 0 00004BCB E8[FEFF] call warning 0 00004BCE E8[FEFF] call WriteNewFormat 437 .L118: 0 00004BD1 83C402 addw $2, %sp 0 00004BD4 EBE1 jmp .L48 440 .L54: 0 00004BD6 E8[FEFF] call print_newf 0 00004BD9 B8[7B00] movw $.LC4, %ax 0 00004BDC 50 pushw %ax 0 00004BDD E8[FEFF] call puts 0 00004BE0 C41E[0000] lesw conf, %bx 0 00004BE4 26C64738 movb $0, %es:56(%bx) 0 00004BE8 00 0 00004BE9 83C402 addw $2, %sp 0 00004BEC A1[8A00] movw newf+138, %ax 0 00004BEF 3B06[8A00] cmpw f+138, %ax 0 00004BF3 721E jc .L55 0 00004BF5 8B4512 movw 18(%di), %ax 0 00004BF8 8B9EEAFE movw -278(%bp), %bx 0 00004BFC 3B4712 cmpw 18(%bx), %ax 0 00004BFF 7212 jc .L55 0 00004C01 8B9EE4FE movw -284(%bp), %bx 0 00004C05 8B4708 movw 8(%bx), %ax 0 00004C08 8986ECFE movw %ax, -276(%bp) 0 00004C0C D1E8 shrw $1, %ax 0 00004C0E 394702 cmpw %ax, 2(%bx) 0 00004C11 7306 jnc .L56 461 .L55: 0 00004C13 E8[FEFF] call packdata 0 00004C16 E8[FEFF] call save_FAT_buffer 464 .L56: 0 00004C19 8B4506 movw 6(%di), %ax 0 00004C1C 8B9EEAFE movw -278(%bp), %bx 0 00004C20 3B4706 cmpw 6(%bx), %ax 0 00004C23 7710 ja .L57 0 00004C25 7403E9B3 jne .L59 0 00004C29 00 0 00004C2A 8B4504 movw 4(%di), %ax 0 00004C2D 3B4704 cmpw 4(%bx), %ax 0 00004C30 7703E9A8 jbe .L59 0 00004C34 00 473 .L57: 0 00004C35 8B1E[0000] movw fat, %bx 0 00004C39 8BB6E4FE movw -284(%bp), %si 0 00004C3D 8B4408 movw 8(%si), %ax 0 00004C40 48 decw %ax 0 00004C41 F7A78800 mulw 136(%bx) 0 00004C45 8996EEFE movw %dx, -274(%bp) 0 00004C49 8B577E movw 126(%bx), %dx 0 00004C4C 31F6 xorw %si, %si 0 00004C4E 01C2 addw %ax, %dx 0 00004C50 13B6EEFE adcw -274(%bp), %si 0 00004C54 56 pushw %si 0 00004C55 52 pushw %dx 0 00004C56 8996ECFE movw %dx, -276(%bp) 0 00004C5A E8[FEFF] call SavingDiskAllocate 0 00004C5D 83C404 addw $4, %sp 0 00004C60 85C0 testw %ax, %ax 0 00004C62 7579 jne .L59 0 00004C64 C706[0000] movw $1, disk_bad 0 00004C68 0100 0 00004C6A 8B9EEAFE movw -278(%bp), %bx 0 00004C6E 8B4F04 movw 4(%bx), %cx 0 00004C71 8B4706 movw 6(%bx), %ax 0 00004C74 394766 cmpw %ax, 102(%bx) 0 00004C77 8B96ECFE movw -276(%bp), %dx 0 00004C7B 7707 ja .L61 0 00004C7D 7533 jne .L63 0 00004C7F 394F64 cmpw %cx, 100(%bx) 0 00004C82 762E jbe .L63 501 .L61: 0 00004C84 894D04 movw %cx, 4(%di) 0 00004C87 894506 movw %ax, 6(%di) 0 00004C8A 56 pushw %si 0 00004C8B 52 pushw %dx 0 00004C8C E8[FEFF] call SavingDiskAllocate 0 00004C8F 83C404 addw $4, %sp 0 00004C92 85C0 testw %ax, %ax 0 00004C94 741C je .L63 0 00004C96 8B9EEAFE movw -278(%bp), %bx 0 00004C9A 8B4706 movw 6(%bx), %ax 0 00004C9D 3B4766 cmpw 102(%bx), %ax 0 00004CA0 7710 ja .L63 0 00004CA2 7508 jne .L102 0 00004CA4 8B4704 movw 4(%bx), %ax 0 00004CA7 3B4764 cmpw 100(%bx), %ax 0 00004CAA 7706 ja .L63 518 .L102: 0 00004CAC C706[0000] movw $0, disk_bad 0 00004CB0 0000 520 .L63: 0 00004CB2 833E[0000] cmpw $5, verbose 0 00004CB6 05 0 00004CB7 7E1A jle .L66 0 00004CB9 FF36[0600] pushw f+6 0 00004CBD FF36[0400] pushw f+4 0 00004CC1 FF36[0600] pushw newf+6 0 00004CC5 FF36[0400] pushw newf+4 0 00004CC9 B8[9300] movw $.LC5, %ax 0 00004CCC 50 pushw %ax 0 00004CCD E8[FEFF] call printf 0 00004CD0 83C40A addw $10, %sp 531 .L66: 0 00004CD3 B8[DC00] movw $.LC6, %ax 0 00004CD6 50 pushw %ax 0 00004CD7 E8[FEFF] call fatal 0 00004CDA 83C402 addw $2, %sp 536 .L59: 0 00004CDD C706[0000] movw $1, disk_bad 0 00004CE1 0100 0 00004CE3 8B457E movw 126(%di), %ax 0 00004CE6 8B9EEAFE movw -278(%bp), %bx 0 00004CEA 3B477E cmpw 126(%bx), %ax 0 00004CED 7603 jbe .L67 0 00004CEF E867FD call RelocateClusters 543 .L67: 0 00004CF2 8B457C movw 124(%di), %ax 0 00004CF5 8B9EEAFE movw -278(%bp), %bx 0 00004CF9 3B477C cmpw 124(%bx), %ax 0 00004CFC 7603 jbe .L68 0 00004CFE E83EFD call RelocateRootDir 549 .L68: 0 00004D01 E8[FEFF] call save_FAT_buffer 0 00004D04 A1[8C00] movw newf+140, %ax 0 00004D07 3B06[8C00] cmpw f+140, %ax 0 00004D0B B80000 movw $0, %ax 0 00004D0E 8EC0 movw %ax, %es 0 00004D10 7503E91E je .L69 0 00004D14 03 0 00004D15 FF36[0C00] pushw newf+12 0 00004D19 E8[FEFF] call xalloc 0 00004D1C 8986ECFE movw %ax, -276(%bp) 0 00004D20 83C402 addw $2, %sp 0 00004D23 833E[8C00] cmpw $16, newf+140 0 00004D27 10 0 00004D28 7403E901 jne .L70 0 00004D2C 02 0 00004D2D A1[8A00] movw f+138, %ax 0 00004D30 40 incw %ax 0 00004D31 8986E6FE movw %ax, -282(%bp) 0 00004D35 8D86F0FE leaw -272(%bp), %ax 0 00004D39 8B1E[0000] movw fat, %bx 0 00004D3D 8B570C movw 12(%bx), %dx 0 00004D40 06 pushw %es 0 00004D41 52 pushw %dx 0 00004D42 8B96E6FE movw -282(%bp), %dx 0 00004D46 D1E2 shlw $1, %dx 0 00004D48 06 pushw %es 0 00004D49 52 pushw %dx 0 00004D4A 50 pushw %ax 0 00004D4B E8[FEFF] call ldiv 0 00004D4E 8B86F0FE movw -272(%bp), %ax 0 00004D52 8986E2FE movw %ax, -286(%bp) 0 00004D56 8B9EF4FE movw -268(%bp), %bx 0 00004D5A 899EE0FE movw %bx, -288(%bp) 0 00004D5E 40 incw %ax 0 00004D5F 8986E8FE movw %ax, -280(%bp) 0 00004D63 FF750C pushw 12(%di) 0 00004D66 06 pushw %es 0 00004D67 FFB6ECFE pushw -276(%bp) 0 00004D6B E8[FEFF] call memset 0 00004D6E 83C410 addw $16, %sp 0 00004D71 8B9EE0FE movw -288(%bp), %bx 588 .L71: 0 00004D75 83BEE6FE cmpw $-17, -282(%bp) 0 00004D79 EF 0 00004D7A 7703E95D jbe .L74 0 00004D7E 01 591 .L75: 0 00004D7F 8B86E8FE movw -280(%bp), %ax 0 00004D83 394572 cmpw %ax, 114(%di) 0 00004D86 762F jbe .L81 0 00004D88 83BEECFE cmpw $0, -276(%bp) 0 00004D8C 00 0 00004D8D 750E jne .L82 0 00004D8F FF36[0C00] pushw newf+12 0 00004D93 E8[FEFF] call xalloc 0 00004D96 8986ECFE movw %ax, -276(%bp) 0 00004D9A 83C402 addw $2, %sp 601 .L82: 0 00004D9D FF750C pushw 12(%di) 0 00004DA0 06 pushw %es 0 00004DA1 FFB6ECFE pushw -276(%bp) 0 00004DA5 E8[FEFF] call memset 0 00004DA8 83C406 addw $6, %sp 607 .L83: 0 00004DAB 8B86E8FE movw -280(%bp), %ax 0 00004DAF 3B4572 cmpw 114(%di), %ax 0 00004DB2 7303E99E jc .L84 0 00004DB6 02 611 .L81: 0 00004DB7 837D1001 cmpw $1, 16(%di) 0 00004DBB 7622 jbe .L85 0 00004DBD 83BEECFE cmpw $0, -276(%bp) 0 00004DC1 00 0 00004DC2 750E jne .L86 0 00004DC4 FF36[0C00] pushw newf+12 0 00004DC8 E8[FEFF] call xalloc 0 00004DCB 8986ECFE movw %ax, -276(%bp) 0 00004DCF 83C402 addw $2, %sp 620 .L86: 0 00004DD2 8B4572 movw 114(%di), %ax 622 .L117: 0 00004DD5 48 decw %ax 0 00004DD6 89C6 movw %ax, %si 0 00004DD8 85C0 testw %ax, %ax 0 00004DDA 7C03E995 jge .L90 0 00004DDE 02 627 .L85: 0 00004DDF 83BEECFE cmpw $0, -276(%bp) 0 00004DE3 00 0 00004DE4 740A je .L91 0 00004DE6 FFB6ECFE pushw -276(%bp) 0 00004DEA E8[FEFF] call free 0 00004DED 83C402 addw $2, %sp 633 .L91: 0 00004DF0 E8[FEFF] call FAT_close 0 00004DF3 8B457C movw 124(%di), %ax 0 00004DF6 8B9EEAFE movw -278(%bp), %bx 0 00004DFA 3B477C cmpw 124(%bx), %ax 0 00004DFD 7303 jnc .L92 0 00004DFF E83DFC call RelocateRootDir 640 .L92: 0 00004E02 8B457E movw 126(%di), %ax 0 00004E05 8B9EEAFE movw -278(%bp), %bx 0 00004E09 3B477E cmpw 126(%bx), %ax 0 00004E0C 7303 jnc .L93 0 00004E0E E848FC call RelocateClusters 646 .L93: 0 00004E11 8B9EEAFE movw -278(%bp), %bx 0 00004E15 8B4706 movw 6(%bx), %ax 0 00004E18 3B4506 cmpw 6(%di), %ax 0 00004E1B 770A ja .L94 0 00004E1D 7556 jne .L96 0 00004E1F 8B4704 movw 4(%bx), %ax 0 00004E22 3B4504 cmpw 4(%di), %ax 0 00004E25 764E jbe .L96 655 .L94: 0 00004E27 8B9EE4FE movw -284(%bp), %bx 0 00004E2B 8B5708 movw 8(%bx), %dx 0 00004E2E 4A decw %dx 0 00004E2F 92 xchgw %ax, %dx 0 00004E30 F726[8800] mulw newf+136 0 00004E34 93 xchgw %ax, %bx 0 00004E35 8B457E movw 126(%di), %ax 0 00004E38 31C9 xorw %cx, %cx 0 00004E3A 01D8 addw %bx, %ax 0 00004E3C 11D1 adcw %dx, %cx 0 00004E3E 51 pushw %cx 0 00004E3F 50 pushw %ax 0 00004E40 E8[FEFF] call SavingDiskAllocate 0 00004E43 83C404 addw $4, %sp 0 00004E46 85C0 testw %ax, %ax 0 00004E48 752B jne .L96 0 00004E4A 833E[0000] cmpw $5, verbose 0 00004E4E 05 0 00004E4F 7E1A jle .L98 0 00004E51 FF36[0600] pushw f+6 0 00004E55 FF36[0400] pushw f+4 0 00004E59 FF36[0600] pushw newf+6 0 00004E5D FF36[0400] pushw newf+4 0 00004E61 B8[F600] movw $.LC7, %ax 0 00004E64 50 pushw %ax 0 00004E65 E8[FEFF] call printf 0 00004E68 83C40A addw $10, %sp 682 .L98: 0 00004E6B B8[DC00] movw $.LC6, %ax 0 00004E6E 50 pushw %ax 0 00004E6F E8[FEFF] call fatal 0 00004E72 83C402 addw $2, %sp 687 .L96: 0 00004E75 8B557A movw 122(%di), %dx 0 00004E78 8B9EEAFE movw -278(%bp), %bx 0 00004E7C 8B477A movw 122(%bx), %ax 0 00004E7F 39C2 cmpw %ax, %dx 0 00004E81 760F jbe .L99 0 00004E83 29C2 subw %ax, %dx 0 00004E85 06 pushw %es 0 00004E86 52 pushw %dx 0 00004E87 03457C addw 124(%di), %ax 0 00004E8A 06 pushw %es 0 00004E8B 50 pushw %ax 0 00004E8C E8[FEFF] call ClearSectors 0 00004E8F 83C408 addw $8, %sp 701 .L99: 0 00004E92 E8[FEFF] call configure_drive 0 00004E95 E8[FEFF] call RefreshBootSector 0 00004E98 8B3E[0000] movw conf, %di 0 00004E9C 8B36[0200] movw conf+2, %si 0 00004EA0 E8[FEFF] call makeRWaccess 0 00004EA3 8EC6 movw %si, %es 0 00004EA5 26884538 movb %al, %es:56(%di) 0 00004EA9 C706[0000] movw $0, disk_bad 0 00004EAD 0000 0 00004EAF 8D86FCFE leaw -260(%bp), %ax 0 00004EB3 50 pushw %ax 0 00004EB4 E8[FEFF] call chdir 0 00004EB7 83C402 addw $2, %sp 0 00004EBA 85C0 testw %ax, %ax 0 00004EBC 740A je .L100 0 00004EBE B8[3F01] movw $.LC8, %ax 0 00004EC1 50 pushw %ax 0 00004EC2 E8[FEFF] call fatal 0 00004EC5 83C402 addw $2, %sp 720 .L100: 0 00004EC8 833E[0000] cmpw $1, verbose 0 00004ECC 01 0 00004ECD 7F03E9E5 jle .L48 0 00004ED1 FC 0 00004ED2 B8[6001] movw $.LC9, %ax 0 00004ED5 50 pushw %ax 0 00004ED6 E8[FEFF] call puts 0 00004ED9 E9F5FC jmp .L118 727 .L74: 0 00004EDC 899EE0FE movw %bx, -288(%bp) 0 00004EE0 8B86E6FE movw -282(%bp), %ax 0 00004EE4 50 pushw %ax 0 00004EE5 E8[FEFF] call next_cluster 0 00004EE8 8B9EE0FE movw -288(%bp), %bx 0 00004EEC 8BB6ECFE movw -276(%bp), %si 0 00004EF0 8900 movw %ax, (%bx,%si) 0 00004EF2 83C402 addw $2, %sp 0 00004EF5 85DB testw %bx, %bx 0 00004EF7 752B jne .L72 0 00004EF9 83BEE2FE cmpw $0, -286(%bp) 0 00004EFD 00 0 00004EFE 7505 jne .L73 0 00004F00 8B4514 movw 20(%di), %ax 0 00004F03 8804 movb %al, (%si) 742 .L73: 0 00004F05 16 pushw %ss 0 00004F06 FFB6ECFE pushw -276(%bp) 0 00004F0A 8B86E2FE movw -286(%bp), %ax 0 00004F0E 034570 addw 112(%di), %ax 0 00004F11 06 pushw %es 0 00004F12 50 pushw %ax 0 00004F13 B80100 movw $1, %ax 0 00004F16 50 pushw %ax 0 00004F17 E8[FEFF] call write_sector 0 00004F1A FF8EE2FE decw -286(%bp) 0 00004F1E 8B5D0C movw 12(%di), %bx 0 00004F21 83C40A addw $10, %sp 755 .L72: 0 00004F24 83C3FE addw $-2, %bx 0 00004F27 FF8EE6FE decw -282(%bp) 0 00004F2B E947FE jmp .L71 759 .L70: 0 00004F2E 8B4514 movw 20(%di), %ax 0 00004F31 8B9EECFE movw -276(%bp), %bx 0 00004F35 8807 movb %al, (%bx) 0 00004F37 C74701FF movw $-1, 1(%bx) 0 00004F3B FF 0 00004F3C C786E6FE movw $3, -282(%bp) 0 00004F40 0300 0 00004F42 8C86E8FE movw %es, -280(%bp) 0 00004F46 C786E2FE movw $2, -286(%bp) 0 00004F4A 0200 767 .L76: 0 00004F4C A1[8A00] movw f+138, %ax 0 00004F4F 83C002 addw $2, %ax 0 00004F52 3986E2FE cmpw %ax, -286(%bp) 0 00004F56 7244 jc .L80 0 00004F58 83BEE6FE cmpw $0, -282(%bp) 0 00004F5C 00 0 00004F5D 7503E91D je .L75 0 00004F61 FE 0 00004F62 8B86E8FE movw -280(%bp), %ax 0 00004F66 40 incw %ax 0 00004F67 96 xchgw %ax, %si 0 00004F68 8B450C movw 12(%di), %ax 0 00004F6B 2B86E6FE subw -282(%bp), %ax 0 00004F6F 8B96E6FE movw -282(%bp), %dx 0 00004F73 0396ECFE addw -276(%bp), %dx 0 00004F77 50 pushw %ax 0 00004F78 06 pushw %es 0 00004F79 52 pushw %dx 0 00004F7A E8[FEFF] call memset 0 00004F7D 16 pushw %ss 0 00004F7E FFB6ECFE pushw -276(%bp) 0 00004F82 8B86E8FE movw -280(%bp), %ax 0 00004F86 034570 addw 112(%di), %ax 0 00004F89 06 pushw %es 0 00004F8A 50 pushw %ax 0 00004F8B B80100 movw $1, %ax 0 00004F8E 50 pushw %ax 0 00004F8F E8[FEFF] call write_sector 0 00004F92 83C410 addw $16, %sp 0 00004F95 89B6E8FE movw %si, -280(%bp) 0 00004F99 E9E3FD jmp .L75 797 .L80: 0 00004F9C FFB6E2FE pushw -286(%bp) 0 00004FA0 E8[FEFF] call next_cluster 0 00004FA3 96 xchgw %ax, %si 0 00004FA4 8B96E2FE movw -286(%bp), %dx 0 00004FA8 42 incw %dx 0 00004FA9 A1[8A00] movw f+138, %ax 0 00004FAC 83C002 addw $2, %ax 0 00004FAF 83C402 addw $2, %sp 0 00004FB2 39D0 cmpw %dx, %ax 0 00004FB4 7679 jbe .L101 0 00004FB6 52 pushw %dx 0 00004FB7 E8[FEFF] call next_cluster 0 00004FBA 83C402 addw $2, %sp 811 .L77: 0 00004FBD 89F2 movw %si, %dx 0 00004FBF 80E60F andb $15, %dh 0 00004FC2 89C3 movw %ax, %bx 0 00004FC4 B10C movb $12, %cl 0 00004FC6 D3E3 shlw %cl, %bx 0 00004FC8 09DA orw %bx, %dx 0 00004FCA 8996F9FE movw %dx, -263(%bp) 0 00004FCE B104 movb $4, %cl 0 00004FD0 D3E8 shrw %cl, %ax 0 00004FD2 8886FBFE movb %al, -261(%bp) 0 00004FD6 C786E0FE movw $0, -288(%bp) 0 00004FDA 0000 823 .L79: 0 00004FDC 89EE movw %bp, %si 0 00004FDE 8B9EE0FE movw -288(%bp), %bx 0 00004FE2 8A80F9FE movb -263(%bx,%si), %al 0 00004FE6 8B9EE6FE movw -282(%bp), %bx 0 00004FEA 8BB6ECFE movw -276(%bp), %si 0 00004FEE 8800 movb %al, (%bx,%si) 0 00004FF0 FF86E6FE incw -282(%bp) 0 00004FF4 8B86E6FE movw -282(%bp), %ax 0 00004FF8 3B450C cmpw 12(%di), %ax 0 00004FFB 721F jc .L78 0 00004FFD 16 pushw %ss 0 00004FFE 56 pushw %si 0 00004FFF 8B86E8FE movw -280(%bp), %ax 0 00005003 034570 addw 112(%di), %ax 0 00005006 06 pushw %es 0 00005007 50 pushw %ax 0 00005008 B80100 movw $1, %ax 0 0000500B 50 pushw %ax 0 0000500C E8[FEFF] call write_sector 0 0000500F FF86E8FE incw -280(%bp) 0 00005013 83C40A addw $10, %sp 0 00005016 C786E6FE movw $0, -282(%bp) 0 0000501A 0000 846 .L78: 0 0000501C FF86E0FE incw -288(%bp) 0 00005020 83BEE0FE cmpw $3, -288(%bp) 0 00005024 03 0 00005025 75B5 jne .L79 0 00005027 8386E2FE addw $2, -286(%bp) 0 0000502B 02 0 0000502C E91DFF jmp .L76 852 .L101: 0 0000502F 31C0 xorw %ax, %ax 0 00005031 EB8A jmp .L77 855 .L69: 0 00005033 8B9EEAFE movw -278(%bp), %bx 0 00005037 8B4772 movw 114(%bx), %ax 0 0000503A 8986E8FE movw %ax, -280(%bp) 0 0000503E 8B4514 movw 20(%di), %ax 0 00005041 B4FF movb $255, %ah 0 00005043 50 pushw %ax 0 00005044 06 pushw %es 0 00005045 E8[FEFF] call set_next_cluster 0 00005048 E8[FEFF] call save_FAT_buffer 0 0000504B 83C404 addw $4, %sp 0 0000504E 8C86ECFE movw %es, -276(%bp) 0 00005052 E92AFD jmp .L75 868 .L84: 0 00005055 16 pushw %ss 0 00005056 FFB6ECFE pushw -276(%bp) 0 0000505A 8B86E8FE movw -280(%bp), %ax 0 0000505E 034570 addw 112(%di), %ax 0 00005061 06 pushw %es 0 00005062 50 pushw %ax 0 00005063 B80100 movw $1, %ax 0 00005066 50 pushw %ax 0 00005067 E8[FEFF] call write_sector 0 0000506A FF86E8FE incw -280(%bp) 0 0000506E 83C40A addw $10, %sp 0 00005071 E937FD jmp .L83 881 .L90: 0 00005074 89F3 movw %si, %bx 0 00005076 035D70 addw 112(%di), %bx 0 00005079 31C0 xorw %ax, %ax 0 0000507B 8C96E8FE movw %ss, -280(%bp) 0 0000507F 16 pushw %ss 0 00005080 FFB6ECFE pushw -276(%bp) 0 00005084 50 pushw %ax 0 00005085 8986E0FE movw %ax, -288(%bp) 0 00005089 53 pushw %bx 0 0000508A 899EE2FE movw %bx, -286(%bp) 0 0000508E B90100 movw $1, %cx 0 00005091 51 pushw %cx 0 00005092 898EE6FE movw %cx, -282(%bp) 0 00005096 E8[FEFF] call read_sector 0 00005099 8B5510 movw 16(%di), %dx 0 0000509C 83C40A addw $10, %sp 0 0000509F 8B9EE2FE movw -286(%bp), %bx 0 000050A3 8B86E0FE movw -288(%bp), %ax 900 .L88: 0 000050A7 83FA01 cmpw $1, %dx 0 000050AA 7704 ja .L89 0 000050AC 96 xchgw %ax, %si 0 000050AD E925FD jmp .L117 905 .L89: 0 000050B0 8996DEFE movw %dx, -290(%bp) 0 000050B4 035D72 addw 114(%di), %bx 0 000050B7 83D000 adcw $0, %ax 0 000050BA FFB6E8FE pushw -280(%bp) 0 000050BE FFB6ECFE pushw -276(%bp) 0 000050C2 50 pushw %ax 0 000050C3 8986E0FE movw %ax, -288(%bp) 0 000050C7 53 pushw %bx 0 000050C8 899EE2FE movw %bx, -286(%bp) 0 000050CC FFB6E6FE pushw -282(%bp) 0 000050D0 E8[FEFF] call write_sector 0 000050D3 8B96DEFE movw -290(%bp), %dx 0 000050D7 4A decw %dx 0 000050D8 83C40A addw $10, %sp 0 000050DB 8B86E0FE movw -288(%bp), %ax 0 000050DF 8B9EE2FE movw -286(%bp), %bx 0 000050E3 EBC2 jmp .L88 923 .size Resize, .-Resize 924 .local buffer_size 925 .comm buffer_size,2,2 926 .local sector_buffer 927 .comm sector_buffer,4,2 928 .ident "GCC: (GNU) 6.3.0" 929 .weak __ia16_use_printf_nofloat.v1 930 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: srdemsf.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 00001F91 556E6B6E .string "Unknown error" 0 00001F95 6F776E20 0 00001F99 6572726F 0 00001F9D 7200 8 .LC1: 0 00001F9F 454D5320 .string "EMS error %02X: %s\n" 0 00001FA3 6572726F 0 00001FA7 72202530 0 00001FAB 32583A20 0 00001FAF 25730A00 === Switch to base unknown -> ".TEXT" 10 .text 11 .type EMS_error, @function 12 EMS_error: 0 000050E5 56 pushw %si 0 000050E6 55 pushw %bp 0 000050E7 89E5 movw %sp, %bp 0 000050E9 31C0 xorw %ax, %ax 0 000050EB BE[0000] movw $errs.3585, %si 18 .L4: 0 000050EE 89C3 movw %ax, %bx 0 000050F0 D1E3 shlw $1, %bx 0 000050F2 01C3 addw %ax, %bx 0 000050F4 8A10 movb (%bx,%si), %dl 0 000050F6 3A5606 cmpb 6(%bp), %dl 0 000050F9 751A jne .L2 0 000050FB 8BB7[0100] movw errs.3585+1(%bx), %si 26 .L3: 0 000050FF E8[FEFF] call force_banner 0 00005102 56 pushw %si 0 00005103 8A4606 movb 6(%bp), %al 0 00005106 30E4 xorb %ah, %ah 0 00005108 50 pushw %ax 0 00005109 B8[0E00] movw $.LC1, %ax 0 0000510C 50 pushw %ax 0 0000510D E8[FEFF] call printf 0 00005110 89EC movw %bp, %sp 0 00005112 5D popw %bp 0 00005113 5E popw %si 0 00005114 C3 ret 39 .L2: 0 00005115 40 incw %ax 0 00005116 83F808 cmpw $8, %ax 0 00005119 75D3 jne .L4 0 0000511B BE[0000] movw $.LC0, %si 0 0000511E EBDF jmp .L3 45 .size EMS_error, .-EMS_error 46 .global EMSf_has_memory 47 .type EMSf_has_memory, @function 48 EMSf_has_memory: 0 00005120 55 pushw %bp 0 00005121 89E5 movw %sp, %bp 0 00005123 C55E04 ldsw 4(%bp), %bx 0 00005126 833FFF cmpw $-1, (%bx) 0 00005129 19C0 sbbw %ax, %ax 0 0000512B F7D8 negw %ax 0 0000512D 5D popw %bp 0 0000512E 16 pushw %ss 0 0000512F 1F popw %ds 0 00005130 C3 ret 59 .size EMSf_has_memory, .-EMSf_has_memory 60 .global EMSf_alloc 61 .type EMSf_alloc, @function 62 EMSf_alloc: 0 00005131 56 pushw %si 0 00005132 57 pushw %di 0 00005133 55 pushw %bp 0 00005134 89E5 movw %sp, %bp 0 00005136 1E pushw %ds 0 00005137 1E pushw %ds 0 00005138 C57608 ldsw 8(%bp), %si 0 0000513B 8B5E0C movw 12(%bp), %bx 0 0000513E 8B7E0E movw 14(%bp), %di 0 00005141 83FF0F cmpw $15, %di 0 00005144 7707 ja .L11 0 00005146 750B jne .L10 0 00005148 83FBF0 cmpw $-16, %bx 0 0000514B 7606 jbe .L10 77 .L11: 0 0000514D BBF0FF movw $-16, %bx 0 00005150 BF0F00 movw $15, %di 80 .L10: 0 00005153 89D8 movw %bx, %ax 0 00005155 83E00F andw $15, %ax 0 00005158 31D2 xorw %dx, %dx 0 0000515A 8956FC movw %dx, -4(%bp) 0 0000515D 83F801 cmpw $1, %ax 0 00005160 18C0 sbbb %al, %al 0 00005162 FEC0 incb %al 0 00005164 30E4 xorb %ah, %ah 0 00005166 B10C movb $12, %cl 0 00005168 D3E7 shlw %cl, %di 0 0000516A B104 movb $4, %cl 0 0000516C D3EB shrw %cl, %bx 0 0000516E 884EFE movb %cl, -2(%bp) 0 00005171 09FB orw %di, %bx 0 00005173 01D8 addw %bx, %ax 0 00005175 89C7 movw %ax, %di 0 00005177 50 pushw %ax 0 00005178 1E pushw %ds 0 00005179 56 pushw %si 0 0000517A 16 pushw %ss 0 0000517B 1F popw %ds 0 0000517C E8[FEFF] call alloc_ems_handle 0 0000517F 83C406 addw $6, %sp 0 00005182 84C0 testb %al, %al 0 00005184 8B56FC movw -4(%bp), %dx 0 00005187 750C jne .L12 0 00005189 97 xchgw %ax, %di 0 0000518A 8A4EFE movb -2(%bp), %cl 0 0000518D D3E0 shlw %cl, %ax 110 .L9: 0 0000518F 89EC movw %bp, %sp 0 00005191 5D popw %bp 0 00005192 5F popw %di 0 00005193 5E popw %si 0 00005194 C3 ret 116 .L12: 0 00005195 8956FE movw %dx, -2(%bp) 0 00005198 50 pushw %ax 0 00005199 E849FF call EMS_error 0 0000519C 83C402 addw $2, %sp 0 0000519F 8B56FE movw -2(%bp), %dx 0 000051A2 89D0 movw %dx, %ax 0 000051A4 EBE9 jmp .L9 124 .size EMSf_alloc, .-EMSf_alloc 125 .global EMSf_realloc 126 .type EMSf_realloc, @function 127 EMSf_realloc: 0 000051A6 56 pushw %si 0 000051A7 57 pushw %di 0 000051A8 55 pushw %bp 0 000051A9 89E5 movw %sp, %bp 0 000051AB 83EC06 subw $6, %sp 0 000051AE C57E08 ldsw 8(%bp), %di 0 000051B1 8B760C movw 12(%bp), %si 0 000051B4 8B560E movw 14(%bp), %dx 0 000051B7 8B4610 movw 16(%bp), %ax 0 000051BA 8B5E12 movw 18(%bp), %bx 0 000051BD 83FB0F cmpw $15, %bx 0 000051C0 7707 ja .L17 0 000051C2 750B jne .L16 0 000051C4 83F8F0 cmpw $-16, %ax 0 000051C7 7606 jbe .L16 143 .L17: 0 000051C9 B8F0FF movw $-16, %ax 0 000051CC BB0F00 movw $15, %bx 146 .L16: 0 000051CF 8956FA movw %dx, -6(%bp) 0 000051D2 89C1 movw %ax, %cx 0 000051D4 83E10F andw $15, %cx 0 000051D7 83F901 cmpw $1, %cx 0 000051DA 18D2 sbbb %dl, %dl 0 000051DC FEC2 incb %dl 0 000051DE 30F6 xorb %dh, %dh 0 000051E0 B10C movb $12, %cl 0 000051E2 D3E3 shlw %cl, %bx 0 000051E4 B104 movb $4, %cl 0 000051E6 D3E8 shrw %cl, %ax 0 000051E8 884EFD movb %cl, -3(%bp) 0 000051EB 09D8 orw %bx, %ax 0 000051ED 01D0 addw %dx, %ax 0 000051EF 8946FE movw %ax, -2(%bp) 0 000051F2 8D46FE leaw -2(%bp), %ax 0 000051F5 50 pushw %ax 0 000051F6 1E pushw %ds 0 000051F7 57 pushw %di 0 000051F8 16 pushw %ss 0 000051F9 1F popw %ds 0 000051FA E8[FEFF] call realloc_ems_handle 0 000051FD 83C406 addw $6, %sp 0 00005200 84C0 testb %al, %al 0 00005202 8A4EFD movb -3(%bp), %cl 0 00005205 8B56FA movw -6(%bp), %dx 0 00005208 750E jne .L18 0 0000520A 8B76FE movw -2(%bp), %si 0 0000520D D3E6 shlw %cl, %si 0 0000520F 31D2 xorw %dx, %dx 177 .L19: 0 00005211 96 xchgw %ax, %si 0 00005212 89EC movw %bp, %sp 0 00005214 5D popw %bp 0 00005215 5F popw %di 0 00005216 5E popw %si 0 00005217 C3 ret 184 .L18: 0 00005218 884EFD movb %cl, -3(%bp) 0 0000521B 89C3 movw %ax, %bx 0 0000521D B108 movb $8, %cl 0 0000521F D3EB shrw %cl, %bx 0 00005221 81FB8400 cmpw $132, %bx 0 00005225 74EA je .L19 191 .L20: 0 00005227 50 pushw %ax 0 00005228 E8BAFE call EMS_error 0 0000522B 8B76FE movw -2(%bp), %si 0 0000522E 8A4EFD movb -3(%bp), %cl 0 00005231 D3E6 shlw %cl, %si 0 00005233 31D2 xorw %dx, %dx 0 00005235 83C402 addw $2, %sp 0 00005238 EBD7 jmp .L19 200 .size EMSf_realloc, .-EMSf_realloc 201 .global EMSf_free 202 .type EMSf_free, @function 203 EMSf_free: 0 0000523A 56 pushw %si 0 0000523B 57 pushw %di 0 0000523C 06 pushw %es 0 0000523D 55 pushw %bp 0 0000523E 89E5 movw %sp, %bp 0 00005240 1E pushw %ds 0 00005241 1E pushw %ds 0 00005242 C4760A lesw 10(%bp), %si 0 00005245 8B7E0E movw 14(%bp), %di 0 00005248 8B5610 movw 16(%bp), %dx 0 0000524B 8956FE movw %dx, -2(%bp) 0 0000524E 26FF34 pushw %es:(%si) 0 00005251 E8[FEFF] call free_ems_handle 0 00005254 83C402 addw $2, %sp 0 00005257 84C0 testb %al, %al 0 00005259 8B56FE movw -2(%bp), %dx 0 0000525C 7417 je .L26 0 0000525E 8956FC movw %dx, -4(%bp) 0 00005261 50 pushw %ax 0 00005262 8846FE movb %al, -2(%bp) 0 00005265 E87DFE call EMS_error 0 00005268 83C402 addw $2, %sp 0 0000526B 8A46FE movb -2(%bp), %al 0 0000526E 3C83 cmpb $-125, %al 0 00005270 8B56FC movw -4(%bp), %dx 0 00005273 7509 jne .L34 230 .L26: 0 00005275 26C704FF movw $-1, %es:(%si) 0 00005279 FF 0 0000527A 31FF xorw %di, %di 0 0000527C 89FA movw %di, %dx 234 .L34: 0 0000527E 97 xchgw %ax, %di 0 0000527F 89EC movw %bp, %sp 0 00005281 5D popw %bp 0 00005282 07 popw %es 0 00005283 5F popw %di 0 00005284 5E popw %si 0 00005285 C3 ret 242 .size EMSf_free, .-EMSf_free 243 .global EMSf_save_buffer 244 .type EMSf_save_buffer, @function 245 EMSf_save_buffer: 0 00005286 06 pushw %es 0 00005287 55 pushw %bp 0 00005288 89E5 movw %sp, %bp 0 0000528A 8B5E06 movw 6(%bp), %bx 0 0000528D C54608 ldsw 8(%bp), %ax 0 00005290 8B4E0C movw 12(%bp), %cx 0 00005293 36891E[06] movw %bx, %ss:old_allocs 0 00005297 [00] 0 00005298 36A3[0800] movw %ax, %ss:old_allocs+2 0 0000529C 8EC0 movw %ax, %es 0 0000529E 268B17 movw %es:(%bx), %dx 0 000052A1 368916[04] movw %dx, %ss:old_handle 0 000052A5 [00] 0 000052A6 26C707FF movw $-1, %es:(%bx) 0 000052AA FF 0 000052AB 368C1E[00] movw %ds, %ss:old_size 0 000052AF [00] 0 000052B0 36890E[02] movw %cx, %ss:old_size+2 0 000052B4 [00] 0 000052B5 5D popw %bp 0 000052B6 07 popw %es 0 000052B7 16 pushw %ss 0 000052B8 1F popw %ds 0 000052B9 C3 ret 265 .size EMSf_save_buffer, .-EMSf_save_buffer 266 .global EMSf_copy_to_new 267 .type EMSf_copy_to_new, @function 268 EMSf_copy_to_new: 0 000052BA 56 pushw %si 0 000052BB 55 pushw %bp 0 000052BC 89E5 movw %sp, %bp 0 000052BE 83EC12 subw $18, %sp 0 000052C1 C57606 ldsw 6(%bp), %si 0 000052C4 8B5E0A movw 10(%bp), %bx 0 000052C7 8B4E0C movw 12(%bp), %cx 0 000052CA 368B16[00] movw %ss:old_size, %dx 0 000052CE [00] 0 000052CF 36A1[0200] movw %ss:old_size+2, %ax 0 000052D3 39C8 cmpw %cx, %ax 0 000052D5 7706 ja .L40 0 000052D7 7507 jne .L39 0 000052D9 39DA cmpw %bx, %dx 0 000052DB 7603 jbe .L39 283 .L40: 0 000052DD 89DA movw %bx, %dx 0 000052DF 91 xchgw %ax, %cx 286 .L39: 0 000052E0 89D3 movw %dx, %bx 0 000052E2 B106 movb $6, %cl 0 000052E4 D3EB shrw %cl, %bx 0 000052E6 B10A movb $10, %cl 0 000052E8 D3E0 shlw %cl, %ax 0 000052EA 09D8 orw %bx, %ax 0 000052EC D3E2 shlw %cl, %dx 0 000052EE 8956EE movw %dx, -18(%bp) 0 000052F1 8946F0 movw %ax, -16(%bp) 0 000052F4 C646F201 movb $1, -14(%bp) 0 000052F8 36A1[0400] movw %ss:old_handle, %ax 0 000052FC 8946F3 movw %ax, -13(%bp) 0 000052FF C746F500 movw $0, -11(%bp) 0 00005303 00 0 00005304 C746F700 movw $0, -9(%bp) 0 00005308 00 0 00005309 C646F901 movb $1, -7(%bp) 0 0000530D 8B04 movw (%si), %ax 0 0000530F 8946FA movw %ax, -6(%bp) 0 00005312 C746FC00 movw $0, -4(%bp) 0 00005316 00 0 00005317 C746FE00 movw $0, -2(%bp) 0 0000531B 00 0 0000531C 8D46EE leaw -18(%bp), %ax 0 0000531F 16 pushw %ss 0 00005320 50 pushw %ax 0 00005321 16 pushw %ss 0 00005322 1F popw %ds 0 00005323 E8[FEFF] call copy_ems 0 00005326 83C404 addw $4, %sp 0 00005329 84C0 testb %al, %al 0 0000532B 740E je .L42 0 0000532D 50 pushw %ax 0 0000532E E8B4FD call EMS_error 0 00005331 83C402 addw $2, %sp 0 00005334 31C0 xorw %ax, %ax 319 .L38: 0 00005336 89EC movw %bp, %sp 0 00005338 5D popw %bp 0 00005339 5E popw %si 0 0000533A C3 ret 324 .L42: 0 0000533B B80100 movw $1, %ax 0 0000533E EBF6 jmp .L38 327 .size EMSf_copy_to_new, .-EMSf_copy_to_new 328 .global EMSf_free_old 329 .type EMSf_free_old, @function 330 EMSf_free_old: 0 00005340 55 pushw %bp 0 00005341 89E5 movw %sp, %bp 0 00005343 1E pushw %ds 0 00005344 FF36[0400] pushw old_handle 0 00005348 E8[FEFF] call free_ems_handle 0 0000534B 83C402 addw $2, %sp 0 0000534E 84C0 testb %al, %al 0 00005350 741A je .L46 0 00005352 50 pushw %ax 0 00005353 8846FF movb %al, -1(%bp) 0 00005356 E88CFD call EMS_error 0 00005359 83C402 addw $2, %sp 0 0000535C 8A46FF movb -1(%bp), %al 0 0000535F 3C83 cmpb $-125, %al 0 00005361 9F lahf 0 00005362 D0E4 shlb %ah 0 00005364 99 cwtd 0 00005365 92 xchgw %ax, %dx 0 00005366 F7D8 negw %ax 350 .L44: 0 00005368 89EC movw %bp, %sp 0 0000536A 5D popw %bp 0 0000536B C3 ret 354 .L46: 0 0000536C B80100 movw $1, %ax 0 0000536F EBF7 jmp .L44 357 .size EMSf_free_old, .-EMSf_free_old 358 .global EMSf_restore_buffer 359 .type EMSf_restore_buffer, @function 360 EMSf_restore_buffer: 0 00005371 55 pushw %bp 0 00005372 89E5 movw %sp, %bp 0 00005374 C55E04 ldsw 4(%bp), %bx 0 00005377 833FFF cmpw $-1, (%bx) 0 0000537A 7411 je .L49 0 0000537C 31D2 xorw %dx, %dx 0 0000537E 52 pushw %dx 0 0000537F BA0100 movw $1, %dx 0 00005382 52 pushw %dx 0 00005383 1E pushw %ds 0 00005384 53 pushw %bx 0 00005385 16 pushw %ss 0 00005386 1F popw %ds 0 00005387 E8[FEFF] call EMSf_free 0 0000538A 83C408 addw $8, %sp 376 .L49: 0 0000538D 368B1E[06] movw %ss:old_allocs, %bx 0 00005391 [00] 0 00005392 36A1[0400] movw %ss:old_handle, %ax 0 00005396 368E1E[08] movw %ss:old_allocs+2, %ds 0 0000539A [00] 0 0000539B 8907 movw %ax, (%bx) 0 0000539D 36A1[0000] movw %ss:old_size, %ax 0 000053A1 368B16[02] movw %ss:old_size+2, %dx 0 000053A5 [00] 0 000053A6 89EC movw %bp, %sp 0 000053A8 5D popw %bp 0 000053A9 16 pushw %ss 0 000053AA 1F popw %ds 0 000053AB C3 ret 388 .size EMSf_restore_buffer, .-EMSf_restore_buffer 389 .global EMSf_mem_avail 390 .type EMSf_mem_avail, @function 391 EMSf_mem_avail: 0 000053AC E9[FEFF] jmp ems_available 393 .size EMSf_mem_avail, .-EMSf_mem_avail === Switch to base unknown -> ".RODATA.STR1.1" 394 .section .rodata.str1.1 395 .LC2: 0 00001FB3 44726976 .string "Driver software failure" 0 00001FB7 65722073 0 00001FBB 6F667477 0 00001FBF 61726520 0 00001FC3 6661696C 397 .LC3: 0 00001FCB 48617264 .string "Hardware failure" 0 00001FCF 77617265 0 00001FD3 20666169 0 00001FD7 6C757265 0 00001FDB 00 399 .LC4: 0 00001FDC 556E6B6E .string "Unknown handle" 0 00001FE0 6F776E20 0 00001FE4 68616E64 0 00001FE8 6C6500 401 .LC5: 0 00001FEB 556E6B6E .string "Unknown function" 0 00001FEF 6F776E20 0 00001FF3 66756E63 0 00001FF7 74696F6E 0 00001FFB 00 403 .LC6: 0 00001FFC 4E6F2068 .string "No handles available" 0 00002000 616E646C 0 00002004 65732061 0 00002008 7661696C 0 0000200C 61626C65 405 .LC7: 0 00002011 496E7375 .string "Insufficient total pages" 0 00002015 66666963 0 00002019 69656E74 0 0000201D 20746F74 0 00002021 616C2070 407 .LC8: 0 0000202A 496E7375 .string "Insufficient available pages" 0 0000202E 66666963 0 00002032 69656E74 0 00002036 20617661 0 0000203A 696C6162 409 .LC9: 0 00002047 5A65726F .string "Zero pages requested for LIM 3.2 functions" 0 0000204B 20706167 0 0000204F 65732072 0 00002053 65717565 0 00002057 73746564 === Switch to base unknown -> ".RODATA" 411 .section .rodata 412 .type errs.3585, @object 413 .size errs.3585, 24 414 errs.3585: 0 000001A4 80 .byte -128 0 000001A5 [2200] .hword .LC2 0 000001A7 81 .byte -127 0 000001A8 [3A00] .hword .LC3 0 000001AA 83 .byte -125 0 000001AB [4B00] .hword .LC4 0 000001AD 84 .byte -124 0 000001AE [5A00] .hword .LC5 0 000001B0 85 .byte -123 0 000001B1 [6B00] .hword .LC6 0 000001B3 87 .byte -121 0 000001B4 [8000] .hword .LC7 0 000001B6 88 .byte -120 0 000001B7 [9900] .hword .LC8 0 000001B9 89 .byte -119 0 000001BA [B600] .hword .LC9 431 .local old_size 432 .comm old_size,4,2 433 .local old_handle 434 .comm old_handle,2,2 435 .local old_allocs 436 .comm old_allocs,4,2 437 .ident "GCC: (GNU) 6.3.0" 438 .weak __ia16_use_printf_nofloat.v1 439 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: srdisk.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 00002072 52655369 .string "ReSizeable RAMDisk Formatter version 2.10. Copyright (c) 2005 Marko Kohtala.\n" 0 00002076 7A656162 0 0000207A 6C652052 0 0000207E 414D4469 0 00002082 736B2046 === Switch to base unknown -> ".TEXT" 8 .text 9 .global force_banner 10 .type force_banner, @function 11 force_banner: 0 000053AF 833E[0600] cmpw $0, wrote_banner.3216 0 000053B3 00 0 000053B4 7510 jne .L1 0 000053B6 B8[0000] movw $.LC0, %ax 0 000053B9 50 pushw %ax 0 000053BA E8[FEFF] call puts 0 000053BD C706[0600] movw $1, wrote_banner.3216 0 000053C1 0100 0 000053C3 83C402 addw $2, %sp 19 .L1: 0 000053C6 C3 ret 21 .size force_banner, .-force_banner 22 .global print_banner 23 .type print_banner, @function 24 print_banner: 0 000053C7 A1[0000] movw verbose, %ax 0 000053CA 83F8FF cmpw $-1, %ax 0 000053CD 731F jnc .L8 0 000053CF 55 pushw %bp 0 000053D0 89E5 movw %sp, %bp 0 000053D2 1E pushw %ds 0 000053D3 99 cwtd 0 000053D4 29C2 subw %ax, %dx 0 000053D6 80FE80 cmpb $0x80, %dh 0 000053D9 19C0 sbbw %ax, %ax 0 000053DB 40 incw %ax 0 000053DC 8946FE movw %ax, -2(%bp) 0 000053DF 807EFE00 cmpb $0, -2(%bp) 0 000053E3 7405 je .L3 0 000053E5 89EC movw %bp, %sp 0 000053E7 5D popw %bp 41 .L11: 0 000053E8 EBC5 jmp force_banner 43 .L3: 0 000053EA 89EC movw %bp, %sp 0 000053EC 5D popw %bp 0 000053ED C3 ret 47 .L8: 0 000053EE EBF8 jmp .L11 49 .size print_banner, .-print_banner === Switch to base unknown -> ".RODATA.STR1.1" 50 .section .rodata.str1.1 51 .LC1: 0 000020C0 53524449 .string "SRDISK.EXE" 0 000020C4 534B2E45 0 000020C8 584500 53 .LC2: 0 000020CB 466F7220 .string "For help type 'SRDISK /?'.\n" 0 000020CF 68656C70 0 000020D3 20747970 0 000020D7 65202753 0 000020DB 52444953 55 .LC3: 0 000020E7 54686520 .string "The disk is possibly damaged because of the errors\n" 0 000020EB 6469736B 0 000020EF 20697320 0 000020F3 706F7373 0 000020F7 69626C79 57 .LC4: 0 0000211B 4D656D6F .string "Memory allocated for disk under MS-Windows will be released when you\nend this DOS sessio 0 0000211F 72792061 0 00002123 6C6C6F63 0 00002127 61746564 0 0000212B 20666F72 59 .LC5: 0 00002176 44726976 .string "Drive %c: disabled\n" 0 0000217A 65202563 0 0000217E 3A206469 0 00002182 7361626C 0 00002186 65640A00 === Switch to base unknown -> ".TEXT.STARTUP" 61 .section .text.startup,"ax",@progbits 62 .global main 63 .type main, @function 64 main: 0 0000D0D1 56 pushw %si 0 0000D0D2 57 pushw %di 0 0000D0D3 55 pushw %bp 0 0000D0D4 89E5 movw %sp, %bp 0 0000D0D6 8B7608 movw 8(%bp), %si 0 0000D0D9 8B5E0A movw 10(%bp), %bx 0 0000D0DC 8B3F movw (%bx), %di 0 0000D0DE 803D00 cmpb $0, (%di) 0 0000D0E1 7503 jne .L13 0 0000D0E3 BF[4E00] movw $.LC1, %di 75 .L13: 0 0000D0E6 893E[0000] movw %di, exename 0 0000D0EA 83FE01 cmpw $1, %si 0 0000D0ED 7E08 jle .L14 0 0000D0EF 53 pushw %bx 0 0000D0F0 56 pushw %si 0 0000D0F1 E8[FEFF] call parse_cmdline 0 0000D0F4 83C404 addw $4, %sp 83 .L14: 0 0000D0F7 E8[FEFF] call print_banner 0 0000D0FA 83FE01 cmpw $1, %si 0 0000D0FD 750A jne .L15 0 0000D0FF B8[5900] movw $.LC2, %ax 0 0000D102 50 pushw %ax 0 0000D103 E8[FEFF] call puts 0 0000D106 83C402 addw $2, %sp 91 .L15: 0 0000D109 C706[0000] movw $512, max_bps 0 0000D10D 0002 0 0000D10F 833E[0000] cmpw $-1, verbose 0 0000D113 FF 0 0000D114 7506 jne .L16 0 0000D116 C706[0000] movw $2, verbose 0 0000D11A 0200 96 .L16: 0 0000D11C E8[FEFF] call init_drive 0 0000D11F 833E[0000] cmpw $0, defined_format 0 0000D123 00 0 0000D124 7507 jne .L17 0 0000D126 833E[0000] cmpw $0, bootsectorfile 0 0000D12A 00 0 0000D12B 7454 je .L18 102 .L17: 0 0000D12D E8[FEFF] call format_disk 0 0000D130 833E[0000] cmpw $0, error_count 0 0000D134 00 0 0000D135 740A je .L19 0 0000D137 B8[7500] movw $.LC3, %ax 0 0000D13A 50 pushw %ax 0 0000D13B E8[FEFF] call warning 0 0000D13E 83C402 addw $2, %sp 110 .L19: 0 0000D141 833E[0000] cmpw $0, mem_allocated 0 0000D145 00 0 0000D146 7418 je .L21 0 0000D148 E8[FEFF] call isWinEnh 0 0000D14B 85C0 testw %ax, %ax 0 0000D14D 7411 je .L21 0 0000D14F 833E[0000] cmpw $1, verbose 0 0000D153 01 0 0000D154 7E0A jle .L21 0 0000D156 B8[A900] movw $.LC4, %ax 0 0000D159 50 pushw %ax 0 0000D15A E8[FEFF] call warning 121 .L36: 0 0000D15D 83C402 addw $2, %sp 123 .L21: 0 0000D160 833E[0000] cmpw $1, f_set_env 0 0000D164 01 0 0000D165 7503 jne .L24 126 .L23: 0 0000D167 E8[FEFF] call set_env 128 .L24: 0 0000D16A A1[0000] movw return_msg, %ax 0 0000D16D 85C0 testw %ax, %ax 0 0000D16F 7407 je .L27 0 0000D171 50 pushw %ax 0 0000D172 E8[FEFF] call puts 0 0000D175 83C402 addw $2, %sp 135 .L27: 0 0000D178 A1[0000] movw return_val, %ax 0 0000D17B 89EC movw %bp, %sp 0 0000D17D 5D popw %bp 0 0000D17E 5F popw %di 0 0000D17F 5E popw %si 0 0000D180 C3 ret 142 .L18: 0 0000D181 833E[0000] cmpw $1, f_set_env 0 0000D185 01 0 0000D186 74DF je .L23 0 0000D188 A1[0000] movw verbose, %ax 0 0000D18B 83C0FE addw $-2, %ax 0 0000D18E 83F801 cmpw $1, %ax 0 0000D191 77D7 ja .L24 0 0000D193 BB[0000] movw $f, %bx 0 0000D196 8B4706 movw 6(%bx), %ax 0 0000D199 0B4704 orw 4(%bx), %ax 0 0000D19C 7406 je .L25 0 0000D19E 53 pushw %bx 0 0000D19F E8[FEFF] call print_format 0 0000D1A2 EBB9 jmp .L36 156 .L25: 0 0000D1A4 A0[0000] movb drive, %al 0 0000D1A7 98 cbtw 0 0000D1A8 50 pushw %ax 0 0000D1A9 B8[0401] movw $.LC5, %ax 0 0000D1AC 50 pushw %ax 0 0000D1AD E8[FEFF] call printf 0 0000D1B0 83C404 addw $4, %sp 0 0000D1B3 EBAB jmp .L21 165 .size main, .-main 166 .local wrote_banner.3216 167 .comm wrote_banner.3216,2,2 168 .global _stklen === Switch to base unknown -> ".DATA" 169 .data 170 .p2align 1 171 .type _stklen, @object 172 .size _stklen, 2 173 _stklen: 0 0000286E 0010 .hword 4096 175 .comm exename,2,2 176 .comm return_msg,2,2 177 .global return_val === Switch to base unknown -> ".BSS" 178 .bss 179 .p2align 1 180 .type return_val, @object 181 .size return_val, 2 182 return_val: 0 00002C1A 0000 .skip 2,0 184 .comm newf,142,1 185 .comm f,142,1 186 .comm conf,4,2 187 .comm mainconf,4,2 188 .global force_f 189 .p2align 1 190 .type force_f, @object 191 .size force_f, 2 192 force_f: 0 00002C1C 0000 .skip 2,0 194 .global drive 195 .p2align 0 196 .type drive, @object 197 .size drive, 1 198 drive: 0 00002C1E 00 .skip 1,0 200 .global max_bps === Switch to base unknown -> ".DATA" 201 .data 202 .p2align 1 203 .type max_bps, @object 204 .size max_bps, 2 205 max_bps: 0 00002870 0002 .hword 512 207 .global root_files 208 .p2align 1 209 .type root_files, @object 210 .size root_files, 2 211 root_files: 0 00002872 0100 .hword 1 213 .comm changed_format,2,2 214 .comm defined_format,2,2 215 .comm forced_format,2,2 216 .ident "GCC: (GNU) 6.3.0" 217 .weak __ia16_use_printf_nofloat.v1 218 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: srdutil.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 0000218A 6D616C6C .string "malloc() failed - no work space!" 0 0000218E 6F632829 0 00002192 20666169 0 00002196 6C656420 0 0000219A 2D206E6F === Switch to base unknown -> ".TEXT" 8 .text 9 .global xalloc 10 .type xalloc, @function 11 xalloc: 0 000053F0 55 pushw %bp 0 000053F1 89E5 movw %sp, %bp 0 000053F3 1E pushw %ds 0 000053F4 FF7604 pushw 4(%bp) 0 000053F7 E8[FEFF] call malloc 0 000053FA 83C402 addw $2, %sp 0 000053FD 85C0 testw %ax, %ax 0 000053FF 7510 jne .L1 0 00005401 8946FE movw %ax, -2(%bp) 0 00005404 BA[0000] movw $.LC0, %dx 0 00005407 52 pushw %dx 0 00005408 E8[FEFF] call fatal 0 0000540B 83C402 addw $2, %sp 0 0000540E 8B46FE movw -2(%bp), %ax 26 .L1: 0 00005411 89EC movw %bp, %sp 0 00005413 5D popw %bp 0 00005414 C3 ret 30 .size xalloc, .-xalloc === Switch to base unknown -> ".RODATA.STR1.1" 31 .section .rodata.str1.1 32 .LC1: 0 000021AB 25630A00 .string "%c\n" === Switch to base unknown -> ".TEXT" 34 .text 35 .global getYN 36 .type getYN, @function 37 getYN: 0 00005415 56 pushw %si 0 00005416 57 pushw %di 0 00005417 A1[0000] movw force_f, %ax 0 0000541A 83F8FF cmpw $-1, %ax 0 0000541D 7449 je .L6 0 0000541F 83F801 cmpw $1, %ax 0 00005422 7449 je .L13 0 00005424 31C0 xorw %ax, %ax 0 00005426 50 pushw %ax 0 00005427 E8[FEFF] call fflush 0 0000542A 83C402 addw $2, %sp 49 .L9: 0 0000542D E8[FEFF] call _getch 0 00005430 89C6 movw %ax, %si 0 00005432 8B3E[0000] movw __ctype_ptr__, %di 0 00005436 93 xchgw %ax, %bx 0 00005437 8A4101 movb 1(%bx,%di), %al 0 0000543A 2403 andb $3, %al 0 0000543C 3C02 cmpb $2, %al 0 0000543E 7503 jne .L8 0 00005440 83C6E0 addw $-32, %si 59 .L8: 0 00005443 83FE59 cmpw $89, %si 0 00005446 7405 je .L7 0 00005448 83FE4E cmpw $78, %si 0 0000544B 75E0 jne .L9 64 .L7: 0 0000544D 56 pushw %si 0 0000544E B8[2100] movw $.LC1, %ax 0 00005451 50 pushw %ax 0 00005452 E8[FEFF] call printf 0 00005455 83C404 addw $4, %sp 0 00005458 83FE4E cmpw $78, %si 0 0000545B 7515 jne .L11 0 0000545D C706[0000] movw $-1, force_f 0 00005461 FFFF 0 00005463 31C0 xorw %ax, %ax 74 .L4: 0 00005465 5F popw %di 0 00005466 5E popw %si 0 00005467 C3 ret 78 .L6: 0 00005468 BE4E00 movw $78, %si 0 0000546B EBE0 jmp .L7 81 .L13: 0 0000546D BE5900 movw $89, %si 0 00005470 EBDB jmp .L7 84 .L11: 0 00005472 C706[0000] movw $1, force_f 0 00005476 0100 0 00005478 B80100 movw $1, %ax 0 0000547B EBE8 jmp .L4 88 .size getYN, .-getYN 89 .global DOS_time 90 .type DOS_time, @function 91 DOS_time: 0 0000547D 55 pushw %bp 0 0000547E 89E5 movw %sp, %bp 0 00005480 1E pushw %ds 0 00005481 8D4604 leaw 4(%bp), %ax 0 00005484 50 pushw %ax 0 00005485 E8[FEFF] call localtime 0 00005488 89C3 movw %ax, %bx 0 0000548A 8A17 movb (%bx), %dl 0 0000548C 8A4702 movb 2(%bx), %al 0 0000548F 83E03F andw $63, %ax 0 00005492 B505 movb $5, %ch 0 00005494 88E9 movb %ch, %cl 0 00005496 D3E0 shlw %cl, %ax 0 00005498 83E21F andw $31, %dx 0 0000549B 09C2 orw %ax, %dx 0 0000549D 8A4704 movb 4(%bx), %al 0 000054A0 B10B movb $11, %cl 0 000054A2 D3E0 shlw %cl, %ax 0 000054A4 80E607 andb $7, %dh 0 000054A7 09D0 orw %dx, %ax 0 000054A9 8A5706 movb 6(%bx), %dl 0 000054AC 8856FE movb %dl, -2(%bp) 0 000054AF 8A5708 movb 8(%bx), %dl 0 000054B2 FEC2 incb %dl 0 000054B4 83E20F andw $15, %dx 0 000054B7 88E9 movb %ch, %cl 0 000054B9 D3E2 shlw %cl, %dx 0 000054BB 8A4EFE movb -2(%bp), %cl 0 000054BE 83E11F andw $31, %cx 0 000054C1 09CA orw %cx, %dx 0 000054C3 8B4F0A movw 10(%bx), %cx 0 000054C6 894EFE movw %cx, -2(%bp) 0 000054C9 8046FEB0 addb $-80, -2(%bp) 0 000054CD 8B5EFE movw -2(%bp), %bx 0 000054D0 B109 movb $9, %cl 0 000054D2 D3E3 shlw %cl, %bx 0 000054D4 80E601 andb $1, %dh 0 000054D7 09DA orw %bx, %dx 0 000054D9 83C402 addw $2, %sp 0 000054DC 89EC movw %bp, %sp 0 000054DE 5D popw %bp 0 000054DF C3 ret 134 .size DOS_time, .-DOS_time === Switch to base unknown -> ".RODATA.STR1.1" 135 .section .rodata.str1.1 136 .LC2: 0 000021AF 53524449 .string "SRDISK devices' internal tables are messed up!" 0 000021B3 534B2064 0 000021B7 65766963 0 000021BB 65732720 0 000021BF 696E7465 === Switch to base unknown -> ".TEXT" 138 .text 139 .global conf_ptr 140 .type conf_ptr, @function 141 conf_ptr: 0 000054E0 55 pushw %bp 0 000054E1 89E5 movw %sp, %bp 0 000054E3 1E pushw %ds 0 000054E4 1E pushw %ds 0 000054E5 8B5604 movw 4(%bp), %dx 0 000054E8 89D0 movw %dx, %ax 0 000054EA 85D2 testw %dx, %dx 0 000054EC 7465 je .L21 0 000054EE 8EDA movw %dx, %ds 0 000054F0 8B1E1800 movw 24, %bx 0 000054F4 89D8 movw %bx, %ax 0 000054F6 803E0B00 cmpb $83, 11 0 000054FA 53 0 000054FB 753E jne .L23 0 000054FD 803E0C00 cmpb $82, 12 0 00005501 52 0 00005502 7537 jne .L23 0 00005504 803E0D00 cmpb $68, 13 0 00005508 44 0 00005509 7530 jne .L23 0 0000550B 803E1700 cmpb $1, 23 0 0000550F 01 0 00005510 7529 jne .L23 0 00005512 8A0F movb (%bx), %cl 0 00005514 80F924 cmpb $36, %cl 0 00005517 7412 je .L24 0 00005519 88CD movb %cl, %ch 0 0000551B 80C5BF addb $-65, %ch 0 0000551E 80FD1A cmpb $25+1, %ch 0 00005521 7208 jc .L24 0 00005523 80C1CF addb $-49, %cl 0 00005526 80F909 cmpb $8+1, %cl 0 00005529 7310 jnc .L23 171 .L24: 0 0000552B 8EDA movw %dx, %ds 0 0000552D 8B4F04 movw 4(%bx), %cx 0 00005530 0B4F02 orw 2(%bx), %cx 0 00005533 7406 je .L23 0 00005535 837F0600 cmpw $0, 6(%bx) 0 00005539 7518 jne .L21 178 .L23: 0 0000553B 8946FC movw %ax, -4(%bp) 0 0000553E 8956FE movw %dx, -2(%bp) 0 00005541 B9[2500] movw $.LC2, %cx 0 00005544 51 pushw %cx 0 00005545 16 pushw %ss 0 00005546 1F popw %ds 0 00005547 E8[FEFF] call fatal 0 0000554A 83C402 addw $2, %sp 0 0000554D 8B46FC movw -4(%bp), %ax 0 00005550 8B56FE movw -2(%bp), %dx 189 .L21: 0 00005553 89EC movw %bp, %sp 0 00005555 5D popw %bp 0 00005556 16 pushw %ss 0 00005557 1F popw %ds 0 00005558 C3 ret 195 .size conf_ptr, .-conf_ptr 196 .global isWinEnh 197 .type isWinEnh, @function 198 isWinEnh: 0 00005559 833E[0000] cmpw $-1, WinEnh.3779 0 0000555D FF 0 0000555E 7508 jne .L39 0 00005560 E8[FEFF] call check_windows 0 00005563 B400 movb $0, %ah 0 00005565 A3[0000] movw %ax, WinEnh.3779 204 .L39: 0 00005568 A1[0000] movw WinEnh.3779, %ax 0 0000556B C3 ret 207 .size isWinEnh, .-isWinEnh === Switch to base unknown -> ".DATA" 208 .data 209 .p2align 1 210 .type WinEnh.3779, @object 211 .size WinEnh.3779, 2 212 WinEnh.3779: 0 00002874 FFFF .hword -1 214 .ident "GCC: (GNU) 6.3.0" 215 .weak __ia16_use_printf_nofloat.v1 216 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: srdxmsf.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".RODATA.STR1.1" 5 .section .rodata.str1.1,"aMS",@progbits,1 6 .LC0: 0 000021DE 53757065 .string "Super" 0 000021E2 7200 8 .LC1: 0 000021E4 4E6F726D .string "Normal" 0 000021E8 616C00 10 .LC2: 0 000021EB 584D533A .string "XMS: %s XMS support\n" 0 000021EF 20257320 0 000021F3 584D5320 0 000021F7 73757070 0 000021FB 6F72740A === Switch to base unknown -> ".TEXT" 12 .text 13 .type hasSuperXMS, @function 14 hasSuperXMS: 0 0000556C 55 pushw %bp 0 0000556D 89E5 movw %sp, %bp 0 0000556F 8B4604 movw 4(%bp), %ax 0 00005572 8B5606 movw 6(%bp), %dx 0 00005575 803E[0000] cmpb $0, status.3598 0 00005579 00 0 0000557A 7516 jne .L3 0 0000557C C606[0000] movb $2, status.3598 0 00005580 02 0 00005581 52 pushw %dx 0 00005582 50 pushw %ax 0 00005583 E8[FEFF] call check_xms_3 0 00005586 83C404 addw $4, %sp 0 00005589 84C0 testb %al, %al 0 0000558B 7405 je .L3 0 0000558D C606[0000] movb $1, status.3598 0 00005591 01 29 .L3: 0 00005592 F606[0000] testb $2, xvariable 0 00005596 02 0 00005597 7415 je .L5 0 00005599 803E[0000] cmpb $1, status.3598 0 0000559D 01 0 0000559E 741E je .L7 0 000055A0 B8[0600] movw $.LC1, %ax 35 .L6: 0 000055A3 50 pushw %ax 0 000055A4 B8[0D00] movw $.LC2, %ax 0 000055A7 50 pushw %ax 0 000055A8 E8[FEFF] call printf 0 000055AB 83C404 addw $4, %sp 41 .L5: 0 000055AE 803E[0000] cmpb $1, status.3598 0 000055B2 01 0 000055B3 9F lahf 0 000055B4 D0E4 shlb %ah 0 000055B6 99 cwtd 0 000055B7 92 xchgw %ax, %dx 0 000055B8 F7D8 negw %ax 0 000055BA 89EC movw %bp, %sp 0 000055BC 5D popw %bp 0 000055BD C3 ret 51 .L7: 0 000055BE B8[0000] movw $.LC0, %ax 0 000055C1 EBE0 jmp .L6 54 .size hasSuperXMS, .-hasSuperXMS === Switch to base unknown -> ".RODATA.STR1.1" 55 .section .rodata.str1.1 56 .LC3: 0 00002200 556E6B6E .string "Unknown error" 0 00002204 6F776E20 0 00002208 6572726F 0 0000220C 7200 58 .LC4: 0 0000220E 584D5320 .string "XMS error %02X: %s\n" 0 00002212 6572726F 0 00002216 72202530 0 0000221A 32583A20 0 0000221E 25730A00 === Switch to base unknown -> ".TEXT" 60 .text 61 .type XMS_error, @function 62 XMS_error: 0 000055C3 56 pushw %si 0 000055C4 55 pushw %bp 0 000055C5 89E5 movw %sp, %bp 0 000055C7 31C0 xorw %ax, %ax 0 000055C9 BE[0000] movw $errs.3585, %si 68 .L18: 0 000055CC 89C3 movw %ax, %bx 0 000055CE D1E3 shlw $1, %bx 0 000055D0 01C3 addw %ax, %bx 0 000055D2 8A10 movb (%bx,%si), %dl 0 000055D4 3A5606 cmpb 6(%bp), %dl 0 000055D7 751A jne .L16 0 000055D9 8BB7[0100] movw errs.3585+1(%bx), %si 76 .L17: 0 000055DD E8[FEFF] call force_banner 0 000055E0 56 pushw %si 0 000055E1 8A4606 movb 6(%bp), %al 0 000055E4 30E4 xorb %ah, %ah 0 000055E6 50 pushw %ax 0 000055E7 B8[3000] movw $.LC4, %ax 0 000055EA 50 pushw %ax 0 000055EB E8[FEFF] call printf 0 000055EE 89EC movw %bp, %sp 0 000055F0 5D popw %bp 0 000055F1 5E popw %si 0 000055F2 C3 ret 89 .L16: 0 000055F3 40 incw %ax 0 000055F4 83F80C cmpw $12, %ax 0 000055F7 75D3 jne .L18 0 000055F9 BE[2200] movw $.LC3, %si 0 000055FC EBDF jmp .L17 95 .size XMS_error, .-XMS_error 96 .type handleSize, @function 97 handleSize: 0 000055FE 56 pushw %si 0 000055FF 57 pushw %di 0 00005600 55 pushw %bp 0 00005601 89E5 movw %sp, %bp 0 00005603 1E pushw %ds 0 00005604 1E pushw %ds 0 00005605 8B7608 movw 8(%bp), %si 0 00005608 8B7E0A movw 10(%bp), %di 0 0000560B C746FC00 movw $0, -4(%bp) 0 0000560F 00 0 00005610 C746FE00 movw $0, -2(%bp) 0 00005614 00 0 00005615 57 pushw %di 0 00005616 56 pushw %si 0 00005617 E852FF call hasSuperXMS 0 0000561A 50 pushw %ax 0 0000561B 8D46FC leaw -4(%bp), %ax 0 0000561E 50 pushw %ax 0 0000561F 57 pushw %di 0 00005620 56 pushw %si 0 00005621 E8[FEFF] call get_xms_handle_size 0 00005624 83C40C addw $12, %sp 0 00005627 84C0 testb %al, %al 0 00005629 740C je .L23 0 0000562B 8B46FC movw -4(%bp), %ax 0 0000562E 8B56FE movw -2(%bp), %dx 122 .L21: 0 00005631 89EC movw %bp, %sp 0 00005633 5D popw %bp 0 00005634 5F popw %di 0 00005635 5E popw %si 0 00005636 C3 ret 128 .L23: 0 00005637 B8FFFF movw $-1, %ax 0 0000563A 89C2 movw %ax, %dx 131 .L22: 0 0000563C EBF3 jmp .L21 133 .size handleSize, .-handleSize === Switch to base unknown -> ".RODATA.STR1.1" 134 .section .rodata.str1.1 135 .LC5: 0 00002222 584D533A .string "XMS: Free handle %04Xh\n" 0 00002226 20467265 0 0000222A 65206861 0 0000222E 6E646C65 0 00002232 20253034 === Switch to base unknown -> ".TEXT" 137 .text 138 .type XMSf_free_handle, @function 139 XMSf_free_handle: 0 0000563E 56 pushw %si 0 0000563F 57 pushw %di 0 00005640 55 pushw %bp 0 00005641 89E5 movw %sp, %bp 0 00005643 1E pushw %ds 0 00005644 8B7E08 movw 8(%bp), %di 0 00005647 8B760A movw 10(%bp), %si 0 0000564A F606[0000] testb $2, xvariable 0 0000564E 02 0 0000564F 740D je .L26 0 00005651 FF760C pushw 12(%bp) 0 00005654 B8[4400] movw $.LC5, %ax 0 00005657 50 pushw %ax 0 00005658 E8[FEFF] call printf 0 0000565B 83C404 addw $4, %sp 154 .L26: 0 0000565E 837E0C00 cmpw $0, 12(%bp) 0 00005662 7509 jne .L27 157 .L29: 0 00005664 B80100 movw $1, %ax 159 .L25: 0 00005667 89EC movw %bp, %sp 0 00005669 5D popw %bp 0 0000566A 5F popw %di 0 0000566B 5E popw %si 0 0000566C C3 ret 165 .L27: 0 0000566D FF760C pushw 12(%bp) 0 00005670 56 pushw %si 0 00005671 57 pushw %di 0 00005672 E8[FEFF] call free_xms_handle 0 00005675 83C406 addw $6, %sp 0 00005678 84C0 testb %al, %al 0 0000567A 74E8 je .L29 0 0000567C B108 movb $8, %cl 0 0000567E D3E8 shrw %cl, %ax 0 00005680 50 pushw %ax 0 00005681 8946FE movw %ax, -2(%bp) 0 00005684 E83CFF call XMS_error 0 00005687 83C402 addw $2, %sp 0 0000568A 8B46FE movw -2(%bp), %ax 0 0000568D 3DA200 cmpw $162, %ax 0 00005690 9F lahf 0 00005691 D0E4 shlb %ah 0 00005693 99 cwtd 0 00005694 92 xchgw %ax, %dx 0 00005695 F7D8 negw %ax 0 00005697 EBCE jmp .L25 187 .size XMSf_free_handle, .-XMSf_free_handle 188 .global XMSf_has_memory 189 .type XMSf_has_memory, @function 190 XMSf_has_memory: 0 00005699 55 pushw %bp 0 0000569A 89E5 movw %sp, %bp 0 0000569C C55E04 ldsw 4(%bp), %bx 0 0000569F 833F01 cmpw $1, (%bx) 0 000056A2 19C0 sbbw %ax, %ax 0 000056A4 40 incw %ax 0 000056A5 5D popw %bp 0 000056A6 16 pushw %ss 0 000056A7 1F popw %ds 0 000056A8 C3 ret 201 .size XMSf_has_memory, .-XMSf_has_memory === Switch to base unknown -> ".RODATA.STR1.1" 202 .section .rodata.str1.1 203 .LC6: 0 0000223A 584D533A .string "XMS: Allocate %ld K to handle %04Xh\n" 0 0000223E 20416C6C 0 00002242 6F636174 0 00002246 6520256C 0 0000224A 64204B20 205 .LC7: 0 0000225F 584D533A .string "XMS: Allocating %ld K to handle %04Xh\n" 0 00002263 20416C6C 0 00002267 6F636174 0 0000226B 696E6720 0 0000226F 256C6420 207 .LC8: 0 00002286 584D533A .string "XMS: Allocated %ld K\n" 0 0000228A 20416C6C 0 0000228E 6F636174 0 00002292 65642025 0 00002296 6C64204B === Switch to base unknown -> ".TEXT" 209 .text 210 .global XMSf_alloc 211 .type XMSf_alloc, @function 212 XMSf_alloc: 0 000056A9 56 pushw %si 0 000056AA 57 pushw %di 0 000056AB 06 pushw %es 0 000056AC 55 pushw %bp 0 000056AD 89E5 movw %sp, %bp 0 000056AF 1E pushw %ds 0 000056B0 C47E0A lesw 10(%bp), %di 0 000056B3 8B760E movw 14(%bp), %si 0 000056B6 8B5610 movw 16(%bp), %dx 0 000056B9 85D2 testw %dx, %dx 0 000056BB 7452 je .L40 0 000056BD 8956FE movw %dx, -2(%bp) 0 000056C0 06 pushw %es 0 000056C1 57 pushw %di 0 000056C2 E8A7FE call hasSuperXMS 0 000056C5 83C404 addw $4, %sp 0 000056C8 85C0 testw %ax, %ax 0 000056CA 7503E9B2 je .L46 0 000056CE 00 0 000056CF F606[0000] testb $2, xvariable 0 000056D3 02 0 000056D4 8B56FE movw -2(%bp), %dx 0 000056D7 7412 je .L42 0 000056D9 26FF35 pushw %es:(%di) 0 000056DC 52 pushw %dx 0 000056DD 56 pushw %si 0 000056DE B8[5C00] movw $.LC6, %ax 0 000056E1 50 pushw %ax 0 000056E2 E8[FEFF] call printf 0 000056E5 83C408 addw $8, %sp 0 000056E8 8B56FE movw -2(%bp), %dx 242 .L42: 0 000056EB 52 pushw %dx 0 000056EC 8956FE movw %dx, -2(%bp) 0 000056EF 56 pushw %si 0 000056F0 06 pushw %es 0 000056F1 57 pushw %di 0 000056F2 E8[FEFF] call alloc_xms3_handle 0 000056F5 83C408 addw $8, %sp 0 000056F8 84C0 testb %al, %al 0 000056FA 8B56FE movw -2(%bp), %dx 0 000056FD 7461 je .L43 0 000056FF B108 movb $8, %cl 0 00005701 D3E8 shrw %cl, %ax 0 00005703 50 pushw %ax 0 00005704 E8BCFE call XMS_error 0 00005707 83C402 addw $2, %sp 0 0000570A BEFFFF movw $-1, %si 0 0000570D 31D2 xorw %dx, %dx 260 .L40: 0 0000570F F606[0000] testb $2, xvariable 0 00005713 02 0 00005714 7415 je .L44 0 00005716 26FF35 pushw %es:(%di) 0 00005719 52 pushw %dx 0 0000571A 8956FE movw %dx, -2(%bp) 0 0000571D 56 pushw %si 0 0000571E B8[8100] movw $.LC7, %ax 0 00005721 50 pushw %ax 0 00005722 E8[FEFF] call printf 0 00005725 83C408 addw $8, %sp 0 00005728 8B56FE movw -2(%bp), %dx 272 .L44: 0 0000572B 52 pushw %dx 0 0000572C 8956FE movw %dx, -2(%bp) 0 0000572F 56 pushw %si 0 00005730 06 pushw %es 0 00005731 57 pushw %di 0 00005732 E8[FEFF] call alloc_xms2_handle 0 00005735 83C408 addw $8, %sp 0 00005738 84C0 testb %al, %al 0 0000573A 8B56FE movw -2(%bp), %dx 0 0000573D 7421 je .L43 0 0000573F B108 movb $8, %cl 0 00005741 D3E8 shrw %cl, %ax 0 00005743 50 pushw %ax 0 00005744 E87CFE call XMS_error 0 00005747 06 pushw %es 0 00005748 57 pushw %di 0 00005749 E8B2FE call handleSize 0 0000574C 89C6 movw %ax, %si 0 0000574E 83C406 addw $6, %sp 0 00005751 83F8FF cmpw $-1, %ax 0 00005754 750A jne .L43 0 00005756 83FAFF cmpw $-1, %dx 0 00005759 7505 jne .L43 0 0000575B 8D7401 leaw 1(%si), %si 0 0000575E 89F2 movw %si, %dx 298 .L43: 0 00005760 F606[0000] testb $2, xvariable 0 00005764 02 0 00005765 7412 je .L45 0 00005767 52 pushw %dx 0 00005768 8956FE movw %dx, -2(%bp) 0 0000576B 56 pushw %si 0 0000576C B8[A800] movw $.LC8, %ax 0 0000576F 50 pushw %ax 0 00005770 E8[FEFF] call printf 0 00005773 83C406 addw $6, %sp 0 00005776 8B56FE movw -2(%bp), %dx 309 .L45: 0 00005779 96 xchgw %ax, %si 0 0000577A 89EC movw %bp, %sp 0 0000577C 5D popw %bp 0 0000577D 07 popw %es 0 0000577E 5F popw %di 0 0000577F 5E popw %si 0 00005780 C3 ret 317 .L46: 0 00005781 BEFFFF movw $-1, %si 0 00005784 92 xchgw %ax, %dx 0 00005785 EB88 jmp .L40 321 .size XMSf_alloc, .-XMSf_alloc === Switch to base unknown -> ".RODATA.STR1.1" 322 .section .rodata.str1.1 323 .LC9: 0 0000229C 584D533A .string "XMS: ReAllocating %ld K to handle %04Xh\n" 0 000022A0 20526541 0 000022A4 6C6C6F63 0 000022A8 6174696E 0 000022AC 6720256C 325 .LC10: 0 000022C5 584D533A .string "XMS: ReAllocated %ld K\n" 0 000022C9 20526541 0 000022CD 6C6C6F63 0 000022D1 61746564 0 000022D5 20256C64 === Switch to base unknown -> ".TEXT" 327 .text 328 .global XMSf_realloc 329 .type XMSf_realloc, @function 330 XMSf_realloc: 0 00005787 56 pushw %si 0 00005788 57 pushw %di 0 00005789 06 pushw %es 0 0000578A 55 pushw %bp 0 0000578B 89E5 movw %sp, %bp 0 0000578D 83EC06 subw $6, %sp 0 00005790 C47E0A lesw 10(%bp), %di 0 00005793 8B460E movw 14(%bp), %ax 0 00005796 8946FE movw %ax, -2(%bp) 0 00005799 8B4610 movw 16(%bp), %ax 0 0000579C 8946FC movw %ax, -4(%bp) 0 0000579F 8B7612 movw 18(%bp), %si 0 000057A2 8B5614 movw 20(%bp), %dx 0 000057A5 85D2 testw %dx, %dx 0 000057A7 745F je .L65 0 000057A9 8956FA movw %dx, -6(%bp) 0 000057AC 06 pushw %es 0 000057AD 57 pushw %di 0 000057AE E8BBFD call hasSuperXMS 0 000057B1 83C404 addw $4, %sp 0 000057B4 85C0 testw %ax, %ax 0 000057B6 744C je .L75 0 000057B8 F606[0000] testb $2, xvariable 0 000057BC 02 0 000057BD 8B56FA movw -6(%bp), %dx 0 000057C0 7412 je .L67 0 000057C2 26FF35 pushw %es:(%di) 0 000057C5 52 pushw %dx 0 000057C6 56 pushw %si 0 000057C7 B8[BE00] movw $.LC9, %ax 0 000057CA 50 pushw %ax 0 000057CB E8[FEFF] call printf 0 000057CE 83C408 addw $8, %sp 0 000057D1 8B56FA movw -6(%bp), %dx 364 .L67: 0 000057D4 52 pushw %dx 0 000057D5 8956FA movw %dx, -6(%bp) 0 000057D8 56 pushw %si 0 000057D9 06 pushw %es 0 000057DA 57 pushw %di 0 000057DB E8[FEFF] call realloc_xms3_handle 0 000057DE 83C408 addw $8, %sp 0 000057E1 3C01 cmpb $1, %al 0 000057E3 8B56FA movw -6(%bp), %dx 0 000057E6 7275 jc .L68 0 000057E8 B108 movb $8, %cl 0 000057EA D3E8 shrw %cl, %ax 377 .L69: 0 000057EC 50 pushw %ax 0 000057ED 8946FA movw %ax, -6(%bp) 0 000057F0 E8D0FD call XMS_error 0 000057F3 83C402 addw $2, %sp 0 000057F6 8B46FA movw -6(%bp), %ax 0 000057F9 3DA200 cmpw $162, %ax 0 000057FC 7543 jne .L74 0 000057FE 31F6 xorw %si, %si 0 00005800 89F2 movw %si, %dx 0 00005802 EB72 jmp .L72 388 .L75: 0 00005804 BEFFFF movw $-1, %si 0 00005807 92 xchgw %ax, %dx 391 .L65: 0 00005808 F606[0000] testb $2, xvariable 0 0000580C 02 0 0000580D 7415 je .L70 0 0000580F 26FF35 pushw %es:(%di) 0 00005812 52 pushw %dx 0 00005813 8956FA movw %dx, -6(%bp) 0 00005816 56 pushw %si 0 00005817 B8[BE00] movw $.LC9, %ax 0 0000581A 50 pushw %ax 0 0000581B E8[FEFF] call printf 0 0000581E 83C408 addw $8, %sp 0 00005821 8B56FA movw -6(%bp), %dx 403 .L70: 0 00005824 52 pushw %dx 0 00005825 8956FA movw %dx, -6(%bp) 0 00005828 56 pushw %si 0 00005829 06 pushw %es 0 0000582A 57 pushw %di 0 0000582B E8[FEFF] call realloc_xms2_handle 0 0000582E 83C408 addw $8, %sp 0 00005831 3C01 cmpb $1, %al 0 00005833 8B56FA movw -6(%bp), %dx 0 00005836 7225 jc .L68 0 00005838 B108 movb $8, %cl 0 0000583A D3E8 shrw %cl, %ax 0 0000583C 3D8000 cmpw $128, %ax 0 0000583F 75AB jne .L69 418 .L74: 0 00005841 06 pushw %es 0 00005842 57 pushw %di 0 00005843 E8B8FD call handleSize 0 00005846 89C6 movw %ax, %si 0 00005848 83C404 addw $4, %sp 0 0000584B 83F8FF cmpw $-1, %ax 0 0000584E 7526 jne .L72 0 00005850 83FAFF cmpw $-1, %dx 0 00005853 7521 jne .L72 0 00005855 8B76FE movw -2(%bp), %si 0 00005858 8B56FC movw -4(%bp), %dx 0 0000585B EB19 jmp .L72 431 .L68: 0 0000585D F606[0000] testb $2, xvariable 0 00005861 02 0 00005862 7412 je .L72 0 00005864 52 pushw %dx 0 00005865 8956FE movw %dx, -2(%bp) 0 00005868 56 pushw %si 0 00005869 B8[E700] movw $.LC10, %ax 0 0000586C 50 pushw %ax 0 0000586D E8[FEFF] call printf 0 00005870 83C406 addw $6, %sp 0 00005873 8B56FE movw -2(%bp), %dx 442 .L72: 0 00005876 96 xchgw %ax, %si 0 00005877 89EC movw %bp, %sp 0 00005879 5D popw %bp 0 0000587A 07 popw %es 0 0000587B 5F popw %di 0 0000587C 5E popw %si 0 0000587D C3 ret 450 .size XMSf_realloc, .-XMSf_realloc === Switch to base unknown -> ".RODATA.STR1.1" 451 .section .rodata.str1.1 452 .LC11: 0 000022DD 584D533A .string "XMS: Freeing handle %04Xh, currsize %ld K\n" 0 000022E1 20467265 0 000022E5 65696E67 0 000022E9 2068616E 0 000022ED 646C6520 === Switch to base unknown -> ".TEXT" 454 .text 455 .global XMSf_free 456 .type XMSf_free, @function 457 XMSf_free: 0 0000587E 56 pushw %si 0 0000587F 57 pushw %di 0 00005880 06 pushw %es 0 00005881 55 pushw %bp 0 00005882 89E5 movw %sp, %bp 0 00005884 1E pushw %ds 0 00005885 C4760A lesw 10(%bp), %si 0 00005888 8B7E0E movw 14(%bp), %di 0 0000588B 8B5610 movw 16(%bp), %dx 0 0000588E F606[0000] testb $2, xvariable 0 00005892 02 0 00005893 7415 je .L97 0 00005895 52 pushw %dx 0 00005896 8956FE movw %dx, -2(%bp) 0 00005899 57 pushw %di 0 0000589A 26FF34 pushw %es:(%si) 0 0000589D B8[FF00] movw $.LC11, %ax 0 000058A0 50 pushw %ax 0 000058A1 E8[FEFF] call printf 0 000058A4 83C408 addw $8, %sp 0 000058A7 8B56FE movw -2(%bp), %dx 478 .L97: 0 000058AA 8956FE movw %dx, -2(%bp) 0 000058AD 26FF34 pushw %es:(%si) 0 000058B0 06 pushw %es 0 000058B1 56 pushw %si 0 000058B2 E889FD call XMSf_free_handle 0 000058B5 83C406 addw $6, %sp 0 000058B8 85C0 testw %ax, %ax 0 000058BA 8B56FE movw -2(%bp), %dx 0 000058BD 7409 je .L98 0 000058BF 26C70400 movw $0, %es:(%si) 0 000058C3 00 0 000058C4 31FF xorw %di, %di 0 000058C6 89FA movw %di, %dx 491 .L98: 0 000058C8 97 xchgw %ax, %di 0 000058C9 89EC movw %bp, %sp 0 000058CB 5D popw %bp 0 000058CC 07 popw %es 0 000058CD 5F popw %di 0 000058CE 5E popw %si 0 000058CF C3 ret 499 .size XMSf_free, .-XMSf_free === Switch to base unknown -> ".RODATA.STR1.1" 500 .section .rodata.str1.1 501 .LC12: 0 00002308 584D533A .string "XMS: Saved handle %04Xh\n" 0 0000230C 20536176 0 00002310 65642068 0 00002314 616E646C 0 00002318 65202530 === Switch to base unknown -> ".TEXT" 503 .text 504 .global XMSf_save_buffer 505 .type XMSf_save_buffer, @function 506 XMSf_save_buffer: 0 000058D0 06 pushw %es 0 000058D1 55 pushw %bp 0 000058D2 89E5 movw %sp, %bp 0 000058D4 8B5E06 movw 6(%bp), %bx 0 000058D7 C54608 ldsw 8(%bp), %ax 0 000058DA 8B4E0C movw 12(%bp), %cx 0 000058DD 36891E[08] movw %bx, %ss:old_allocs 0 000058E1 [00] 0 000058E2 36A3[0A00] movw %ax, %ss:old_allocs+2 0 000058E6 8EC0 movw %ax, %es 0 000058E8 268B17 movw %es:(%bx), %dx 0 000058EB 368916[06] movw %dx, %ss:old_handle 0 000058EF [00] 0 000058F0 26C70700 movw $0, %es:(%bx) 0 000058F4 00 0 000058F5 368C1E[02] movw %ds, %ss:old_size 0 000058F9 [00] 0 000058FA 36890E[04] movw %cx, %ss:old_size+2 0 000058FE [00] 0 000058FF 36F606[00] testb $2, %ss:xvariable 0 00005903 [00]02 0 00005905 7411 je .L106 0 00005907 C7460800 movw $0, 8(%bp) 0 0000590B 00 0 0000590C C74606[2A] movw $.LC12, 6(%bp) 0 00005910 [01] 0 00005911 16 pushw %ss 0 00005912 1F popw %ds 0 00005913 5D popw %bp 0 00005914 07 popw %es 0 00005915 E9[FEFF] jmp printf 530 .L106: 0 00005918 5D popw %bp 0 00005919 07 popw %es 0 0000591A 16 pushw %ss 0 0000591B 1F popw %ds 0 0000591C C3 ret 536 .size XMSf_save_buffer, .-XMSf_save_buffer === Switch to base unknown -> ".RODATA.STR1.1" 537 .section .rodata.str1.1 538 .LC13: 0 00002321 584D533A .string "XMS: Copying %04Xh to new %04Xh\n" 0 00002325 20436F70 0 00002329 79696E67 0 0000232D 20253034 0 00002331 58682074 540 .LC14: 0 00002342 584D533A .string "XMS: Moved successfully\n" 0 00002346 204D6F76 0 0000234A 65642073 0 0000234E 75636365 0 00002352 73736675 === Switch to base unknown -> ".TEXT" 542 .text 543 .global XMSf_copy_to_new 544 .type XMSf_copy_to_new, @function 545 XMSf_copy_to_new: 0 0000591D 56 pushw %si 0 0000591E 57 pushw %di 0 0000591F 06 pushw %es 0 00005920 55 pushw %bp 0 00005921 89E5 movw %sp, %bp 0 00005923 83EC14 subw $20, %sp 0 00005926 8B460A movw 10(%bp), %ax 0 00005929 8946EE movw %ax, -18(%bp) 0 0000592C 8B460C movw 12(%bp), %ax 0 0000592F 8946EC movw %ax, -20(%bp) 0 00005932 8B7E0E movw 14(%bp), %di 0 00005935 8B7610 movw 16(%bp), %si 0 00005938 16 pushw %ss 0 00005939 07 popw %es 0 0000593A 36F606[00] testb $2, %ss:xvariable 0 0000593E [00]02 0 00005940 7418 je .L110 0 00005942 8ED8 movw %ax, %ds 0 00005944 8B5EEE movw -18(%bp), %bx 0 00005947 FF37 pushw (%bx) 0 00005949 36FF36[06] pushw %ss:old_handle 0 0000594D [00] 0 0000594E B8[4301] movw $.LC13, %ax 0 00005951 50 pushw %ax 0 00005952 16 pushw %ss 0 00005953 1F popw %ds 0 00005954 E8[FEFF] call printf 0 00005957 83C406 addw $6, %sp 572 .L110: 0 0000595A 8B16[0200] movw old_size, %dx 0 0000595E A1[0400] movw old_size+2, %ax 0 00005961 39F0 cmpw %si, %ax 0 00005963 7706 ja .L112 0 00005965 7508 jne .L111 0 00005967 39FA cmpw %di, %dx 0 00005969 7604 jbe .L111 580 .L112: 0 0000596B 89FA movw %di, %dx 0 0000596D 89F0 movw %si, %ax 583 .L111: 0 0000596F 89D3 movw %dx, %bx 0 00005971 B106 movb $6, %cl 0 00005973 D3EB shrw %cl, %bx 0 00005975 B10A movb $10, %cl 0 00005977 D3E0 shlw %cl, %ax 0 00005979 09D8 orw %bx, %ax 0 0000597B D3E2 shlw %cl, %dx 0 0000597D 8956F0 movw %dx, -16(%bp) 0 00005980 8946F2 movw %ax, -14(%bp) 0 00005983 A1[0600] movw old_handle, %ax 0 00005986 8946F4 movw %ax, -12(%bp) 0 00005989 C746F600 movw $0, -10(%bp) 0 0000598D 00 0 0000598E C746F800 movw $0, -8(%bp) 0 00005992 00 0 00005993 8E5EEC movw -20(%bp), %ds 0 00005996 8B5EEE movw -18(%bp), %bx 0 00005999 8B07 movw (%bx), %ax 0 0000599B 8946FA movw %ax, -6(%bp) 0 0000599E C746FC00 movw $0, -4(%bp) 0 000059A2 00 0 000059A3 C746FE00 movw $0, -2(%bp) 0 000059A7 00 0 000059A8 06 pushw %es 0 000059A9 8D46F0 leaw -16(%bp), %ax 0 000059AC 50 pushw %ax 0 000059AD 1E pushw %ds 0 000059AE 53 pushw %bx 0 000059AF 16 pushw %ss 0 000059B0 1F popw %ds 0 000059B1 E8[FEFF] call copy_xms 0 000059B4 83C408 addw $8, %sp 0 000059B7 84C0 testb %al, %al 0 000059B9 7414 je .L113 0 000059BB B108 movb $8, %cl 0 000059BD D3E8 shrw %cl, %ax 0 000059BF 50 pushw %ax 0 000059C0 E800FC call XMS_error 0 000059C3 83C402 addw $2, %sp 0 000059C6 31C0 xorw %ax, %ax 620 .L109: 0 000059C8 89EC movw %bp, %sp 0 000059CA 5D popw %bp 0 000059CB 07 popw %es 0 000059CC 5F popw %di 0 000059CD 5E popw %si 0 000059CE C3 ret 627 .L113: 0 000059CF 36F606[00] testb $2, %ss:xvariable 0 000059D3 [00]02 0 000059D5 740C je .L115 0 000059D7 56 pushw %si 0 000059D8 57 pushw %di 0 000059D9 B8[6401] movw $.LC14, %ax 0 000059DC 50 pushw %ax 0 000059DD E8[FEFF] call printf 0 000059E0 83C406 addw $6, %sp 636 .L115: 0 000059E3 B80100 movw $1, %ax 0 000059E6 EBE0 jmp .L109 639 .size XMSf_copy_to_new, .-XMSf_copy_to_new 640 .global XMSf_free_old 641 .type XMSf_free_old, @function 642 XMSf_free_old: 0 000059E8 FF36[0600] pushw old_handle 0 000059EC FF36[0A00] pushw old_allocs+2 0 000059F0 FF36[0800] pushw old_allocs 0 000059F4 E847FC call XMSf_free_handle 0 000059F7 83C406 addw $6, %sp 0 000059FA C3 ret 649 .size XMSf_free_old, .-XMSf_free_old 650 .global XMSf_restore_buffer 651 .type XMSf_restore_buffer, @function 652 XMSf_restore_buffer: 0 000059FB 56 pushw %si 0 000059FC 57 pushw %di 0 000059FD 55 pushw %bp 0 000059FE 89E5 movw %sp, %bp 0 00005A00 C57E08 ldsw 8(%bp), %di 0 00005A03 8CDE movw %ds, %si 0 00005A05 833D00 cmpw $0, (%di) 0 00005A08 7411 je .L122 0 00005A0A 31C0 xorw %ax, %ax 0 00005A0C 50 pushw %ax 0 00005A0D B80100 movw $1, %ax 0 00005A10 50 pushw %ax 0 00005A11 1E pushw %ds 0 00005A12 57 pushw %di 0 00005A13 16 pushw %ss 0 00005A14 1F popw %ds 0 00005A15 E8[FEFF] call XMSf_free 0 00005A18 83C408 addw $8, %sp 671 .L122: 0 00005A1B 36A1[0600] movw %ss:old_handle, %ax 0 00005A1F 8EDE movw %si, %ds 0 00005A21 8905 movw %ax, (%di) 0 00005A23 36A1[0200] movw %ss:old_size, %ax 0 00005A27 368B16[04] movw %ss:old_size+2, %dx 0 00005A2B [00] 0 00005A2C 89EC movw %bp, %sp 0 00005A2E 5D popw %bp 0 00005A2F 5F popw %di 0 00005A30 5E popw %si 0 00005A31 16 pushw %ss 0 00005A32 1F popw %ds 0 00005A33 C3 ret 684 .size XMSf_restore_buffer, .-XMSf_restore_buffer === Switch to base unknown -> ".RODATA.STR1.1" 685 .section .rodata.str1.1 686 .LC15: 0 0000235B 584D533A .string "XMS: %ld K in largest available block\n" 0 0000235F 20256C64 0 00002363 204B2069 0 00002367 6E206C61 0 0000236B 72676573 === Switch to base unknown -> ".TEXT" 688 .text 689 .global XMSf_mem_avail 690 .type XMSf_mem_avail, @function 691 XMSf_mem_avail: 0 00005A34 56 pushw %si 0 00005A35 57 pushw %di 0 00005A36 55 pushw %bp 0 00005A37 89E5 movw %sp, %bp 0 00005A39 1E pushw %ds 0 00005A3A 1E pushw %ds 0 00005A3B 8B7608 movw 8(%bp), %si 0 00005A3E 8B7E0A movw 10(%bp), %di 0 00005A41 C746FC00 movw $0, -4(%bp) 0 00005A45 00 0 00005A46 C746FE00 movw $0, -2(%bp) 0 00005A4A 00 0 00005A4B 57 pushw %di 0 00005A4C 56 pushw %si 0 00005A4D E81CFB call hasSuperXMS 0 00005A50 83C404 addw $4, %sp 0 00005A53 85C0 testw %ax, %ax 0 00005A55 742F je .L125 0 00005A57 8D46FC leaw -4(%bp), %ax 0 00005A5A 50 pushw %ax 0 00005A5B 57 pushw %di 0 00005A5C 56 pushw %si 0 00005A5D E8[FEFF] call get_xms3_available 713 .L132: 0 00005A60 83C406 addw $6, %sp 0 00005A63 F606[0000] testb $2, xvariable 0 00005A67 02 0 00005A68 7410 je .L127 0 00005A6A FF76FE pushw -2(%bp) 0 00005A6D FF76FC pushw -4(%bp) 0 00005A70 B8[7D01] movw $.LC15, %ax 0 00005A73 50 pushw %ax 0 00005A74 E8[FEFF] call printf 0 00005A77 83C406 addw $6, %sp 723 .L127: 0 00005A7A 8B46FC movw -4(%bp), %ax 0 00005A7D 8B56FE movw -2(%bp), %dx 0 00005A80 89EC movw %bp, %sp 0 00005A82 5D popw %bp 0 00005A83 5F popw %di 0 00005A84 5E popw %si 0 00005A85 C3 ret 731 .L125: 0 00005A86 8D46FC leaw -4(%bp), %ax 0 00005A89 50 pushw %ax 0 00005A8A 57 pushw %di 0 00005A8B 56 pushw %si 0 00005A8C E8[FEFF] call get_xms2_available 0 00005A8F EBCF jmp .L132 738 .size XMSf_mem_avail, .-XMSf_mem_avail === Switch to base unknown -> ".RODATA.STR1.1" 739 .section .rodata.str1.1 740 .LC16: 0 00002382 46756E63 .string "Function not implemented" 0 00002386 74696F6E 0 0000238A 206E6F74 0 0000238E 20696D70 0 00002392 6C656D65 742 .LC17: 0 0000239B 56444953 .string "VDISK device is detected" 0 0000239F 4B206465 0 000023A3 76696365 0 000023A7 20697320 0 000023AB 64657465 744 .LC18: 0 000023B4 41323020 .string "A20 error occurs" 0 000023B8 6572726F 0 000023BC 72206F63 0 000023C0 63757273 0 000023C4 00 746 .LC19: 0 000023C5 47656E65 .string "General device driver error" 0 000023C9 72616C20 0 000023CD 64657669 0 000023D1 63652064 0 000023D5 72697665 748 .LC20: 0 000023E1 556E6B6E .string "Unknown device driver error" 0 000023E5 6F776E20 0 000023E9 64657669 0 000023ED 63652064 0 000023F1 72697665 750 .LC21: 0 000023FD 416C6C20 .string "All extended memory is allocated" 0 00002401 65787465 0 00002405 6E646564 0 00002409 206D656D 0 0000240D 6F727920 752 .LC22: 0 0000241E 416C6C20 .string "All available handles are in use" 0 00002422 61766169 0 00002426 6C61626C 0 0000242A 65206861 0 0000242E 6E646C65 754 .LC23: 0 0000243F 48616E64 .string "Handle is invalid" 0 00002443 6C652069 0 00002447 7320696E 0 0000244B 76616C69 0 0000244F 6400 756 .LC24: 0 00002451 536F7572 .string "Source handle is invalid" 0 00002455 63652068 0 00002459 616E646C 0 0000245D 65206973 0 00002461 20696E76 758 .LC25: 0 0000246A 4C656E67 .string "Length is invalid" 0 0000246E 74682069 0 00002472 7320696E 0 00002476 76616C69 0 0000247A 6400 760 .LC26: 0 0000247C 50617269 .string "Parity error" 0 00002480 74792065 0 00002484 72726F72 0 00002488 00 762 .LC27: 0 00002489 426C6F63 .string "Block is locked" 0 0000248D 6B206973 0 00002491 206C6F63 0 00002495 6B656400 === Switch to base unknown -> ".RODATA" 764 .section .rodata 765 .type errs.3585, @object 766 .size errs.3585, 36 767 errs.3585: 0 000001BC 80 .byte -128 0 000001BD [A401] .hword .LC16 0 000001BF 81 .byte -127 0 000001C0 [BD01] .hword .LC17 0 000001C2 82 .byte -126 0 000001C3 [D601] .hword .LC18 0 000001C5 8E .byte -114 0 000001C6 [E701] .hword .LC19 0 000001C8 8F .byte -113 0 000001C9 [0302] .hword .LC20 0 000001CB A0 .byte -96 0 000001CC [1F02] .hword .LC21 0 000001CE A1 .byte -95 0 000001CF [4002] .hword .LC22 0 000001D1 A2 .byte -94 0 000001D2 [6102] .hword .LC23 0 000001D4 A3 .byte -93 0 000001D5 [7302] .hword .LC24 0 000001D7 A7 .byte -89 0 000001D8 [8C02] .hword .LC25 0 000001DA A9 .byte -87 0 000001DB [9E02] .hword .LC26 0 000001DD AB .byte -85 0 000001DE [AB02] .hword .LC27 792 .local status.3598 793 .comm status.3598,1,1 794 .local old_size 795 .comm old_size,4,2 796 .local old_handle 797 .comm old_handle,2,2 798 .local old_allocs 799 .comm old_allocs,4,2 800 .ident "GCC: (GNU) 6.3.0" 801 .weak __ia16_use_printf_nofloat.v1 802 .set __ia16_use_printf_nofloat.v1,1 === Trace listing source: writenew.lst 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP === Switch to base unknown -> ".TEXT" 5 .text 6 .global makeRWaccess 7 .type makeRWaccess, @function 8 makeRWaccess: 0 00005A91 BB[0000] movw $newf, %bx 0 00005A94 B401 movb $1, %ah 0 00005A96 833F01 cmpw $1, (%bx) 0 00005A99 7402 je .L2 0 00005A9B B403 movb $3, %ah 14 .L2: 0 00005A9D 837F02FF cmpw $-1, 2(%bx) 0 00005AA1 18C0 sbbb %al, %al 0 00005AA3 FEC0 incb %al 0 00005AA5 B102 movb $2, %cl 0 00005AA7 D2E0 shlb %cl, %al 0 00005AA9 08E0 orb %ah, %al 0 00005AAB C3 ret 22 .size makeRWaccess, .-makeRWaccess === Switch to base unknown -> ".RODATA.STR1.1" 23 .section .rodata.str1.1,"aMS",@progbits,1 24 .LC0: 0 00002499 46415431 .string "FAT12 " 0 0000249D 32202020 0 000024A1 00 26 .LC1: 0 000024A2 46415431 .string "FAT16 " 0 000024A6 36202020 0 000024AA 00 28 .LC2: 0 000024AB 20202020 .string " " 0 000024AF 20202020 0 000024B3 00 30 .LC3: 0 000024B4 53524420 .string "SRD 2.10" 0 000024B8 322E3130 0 000024BC 00 === Switch to base unknown -> ".TEXT" 32 .text 33 .global makeNewDisk 34 .type makeNewDisk, @function 35 makeNewDisk: 0 00005AAC 56 pushw %si 0 00005AAD 57 pushw %di 0 00005AAE 06 pushw %es 0 00005AAF 55 pushw %bp 0 00005AB0 89E5 movw %sp, %bp 0 00005AB2 83EC08 subw $8, %sp 0 00005AB5 E8[FEFF] call DiskAllocate 0 00005AB8 C706[0000] movw $1, disk_bad 0 00005ABC 0100 0 00005ABE 803E[0000] cmpb $2, disk_repair 0 00005AC2 02 0 00005AC3 7605 jbe .L7 0 00005AC5 C606[0000] movb $2, disk_repair 0 00005AC9 02 47 .L7: 0 00005ACA E8[FEFF] call configure_drive 0 00005ACD FF36[0C00] pushw newf+12 0 00005AD1 E8[FEFF] call xalloc 0 00005AD4 97 xchgw %ax, %di 0 00005AD5 A1[0000] movw bootsectorfile, %ax 0 00005AD8 83C402 addw $2, %sp 0 00005ADB 85C0 testw %ax, %ax 0 00005ADD BA0000 movw $0, %dx 0 00005AE0 8EC2 movw %dx, %es 0 00005AE2 BE[0000] movw $newf, %si 0 00005AE5 7503E9A1 je .L8 0 00005AE9 00 0 00005AEA 57 pushw %di 0 00005AEB 50 pushw %ax 0 00005AEC E8[FEFF] call FileBootSector 0 00005AEF 83C404 addw $4, %sp 0 00005AF2 84C0 testb %al, %al 0 00005AF4 7403E992 jne .L8 0 00005AF8 00 0 00005AF9 57 pushw %di 0 00005AFA E8[FEFF] call FillBootSectorBPB 0 00005AFD 16 pushw %ss 0 00005AFE 57 pushw %di 0 00005AFF 06 pushw %es 0 00005B00 06 pushw %es 0 00005B01 B80100 movw $1, %ax 0 00005B04 50 pushw %ax 0 00005B05 E8[FEFF] call write_sector 0 00005B08 83C40C addw $12, %sp 75 .L13: 0 00005B0B C746F800 movw $0, -8(%bp) 0 00005B0F 00 77 .L9: 0 00005B10 8B46F8 movw -8(%bp), %ax 0 00005B13 394410 cmpw %ax, 16(%si) 0 00005B16 8B5C70 movw 112(%si), %bx 0 00005B19 7603E920 ja .L17 0 00005B1D 01 0 00005B1E 93 xchgw %ax, %bx 0 00005B1F 034478 addw 120(%si), %ax 0 00005B22 89447C movw %ax, 124(%si) 0 00005B25 8C56F8 movw %ss, -8(%bp) 0 00005B28 B80B00 movw $11, %ax 0 00005B2B 50 pushw %ax 0 00005B2C FF36[0200] pushw conf+2 0 00005B30 50 pushw %ax 0 00005B31 16 pushw %ss 0 00005B32 57 pushw %di 0 00005B33 E8[FEFF] call _fmemcpy 0 00005B36 C6450B08 movb $8, 11(%di) 0 00005B3A 06 pushw %es 0 00005B3B E8[FEFF] call time 0 00005B3E 52 pushw %dx 0 00005B3F 50 pushw %ax 0 00005B40 E8[FEFF] call DOS_time 0 00005B43 894516 movw %ax, 22(%di) 0 00005B46 895518 movw %dx, 24(%di) 0 00005B49 FF76F8 pushw -8(%bp) 0 00005B4C 57 pushw %di 0 00005B4D 06 pushw %es 0 00005B4E FF747C pushw 124(%si) 0 00005B51 B80100 movw $1, %ax 0 00005B54 50 pushw %ax 0 00005B55 E8[FEFF] call write_sector 0 00005B58 B82000 movw $32, %ax 0 00005B5B 50 pushw %ax 0 00005B5C 06 pushw %es 0 00005B5D 57 pushw %di 0 00005B5E E8[FEFF] call memset 0 00005B61 83C420 addw $32, %sp 0 00005B64 B80100 movw $1, %ax 115 .L18: 0 00005B67 39447A cmpw %ax, 122(%si) 0 00005B6A 7603E946 ja .L19 0 00005B6E 01 0 00005B6F C436[0000] lesw conf, %si 0 00005B73 E8[FEFF] call makeRWaccess 0 00005B76 26884438 movb %al, %es:56(%si) 0 00005B7A 57 pushw %di 0 00005B7B E8[FEFF] call free 0 00005B7E C706[0000] movw $0, disk_bad 0 00005B82 0000 0 00005B84 89EC movw %bp, %sp 0 00005B86 5D popw %bp 0 00005B87 07 popw %es 0 00005B88 5F popw %di 0 00005B89 5E popw %si 0 00005B8A C3 ret 130 .L8: 0 00005B8B FF740C pushw 12(%si) 0 00005B8E 06 pushw %es 0 00005B8F 57 pushw %di 0 00005B90 E8[FEFF] call memset 0 00005B93 C705EB3C movw $15595, (%di) 0 00005B97 C6450290 movb $-112, 2(%di) 0 00005B9B 8D4503 leaw 3(%di), %ax 0 00005B9E B90800 movw $8, %cx 0 00005BA1 51 pushw %cx 0 00005BA2 894EF8 movw %cx, -8(%bp) 0 00005BA5 BA[1B00] movw $.LC3, %dx 0 00005BA8 52 pushw %dx 0 00005BA9 50 pushw %ax 0 00005BAA E8[FEFF] call memcpy 0 00005BAD 57 pushw %di 0 00005BAE E8[FEFF] call FillBootSectorBPB 0 00005BB1 C6452400 movb $0, 36(%di) 0 00005BB5 C6452629 movb $41, 38(%di) 0 00005BB9 06 pushw %es 0 00005BBA E8[FEFF] call time 0 00005BBD 894527 movw %ax, 39(%di) 0 00005BC0 895529 movw %dx, 41(%di) 0 00005BC3 B80B00 movw $11, %ax 0 00005BC6 50 pushw %ax 0 00005BC7 FF36[0200] pushw conf+2 0 00005BCB 50 pushw %ax 0 00005BCC 8D452B leaw 43(%di), %ax 0 00005BCF 16 pushw %ss 0 00005BD0 50 pushw %ax 0 00005BD1 E8[FEFF] call _fmemcpy 0 00005BD4 A1[8C00] movw newf+140, %ax 0 00005BD7 83C41A addw $26, %sp 0 00005BDA 83F80C cmpw $12, %ax 0 00005BDD 8B4EF8 movw -8(%bp), %cx 0 00005BE0 7438 je .L20 0 00005BE2 83F810 cmpw $16, %ax 0 00005BE5 7438 je .L21 0 00005BE7 B8[1200] movw $.LC2, %ax 169 .L10: 0 00005BEA 8D5536 leaw 54(%di), %dx 0 00005BED 51 pushw %cx 0 00005BEE 50 pushw %ax 0 00005BEF 52 pushw %dx 0 00005BF0 E8[FEFF] call memcpy 0 00005BF3 8B5C0C movw 12(%si), %bx 0 00005BF6 83C406 addw $6, %sp 0 00005BF9 81FB9600 cmpw $150, %bx 0 00005BFD 7725 ja .L11 0 00005BFF C7453EEB movw $-277, 62(%di) 0 00005C03 FE 180 .L12: 0 00005C04 C741FE55 movw $-21931, -2(%bx,%di) 0 00005C08 AA 0 00005C09 16 pushw %ss 0 00005C0A 57 pushw %di 0 00005C0B 06 pushw %es 0 00005C0C 06 pushw %es 0 00005C0D B80100 movw $1, %ax 0 00005C10 50 pushw %ax 0 00005C11 E8[FEFF] call write_sector 0 00005C14 83C40A addw $10, %sp 0 00005C17 E9F1FE jmp .L13 191 .L20: 0 00005C1A B8[0000] movw $.LC0, %ax 0 00005C1D EBCB jmp .L10 194 .L21: 0 00005C1F B8[0900] movw $.LC1, %ax 0 00005C22 EBC6 jmp .L10 197 .L11: 0 00005C24 895EF8 movw %bx, -8(%bp) 0 00005C27 8D453E leaw 62(%di), %ax 0 00005C2A BA5900 movw $89, %dx 0 00005C2D 52 pushw %dx 0 00005C2E BA[0000] movw $bootcode, %dx 0 00005C31 52 pushw %dx 0 00005C32 50 pushw %ax 0 00005C33 E8[FEFF] call memcpy 0 00005C36 83C406 addw $6, %sp 0 00005C39 8B5EF8 movw -8(%bp), %bx 0 00005C3C EBC6 jmp .L12 209 .L17: 0 00005C3E 8B46F8 movw -8(%bp), %ax 0 00005C41 F76472 mulw 114(%si) 0 00005C44 91 xchgw %ax, %cx 0 00005C45 01D9 addw %bx, %cx 0 00005C47 894EFA movw %cx, -6(%bp) 0 00005C4A FF740C pushw 12(%si) 0 00005C4D 06 pushw %es 0 00005C4E 57 pushw %di 0 00005C4F E8[FEFF] call memset 0 00005C52 8B4414 movw 20(%si), %ax 0 00005C55 B4FF movb $255, %ah 0 00005C57 8905 movw %ax, (%di) 0 00005C59 83C406 addw $6, %sp 0 00005C5C 833E[8C00] cmpw $12, newf+140 0 00005C60 0C 0 00005C61 7438 je .L22 0 00005C63 B8FFFF movw $-1, %ax 226 .L14: 0 00005C66 894502 movw %ax, 2(%di) 0 00005C69 8C56FC movw %ss, -4(%bp) 0 00005C6C 8B46FA movw -6(%bp), %ax 0 00005C6F 40 incw %ax 0 00005C70 8946FE movw %ax, -2(%bp) 0 00005C73 16 pushw %ss 0 00005C74 57 pushw %di 0 00005C75 06 pushw %es 0 00005C76 FF76FA pushw -6(%bp) 0 00005C79 B80100 movw $1, %ax 0 00005C7C 50 pushw %ax 0 00005C7D E8[FEFF] call write_sector 0 00005C80 8C05 movw %es, (%di) 0 00005C82 8C4502 movw %es, 2(%di) 241 .L27: 0 00005C85 83C40A addw $10, %sp 0 00005C88 8B46FE movw -2(%bp), %ax 0 00005C8B 89C2 movw %ax, %dx 0 00005C8D 2B56FA subw -6(%bp), %dx 0 00005C90 3B5472 cmpw 114(%si), %dx 0 00005C93 720B jc .L16 0 00005C95 FF46F8 incw -8(%bp) 0 00005C98 E975FE jmp .L9 250 .L22: 0 00005C9B B8FF00 movw $255, %ax 0 00005C9E EBC6 jmp .L14 253 .L16: 0 00005CA0 89C2 movw %ax, %dx 0 00005CA2 42 incw %dx 0 00005CA3 8956FE movw %dx, -2(%bp) 0 00005CA6 FF76FC pushw -4(%bp) 0 00005CA9 57 pushw %di 0 00005CAA 06 pushw %es 0 00005CAB 50 pushw %ax 0 00005CAC B80100 movw $1, %ax 0 00005CAF 50 pushw %ax 0 00005CB0 E8[FEFF] call write_sector 0 00005CB3 EBD0 jmp .L27 265 .L19: 0 00005CB5 FF76F8 pushw -8(%bp) 0 00005CB8 57 pushw %di 0 00005CB9 89C2 movw %ax, %dx 0 00005CBB 8946FA movw %ax, -6(%bp) 0 00005CBE 03547C addw 124(%si), %dx 0 00005CC1 06 pushw %es 0 00005CC2 52 pushw %dx 0 00005CC3 B80100 movw $1, %ax 0 00005CC6 50 pushw %ax 0 00005CC7 E8[FEFF] call write_sector 0 00005CCA 8B46FA movw -6(%bp), %ax 0 00005CCD 40 incw %ax 0 00005CCE 83C40A addw $10, %sp 0 00005CD1 E993FE jmp .L18 280 .size makeNewDisk, .-makeNewDisk 281 .global bootcode === Switch to base unknown -> ".RODATA" 282 .section .rodata 283 .type bootcode, @object 284 .size bootcode, 89 285 bootcode: 0 000001E0 33 .byte 51 0 000001E1 C0 .byte -64 0 000001E2 8E .byte -114 0 000001E3 D8 .byte -40 0 000001E4 BE .byte -66 0 000001E5 64 .byte 100 0 000001E6 7C .byte 124 0 000001E7 FC .byte -4 0 000001E8 AC .byte -84 0 000001E9 BB .byte -69 0 000001EA 07 .byte 7 0 000001EB 00 .byte 0 0 000001EC B4 .byte -76 0 000001ED 0E .byte 14 0 000001EE CD .byte -51 0 000001EF 10 .byte 16 0 000001F0 AC .byte -84 0 000001F1 0A .byte 10 0 000001F2 C0 .byte -64 0 000001F3 75 .byte 117 0 000001F4 F4 .byte -12 0 000001F5 33 .byte 51 0 000001F6 C0 .byte -64 0 000001F7 CD .byte -51 0 000001F8 16 .byte 22 0 000001F9 B8 .byte -72 0 000001FA 0D .byte 13 0 000001FB 0E .byte 14 0 000001FC CD .byte -51 0 000001FD 10 .byte 16 0 000001FE B0 .byte -80 0 000001FF 0A .byte 10 0 00000200 CD .byte -51 0 00000201 10 .byte 16 0 00000202 CD .byte -51 0 00000203 19 .byte 25 0 00000204 EB .byte -21 0 00000205 FE .byte -2 0 00000206 0D .byte 13 0 00000207 0A .byte 10 0 00000208 4E .byte 78 0 00000209 6F .byte 111 0 0000020A 6E .byte 110 0 0000020B 2D .byte 45 0 0000020C 53 .byte 83 0 0000020D 79 .byte 121 0 0000020E 73 .byte 115 0 0000020F 74 .byte 116 0 00000210 65 .byte 101 0 00000211 6D .byte 109 0 00000212 20 .byte 32 0 00000213 64 .byte 100 0 00000214 69 .byte 105 0 00000215 73 .byte 115 0 00000216 6B .byte 107 0 00000217 2C .byte 44 0 00000218 20 .byte 32 0 00000219 72 .byte 114 0 0000021A 65 .byte 101 0 0000021B 6D .byte 109 0 0000021C 6F .byte 111 0 0000021D 76 .byte 118 0 0000021E 65 .byte 101 0 0000021F 20 .byte 32 0 00000220 6F .byte 111 0 00000221 72 .byte 114 0 00000222 20 .byte 32 0 00000223 72 .byte 114 0 00000224 65 .byte 101 0 00000225 70 .byte 112 0 00000226 6C .byte 108 0 00000227 61 .byte 97 0 00000228 63 .byte 99 0 00000229 65 .byte 101 0 0000022A 20 .byte 32 0 0000022B 61 .byte 97 0 0000022C 6E .byte 110 0 0000022D 64 .byte 100 0 0000022E 20 .byte 32 0 0000022F 70 .byte 112 0 00000230 72 .byte 114 0 00000231 65 .byte 101 0 00000232 73 .byte 115 0 00000233 73 .byte 115 0 00000234 20 .byte 32 0 00000235 6B .byte 107 0 00000236 65 .byte 101 0 00000237 79 .byte 121 0 00000238 00 .byte 0 375 .ident "GCC: (GNU) 6.3.0" === Trace listing source: asmhelp.lst 1 2 %if 0 3 4 ReSizeable RAMDisk - assembly helpers 5 Copyright (C) 1992-1996, 2005 Marko Kohtala 6 Adapted from C source texts' inline assembly by E. C. Masloch, 2025 7 Released under GNU GPL, read the file 'COPYING' for more information 8 9 %endif 10 11 %include "lmacros3.mac" 1 <1> [list -] 14 <2> [list -] 14 <1> [list -] 12 13 %define c_disk_IO 2 ;/* Offset into disk_IO in config_s */ 14 %define XMS_handle 0 ;/* Offsets into XMS_alloc structure */ 15 %define XMS_entry 2 16 %define EMS_handle 0 ;/* Offsets into EMS_alloc structure */ 17 18 bits 16 ; nasm -felf defaults to bits 32 19 20 ; ia16-gcc default calling convention: 21 ; parameters in reverse order on stack (compared to lframe's) 22 ; caller cleans the stack 23 ; CHG (call clobbered): ax, bx, cx, dx 24 ; Call preserved: si, di, bp, es 25 ; STT (special): ds = ss 26 ; OUT: al, ax, or dx:ax 27 28 %macro entry 1.nolist 29 global %1 30 %1: 31 %endmacro 32 33 34 ; extern byte far * getlistoflists(void); 35 36 entry getlistoflists === Switch to base unknown -> ".TEXT" 0 00005CE0 06 push es 0 00005CE1 B452 mov ah, 52h 0 00005CE3 CD21 int 21h 0 00005CE5 93 xchg ax, bx 0 00005CE6 8CC2 mov dx, es 0 00005CE8 07 pop es 0 00005CE9 C3 retn 44 45 46 ; extern word asm_xfer_sector 47 ; (char rw, int count, dword start, void far * buffer, void far * function); 48 49 entry asm_xfer_sector 50 lframe near 51 lpar dword, function 52 lpar dword, buffer 53 lpar dword, start 54 lpar word, count 55 lpar word, rw 0 00005CEA 5589E5 lenter 0 00005CED 06 push es 0 00005CEE 56 push si 0 00005CEF 57 push di 0 00005CF0 FF7604 push word [bp + ?rw] 0 00005CF3 FF7606 push word [bp + ?count] 0 00005CF6 FF760A push word [bp + ?start+2] 0 00005CF9 FF7608 push word [bp + ?start] 0 00005CFC FF760E push word [bp + ?buffer+2] 0 00005CFF FF760C push word [bp + ?buffer] 0 00005D02 FF5E10 call far [bp + ?function] 0 00005D05 5F times 6 pop di ; "add sp, 12" without clobering CF 68 ; bug in SRDISK v2.09 0 00005D0B 5F pop di 0 00005D0C 5E pop si 0 00005D0D 07 pop es 0 00005D0E 16 push ss 0 00005D0F 1F pop ds 0 00005D10 7303 jnc .done 0 00005D12 B8FFFF mov ax, -1 76 .done: 0 00005D15 5D lleave 0 00005D16 C3 retn 79 80 81 ; extern dword asm_freemem(void far * function); 82 83 entry asm_freemem 84 lframe near 85 lpar dword, function 0 00005D17 5589E5 lenter 0 00005D1A 06 push es 0 00005D1B 56 push si 0 00005D1C 57 push di 0 00005D1D FF5E04 call far [bp + ?function] ; dx:cx = return 0 00005D20 91 xchg ax, cx ; put it into dx:ax 0 00005D21 5F pop di 0 00005D22 5E pop si 0 00005D23 07 pop es 0 00005D24 16 push ss 0 00005D25 1F pop ds 0 00005D26 5D lleave 0 00005D27 C3 retn 99 100 101 ; extern word asm_query_drive(byte drive); 102 103 entry asm_query_drive 104 lframe near 105 lpar word, drive 0 00005D28 5589E5 lenter 0 00005D2B B80944 mov ax,0x4409 0 00005D2E 8A5E04 mov bl,byte [bp + ?drive] 0 00005D31 80EB40 sub bl,'A'-1 0 00005D34 7219 jc .no_fix ;/* Bad drive letter */ 0 00005D36 CD21 int 0x21 0 00005D38 7215 jc .no_fix ;/* Failed access drive */ 0 00005D3A F6C680 test dh,0x80 0 00005D3D 7510 jnz .no_fix ;/* SUBSTed drive */ 0 00005D3F 8A5604 mov dl, [bp + ?drive] 0 00005D42 80EA40 sub dl,'A'-1 0 00005D45 B41C mov ah,0x1C ;/* Get Drive Data */ 0 00005D47 CD21 int 0x21 0 00005D49 16 push ss 0 00005D4A 1F pop ds 0 00005D4B B80100 mov ax, 1 ; return true 0 00005D4E A9 db __TEST_IMM16 ; skip xor 123 .no_fix: 0 00005D4F 31C0 xor ax, ax ; return false 0 00005D51 5D lleave 0 00005D52 C3 retn 127 128 129 ; extern byte free_ems_handle(word handle); 130 131 entry free_ems_handle 132 lframe near 133 lpar word, handle 0 00005D53 5589E5 lenter 0 00005D56 8B5604 mov dx, [bp + ?handle] 0 00005D59 B445 mov ah,0x45 ;/* Free expanded memory block */ 0 00005D5B CD67 int 0x67 0 00005D5D 88E0 mov al, ah 0 00005D5F 5D lleave 0 00005D60 C3 retn 141 142 143 ; extern byte alloc_ems_handle(void far * allocs, word pages); 144 145 entry alloc_ems_handle 146 lframe near 147 lpar word, pages 148 lpar dword, allocs 0 00005D61 5589E5 lenter 0 00005D64 8B5E08 mov bx, word [bp + ?pages] 0 00005D67 B443 mov ah,0x43 ;/* Allocate */ 0 00005D69 CD67 int 0x67 0 00005D6B 88E0 mov al, ah 0 00005D6D 84C0 test al, al 0 00005D6F 7507 jnz .fail 0 00005D71 C55E04 lds bx, [bp + ?allocs] 0 00005D74 8917 mov word [bx + EMS_handle], dx 0 00005D76 16 push ss 0 00005D77 1F pop ds 160 .fail: 0 00005D78 5D lleave 0 00005D79 C3 retn 163 164 165 ; extern word realloc_ems_handle(void far * allocs, word * pages); 166 167 entry realloc_ems_handle 168 lframe near 169 lpar word, indirectpages 170 lpar dword, allocs 0 00005D7A 5589E5 lenter 0 00005D7D 8B5E08 mov bx, [bp + ?indirectpages] 0 00005D80 FF37 push word [bx] 0 00005D82 C55E04 lds bx, [bp + ?allocs] 0 00005D85 8B17 mov dx, [bx + EMS_handle] 0 00005D87 5B pop bx 0 00005D88 16 push ss 0 00005D89 1F pop ds 0 00005D8A B451 mov ah,0x51 ;/* Reallocate */ 0 00005D8C CD67 int 0x67 0 00005D8E 88E0 mov al, ah 182 %if 0 ; bug in SRDISK v2.09 183 mov ah, bl ; error code if al != 0 184 %endif 0 00005D90 84C0 test al, al 0 00005D92 7506 jnz .error ; bug? in SRDISK v2.09 0 00005D94 53 push bx 0 00005D95 8B5E08 mov bx, word [bp + ?indirectpages] 0 00005D98 8F07 pop word [bx] 190 .error: 0 00005D9A 5D lleave 0 00005D9B C3 retn 193 194 195 ; extern byte copy_ems(void far * pmb); 196 197 entry copy_ems 198 lframe near 199 lpar dword, pmb 0 00005D9C 5589E5 lenter 0 00005D9F B80057 mov ax,0x5700 0 00005DA2 1E push ds 0 00005DA3 56 push si 0 00005DA4 C57604 lds si, [bp + ?pmb] 0 00005DA7 CD67 int 0x67 0 00005DA9 5E pop si 0 00005DAA 1F pop ds 0 00005DAB 88E0 mov al, ah 0 00005DAD 5D lleave 0 00005DAE C3 retn 211 212 213 ; extern dword ems_available(void); 214 215 entry ems_available 0 00005DAF B442 mov ah,0x42 0 00005DB1 CD67 int 0x67 0 00005DB3 B81000 mov ax,16 0 00005DB6 F7E3 mul bx ; dx:ax = amount KiB available 0 00005DB8 C3 retn 221 222 223 ; extern byte check_windows(void); 224 225 entry check_windows 0 00005DB9 B80016 mov ax,0x1600 0 00005DBC CD2F int 0x2f 0 00005DBE 247F and al,0x7f 0 00005DC0 7402 jz .not 0 00005DC2 B001 mov al, 1 231 .not: 0 00005DC4 C3 retn 233 234 235 ; extern byte check_xms_3(void far * allocs); 236 237 entry check_xms_3 238 lframe near 239 lpar dword, allocs 0 00005DC5 5589E5 lenter 0 00005DC8 B400 mov ah,0 ;/* GET VERSION */ 0 00005DCA C55E04 lds bx, [bp + ?allocs] 0 00005DCD FF5F02 call far [bx + XMS_entry] 0 00005DD0 16 push ss 0 00005DD1 1F pop ds 0 00005DD2 3D0003 cmp ax,0x300 0 00005DD5 7242 jb .noSuperXMS 248 249 ;/* From CPUID by Intel. Some HIMEM.SYS v3.0 functionality crash with 286. 250 ; 251 ; This procedure determines the type of CPU in a system 252 ; and sets the cpu_type variable with the appropriate 253 ; value. 254 ; All registers are used by this procedure, none are preserved. 255 ; 256 ; Intel 8086 CPU check 257 ; Bits 12-15 of the FLAGS register are always set on the 258 ; 8086 processor. 259 ;*/ 0 00005DD7 9C pushf 0 00005DD8 9C pushf ;/* push original FLAGS */ 0 00005DD9 58 pop ax ;/* get original FLAGS */ 0 00005DDA 89C1 mov cx, ax ;/* save original FLAGS */ 0 00005DDC 25FF0F and ax, 0xfff ;/* clear bits 12-15 in FLAGS */ 0 00005DDF 50 push ax ;/* save new FLAGS value on stack */ 0 00005DE0 9D popf ;/* replace current FLAGS value */ 0 00005DE1 9C pushf ;/* get new FLAGS */ 0 00005DE2 58 pop ax ;/* store new FLAGS in AX */ 0 00005DE3 9D popf 0 00005DE4 2500F0 and ax, 0xf000 ;/* if bits 12-15 are set, then CPU */ 0 00005DE7 3D00F0 cmp ax, 0xf000 ;/* is an 8086/8088 */ 0 00005DEA 742D je .noSuperXMS ;/* jump if CPU is 8086/8088 */ 273 274 ;/* Intel 286 CPU check */ 275 ;/* Bits 12-15 of the FLAGS register are always clear on the */ 276 ;/* Intel 286 processor in real-address mode. */ 277 0 00005DEC 9C pushf 0 00005DED 81C900F0 or cx, 0xf000 ;/* try to set bits 12-15 */ 0 00005DF1 51 push cx ;/* save new FLAGS value on stack */ 0 00005DF2 9D popf ;/* replace current FLAGS value */ 0 00005DF3 9C pushf ;/* get new FLAGS */ 0 00005DF4 58 pop ax ;/* store new FLAGS in AX */ 0 00005DF5 9D popf 0 00005DF6 2500F0 and ax, 0xf000 ;/* if bits 12-15 clear, CPU=80286 */ 0 00005DF9 741E jz .noSuperXMS ;/* if no bits set, CPU is 80286 */ 287 288 subcpu 386 289 290 ;/* Query free extended to see if SuperXMS really supported */ 0 00005DFB B488 mov ah,0x88 ;/* QUERY FREE (32-bit) */ 0 00005DFD C55E04 lds bx, [bp + ?allocs] 0 00005E00 6650 push eax 0 00005E02 6651 push ecx 0 00005E04 6652 push edx 0 00005E06 FF5F02 call far [bx + XMS_entry] 0 00005E09 665A pop edx 0 00005E0B 6659 pop ecx 0 00005E0D 6658 pop eax 0 00005E0F 80FB80 cmp bl,0x80 ;/* Not Implemented - not a 32-bit system */ 0 00005E12 16 push ss 0 00005E13 1F pop ds 0 00005E14 7403 je .noSuperXMS 304 305 subcpureset 0 00005E16 B001 mov al, 1 0 00005E18 A9 db __TEST_IMM16 ; skip mov 308 .noSuperXMS: 0 00005E19 B000 mov al, 0 0 00005E1B 5D lleave 0 00005E1C C3 retn 312 313 314 ; extern byte get_xms_handle_size(void far * allocs, dword * size, byte hasxms3); 315 316 entry get_xms_handle_size 317 lframe near 318 lpar word, hasxms3 319 lpar word, indirectsize 320 lpar dword, allocs 0 00005E1D 5589E5 lenter 0 00005E20 C55E04 lds bx, [bp + ?allocs] 0 00005E23 8B17 mov dx, [bx + XMS_handle] 0 00005E25 807E0A00 cmp byte [bp + ?hasxms3], 0 0 00005E29 7712 ja .xms3 ; this condition was inverted in SRDISK v2.09 326 .xms2: 0 00005E2B B40E mov ah,0xE ;/* Get handle information */ 0 00005E2D FF5F02 call far [bx + XMS_entry] 0 00005E30 16 push ss 0 00005E31 1F pop ds 0 00005E32 85C0 test ax, ax 0 00005E34 7422 jz .fail 0 00005E36 8B5E08 mov bx, word [bp + ?indirectsize] 0 00005E39 8917 mov word [bx], dx 0 00005E3B EB15 jmp .done 336 337 .xms3: 338 subcpu 386 0 00005E3D 6652 push edx 0 00005E3F B48E mov ah,0x8E ;/* Get 32bit handle information */ 0 00005E41 FF5F02 call far [bx + XMS_entry] 0 00005E44 16 push ss 0 00005E45 1F pop ds 0 00005E46 85C0 test ax, ax 0 00005E48 740C jz .fail_edx 0 00005E4A 8B5E08 mov bx, word [bp + ?indirectsize] 0 00005E4D 668917 mov dword [bx], edx 0 00005E50 665A pop edx 349 .done: 0 00005E52 B0FF mov al, -1 0 00005E54 EB04 jmp .ret 352 353 .fail_edx: 0 00005E56 665A pop edx 355 subcpureset 356 357 .fail: 0 00005E58 B000 mov al, 0 359 .ret: 0 00005E5A 5D lleave 0 00005E5B C3 retn 362 363 364 ; extern word free_xms_handle(void far * allocs, word handle); 365 366 entry free_xms_handle 367 lframe near 368 lpar word, handle 369 lpar dword, allocs 0 00005E5C 5589E5 lenter 0 00005E5F C55E04 lds bx, [bp + ?allocs] 0 00005E62 8B5608 mov dx, [bp + ?handle] 0 00005E65 B40A mov ah,0xA ;/* Free extended memory block */ 0 00005E67 FF5F02 call far [bx + XMS_entry] 0 00005E6A 16 push ss 0 00005E6B 1F pop ds 0 00005E6C 85C0 test ax, ax 0 00005E6E B0FF mov al, -1 0 00005E70 88DC mov ah, bl 0 00005E72 7402 jz .fail 0 00005E74 31C0 xor ax, ax 382 .fail: 0 00005E76 5D lleave 0 00005E77 C3 retn 385 386 387 ; extern word alloc_xms3_handle(void far * allocs, dword size); 388 389 entry alloc_xms3_handle 390 lframe near 391 lpar dword, size 392 lpar dword, allocs 0 00005E78 5589E5 lenter 394 subcpu 386 0 00005E7B 6652 push edx 0 00005E7D 5A pop dx 0 00005E7E B489 mov ah,0x89 ;/* Allocate 32-bit */ 0 00005E80 668B5608 mov edx, [bp + ?size] 0 00005E84 C55E04 lds bx, [bp + ?allocs] 0 00005E87 FF5F02 call far [bx + XMS_entry] 0 00005E8A 52 push dx 0 00005E8B 665A pop edx 0 00005E8D 85C0 test ax, ax 0 00005E8F B0FF mov al, -1 0 00005E91 88DC mov ah, bl 0 00005E93 7404 jz .ret 0 00005E95 8917 mov [bx + XMS_handle], dx 0 00005E97 31C0 xor ax, ax 409 .ret: 0 00005E99 16 push ss 0 00005E9A 1F pop ds 412 subcpureset 0 00005E9B 5D lleave 0 00005E9C C3 retn 415 416 417 ; extern word alloc_xms2_handle(void far * allocs, dword size); 418 419 entry alloc_xms2_handle 420 lframe near 421 lpar dword, size 422 lpar dword, allocs 0 00005E9D 5589E5 lenter 424 0 00005EA0 B409 mov ah,0x9 ;/* Allocate */ 0 00005EA2 8B5608 mov dx, [bp + ?size] 0 00005EA5 C55E04 lds bx, [bp + ?allocs] 0 00005EA8 FF5F02 call far [bx + XMS_entry] 0 00005EAB 85C0 test ax, ax 0 00005EAD B0FF mov al, -1 0 00005EAF 88DC mov ah, bl 0 00005EB1 7404 jz .ret 0 00005EB3 8917 mov [bx + XMS_handle], dx 0 00005EB5 31C0 xor ax, ax 435 .ret: 0 00005EB7 16 push ss 0 00005EB8 1F pop ds 438 0 00005EB9 5D lleave 0 00005EBA C3 retn 441 442 443 ; extern word realloc_xms3_handle(void far * allocs, dword size); 444 445 entry realloc_xms3_handle 446 lframe near 447 lpar dword, size 448 lpar dword, allocs 0 00005EBB 5589E5 lenter 450 subcpu 386 0 00005EBE 56 push si 0 00005EBF 6653 push ebx 0 00005EC1 5B pop bx 0 00005EC2 B48F mov ah,0x8F ;/* Reallocate 32-bit */ 0 00005EC4 668B5E08 mov ebx, [bp + ?size] 0 00005EC8 C57604 lds si, [bp + ?allocs] 0 00005ECB 8B14 mov dx, [si + XMS_handle] 0 00005ECD FF5C02 call far [si + XMS_entry] 0 00005ED0 53 push bx 0 00005ED1 665B pop ebx 0 00005ED3 5E pop si 0 00005ED4 85C0 test ax, ax 0 00005ED6 B0FF mov al, -1 0 00005ED8 88DC mov ah, bl 0 00005EDA 7402 jz .ret 0 00005EDC 31C0 xor ax, ax 467 .ret: 0 00005EDE 16 push ss 0 00005EDF 1F pop ds 470 subcpureset 0 00005EE0 5D lleave 0 00005EE1 C3 retn 473 474 475 ; extern word realloc_xms2_handle(void far * allocs, dword size); 476 477 entry realloc_xms2_handle 478 lframe near 479 lpar dword, size 480 lpar dword, allocs 0 00005EE2 5589E5 lenter 0 00005EE5 56 push si 0 00005EE6 B40F mov ah,0xF ;/* Reallocate */ 0 00005EE8 8B5E08 mov bx, [bp + ?size] 0 00005EEB C57604 lds si, [bp + ?allocs] 0 00005EEE 8B14 mov dx, [si + XMS_handle] 0 00005EF0 FF5C02 call far [si + XMS_entry] 0 00005EF3 5E pop si 0 00005EF4 85C0 test ax, ax 0 00005EF6 B0FF mov al, -1 0 00005EF8 88DC mov ah, bl 0 00005EFA 7402 jz .fail 0 00005EFC 31C0 xor ax, ax 494 .fail: 0 00005EFE 16 push ss 0 00005EFF 1F pop ds 0 00005F00 5D lleave 0 00005F01 C3 retn 499 500 501 ; extern word copy_xms(void far * allocs, void far * pmb); 502 503 entry copy_xms 504 lframe near 505 lpar dword, pmb 506 lpar dword, allocs 0 00005F02 5589E5 lenter 0 00005F05 B40B mov ah,0xB 0 00005F07 56 push si 0 00005F08 06 push es 0 00005F09 57 push di 0 00005F0A C57608 lds si, [bp + ?pmb] 0 00005F0D C47E04 les di, [bp + ?allocs] 0 00005F10 26FF5D02 call far [es:di + XMS_entry] 0 00005F14 5F pop di 0 00005F15 07 pop es 0 00005F16 5E pop si 0 00005F17 85C0 test ax, ax 0 00005F19 B0FF mov al, -1 0 00005F1B 88DC mov ah, bl 0 00005F1D 7402 jz .fail 0 00005F1F 31C0 xor ax, ax 523 .fail: 0 00005F21 16 push ss 0 00005F22 1F pop ds 0 00005F23 5D lleave 0 00005F24 C3 retn 528 529 530 ; extern byte get_xms3_available(void far * allocs, dword * size); 531 532 entry get_xms3_available 533 lframe near 534 lpar word, indirectsize 535 lpar dword, allocs 0 00005F25 5589E5 lenter 0 00005F28 C55E04 lds bx, [bp + ?allocs] 538 subcpu 386 0 00005F2B 6650 push eax 0 00005F2D 6651 push ecx 0 00005F2F 6652 push edx 0 00005F31 B488 mov ah,0x88 0 00005F33 FF5F02 call far [bx + XMS_entry] 0 00005F36 16 push ss 0 00005F37 1F pop ds 0 00005F38 84DB test bl, bl 0 00005F3A 7403 jz .ok 0 00005F3C 6631C0 xor eax, eax 549 .ok: 0 00005F3F 8B5E08 mov bx, word [bp + ?indirectsize] 0 00005F42 668907 mov dword [bx], eax 0 00005F45 665A pop edx 0 00005F47 6659 pop ecx 0 00005F49 6658 pop eax 555 subcpureset 0 00005F4B 5D lleave 0 00005F4C C3 retn 558 559 560 ; extern byte get_xms2_available(void far * allocs, dword * size); 561 ; INP: *size is pre-initialised to zero 562 563 entry get_xms2_available 564 lframe near 565 lpar word, indirectsize 566 lpar dword, allocs 0 00005F4D 5589E5 lenter 0 00005F50 C55E04 lds bx, [bp + ?allocs] 0 00005F53 B408 mov ah,8 0 00005F55 FF5F02 call far [bx + XMS_entry] 0 00005F58 16 push ss 0 00005F59 1F pop ds 0 00005F5A 84DB test bl, bl 0 00005F5C 7402 jz .ok 0 00005F5E 31C0 xor ax, ax 576 .ok: 0 00005F60 8B5E08 mov bx, word [bp + ?indirectsize] 0 00005F63 8907 mov word [bx], ax 0 00005F65 5D lleave 0 00005F66 C3 retn 581 582 583 ; extern dword asm_call_alloc(void far * function, dword size); 584 585 entry asm_call_alloc 586 lframe near 587 lpar dword, size 588 lpar dword, function 0 00005F67 5589E5 lenter 0 00005F6A 06 push es 0 00005F6B 57 push di 0 00005F6C 56 push si 0 00005F6D FF760A push word [bp + ?size + 2] 0 00005F70 FF7608 push word [bp + ?size] 0 00005F73 FF5E04 call far [bp + ?function] 0 00005F76 5E pop si 0 00005F77 5F pop di 0 00005F78 07 pop es 0 00005F79 16 push ss 0 00005F7A 1F pop ds 0 00005F7B 5D lleave 0 00005F7C C3 retn