|
|
1.1 ! root 1: .file "hostcall.c" ! 2: .text ! 3: .p2align 4,,15 ! 4: .globl time2dos ! 5: .type time2dos, @function ! 6: time2dos: ! 7: pushl %ebp ! 8: movl %esp, %ebp ! 9: leal 8(%ebp), %eax ! 10: subl $8, %esp ! 11: movl %eax, (%esp) ! 12: call localtime ! 13: movl %eax, %ecx ! 14: movl 4(%ecx), %edx ! 15: movl (%eax), %eax ! 16: sall $5, %edx ! 17: sarl %eax ! 18: orl %edx, %eax ! 19: movl 8(%ecx), %edx ! 20: movl %ebp, %esp ! 21: popl %ebp ! 22: sall $11, %edx ! 23: orl %edx, %eax ! 24: movzwl %ax, %eax ! 25: ret ! 26: .size time2dos, .-time2dos ! 27: .p2align 4,,15 ! 28: .globl date2dos ! 29: .type date2dos, @function ! 30: date2dos: ! 31: pushl %ebp ! 32: movl %esp, %ebp ! 33: leal 8(%ebp), %eax ! 34: subl $8, %esp ! 35: movl %eax, (%esp) ! 36: call localtime ! 37: movl %eax, %ecx ! 38: movl 16(%eax), %eax ! 39: movzwl 12(%ecx), %edx ! 40: movl 20(%ecx), %ecx ! 41: incl %eax ! 42: sall $5, %eax ! 43: movl %ebp, %esp ! 44: subl $80, %ecx ! 45: popl %ebp ! 46: orl %edx, %eax ! 47: movl %ecx, %edx ! 48: shrl $31, %edx ! 49: decl %edx ! 50: andl %edx, %ecx ! 51: sall $9, %ecx ! 52: orl %ecx, %eax ! 53: movzwl %ax, %eax ! 54: ret ! 55: .size date2dos, .-date2dos ! 56: .p2align 4,,15 ! 57: .globl GetFileInformation ! 58: .type GetFileInformation, @function ! 59: GetFileInformation: ! 60: pushl %ebp ! 61: movl %esp, %ebp ! 62: leal -104(%ebp), %eax ! 63: subl $120, %esp ! 64: movl %eax, 8(%esp) ! 65: movl 8(%ebp), %eax ! 66: movl %esi, -4(%ebp) ! 67: movl 12(%ebp), %esi ! 68: movl %ebx, -8(%ebp) ! 69: movl %eax, 4(%esp) ! 70: movl $3, (%esp) ! 71: call __xstat ! 72: xorl %edx, %edx ! 73: testl %eax, %eax ! 74: je .L8 ! 75: .L4: ! 76: movl -8(%ebp), %ebx ! 77: movl %edx, %eax ! 78: movl -4(%ebp), %esi ! 79: movl %ebp, %esp ! 80: popl %ebp ! 81: ret ! 82: .p2align 4,,7 ! 83: .L8: ! 84: leal -40(%ebp), %eax ! 85: movl %eax, (%esp) ! 86: call localtime ! 87: movzwl 12(%eax), %ebx ! 88: movl 16(%eax), %edx ! 89: movl 20(%eax), %ecx ! 90: andl $15, %edx ! 91: andl $31, %ebx ! 92: sall $5, %edx ! 93: subl $80, %ecx ! 94: orl %edx, %ebx ! 95: movl %ecx, %edx ! 96: shrl $31, %edx ! 97: decl %edx ! 98: andl %edx, %ecx ! 99: andl $127, %ecx ! 100: movl 4(%eax), %edx ! 101: sall $9, %ecx ! 102: orl %ecx, %ebx ! 103: andl $63, %edx ! 104: sall $5, %edx ! 105: movzwl (%eax), %ecx ! 106: movl 8(%eax), %eax ! 107: movw %bx, (%esi) ! 108: andl $31, %ecx ! 109: andl $31, %eax ! 110: orl %edx, %ecx ! 111: sall $11, %eax ! 112: orl %eax, %ecx ! 113: movw %cx, 2(%esi) ! 114: movl $1, %edx ! 115: jmp .L4 ! 116: .size GetFileInformation, .-GetFileInformation ! 117: .section .rodata.str1.1,"aMS",@progbits,1 ! 118: .LC0: ! 119: .string "%s/%s" ! 120: .text ! 121: .p2align 4,,15 ! 122: .globl PopulateDTA ! 123: .type PopulateDTA, @function ! 124: PopulateDTA: ! 125: pushl %ebp ! 126: movl %esp, %ebp ! 127: subl $376, %esp ! 128: movl %esi, -4(%ebp) ! 129: movl 8(%ebp), %eax ! 130: movl 12(%ebp), %esi ! 131: movl %ebx, -8(%ebp) ! 132: movl $.LC0, %ebx ! 133: addl $11, %esi ! 134: movl %ebx, 4(%esp) ! 135: leal -264(%ebp), %ebx ! 136: movl %esi, 12(%esp) ! 137: movl %eax, 8(%esp) ! 138: movl %ebx, (%esp) ! 139: call sprintf ! 140: movl %ebx, 4(%esp) ! 141: leal -360(%ebp), %eax ! 142: movl %eax, 8(%esp) ! 143: movl $3, (%esp) ! 144: call __xstat ! 145: xorl %edx, %edx ! 146: testl %eax, %eax ! 147: jne .L9 ! 148: movl pDTA, %ecx ! 149: testl %ecx, %ecx ! 150: jne .L16 ! 151: .L9: ! 152: movl -8(%ebp), %ebx ! 153: movl %edx, %eax ! 154: movl -4(%ebp), %esi ! 155: movl %ebp, %esp ! 156: popl %ebp ! 157: ret ! 158: .p2align 4,,7 ! 159: .L16: ! 160: movl %esi, (%esp) ! 161: call Misc_strupr ! 162: movl %esi, 4(%esp) ! 163: movl $14, %eax ! 164: movl %eax, 8(%esp) ! 165: movl pDTA, %eax ! 166: addl $30, %eax ! 167: movl %eax, (%esp) ! 168: call strncpy ! 169: movl pDTA, %ebx ! 170: movl -316(%ebp), %eax ! 171: #APP ! 172: bswap %eax ! 173: ! 174: #NO_APP ! 175: movl %eax, 26(%ebx) ! 176: movl -296(%ebp), %eax ! 177: movl %eax, (%esp) ! 178: call time2dos ! 179: movzwl %ax, %eax ! 180: #APP ! 181: xchgb %al,%ah ! 182: #NO_APP ! 183: movw %ax, 22(%ebx) ! 184: movl -296(%ebp), %eax ! 185: movl pDTA, %ebx ! 186: movl %eax, (%esp) ! 187: call date2dos ! 188: movzwl %ax, %eax ! 189: #APP ! 190: xchgb %al,%ah ! 191: #NO_APP ! 192: movw %ax, 24(%ebx) ! 193: movl -344(%ebp), %eax ! 194: movl pDTA, %ebx ! 195: movl %eax, (%esp) ! 196: call GemDOS_ConvertAttribute ! 197: movb %al, 21(%ebx) ! 198: movl $1, %edx ! 199: jmp .L9 ! 200: .size PopulateDTA, .-PopulateDTA ! 201: .p2align 4,,15 ! 202: .globl ClearInternalDTA ! 203: .type ClearInternalDTA, @function ! 204: ClearInternalDTA: ! 205: pushl %ebp ! 206: movl %esp, %ebp ! 207: pushl %ebx ! 208: subl $4, %esp ! 209: movl DTAIndex, %edx ! 210: movl %edx, %eax ! 211: movl %edx, %ecx ! 212: sall $4, %eax ! 213: addl %edx, %eax ! 214: sall $4, %eax ! 215: movl InternalDTAs+12(%eax), %ebx ! 216: testl %ebx, %ebx ! 217: je .L18 ! 218: xorl %ebx, %ebx ! 219: cmpl InternalDTAs+4(%eax), %ebx ! 220: jl .L23 ! 221: .L25: ! 222: movl %edx, %eax ! 223: sall $4, %eax ! 224: addl %edx, %eax ! 225: sall $4, %eax ! 226: movl InternalDTAs+12(%eax), %eax ! 227: movl %eax, (%esp) ! 228: call free ! 229: movl DTAIndex, %edx ! 230: .L18: ! 231: movl %edx, %eax ! 232: sall $4, %eax ! 233: addl %edx, %eax ! 234: sall $4, %eax ! 235: xorl %edx, %edx ! 236: movl %edx, InternalDTAs(%eax) ! 237: popl %eax ! 238: popl %ebx ! 239: popl %ebp ! 240: ret ! 241: .p2align 4,,7 ! 242: .L23: ! 243: movl %ecx, %eax ! 244: sall $4, %eax ! 245: addl %ecx, %eax ! 246: sall $4, %eax ! 247: movl InternalDTAs+12(%eax), %eax ! 248: movl (%eax,%ebx,4), %eax ! 249: incl %ebx ! 250: movl %eax, (%esp) ! 251: call free ! 252: movl DTAIndex, %edx ! 253: movl %edx, %eax ! 254: movl %edx, %ecx ! 255: sall $4, %eax ! 256: addl %edx, %eax ! 257: sall $4, %eax ! 258: cmpl InternalDTAs+4(%eax), %ebx ! 259: jl .L23 ! 260: jmp .L25 ! 261: .size ClearInternalDTA, .-ClearInternalDTA ! 262: .p2align 4,,15 ! 263: .type match, @function ! 264: match: ! 265: pushl %ebp ! 266: movl %esp, %ebp ! 267: leal -280(%ebp), %eax ! 268: pushl %edi ! 269: leal -536(%ebp), %edi ! 270: pushl %esi ! 271: pushl %ebx ! 272: subl $540, %esp ! 273: movl 12(%ebp), %esi ! 274: movl %eax, (%esp) ! 275: movl 8(%ebp), %ebx ! 276: movl %ebx, 4(%esp) ! 277: call strcpy ! 278: movl %esi, 4(%esp) ! 279: movl %edi, (%esp) ! 280: call strcpy ! 281: leal -280(%ebp), %eax ! 282: movl %eax, (%esp) ! 283: call Misc_strupr ! 284: movl %edi, (%esp) ! 285: call Misc_strupr ! 286: cmpb $46, (%esi) ! 287: je .L34 ! 288: cmpb $42, (%ebx) ! 289: jne .L28 ! 290: cmpb $46, 1(%ebx) ! 291: jne .L28 ! 292: cmpb $42, 2(%ebx) ! 293: jne .L28 ! 294: cmpb $0, 3(%ebx) ! 295: je .L59 ! 296: .p2align 4,,15 ! 297: .L28: ! 298: movl %esi, 4(%esp) ! 299: movl $1, %esi ! 300: movl %ebx, (%esp) ! 301: call strcasecmp ! 302: testl %eax, %eax ! 303: je .L26 ! 304: movzbl -536(%ebp), %eax ! 305: leal -280(%ebp), %ebx ! 306: movl %edi, %ecx ! 307: testb %al, %al ! 308: je .L54 ! 309: .p2align 4,,15 ! 310: .L51: ! 311: movzbl (%ebx), %edx ! 312: cmpb $42, %dl ! 313: je .L60 ! 314: cmpb $63, %dl ! 315: je .L61 ! 316: .L48: ! 317: incl %ecx ! 318: incl %ebx ! 319: xorl %esi, %esi ! 320: cmpb %al, %dl ! 321: jne .L26 ! 322: .L58: ! 323: movzbl (%ecx), %eax ! 324: .L37: ! 325: testb %al, %al ! 326: jne .L51 ! 327: .L54: ! 328: cmpb $0, (%ebx) ! 329: jne .L34 ! 330: .L59: ! 331: movl $1, %esi ! 332: .p2align 4,,15 ! 333: .L26: ! 334: addl $540, %esp ! 335: movl %esi, %eax ! 336: popl %ebx ! 337: popl %esi ! 338: popl %edi ! 339: popl %ebp ! 340: ret ! 341: .p2align 4,,7 ! 342: .L34: ! 343: xorl %esi, %esi ! 344: jmp .L26 ! 345: .p2align 4,,7 ! 346: .L61: ! 347: testb %al, %al ! 348: je .L48 ! 349: incl %ecx ! 350: incl %ebx ! 351: jmp .L58 ! 352: .p2align 4,,7 ! 353: .L60: ! 354: testb %al, %al ! 355: je .L43 ! 356: cmpb $46, %al ! 357: je .L43 ! 358: .p2align 4,,15 ! 359: .L46: ! 360: incl %ecx ! 361: movzbl (%ecx), %eax ! 362: testb %al, %al ! 363: je .L43 ! 364: cmpb $46, %al ! 365: jne .L46 ! 366: .L43: ! 367: incl %ebx ! 368: jmp .L37 ! 369: .size match, .-match ! 370: .p2align 4,,15 ! 371: .globl fsfirst_dirname ! 372: .type fsfirst_dirname, @function ! 373: fsfirst_dirname: ! 374: pushl %ebp ! 375: movl %esp, %ebp ! 376: pushl %edi ! 377: pushl %esi ! 378: pushl %ebx ! 379: subl $12, %esp ! 380: xorl %ebx, %ebx ! 381: movl 12(%ebp), %esi ! 382: movl 8(%ebp), %edi ! 383: movl %esi, (%esp) ! 384: movl %edi, 4(%esp) ! 385: call sprintf ! 386: movzbl (%esi), %eax ! 387: testb %al, %al ! 388: je .L77 ! 389: .p2align 4,,15 ! 390: .L67: ! 391: cmpb $92, %al ! 392: je .L82 ! 393: .L66: ! 394: incl %ebx ! 395: movzbl (%ebx,%esi), %eax ! 396: testb %al, %al ! 397: jne .L67 ! 398: .L77: ! 399: movzbl (%ebx,%edi), %eax ! 400: testb %al, %al ! 401: je .L79 ! 402: .p2align 4,,15 ! 403: .L71: ! 404: movb %al, (%ebx,%esi) ! 405: incl %ebx ! 406: movzbl (%ebx,%edi), %eax ! 407: testb %al, %al ! 408: jne .L71 ! 409: .L79: ! 410: cmpb $47, (%ebx,%esi) ! 411: je .L81 ! 412: .p2align 4,,15 ! 413: .L75: ! 414: decl %ebx ! 415: cmpb $47, (%ebx,%esi) ! 416: jne .L75 ! 417: .L81: ! 418: movb $0, (%ebx,%esi) ! 419: addl $12, %esp ! 420: popl %ebx ! 421: popl %esi ! 422: popl %edi ! 423: popl %ebp ! 424: ret ! 425: .p2align 4,,7 ! 426: .L82: ! 427: movb $47, (%ebx,%esi) ! 428: jmp .L66 ! 429: .size fsfirst_dirname, .-fsfirst_dirname ! 430: .p2align 4,,15 ! 431: .globl fsfirst_dirmask ! 432: .type fsfirst_dirmask, @function ! 433: fsfirst_dirmask: ! 434: pushl %ebp ! 435: xorl %edx, %edx ! 436: movl %esp, %ebp ! 437: pushl %esi ! 438: movl 8(%ebp), %ecx ! 439: movl 12(%ebp), %esi ! 440: pushl %ebx ! 441: xorl %ebx, %ebx ! 442: cmpb $0, (%ecx) ! 443: je .L102 ! 444: .p2align 4,,15 ! 445: .L87: ! 446: incl %edx ! 447: movzbl (%edx,%ecx), %eax ! 448: testb %al, %al ! 449: jne .L87 ! 450: .L97: ! 451: cmpb $47, %al ! 452: je .L99 ! 453: .p2align 4,,15 ! 454: .L91: ! 455: decl %edx ! 456: cmpb $47, (%edx,%ecx) ! 457: jne .L91 ! 458: .L99: ! 459: incl %edx ! 460: cmpb $0, (%edx,%ecx) ! 461: je .L101 ! 462: .p2align 4,,15 ! 463: .L95: ! 464: movl %edx, %eax ! 465: incl %edx ! 466: movzbl (%eax,%ecx), %eax ! 467: movb %al, (%ebx,%esi) ! 468: incl %ebx ! 469: cmpb $0, (%edx,%ecx) ! 470: jne .L95 ! 471: .L101: ! 472: movb $0, (%ebx,%esi) ! 473: popl %ebx ! 474: popl %esi ! 475: popl %ebp ! 476: ret ! 477: .L102: ! 478: movzbl (%ecx), %eax ! 479: jmp .L97 ! 480: .size fsfirst_dirmask, .-fsfirst_dirmask ! 481: .p2align 4,,15 ! 482: .globl GemDOS_Init ! 483: .type GemDOS_Init, @function ! 484: GemDOS_Init: ! 485: pushl %ebp ! 486: movl $8448, %eax ! 487: movl %esp, %ebp ! 488: subl $8, %esp ! 489: movl %eax, 4(%esp) ! 490: movl $FileHandles, (%esp) ! 491: call Memory_Clear ! 492: xorl %eax, %eax ! 493: movl $255, %edx ! 494: .p2align 4,,15 ! 495: .L108: ! 496: xorl %ecx, %ecx ! 497: movl %ecx, InternalDTAs(%eax) ! 498: xorl %ecx, %ecx ! 499: movl %ecx, InternalDTAs+4(%eax) ! 500: xorl %ecx, %ecx ! 501: movl %ecx, InternalDTAs+12(%eax) ! 502: addl $272, %eax ! 503: decl %edx ! 504: jns .L108 ! 505: xorl %eax, %eax ! 506: movl %eax, DTAIndex ! 507: leave ! 508: ret ! 509: .size GemDOS_Init, .-GemDOS_Init ! 510: .p2align 4,,15 ! 511: .globl GemDOS_Reset ! 512: .type GemDOS_Reset, @function ! 513: GemDOS_Reset: ! 514: pushl %ebp ! 515: movl %esp, %ebp ! 516: pushl %esi ! 517: xorl %esi, %esi ! 518: pushl %ebx ! 519: subl $16, %esp ! 520: movl $31, %ebx ! 521: .p2align 4,,15 ! 522: .L117: ! 523: movl FileHandles(%esi), %eax ! 524: testl %eax, %eax ! 525: jne .L127 ! 526: .L116: ! 527: xorl %eax, %eax ! 528: movl %eax, FileHandles+4(%esi) ! 529: xorl %eax, %eax ! 530: movl %eax, FileHandles(%esi) ! 531: addl $264, %esi ! 532: decl %ebx ! 533: jns .L117 ! 534: xorl %eax, %eax ! 535: movl $255, %ebx ! 536: .p2align 4,,15 ! 537: .L122: ! 538: xorl %esi, %esi ! 539: xorl %ecx, %ecx ! 540: xorl %edx, %edx ! 541: movl %esi, InternalDTAs(%eax) ! 542: movl %ecx, InternalDTAs+4(%eax) ! 543: movl %edx, InternalDTAs+12(%eax) ! 544: addl $272, %eax ! 545: decl %ebx ! 546: jns .L122 ! 547: xorl %eax, %eax ! 548: movl %eax, pDTA ! 549: xorl %eax, %eax ! 550: movl %eax, DTAIndex ! 551: addl $16, %esp ! 552: popl %ebx ! 553: popl %esi ! 554: popl %ebp ! 555: ret ! 556: .L127: ! 557: movl FileHandles+4(%esi), %eax ! 558: movl %eax, (%esp) ! 559: call fclose ! 560: jmp .L116 ! 561: .size GemDOS_Reset, .-GemDOS_Reset ! 562: .p2align 4,,15 ! 563: .globl GemDOS_InitDrives ! 564: .type GemDOS_InitDrives, @function ! 565: GemDOS_InitDrives: ! 566: pushl %ebp ! 567: movl $12078, %eax ! 568: movl %esp, %ebp ! 569: subl $8, %esp ! 570: movl $emudrive, (%esp) ! 571: movw %ax, emudrive ! 572: movb $0, emudrive+2 ! 573: call File_CleanFileName ! 574: movl $2, %eax ! 575: movl %eax, emudrive+512 ! 576: movl %ebp, %esp ! 577: popl %ebp ! 578: ret ! 579: .size GemDOS_InitDrives, .-GemDOS_InitDrives ! 580: .p2align 4,,15 ! 581: .globl GemDOS_UnInitDrives ! 582: .type GemDOS_UnInitDrives, @function ! 583: GemDOS_UnInitDrives: ! 584: pushl %ebp ! 585: movl %esp, %ebp ! 586: popl %ebp ! 587: jmp GemDOS_Reset ! 588: .size GemDOS_UnInitDrives, .-GemDOS_UnInitDrives ! 589: .p2align 4,,15 ! 590: .globl GemDOS_FindFreeFileHandle ! 591: .type GemDOS_FindFreeFileHandle, @function ! 592: GemDOS_FindFreeFileHandle: ! 593: pushl %ebp ! 594: xorl %eax, %eax ! 595: movl %esp, %ebp ! 596: movl $FileHandles, %edx ! 597: .p2align 4,,15 ! 598: .L136: ! 599: movl (%edx), %ecx ! 600: testl %ecx, %ecx ! 601: je .L130 ! 602: incl %eax ! 603: addl $264, %edx ! 604: cmpl $31, %eax ! 605: jle .L136 ! 606: movl $-1, %eax ! 607: .L130: ! 608: popl %ebp ! 609: ret ! 610: .size GemDOS_FindFreeFileHandle, .-GemDOS_FindFreeFileHandle ! 611: .p2align 4,,15 ! 612: .globl GemDOS_IsInvalidFileHandle ! 613: .type GemDOS_IsInvalidFileHandle, @function ! 614: GemDOS_IsInvalidFileHandle: ! 615: pushl %ebp ! 616: xorl %ecx, %ecx ! 617: movl %esp, %ebp ! 618: movl 8(%ebp), %edx ! 619: cmpl $31, %edx ! 620: ja .L143 ! 621: movl %edx, %eax ! 622: sall $5, %eax ! 623: addl %edx, %eax ! 624: movl FileHandles(,%eax,8), %eax ! 625: testl %eax, %eax ! 626: jne .L141 ! 627: .L143: ! 628: movl $1, %ecx ! 629: .L141: ! 630: popl %ebp ! 631: movl %ecx, %eax ! 632: ret ! 633: .size GemDOS_IsInvalidFileHandle, .-GemDOS_IsInvalidFileHandle ! 634: .p2align 4,,15 ! 635: .globl baselen ! 636: .type baselen, @function ! 637: baselen: ! 638: pushl %ebp ! 639: movl $46, %eax ! 640: movl %esp, %ebp ! 641: subl $24, %esp ! 642: movl %ebx, -4(%ebp) ! 643: movl 8(%ebp), %ebx ! 644: movl %eax, 4(%esp) ! 645: movl %ebx, (%esp) ! 646: call strchr ! 647: testl %eax, %eax ! 648: je .L147 ! 649: subl %ebx, %eax ! 650: movl -4(%ebp), %ebx ! 651: movl %ebp, %esp ! 652: popl %ebp ! 653: ret ! 654: .p2align 4,,7 ! 655: .L147: ! 656: movl -4(%ebp), %ebx ! 657: movl %ebp, %esp ! 658: popl %ebp ! 659: jmp strlen ! 660: .size baselen, .-baselen ! 661: .section .rodata.str1.1 ! 662: .LC2: ! 663: .string "%s%s" ! 664: .LC3: ! 665: .string "%s%c%s" ! 666: .LC4: ! 667: .string "no path for %s\n" ! 668: .text ! 669: .p2align 4,,15 ! 670: .globl GemDOS_CreateHardDriveFileName ! 671: .type GemDOS_CreateHardDriveFileName, @function ! 672: GemDOS_CreateHardDriveFileName: ! 673: pushl %ebp ! 674: movl %esp, %ebp ! 675: pushl %edi ! 676: pushl %esi ! 677: pushl %ebx ! 678: subl $444, %esp ! 679: movl 12(%ebp), %edx ! 680: movzbl (%edx), %eax ! 681: testb %al, %al ! 682: je .L148 ! 683: movl 16(%ebp), %ecx ! 684: xorl %edi, %edi ! 685: movl %edi, -384(%ebp) ! 686: movl %ecx, -380(%ebp) ! 687: cmpb $58, 1(%edx) ! 688: je .L200 ! 689: cmpb $92, %al ! 690: je .L201 ! 691: movl %edx, 12(%esp) ! 692: movl 16(%ebp), %ecx ! 693: movl $emudrive+256, %eax ! 694: movl %eax, 8(%esp) ! 695: movl $.LC2, %eax ! 696: movl %ecx, (%esp) ! 697: movl %eax, 4(%esp) ! 698: call sprintf ! 699: movl $emudrive+256, %ecx ! 700: .p2align 4,,15 ! 701: .L154: ! 702: movl (%ecx), %eax ! 703: addl $4, %ecx ! 704: leal -16843009(%eax), %edx ! 705: notl %eax ! 706: andl %eax, %edx ! 707: andl $-2139062144, %edx ! 708: je .L154 ! 709: testl $32896, %edx ! 710: jne .L156 ! 711: shrl $16, %edx ! 712: addl $2, %ecx ! 713: .L156: ! 714: addb %dl, %dl ! 715: movl 16(%ebp), %eax ! 716: sbbl $3, %ecx ! 717: subl $emudrive+256, %ecx ! 718: leal -1(%ecx,%eax), %ecx ! 719: movl %ecx, -384(%ebp) ! 720: .p2align 4,,15 ! 721: .L196: ! 722: movl -380(%ebp), %eax ! 723: movl $92, %esi ! 724: movl %esi, 4(%esp) ! 725: incl %eax ! 726: movl %eax, (%esp) ! 727: call strchr ! 728: movl %eax, -388(%ebp) ! 729: testl %eax, %eax ! 730: movl %eax, -380(%ebp) ! 731: je .L202 ! 732: movl -384(%ebp), %eax ! 733: testl %eax, %eax ! 734: je .L169 ! 735: movl -384(%ebp), %ecx ! 736: xorl %ebx, %ebx ! 737: movb $47, (%ecx) ! 738: incl %ecx ! 739: movl %ecx, -384(%ebp) ! 740: movzbl (%ecx), %eax ! 741: movb %al, -389(%ebp) ! 742: xorl %eax, %eax ! 743: movb $42, (%ecx) ! 744: incl %ecx ! 745: movl %ecx, -384(%ebp) ! 746: movzbl (%ecx), %edx ! 747: movb %dl, -390(%ebp) ! 748: movb $0, (%ecx) ! 749: leal -72(%ebp), %ecx ! 750: movl %eax, 8(%esp) ! 751: movl $8192, %eax ! 752: movl %eax, 4(%esp) ! 753: movl 16(%ebp), %eax ! 754: movl %ecx, 12(%esp) ! 755: movl %eax, (%esp) ! 756: call glob ! 757: movzbl -390(%ebp), %edx ! 758: movl -384(%ebp), %ecx ! 759: movb %dl, (%ecx) ! 760: decl %ecx ! 761: movzbl -389(%ebp), %eax ! 762: movl %ecx, -384(%ebp) ! 763: movb %al, (%ecx) ! 764: movl -388(%ebp), %edx ! 765: movb $0, (%edx) ! 766: movl 16(%ebp), %ecx ! 767: movl %ecx, (%esp) ! 768: call strlen ! 769: movl %eax, -404(%ebp) ! 770: movl -384(%ebp), %eax ! 771: movl %eax, (%esp) ! 772: call baselen ! 773: movl %eax, -400(%ebp) ! 774: movl -72(%ebp), %edi ! 775: xorl %eax, %eax ! 776: movl %eax, -396(%ebp) ! 777: cmpl %edi, %ebx ! 778: jae .L191 ! 779: .p2align 4,,15 ! 780: .L168: ! 781: cmpl $7, -400(%ebp) ! 782: jg .L166 ! 783: movl 16(%ebp), %edx ! 784: movl -68(%ebp), %esi ! 785: movl %edx, 4(%esp) ! 786: movl (%esi,%ebx,4), %eax ! 787: movl %eax, (%esp) ! 788: call strcasecmp ! 789: .L197: ! 790: testl %eax, %eax ! 791: jne .L163 ! 792: movl -388(%ebp), %eax ! 793: movl $47, %edi ! 794: leal -328(%ebp), %edx ! 795: movl %edi, 12(%esp) ! 796: incl %eax ! 797: movl %eax, 16(%esp) ! 798: movl (%esi,%ebx,4), %eax ! 799: movl $.LC3, %ebx ! 800: movl %ebx, 4(%esp) ! 801: movl %edx, (%esp) ! 802: movl %eax, 8(%esp) ! 803: call sprintf ! 804: movl 16(%ebp), %eax ! 805: leal -328(%ebp), %ecx ! 806: movl %ecx, 4(%esp) ! 807: movl %eax, (%esp) ! 808: call strcpy ! 809: movl -72(%ebp), %ebx ! 810: movl $1, %ecx ! 811: movl %ecx, -396(%ebp) ! 812: movl %ebx, %edi ! 813: .L163: ! 814: incl %ebx ! 815: cmpl %edi, %ebx ! 816: jb .L168 ! 817: .L191: ! 818: leal -72(%ebp), %edx ! 819: movl %edx, (%esp) ! 820: call globfree ! 821: movl -396(%ebp), %edx ! 822: testl %edx, %edx ! 823: je .L203 ! 824: .L169: ! 825: movl -388(%ebp), %edx ! 826: movl %edx, -384(%ebp) ! 827: jmp .L196 ! 828: .L203: ! 829: movl -384(%ebp), %ecx ! 830: leal -72(%ebp), %eax ! 831: xorl %ebx, %ebx ! 832: movb $42, (%ecx) ! 833: incl %ecx ! 834: movl %ecx, -384(%ebp) ! 835: movb $0, (%ecx) ! 836: movl 16(%ebp), %edx ! 837: movl %eax, 12(%esp) ! 838: xorl %eax, %eax ! 839: movl %eax, 8(%esp) ! 840: xorl %eax, %eax ! 841: movl %edx, (%esp) ! 842: movl %eax, 4(%esp) ! 843: call glob ! 844: movzbl -390(%ebp), %ecx ! 845: movl -384(%ebp), %eax ! 846: movb %cl, (%eax) ! 847: movzbl -389(%ebp), %edx ! 848: movb %dl, -1(%eax) ! 849: movl -72(%ebp), %edi ! 850: cmpl %edi, -396(%ebp) ! 851: jae .L193 ! 852: .p2align 4,,15 ! 853: .L175: ! 854: movl -404(%ebp), %ecx ! 855: movl 16(%ebp), %eax ! 856: movl -68(%ebp), %esi ! 857: movl %ecx, 8(%esp) ! 858: movl %eax, 4(%esp) ! 859: movl (%esi,%ebx,4), %eax ! 860: movl %eax, (%esp) ! 861: call strncasecmp ! 862: testl %eax, %eax ! 863: je .L204 ! 864: .L172: ! 865: incl %ebx ! 866: cmpl %edi, %ebx ! 867: jb .L175 ! 868: .L193: ! 869: leal -72(%ebp), %edx ! 870: movl %edx, (%esp) ! 871: call globfree ! 872: movl -396(%ebp), %eax ! 873: testl %eax, %eax ! 874: jne .L169 ! 875: movl -388(%ebp), %ecx ! 876: movl $.LC4, %edi ! 877: movb $47, (%ecx) ! 878: movl 16(%ebp), %eax ! 879: movl %edi, 4(%esp) ! 880: movl %eax, 8(%esp) ! 881: movl stderr, %eax ! 882: movl %eax, (%esp) ! 883: call fprintf ! 884: jmp .L169 ! 885: .L204: ! 886: movl -388(%ebp), %eax ! 887: leal -328(%ebp), %edx ! 888: incl %eax ! 889: movl %eax, 16(%esp) ! 890: movl $47, %eax ! 891: movl %eax, 12(%esp) ! 892: movl (%esi,%ebx,4), %eax ! 893: movl %edx, (%esp) ! 894: movl %eax, 8(%esp) ! 895: movl $.LC3, %eax ! 896: movl %eax, 4(%esp) ! 897: call sprintf ! 898: movl 16(%ebp), %eax ! 899: leal -328(%ebp), %ecx ! 900: movl %ecx, 4(%esp) ! 901: movl %eax, (%esp) ! 902: call strcpy ! 903: movl -72(%ebp), %ebx ! 904: movl $1, %eax ! 905: movl %eax, -396(%ebp) ! 906: movl %ebx, %edi ! 907: jmp .L172 ! 908: .p2align 4,,7 ! 909: .L166: ! 910: movl 16(%ebp), %eax ! 911: movl -404(%ebp), %ecx ! 912: movl -68(%ebp), %esi ! 913: movl %eax, 4(%esp) ! 914: movl %ecx, 8(%esp) ! 915: movl (%esi,%ebx,4), %eax ! 916: movl %eax, (%esp) ! 917: call strncasecmp ! 918: jmp .L197 ! 919: .L202: ! 920: movl -384(%ebp), %ebx ! 921: testl %ebx, %ebx ! 922: je .L205 ! 923: .L189: ! 924: movl -384(%ebp), %eax ! 925: movb $47, (%eax) ! 926: incl %eax ! 927: movl %eax, -384(%ebp) ! 928: movzbl (%eax), %edx ! 929: testb %dl, %dl ! 930: movb %dl, -405(%ebp) ! 931: je .L148 ! 932: movl %eax, (%esp) ! 933: movl $63, %edx ! 934: movl %edx, 4(%esp) ! 935: call strchr ! 936: testl %eax, %eax ! 937: je .L206 ! 938: .L148: ! 939: addl $444, %esp ! 940: popl %ebx ! 941: popl %esi ! 942: popl %edi ! 943: popl %ebp ! 944: ret ! 945: .L206: ! 946: movl -384(%ebp), %ecx ! 947: movl $42, %eax ! 948: movl %eax, 4(%esp) ! 949: movl %ecx, (%esp) ! 950: call strchr ! 951: testl %eax, %eax ! 952: jne .L148 ! 953: movl -384(%ebp), %eax ! 954: leal -376(%ebp), %edx ! 955: xorl %esi, %esi ! 956: movb $42, (%eax) ! 957: incl %eax ! 958: movl %eax, -384(%ebp) ! 959: movzbl (%eax), %ebx ! 960: movb $0, (%eax) ! 961: movl 16(%ebp), %ecx ! 962: xorl %eax, %eax ! 963: movl %eax, 8(%esp) ! 964: xorl %eax, %eax ! 965: movl %edx, 12(%esp) ! 966: movl %ecx, (%esp) ! 967: movl %eax, 4(%esp) ! 968: call glob ! 969: movl -384(%ebp), %eax ! 970: movb %bl, (%eax) ! 971: decl %eax ! 972: movzbl -405(%ebp), %edx ! 973: movl %eax, -384(%ebp) ! 974: movb %dl, (%eax) ! 975: movl 16(%ebp), %ecx ! 976: movl %ecx, (%esp) ! 977: call strlen ! 978: movl %eax, -416(%ebp) ! 979: movl -384(%ebp), %eax ! 980: movl %eax, (%esp) ! 981: call baselen ! 982: movl %eax, -412(%ebp) ! 983: movl -376(%ebp), %edi ! 984: cmpl %edi, %esi ! 985: jae .L195 ! 986: .L188: ! 987: cmpl $7, -412(%ebp) ! 988: jg .L186 ! 989: movl 16(%ebp), %edx ! 990: movl -372(%ebp), %ebx ! 991: movl %edx, 4(%esp) ! 992: movl (%ebx,%esi,4), %eax ! 993: movl %eax, (%esp) ! 994: call strcasecmp ! 995: .L199: ! 996: testl %eax, %eax ! 997: jne .L183 ! 998: movl (%ebx,%esi,4), %eax ! 999: movl 16(%ebp), %edx ! 1000: movl %eax, 4(%esp) ! 1001: movl %edx, (%esp) ! 1002: call strcpy ! 1003: movl -376(%ebp), %esi ! 1004: movl %esi, %edi ! 1005: .L183: ! 1006: incl %esi ! 1007: cmpl %edi, %esi ! 1008: jb .L188 ! 1009: .L195: ! 1010: leal -376(%ebp), %ecx ! 1011: movl %ecx, (%esp) ! 1012: call globfree ! 1013: jmp .L148 ! 1014: .L186: ! 1015: movl 16(%ebp), %eax ! 1016: movl -416(%ebp), %ecx ! 1017: movl -372(%ebp), %ebx ! 1018: movl %eax, 4(%esp) ! 1019: movl %ecx, 8(%esp) ! 1020: movl (%ebx,%esi,4), %eax ! 1021: movl %eax, (%esp) ! 1022: call strncasecmp ! 1023: jmp .L199 ! 1024: .L205: ! 1025: movl $47, %ecx ! 1026: movl %ecx, 4(%esp) ! 1027: movl 16(%ebp), %ecx ! 1028: movl %ecx, (%esp) ! 1029: call strrchr ! 1030: movl %eax, -384(%ebp) ! 1031: testl %eax, %eax ! 1032: jne .L189 ! 1033: jmp .L148 ! 1034: .L201: ! 1035: movl %edx, 12(%esp) ! 1036: movl $emudrive, %ecx ! 1037: movl $.LC2, %edx ! 1038: movl %edx, 4(%esp) ! 1039: movl 16(%ebp), %edx ! 1040: movl %ecx, 8(%esp) ! 1041: movl %edx, (%esp) ! 1042: .L198: ! 1043: call sprintf ! 1044: jmp .L196 ! 1045: .L200: ! 1046: movl %edx, (%esp) ! 1047: movl $emudrive, %esi ! 1048: movl $.LC2, %ebx ! 1049: call File_RemoveFileNameDrive ! 1050: movl %eax, 12(%esp) ! 1051: movl 16(%ebp), %eax ! 1052: movl %esi, 8(%esp) ! 1053: movl %ebx, 4(%esp) ! 1054: movl %eax, (%esp) ! 1055: jmp .L198 ! 1056: .size GemDOS_CreateHardDriveFileName, .-GemDOS_CreateHardDriveFileName ! 1057: .p2align 4,,15 ! 1058: .globl GemDOS_ConvertAttribute ! 1059: .type GemDOS_ConvertAttribute, @function ! 1060: GemDOS_ConvertAttribute: ! 1061: pushl %ebp ! 1062: xorl %edx, %edx ! 1063: movl %esp, %ebp ! 1064: movl 8(%ebp), %eax ! 1065: andl $61440, %eax ! 1066: cmpl $16384, %eax ! 1067: je .L209 ! 1068: .L208: ! 1069: popl %ebp ! 1070: movzbl %dl, %eax ! 1071: ret ! 1072: .p2align 4,,7 ! 1073: .L209: ! 1074: movb $16, %dl ! 1075: jmp .L208 ! 1076: .size GemDOS_ConvertAttribute, .-GemDOS_ConvertAttribute ! 1077: .p2align 4,,15 ! 1078: .globl GemDOS_SetDTA ! 1079: .type GemDOS_SetDTA, @function ! 1080: GemDOS_SetDTA: ! 1081: pushl %ebp ! 1082: movl %esp, %ebp ! 1083: subl $8, %esp ! 1084: movl $15, (%esp) ! 1085: call GetReg ! 1086: movl %eax, (%esp) ! 1087: call MemReadLong ! 1088: movl STRam, %edx ! 1089: andl $16777215, %eax ! 1090: addl %edx, %eax ! 1091: movl %eax, pDTA ! 1092: movl %ebp, %esp ! 1093: popl %ebp ! 1094: ret ! 1095: .size GemDOS_SetDTA, .-GemDOS_SetDTA ! 1096: .section .rodata.str1.1 ! 1097: .LC5: ! 1098: .string "w+" ! 1099: .LC6: ! 1100: .string "wb" ! 1101: .text ! 1102: .p2align 4,,15 ! 1103: .globl GemDOS_Create ! 1104: .type GemDOS_Create, @function ! 1105: GemDOS_Create: ! 1106: pushl %ebp ! 1107: movl $.LC5, %eax ! 1108: movl %esp, %ebp ! 1109: pushl %edi ! 1110: pushl %esi ! 1111: pushl %ebx ! 1112: subl $300, %esp ! 1113: movl %eax, -288(%ebp) ! 1114: movl $.LC6, %eax ! 1115: movl %eax, -284(%ebp) ! 1116: movl $15, (%esp) ! 1117: call GetReg ! 1118: movl %eax, %esi ! 1119: subl $2, %esi ! 1120: leal 2(%esi), %eax ! 1121: movl %eax, (%esp) ! 1122: call MemReadLong ! 1123: movl %eax, %ebx ! 1124: movl STRam, %eax ! 1125: andl $16777215, %ebx ! 1126: addl %eax, %ebx ! 1127: leal 6(%esi), %eax ! 1128: movl %eax, (%esp) ! 1129: call MemReadWord ! 1130: movl %ebx, 4(%esp) ! 1131: movswl %ax,%esi ! 1132: leal -280(%ebp), %eax ! 1133: movl %eax, 8(%esp) ! 1134: movl $2, (%esp) ! 1135: call GemDOS_CreateHardDriveFileName ! 1136: call GemDOS_FindFreeFileHandle ! 1137: cmpl $-1, %eax ! 1138: movl %eax, %ebx ! 1139: je .L217 ! 1140: sall $5, %eax ! 1141: andl $1, %esi ! 1142: addl %ebx, %eax ! 1143: leal 0(,%eax,8), %edi ! 1144: leal -288(%ebp), %eax ! 1145: movl (%eax,%esi,4), %eax ! 1146: movl %eax, 4(%esp) ! 1147: leal -280(%ebp), %eax ! 1148: movl %eax, (%esp) ! 1149: call fopen ! 1150: movl %eax, FileHandles+4(%edi) ! 1151: testl %eax, %eax ! 1152: je .L214 ! 1153: movl $1, %esi ! 1154: leal 64(%ebx), %eax ! 1155: movl %esi, FileHandles(%edi) ! 1156: movl %eax, 4(%esp) ! 1157: .L216: ! 1158: movl $0, (%esp) ! 1159: call SetReg ! 1160: addl $300, %esp ! 1161: popl %ebx ! 1162: popl %esi ! 1163: popl %edi ! 1164: popl %ebp ! 1165: ret ! 1166: .p2align 4,,7 ! 1167: .L214: ! 1168: movl $-33, %ecx ! 1169: movl %ecx, 4(%esp) ! 1170: jmp .L216 ! 1171: .p2align 4,,7 ! 1172: .L217: ! 1173: movl $-35, %edi ! 1174: movl %edi, 4(%esp) ! 1175: jmp .L216 ! 1176: .size GemDOS_Create, .-GemDOS_Create ! 1177: .section .rodata.str1.1 ! 1178: .LC7: ! 1179: .string "rb" ! 1180: .LC8: ! 1181: .string "r+" ! 1182: .LC9: ! 1183: .string "%s" ! 1184: .text ! 1185: .p2align 4,,15 ! 1186: .globl GemDOS_Open ! 1187: .type GemDOS_Open, @function ! 1188: GemDOS_Open: ! 1189: pushl %ebp ! 1190: movl $.LC7, %eax ! 1191: movl %esp, %ebp ! 1192: pushl %edi ! 1193: pushl %esi ! 1194: pushl %ebx ! 1195: subl $300, %esp ! 1196: movl %eax, -296(%ebp) ! 1197: movl $.LC6, %eax ! 1198: movl %eax, -292(%ebp) ! 1199: movl $.LC8, %eax ! 1200: movl %eax, -288(%ebp) ! 1201: movl $15, (%esp) ! 1202: call GetReg ! 1203: movl %eax, %esi ! 1204: subl $2, %esi ! 1205: leal 2(%esi), %eax ! 1206: movl %eax, (%esp) ! 1207: call MemReadLong ! 1208: movl STRam, %edi ! 1209: movl %eax, %ebx ! 1210: leal 6(%esi), %eax ! 1211: movl %eax, (%esp) ! 1212: andl $16777215, %ebx ! 1213: addl %edi, %ebx ! 1214: call MemReadWord ! 1215: movl %ebx, 4(%esp) ! 1216: movswl %ax,%edi ! 1217: leal -280(%ebp), %eax ! 1218: movl %eax, 8(%esp) ! 1219: movl $2, (%esp) ! 1220: call GemDOS_CreateHardDriveFileName ! 1221: call GemDOS_FindFreeFileHandle ! 1222: cmpl $-1, %eax ! 1223: movl %eax, %esi ! 1224: je .L223 ! 1225: sall $5, %eax ! 1226: andl $3, %edi ! 1227: addl %esi, %eax ! 1228: leal 0(,%eax,8), %ebx ! 1229: movl -296(%ebp,%edi,4), %eax ! 1230: movl %eax, 4(%esp) ! 1231: leal -280(%ebp), %eax ! 1232: movl %eax, (%esp) ! 1233: call fopen ! 1234: movl %eax, FileHandles+4(%ebx) ! 1235: movl $.LC9, %edx ! 1236: leal -280(%ebp), %eax ! 1237: movl %eax, 8(%esp) ! 1238: leal FileHandles+8(%ebx), %eax ! 1239: movl %edx, 4(%esp) ! 1240: movl %eax, (%esp) ! 1241: call sprintf ! 1242: movl FileHandles+4(%ebx), %eax ! 1243: testl %eax, %eax ! 1244: je .L220 ! 1245: movl $1, %eax ! 1246: movl %eax, FileHandles(%ebx) ! 1247: leal 64(%esi), %eax ! 1248: .L222: ! 1249: movl %eax, 4(%esp) ! 1250: .L221: ! 1251: movl $0, (%esp) ! 1252: call SetReg ! 1253: addl $300, %esp ! 1254: popl %ebx ! 1255: popl %esi ! 1256: popl %edi ! 1257: popl %ebp ! 1258: ret ! 1259: .p2align 4,,7 ! 1260: .L220: ! 1261: movl $-33, %eax ! 1262: jmp .L222 ! 1263: .p2align 4,,7 ! 1264: .L223: ! 1265: movl $-35, %ecx ! 1266: movl %ecx, 4(%esp) ! 1267: jmp .L221 ! 1268: .size GemDOS_Open, .-GemDOS_Open ! 1269: .p2align 4,,15 ! 1270: .globl GemDOS_Close ! 1271: .type GemDOS_Close, @function ! 1272: GemDOS_Close: ! 1273: pushl %ebp ! 1274: movl %esp, %ebp ! 1275: subl $24, %esp ! 1276: movl $15, (%esp) ! 1277: movl %esi, -4(%ebp) ! 1278: movl %ebx, -8(%ebp) ! 1279: call GetReg ! 1280: movl %eax, (%esp) ! 1281: call MemReadWord ! 1282: cwtl ! 1283: leal -64(%eax), %esi ! 1284: movl %esi, (%esp) ! 1285: call GemDOS_IsInvalidFileHandle ! 1286: testl %eax, %eax ! 1287: je .L227 ! 1288: .L224: ! 1289: movl -8(%ebp), %ebx ! 1290: movl -4(%ebp), %esi ! 1291: movl %ebp, %esp ! 1292: popl %ebp ! 1293: ret ! 1294: .p2align 4,,7 ! 1295: .L227: ! 1296: movl %esi, %ebx ! 1297: sall $5, %ebx ! 1298: addl %esi, %ebx ! 1299: sall $3, %ebx ! 1300: movl FileHandles+4(%ebx), %eax ! 1301: movl %eax, (%esp) ! 1302: call fclose ! 1303: movl $0, (%esp) ! 1304: xorl %eax, %eax ! 1305: movl %eax, FileHandles(%ebx) ! 1306: xorl %eax, %eax ! 1307: movl %eax, 4(%esp) ! 1308: call SetReg ! 1309: jmp .L224 ! 1310: .size GemDOS_Close, .-GemDOS_Close ! 1311: .p2align 4,,15 ! 1312: .globl GemDOS_Read ! 1313: .type GemDOS_Read, @function ! 1314: GemDOS_Read: ! 1315: pushl %ebp ! 1316: movl %esp, %ebp ! 1317: pushl %edi ! 1318: pushl %esi ! 1319: pushl %ebx ! 1320: subl $28, %esp ! 1321: movl $15, (%esp) ! 1322: call GetReg ! 1323: movl %eax, %ebx ! 1324: subl $2, %ebx ! 1325: leal 2(%ebx), %eax ! 1326: movl %eax, (%esp) ! 1327: call MemReadWord ! 1328: cwtl ! 1329: leal -64(%eax), %esi ! 1330: leal 4(%ebx), %eax ! 1331: movl %eax, (%esp) ! 1332: call MemReadLong ! 1333: movl %eax, -16(%ebp) ! 1334: leal 8(%ebx), %eax ! 1335: movl %eax, (%esp) ! 1336: call MemReadLong ! 1337: movl %esi, (%esp) ! 1338: movl %eax, %edi ! 1339: movl STRam, %eax ! 1340: andl $16777215, %edi ! 1341: addl %eax, %edi ! 1342: call GemDOS_IsInvalidFileHandle ! 1343: testl %eax, %eax ! 1344: je .L235 ! 1345: .L228: ! 1346: addl $28, %esp ! 1347: popl %ebx ! 1348: popl %esi ! 1349: popl %edi ! 1350: popl %ebp ! 1351: ret ! 1352: .p2align 4,,7 ! 1353: .L235: ! 1354: movl %esi, %eax ! 1355: sall $5, %eax ! 1356: addl %esi, %eax ! 1357: sall $3, %eax ! 1358: xorl %esi, %esi ! 1359: movl %eax, -20(%ebp) ! 1360: movl FileHandles+4(%eax), %eax ! 1361: movl %eax, (%esp) ! 1362: call ftell ! 1363: movl %esi, 4(%esp) ! 1364: movl -20(%ebp), %edx ! 1365: movl %eax, %ebx ! 1366: movl $2, %eax ! 1367: movl %eax, 8(%esp) ! 1368: movl FileHandles+4(%edx), %eax ! 1369: movl %eax, (%esp) ! 1370: call fseek ! 1371: movl -20(%ebp), %edx ! 1372: movl FileHandles+4(%edx), %eax ! 1373: movl %eax, (%esp) ! 1374: call ftell ! 1375: movl %ebx, 4(%esp) ! 1376: movl -20(%ebp), %edx ! 1377: movl %eax, %esi ! 1378: xorl %ecx, %ecx ! 1379: movl %ecx, 8(%esp) ! 1380: movl FileHandles+4(%edx), %eax ! 1381: movl %eax, (%esp) ! 1382: call fseek ! 1383: cmpl %ebx, %esi ! 1384: je .L236 ! 1385: cmpl %esi, -16(%ebp) ! 1386: jbe .L233 ! 1387: movl %esi, -16(%ebp) ! 1388: .L233: ! 1389: movl %edi, (%esp) ! 1390: movl -20(%ebp), %edx ! 1391: movl FileHandles+4(%edx), %eax ! 1392: movl %eax, 12(%esp) ! 1393: movl -16(%ebp), %eax ! 1394: movl %eax, 8(%esp) ! 1395: movl $1, %eax ! 1396: movl %eax, 4(%esp) ! 1397: call fread ! 1398: movl %eax, 4(%esp) ! 1399: .L234: ! 1400: movl $0, (%esp) ! 1401: call SetReg ! 1402: jmp .L228 ! 1403: .L236: ! 1404: xorl %edx, %edx ! 1405: movl %edx, 4(%esp) ! 1406: jmp .L234 ! 1407: .size GemDOS_Read, .-GemDOS_Read ! 1408: .p2align 4,,15 ! 1409: .globl GemDOS_Write ! 1410: .type GemDOS_Write, @function ! 1411: GemDOS_Write: ! 1412: pushl %ebp ! 1413: movl %esp, %ebp ! 1414: subl $40, %esp ! 1415: movl $15, (%esp) ! 1416: movl %ebx, -12(%ebp) ! 1417: movl %esi, -8(%ebp) ! 1418: movl %edi, -4(%ebp) ! 1419: call GetReg ! 1420: movl %eax, %ebx ! 1421: subl $2, %ebx ! 1422: leal 2(%ebx), %eax ! 1423: movl %eax, (%esp) ! 1424: call MemReadWord ! 1425: cwtl ! 1426: leal -64(%eax), %esi ! 1427: leal 4(%ebx), %eax ! 1428: movl %eax, (%esp) ! 1429: call MemReadLong ! 1430: movl %eax, %edi ! 1431: leal 8(%ebx), %eax ! 1432: movl %eax, (%esp) ! 1433: call MemReadLong ! 1434: movl %esi, (%esp) ! 1435: movl %eax, %ebx ! 1436: movl STRam, %eax ! 1437: andl $16777215, %ebx ! 1438: addl %eax, %ebx ! 1439: call GemDOS_IsInvalidFileHandle ! 1440: testl %eax, %eax ! 1441: je .L242 ! 1442: .L237: ! 1443: movl -12(%ebp), %ebx ! 1444: movl -8(%ebp), %esi ! 1445: movl -4(%ebp), %edi ! 1446: movl %ebp, %esp ! 1447: popl %ebp ! 1448: ret ! 1449: .p2align 4,,7 ! 1450: .L242: ! 1451: movl %edi, 8(%esp) ! 1452: movl %esi, %eax ! 1453: sall $5, %eax ! 1454: movl %ebx, (%esp) ! 1455: addl %esi, %eax ! 1456: movl FileHandles+4(,%eax,8), %eax ! 1457: movl %eax, 12(%esp) ! 1458: movl $1, %eax ! 1459: movl %eax, 4(%esp) ! 1460: call fwrite ! 1461: movl %eax, 4(%esp) ! 1462: movl $0, (%esp) ! 1463: call SetReg ! 1464: jmp .L237 ! 1465: .size GemDOS_Write, .-GemDOS_Write ! 1466: .p2align 4,,15 ! 1467: .globl GemDOS_UnLink ! 1468: .type GemDOS_UnLink, @function ! 1469: GemDOS_UnLink: ! 1470: pushl %ebp ! 1471: movl %esp, %ebp ! 1472: subl $280, %esp ! 1473: movl $15, (%esp) ! 1474: movl %ebx, -4(%ebp) ! 1475: leal -264(%ebp), %ebx ! 1476: call GetReg ! 1477: movl %eax, (%esp) ! 1478: call MemReadLong ! 1479: movl %ebx, 8(%esp) ! 1480: movl STRam, %edx ! 1481: andl $16777215, %eax ! 1482: movl $2, (%esp) ! 1483: addl %edx, %eax ! 1484: movl %eax, 4(%esp) ! 1485: call GemDOS_CreateHardDriveFileName ! 1486: movl %ebx, (%esp) ! 1487: call unlink ! 1488: testl %eax, %eax ! 1489: jne .L244 ! 1490: xorl %eax, %eax ! 1491: .L247: ! 1492: movl %eax, 4(%esp) ! 1493: movl $0, (%esp) ! 1494: call SetReg ! 1495: movl -4(%ebp), %ebx ! 1496: movl %ebp, %esp ! 1497: popl %ebp ! 1498: ret ! 1499: .p2align 4,,7 ! 1500: .L244: ! 1501: movl $-33, %eax ! 1502: jmp .L247 ! 1503: .size GemDOS_UnLink, .-GemDOS_UnLink ! 1504: .section .rodata.str1.1 ! 1505: .LC10: ! 1506: .string "\tError setting DTA.\n" ! 1507: .text ! 1508: .p2align 4,,15 ! 1509: .globl GemDOS_SNext ! 1510: .type GemDOS_SNext, @function ! 1511: GemDOS_SNext: ! 1512: pushl %ebp ! 1513: movl %esp, %ebp ! 1514: subl $24, %esp ! 1515: movl $15, (%esp) ! 1516: call GetReg ! 1517: movl pDTA, %edx ! 1518: movl 2(%edx), %eax ! 1519: #APP ! 1520: bswap %eax ! 1521: ! 1522: #NO_APP ! 1523: cmpl $311964790, %eax ! 1524: je .L255 ! 1525: .L248: ! 1526: movl %ebp, %esp ! 1527: popl %ebp ! 1528: ret ! 1529: .p2align 4,,7 ! 1530: .L255: ! 1531: movzwl (%edx), %eax ! 1532: #APP ! 1533: xchgb %al,%ah ! 1534: #NO_APP ! 1535: movzbl %al, %eax ! 1536: movl %eax, %edx ! 1537: sall $4, %edx ! 1538: addl %eax, %edx ! 1539: sall $4, %edx ! 1540: movl InternalDTAs+8(%edx), %ecx ! 1541: cmpl InternalDTAs+4(%edx), %ecx ! 1542: jl .L252 ! 1543: movl $-49, %eax ! 1544: movl %eax, 4(%esp) ! 1545: .L254: ! 1546: movl $0, (%esp) ! 1547: call SetReg ! 1548: jmp .L248 ! 1549: .p2align 4,,7 ! 1550: .L252: ! 1551: movl InternalDTAs+12(%edx), %eax ! 1552: movl (%eax,%ecx,4), %eax ! 1553: movl %eax, 4(%esp) ! 1554: leal 1(%ecx), %eax ! 1555: movl %eax, InternalDTAs+8(%edx) ! 1556: leal InternalDTAs+16(%edx), %eax ! 1557: movl %eax, (%esp) ! 1558: call PopulateDTA ! 1559: testl %eax, %eax ! 1560: jne .L253 ! 1561: movl $.LC10, (%esp) ! 1562: movl stderr, %eax ! 1563: movl %eax, 12(%esp) ! 1564: movl $20, %eax ! 1565: movl %eax, 8(%esp) ! 1566: movl $1, %eax ! 1567: movl %eax, 4(%esp) ! 1568: call fwrite ! 1569: jmp .L248 ! 1570: .L253: ! 1571: xorl %ecx, %ecx ! 1572: movl %ecx, 4(%esp) ! 1573: jmp .L254 ! 1574: .size GemDOS_SNext, .-GemDOS_SNext ! 1575: .p2align 4,,15 ! 1576: .globl GemDOS_SFirst ! 1577: .type GemDOS_SFirst, @function ! 1578: GemDOS_SFirst: ! 1579: pushl %ebp ! 1580: movl %esp, %ebp ! 1581: pushl %edi ! 1582: leal -280(%ebp), %edi ! 1583: pushl %esi ! 1584: pushl %ebx ! 1585: subl $556, %esp ! 1586: movl $15, (%esp) ! 1587: call GetReg ! 1588: movl %eax, %esi ! 1589: subl $2, %esi ! 1590: leal 2(%esi), %eax ! 1591: movl %eax, (%esp) ! 1592: call MemReadLong ! 1593: movl STRam, %ecx ! 1594: movl %eax, %ebx ! 1595: andl $16777215, %ebx ! 1596: leal 6(%esi), %eax ! 1597: addl %ecx, %ebx ! 1598: movl %eax, (%esp) ! 1599: call MemReadWord ! 1600: movl %edi, 8(%esp) ! 1601: movzwl %ax, %esi ! 1602: movl %ebx, 4(%esp) ! 1603: movl $2, (%esp) ! 1604: call GemDOS_CreateHardDriveFileName ! 1605: movzwl DTAIndex, %eax ! 1606: #APP ! 1607: xchgb %al,%ah ! 1608: #NO_APP ! 1609: movl pDTA, %edx ! 1610: movw %ax, (%edx) ! 1611: movl $311964790, %eax ! 1612: #APP ! 1613: bswap %eax ! 1614: ! 1615: #NO_APP ! 1616: movl %eax, 2(%edx) ! 1617: movl DTAIndex, %ecx ! 1618: movl %ecx, %eax ! 1619: sall $4, %eax ! 1620: addl %ecx, %eax ! 1621: sall $4, %eax ! 1622: cmpl $1, InternalDTAs(%eax) ! 1623: je .L286 ! 1624: .L259: ! 1625: movl %ecx, %eax ! 1626: movl $1, %edx ! 1627: sall $4, %eax ! 1628: addl %ecx, %eax ! 1629: sall $4, %eax ! 1630: andl $8, %esi ! 1631: movl %edx, InternalDTAs(%eax) ! 1632: je .L260 ! 1633: movl pDTA, %eax ! 1634: movl $1280658757, 30(%eax) ! 1635: movl $1145394241, 34(%eax) ! 1636: movl $825241646, 38(%eax) ! 1637: movb $0, 42(%eax) ! 1638: xorl %eax, %eax ! 1639: .L285: ! 1640: movl %eax, 4(%esp) ! 1641: movl $0, (%esp) ! 1642: call SetReg ! 1643: .L256: ! 1644: addl $556, %esp ! 1645: popl %ebx ! 1646: popl %esi ! 1647: popl %edi ! 1648: popl %ebp ! 1649: ret ! 1650: .p2align 4,,7 ! 1651: .L260: ! 1652: movl %edi, (%esp) ! 1653: addl $InternalDTAs+16, %eax ! 1654: movl %eax, 4(%esp) ! 1655: call fsfirst_dirname ! 1656: movl DTAIndex, %edx ! 1657: movl %edx, %eax ! 1658: sall $4, %eax ! 1659: addl %edx, %eax ! 1660: sall $4, %eax ! 1661: addl $InternalDTAs+16, %eax ! 1662: movl %eax, (%esp) ! 1663: call opendir ! 1664: testl %eax, %eax ! 1665: je .L287 ! 1666: movl %eax, (%esp) ! 1667: xorl %esi, %esi ! 1668: call closedir ! 1669: movl %esi, 8(%esp) ! 1670: movl DTAIndex, %eax ! 1671: movl %eax, %ebx ! 1672: sall $4, %ebx ! 1673: addl %eax, %ebx ! 1674: movl $alphasort, %eax ! 1675: movl %eax, 12(%esp) ! 1676: sall $4, %ebx ! 1677: leal -540(%ebp), %eax ! 1678: movl %eax, 4(%esp) ! 1679: leal InternalDTAs+16(%ebx), %eax ! 1680: movl %eax, (%esp) ! 1681: call scandir ! 1682: movl %eax, InternalDTAs+4(%ebx) ! 1683: movl DTAIndex, %edx ! 1684: movl %edx, %eax ! 1685: sall $4, %eax ! 1686: addl %edx, %eax ! 1687: sall $4, %eax ! 1688: movl InternalDTAs+4(%eax), %ecx ! 1689: testl %ecx, %ecx ! 1690: js .L283 ! 1691: movl %edi, (%esp) ! 1692: xorl %edx, %edx ! 1693: xorl %esi, %esi ! 1694: movl %edx, InternalDTAs+8(%eax) ! 1695: xorl %edi, %edi ! 1696: leal -536(%ebp), %eax ! 1697: movl %eax, 4(%esp) ! 1698: call fsfirst_dirmask ! 1699: movl DTAIndex, %ecx ! 1700: movl %ecx, %eax ! 1701: sall $4, %eax ! 1702: addl %ecx, %eax ! 1703: sall $4, %eax ! 1704: cmpl InternalDTAs+4(%eax), %edi ! 1705: jge .L256 ! 1706: .p2align 4,,15 ! 1707: .L268: ! 1708: movl -540(%ebp), %eax ! 1709: movl (%eax,%esi,4), %eax ! 1710: addl $11, %eax ! 1711: movl %eax, 4(%esp) ! 1712: leal -536(%ebp), %eax ! 1713: movl %eax, (%esp) ! 1714: call match ! 1715: testl %eax, %eax ! 1716: je .L265 ! 1717: incl %edi ! 1718: .L265: ! 1719: movl DTAIndex, %ecx ! 1720: incl %esi ! 1721: movl %ecx, %eax ! 1722: sall $4, %eax ! 1723: leal (%ecx,%eax), %ebx ! 1724: sall $4, %ebx ! 1725: cmpl InternalDTAs+4(%ebx), %esi ! 1726: jl .L268 ! 1727: testl %edi, %edi ! 1728: je .L256 ! 1729: leal 0(,%edi,4), %eax ! 1730: xorl %esi, %esi ! 1731: movl %eax, (%esp) ! 1732: call malloc ! 1733: movl %eax, InternalDTAs+12(%ebx) ! 1734: movl DTAIndex, %ecx ! 1735: xorl %ebx, %ebx ! 1736: movl %ecx, %eax ! 1737: sall $4, %eax ! 1738: addl %ecx, %eax ! 1739: sall $4, %eax ! 1740: cmpl InternalDTAs+4(%eax), %esi ! 1741: jl .L275 ! 1742: .L280: ! 1743: movl %ecx, %eax ! 1744: sall $4, %eax ! 1745: addl %ecx, %eax ! 1746: sall $4, %eax ! 1747: testl %edi, %edi ! 1748: movl %edi, InternalDTAs+4(%eax) ! 1749: jne .L276 ! 1750: .L283: ! 1751: movl $-33, %eax ! 1752: jmp .L285 ! 1753: .L276: ! 1754: movl $0, (%esp) ! 1755: call GemDOS_SNext ! 1756: movl DTAIndex, %ecx ! 1757: incl %ecx ! 1758: movzbl %cl,%eax ! 1759: movl %eax, DTAIndex ! 1760: jmp .L256 ! 1761: .p2align 4,,7 ! 1762: .L275: ! 1763: movl -540(%ebp), %eax ! 1764: movl (%eax,%esi,4), %eax ! 1765: addl $11, %eax ! 1766: movl %eax, 4(%esp) ! 1767: leal -536(%ebp), %eax ! 1768: movl %eax, (%esp) ! 1769: call match ! 1770: testl %eax, %eax ! 1771: je .L281 ! 1772: movl DTAIndex, %ecx ! 1773: movl %ecx, %eax ! 1774: sall $4, %eax ! 1775: addl %ecx, %eax ! 1776: sall $4, %eax ! 1777: movl InternalDTAs+12(%eax), %edx ! 1778: movl -540(%ebp), %eax ! 1779: movl (%eax,%esi,4), %eax ! 1780: movl %eax, (%edx,%ebx,4) ! 1781: incl %ebx ! 1782: .L272: ! 1783: movl %ecx, %eax ! 1784: incl %esi ! 1785: sall $4, %eax ! 1786: addl %ecx, %eax ! 1787: sall $4, %eax ! 1788: cmpl InternalDTAs+4(%eax), %esi ! 1789: jl .L275 ! 1790: jmp .L280 ! 1791: .L281: ! 1792: movl DTAIndex, %ecx ! 1793: jmp .L272 ! 1794: .L287: ! 1795: movl $-34, %eax ! 1796: jmp .L285 ! 1797: .p2align 4,,7 ! 1798: .L286: ! 1799: call ClearInternalDTA ! 1800: movl DTAIndex, %ecx ! 1801: jmp .L259 ! 1802: .size GemDOS_SFirst, .-GemDOS_SFirst ! 1803: .p2align 4,,15 ! 1804: .globl Call_Memset ! 1805: .type Call_Memset, @function ! 1806: Call_Memset: ! 1807: pushl %ebp ! 1808: movl %esp, %ebp ! 1809: subl $24, %esp ! 1810: movl $15, (%esp) ! 1811: movl %ebx, -8(%ebp) ! 1812: movl %esi, -4(%ebp) ! 1813: call GetReg ! 1814: movl %eax, %esi ! 1815: subl $2, %esi ! 1816: leal 2(%esi), %eax ! 1817: movl %eax, (%esp) ! 1818: call MemReadLong ! 1819: movl %eax, %ebx ! 1820: leal 6(%esi), %eax ! 1821: movl %eax, (%esp) ! 1822: call MemReadLong ! 1823: movl %ebx, 8(%esp) ! 1824: movl STRam, %esi ! 1825: xorl %ebx, %ebx ! 1826: movl %ebx, 4(%esp) ! 1827: addl %esi, %eax ! 1828: movl %eax, (%esp) ! 1829: call memset ! 1830: movl -8(%ebp), %ebx ! 1831: movl -4(%ebp), %esi ! 1832: movl %ebp, %esp ! 1833: popl %ebp ! 1834: ret ! 1835: .size Call_Memset, .-Call_Memset ! 1836: .p2align 4,,15 ! 1837: .globl Call_MemsetBlue ! 1838: .type Call_MemsetBlue, @function ! 1839: Call_MemsetBlue: ! 1840: pushl %ebp ! 1841: movl %esp, %ebp ! 1842: subl $24, %esp ! 1843: movl $15, (%esp) ! 1844: movl %ebx, -8(%ebp) ! 1845: movl %esi, -4(%ebp) ! 1846: call GetReg ! 1847: movl %eax, %esi ! 1848: subl $2, %esi ! 1849: leal 2(%esi), %eax ! 1850: movl %eax, (%esp) ! 1851: call MemReadLong ! 1852: movl %eax, %ebx ! 1853: leal 6(%esi), %eax ! 1854: movl %eax, (%esp) ! 1855: call MemReadLong ! 1856: movl %ebx, 8(%esp) ! 1857: movl STRam, %edx ! 1858: movl $14, %ecx ! 1859: movl %ecx, 4(%esp) ! 1860: addl %edx, %eax ! 1861: movl %eax, (%esp) ! 1862: call memset ! 1863: movl -8(%ebp), %ebx ! 1864: movl -4(%ebp), %esi ! 1865: movl %ebp, %esp ! 1866: popl %ebp ! 1867: ret ! 1868: .size Call_MemsetBlue, .-Call_MemsetBlue ! 1869: .p2align 4,,15 ! 1870: .globl Call_Memcpy ! 1871: .type Call_Memcpy, @function ! 1872: Call_Memcpy: ! 1873: pushl %ebp ! 1874: movl %esp, %ebp ! 1875: subl $24, %esp ! 1876: movl $15, (%esp) ! 1877: movl %ebx, -12(%ebp) ! 1878: movl %esi, -8(%ebp) ! 1879: movl %edi, -4(%ebp) ! 1880: call GetReg ! 1881: movl %eax, %esi ! 1882: subl $2, %esi ! 1883: leal 2(%esi), %eax ! 1884: movl %eax, (%esp) ! 1885: call MemReadLong ! 1886: movl %eax, %edi ! 1887: leal 6(%esi), %eax ! 1888: movl %eax, (%esp) ! 1889: call MemReadLong ! 1890: movl %eax, %ebx ! 1891: leal 10(%esi), %eax ! 1892: movl %eax, (%esp) ! 1893: call MemReadLong ! 1894: movl %eax, 8(%esp) ! 1895: movl STRam, %edx ! 1896: leal (%edi,%edx), %ecx ! 1897: movl %ecx, (%esp) ! 1898: addl %ebx, %edx ! 1899: movl %edx, 4(%esp) ! 1900: call memcpy ! 1901: movl -12(%ebp), %ebx ! 1902: movl -8(%ebp), %esi ! 1903: movl -4(%ebp), %edi ! 1904: movl %ebp, %esp ! 1905: popl %ebp ! 1906: ret ! 1907: .size Call_Memcpy, .-Call_Memcpy ! 1908: .section .rodata ! 1909: .align 32 ! 1910: .type mouse_bmp, @object ! 1911: .size mouse_bmp, 256 ! 1912: mouse_bmp: ! 1913: .byte 0 ! 1914: .byte 0 ! 1915: .byte -1 ! 1916: .byte -1 ! 1917: .byte -1 ! 1918: .byte -1 ! 1919: .byte -1 ! 1920: .byte -1 ! 1921: .byte -1 ! 1922: .byte -1 ! 1923: .byte -1 ! 1924: .byte -1 ! 1925: .byte -1 ! 1926: .byte -1 ! 1927: .byte -1 ! 1928: .byte -1 ! 1929: .byte 0 ! 1930: .byte 15 ! 1931: .byte 0 ! 1932: .byte -1 ! 1933: .byte -1 ! 1934: .byte -1 ! 1935: .byte -1 ! 1936: .byte -1 ! 1937: .byte -1 ! 1938: .byte -1 ! 1939: .byte -1 ! 1940: .byte -1 ! 1941: .byte -1 ! 1942: .byte -1 ! 1943: .byte -1 ! 1944: .byte -1 ! 1945: .byte 0 ! 1946: .byte 15 ! 1947: .byte 15 ! 1948: .byte 0 ! 1949: .byte -1 ! 1950: .byte -1 ! 1951: .byte -1 ! 1952: .byte -1 ! 1953: .byte -1 ! 1954: .byte -1 ! 1955: .byte -1 ! 1956: .byte -1 ! 1957: .byte -1 ! 1958: .byte -1 ! 1959: .byte -1 ! 1960: .byte -1 ! 1961: .byte 0 ! 1962: .byte 15 ! 1963: .byte 15 ! 1964: .byte 15 ! 1965: .byte 0 ! 1966: .byte -1 ! 1967: .byte -1 ! 1968: .byte -1 ! 1969: .byte -1 ! 1970: .byte -1 ! 1971: .byte -1 ! 1972: .byte -1 ! 1973: .byte -1 ! 1974: .byte -1 ! 1975: .byte -1 ! 1976: .byte -1 ! 1977: .byte 0 ! 1978: .byte 15 ! 1979: .byte 15 ! 1980: .byte 15 ! 1981: .byte 15 ! 1982: .byte 0 ! 1983: .byte -1 ! 1984: .byte -1 ! 1985: .byte -1 ! 1986: .byte -1 ! 1987: .byte -1 ! 1988: .byte -1 ! 1989: .byte -1 ! 1990: .byte -1 ! 1991: .byte -1 ! 1992: .byte -1 ! 1993: .byte 0 ! 1994: .byte 15 ! 1995: .byte 15 ! 1996: .byte 15 ! 1997: .byte 15 ! 1998: .byte 15 ! 1999: .byte 0 ! 2000: .byte -1 ! 2001: .byte -1 ! 2002: .byte -1 ! 2003: .byte -1 ! 2004: .byte -1 ! 2005: .byte -1 ! 2006: .byte -1 ! 2007: .byte -1 ! 2008: .byte -1 ! 2009: .byte 0 ! 2010: .byte 15 ! 2011: .byte 15 ! 2012: .byte 15 ! 2013: .byte 15 ! 2014: .byte 0 ! 2015: .byte -1 ! 2016: .byte -1 ! 2017: .byte -1 ! 2018: .byte -1 ! 2019: .byte -1 ! 2020: .byte -1 ! 2021: .byte -1 ! 2022: .byte -1 ! 2023: .byte -1 ! 2024: .byte -1 ! 2025: .byte 0 ! 2026: .byte 15 ! 2027: .byte 15 ! 2028: .byte 15 ! 2029: .byte 15 ! 2030: .byte 0 ! 2031: .byte -1 ! 2032: .byte -1 ! 2033: .byte -1 ! 2034: .byte -1 ! 2035: .byte -1 ! 2036: .byte -1 ! 2037: .byte -1 ! 2038: .byte -1 ! 2039: .byte -1 ! 2040: .byte -1 ! 2041: .byte 0 ! 2042: .byte 15 ! 2043: .byte 0 ! 2044: .byte 15 ! 2045: .byte 15 ! 2046: .byte 15 ! 2047: .byte 0 ! 2048: .byte -1 ! 2049: .byte -1 ! 2050: .byte -1 ! 2051: .byte -1 ! 2052: .byte -1 ! 2053: .byte -1 ! 2054: .byte -1 ! 2055: .byte -1 ! 2056: .byte -1 ! 2057: .byte 0 ! 2058: .byte 0 ! 2059: .byte -1 ! 2060: .byte 0 ! 2061: .byte 15 ! 2062: .byte 15 ! 2063: .byte 0 ! 2064: .byte -1 ! 2065: .byte -1 ! 2066: .byte -1 ! 2067: .byte -1 ! 2068: .byte -1 ! 2069: .byte -1 ! 2070: .byte -1 ! 2071: .byte -1 ! 2072: .byte -1 ! 2073: .byte -1 ! 2074: .byte -1 ! 2075: .byte -1 ! 2076: .byte 0 ! 2077: .byte 15 ! 2078: .byte 15 ! 2079: .byte 15 ! 2080: .byte 0 ! 2081: .byte -1 ! 2082: .byte -1 ! 2083: .byte -1 ! 2084: .byte -1 ! 2085: .byte -1 ! 2086: .byte -1 ! 2087: .byte -1 ! 2088: .byte -1 ! 2089: .byte -1 ! 2090: .byte -1 ! 2091: .byte -1 ! 2092: .byte -1 ! 2093: .byte 0 ! 2094: .byte 15 ! 2095: .byte 15 ! 2096: .byte 0 ! 2097: .byte -1 ! 2098: .byte -1 ! 2099: .byte -1 ! 2100: .byte -1 ! 2101: .byte -1 ! 2102: .byte -1 ! 2103: .byte -1 ! 2104: .byte -1 ! 2105: .byte -1 ! 2106: .byte -1 ! 2107: .byte -1 ! 2108: .byte -1 ! 2109: .byte 0 ! 2110: .byte 15 ! 2111: .byte 15 ! 2112: .byte 15 ! 2113: .byte 0 ! 2114: .byte -1 ! 2115: .byte -1 ! 2116: .byte -1 ! 2117: .byte -1 ! 2118: .byte -1 ! 2119: .byte -1 ! 2120: .byte -1 ! 2121: .byte -1 ! 2122: .byte -1 ! 2123: .byte -1 ! 2124: .byte -1 ! 2125: .byte -1 ! 2126: .byte 0 ! 2127: .byte 15 ! 2128: .byte 0 ! 2129: .byte -1 ! 2130: .byte -1 ! 2131: .byte -1 ! 2132: .byte -1 ! 2133: .byte -1 ! 2134: .byte -1 ! 2135: .byte -1 ! 2136: .byte -1 ! 2137: .byte -1 ! 2138: .byte -1 ! 2139: .byte -1 ! 2140: .byte -1 ! 2141: .byte -1 ! 2142: .byte -1 ! 2143: .byte 0 ! 2144: .byte -1 ! 2145: .byte -1 ! 2146: .byte -1 ! 2147: .byte -1 ! 2148: .byte -1 ! 2149: .byte -1 ! 2150: .byte -1 ! 2151: .byte -1 ! 2152: .byte -1 ! 2153: .byte -1 ! 2154: .byte -1 ! 2155: .byte -1 ! 2156: .byte -1 ! 2157: .byte -1 ! 2158: .byte -1 ! 2159: .byte -1 ! 2160: .byte -1 ! 2161: .byte -1 ! 2162: .byte -1 ! 2163: .byte -1 ! 2164: .byte -1 ! 2165: .byte -1 ! 2166: .byte -1 ! 2167: .byte -1 ! 2168: .byte -1 ! 2169: .text ! 2170: .p2align 4,,15 ! 2171: .globl Call_BlitCursor ! 2172: .type Call_BlitCursor, @function ! 2173: Call_BlitCursor: ! 2174: pushl %ebp ! 2175: movl %esp, %ebp ! 2176: pushl %edi ! 2177: pushl %esi ! 2178: movl $mouse_bmp, %esi ! 2179: pushl %ebx ! 2180: subl $28, %esp ! 2181: movl $15, (%esp) ! 2182: call GetReg ! 2183: movl %eax, %ebx ! 2184: subl $2, %ebx ! 2185: leal 2(%ebx), %eax ! 2186: movl %eax, (%esp) ! 2187: call MemReadLong ! 2188: movl %eax, %edi ! 2189: leal 6(%ebx), %eax ! 2190: movl %eax, (%esp) ! 2191: call MemReadLong ! 2192: movl %eax, -20(%ebp) ! 2193: leal 10(%ebx), %eax ! 2194: movl $under_mouse, %ebx ! 2195: movl %eax, (%esp) ! 2196: call MemReadLong ! 2197: movl $0, -16(%ebp) ! 2198: movl STRam, %ecx ! 2199: addl %ecx, %eax ! 2200: movl -20(%ebp), %ecx ! 2201: leal (%ecx,%ecx,4), %edx ! 2202: sall $6, %edx ! 2203: addl %edx, %eax ! 2204: addl %edi, %eax ! 2205: movl %eax, -24(%ebp) ! 2206: .L304: ! 2207: movl -16(%ebp), %eax ! 2208: movl -20(%ebp), %edx ! 2209: addl %edx, %eax ! 2210: cmpl $200, %eax ! 2211: jg .L293 ! 2212: movl -24(%ebp), %edx ! 2213: xorl %ecx, %ecx ! 2214: leal 320(%edx), %eax ! 2215: movl %eax, -24(%ebp) ! 2216: .p2align 4,,15 ! 2217: .L303: ! 2218: leal (%edi,%ecx), %eax ! 2219: cmpl $319, %eax ! 2220: jle .L308 ! 2221: .L299: ! 2222: incl %ecx ! 2223: incl %edx ! 2224: incl %esi ! 2225: incl %ebx ! 2226: cmpl $15, %ecx ! 2227: jle .L303 ! 2228: incl -16(%ebp) ! 2229: cmpl $15, -16(%ebp) ! 2230: jle .L304 ! 2231: .L293: ! 2232: addl $28, %esp ! 2233: popl %ebx ! 2234: popl %esi ! 2235: popl %edi ! 2236: popl %ebp ! 2237: ret ! 2238: .p2align 4,,7 ! 2239: .L308: ! 2240: movzbl (%edx), %eax ! 2241: movb %al, (%ebx) ! 2242: movzbl (%esi), %eax ! 2243: cmpb $-1, %al ! 2244: je .L299 ! 2245: movb %al, (%edx) ! 2246: jmp .L299 ! 2247: .size Call_BlitCursor, .-Call_BlitCursor ! 2248: .p2align 4,,15 ! 2249: .globl Call_RestoreUnderCursor ! 2250: .type Call_RestoreUnderCursor, @function ! 2251: Call_RestoreUnderCursor: ! 2252: pushl %ebp ! 2253: movl %esp, %ebp ! 2254: pushl %edi ! 2255: xorl %edi, %edi ! 2256: pushl %esi ! 2257: pushl %ebx ! 2258: subl $12, %esp ! 2259: movl $15, (%esp) ! 2260: call GetReg ! 2261: movl %eax, %ebx ! 2262: subl $2, %ebx ! 2263: leal 2(%ebx), %eax ! 2264: movl %eax, (%esp) ! 2265: call MemReadLong ! 2266: movl %eax, %esi ! 2267: leal 6(%ebx), %eax ! 2268: movl %eax, (%esp) ! 2269: call MemReadLong ! 2270: movl %eax, -16(%ebp) ! 2271: leal 10(%ebx), %eax ! 2272: movl %eax, (%esp) ! 2273: call MemReadLong ! 2274: movl -16(%ebp), %ecx ! 2275: movl STRam, %ebx ! 2276: leal (%ecx,%ecx,4), %edx ! 2277: addl %ebx, %eax ! 2278: sall $6, %edx ! 2279: addl %edx, %eax ! 2280: addl %esi, %eax ! 2281: movl $under_mouse, %ebx ! 2282: movl %eax, -20(%ebp) ! 2283: .L322: ! 2284: movl -16(%ebp), %edx ! 2285: leal (%edx,%edi), %eax ! 2286: cmpl $200, %eax ! 2287: jg .L311 ! 2288: movl -20(%ebp), %edx ! 2289: leal 320(%edx), %ecx ! 2290: movl %ecx, -20(%ebp) ! 2291: xorl %ecx, %ecx ! 2292: .p2align 4,,15 ! 2293: .L321: ! 2294: leal (%esi,%ecx), %eax ! 2295: cmpl $319, %eax ! 2296: jle .L326 ! 2297: .L317: ! 2298: incl %ecx ! 2299: incl %edx ! 2300: incl %ebx ! 2301: cmpl $15, %ecx ! 2302: jle .L321 ! 2303: incl %edi ! 2304: cmpl $15, %edi ! 2305: jle .L322 ! 2306: .L311: ! 2307: addl $12, %esp ! 2308: popl %ebx ! 2309: popl %esi ! 2310: popl %edi ! 2311: popl %ebp ! 2312: ret ! 2313: .p2align 4,,7 ! 2314: .L326: ! 2315: movzbl (%ebx), %eax ! 2316: cmpb $-1, %al ! 2317: je .L317 ! 2318: movb %al, (%edx) ! 2319: jmp .L317 ! 2320: .size Call_RestoreUnderCursor, .-Call_RestoreUnderCursor ! 2321: .p2align 4,,15 ! 2322: .globl Call_PutPix ! 2323: .type Call_PutPix, @function ! 2324: Call_PutPix: ! 2325: pushl %ebp ! 2326: movl %esp, %ebp ! 2327: subl $24, %esp ! 2328: movl $15, (%esp) ! 2329: movl %ebx, -8(%ebp) ! 2330: movl %esi, -4(%ebp) ! 2331: call GetReg ! 2332: movl %eax, (%esp) ! 2333: call MemReadWord ! 2334: movl $4, (%esp) ! 2335: movswl %ax,%ebx ! 2336: sarl $2, %ebx ! 2337: call GetReg ! 2338: movl $11, (%esp) ! 2339: movzwl %ax, %esi ! 2340: call GetReg ! 2341: testl $1048576, %eax ! 2342: je .L328 ! 2343: leal -1048576(%eax,%eax), %eax ! 2344: .L329: ! 2345: movl STRam, %edx ! 2346: addl %edx, %eax ! 2347: movb %bl, (%esi,%eax) ! 2348: movl -8(%ebp), %ebx ! 2349: movl -4(%ebp), %esi ! 2350: movl %ebp, %esp ! 2351: popl %ebp ! 2352: ret ! 2353: .p2align 4,,7 ! 2354: .L328: ! 2355: leal -983040(%eax,%eax), %eax ! 2356: jmp .L329 ! 2357: .size Call_PutPix, .-Call_PutPix ! 2358: .p2align 4,,15 ! 2359: .globl Call_FillLine ! 2360: .type Call_FillLine, @function ! 2361: Call_FillLine: ! 2362: pushl %ebp ! 2363: movl %esp, %ebp ! 2364: pushl %ebx ! 2365: subl $4, %esp ! 2366: movl $15, (%esp) ! 2367: call GetReg ! 2368: movl %eax, (%esp) ! 2369: call MemReadWord ! 2370: movl $4, (%esp) ! 2371: movswl %ax,%ebx ! 2372: sarl $2, %ebx ! 2373: call GetReg ! 2374: movl $5, (%esp) ! 2375: call GetReg ! 2376: movl $11, (%esp) ! 2377: call GetReg ! 2378: testl $1048576, %eax ! 2379: je .L331 ! 2380: leal -1048576(%eax,%eax), %eax ! 2381: .L332: ! 2382: movl STRam, %edx ! 2383: addl %edx, %eax ! 2384: movl $319, %edx ! 2385: .p2align 4,,15 ! 2386: .L336: ! 2387: movb %bl, (%eax) ! 2388: decl %edx ! 2389: incl %eax ! 2390: cmpl $-1, %edx ! 2391: jne .L336 ! 2392: popl %ecx ! 2393: popl %ebx ! 2394: popl %ebp ! 2395: ret ! 2396: .L331: ! 2397: leal -983040(%eax,%eax), %eax ! 2398: jmp .L332 ! 2399: .size Call_FillLine, .-Call_FillLine ! 2400: .p2align 4,,15 ! 2401: .globl Call_BackHLine ! 2402: .type Call_BackHLine, @function ! 2403: Call_BackHLine: ! 2404: pushl %ebp ! 2405: movl %esp, %ebp ! 2406: pushl %edi ! 2407: pushl %esi ! 2408: pushl %ebx ! 2409: subl $12, %esp ! 2410: movl $15, (%esp) ! 2411: call GetReg ! 2412: movl %eax, (%esp) ! 2413: call MemReadWord ! 2414: movl $11, (%esp) ! 2415: movswl %ax,%edi ! 2416: sarl $2, %edi ! 2417: call GetReg ! 2418: movl $7, (%esp) ! 2419: movl %eax, %esi ! 2420: call GetReg ! 2421: testl $1048576, %esi ! 2422: movzwl %ax, %ebx ! 2423: je .L340 ! 2424: leal -1048576(%esi,%esi), %esi ! 2425: .L341: ! 2426: movl STRam, %edx ! 2427: movl $15, %ecx ! 2428: addl %esi, %edx ! 2429: .p2align 4,,15 ! 2430: .L347: ! 2431: movl %ebx, %eax ! 2432: sarl %cl, %eax ! 2433: testb $1, %al ! 2434: je .L346 ! 2435: cmpb $0, (%edx) ! 2436: jne .L346 ! 2437: movl %edi, %eax ! 2438: movb %al, (%edx) ! 2439: .p2align 4,,15 ! 2440: .L346: ! 2441: incl %edx ! 2442: decl %ecx ! 2443: jns .L347 ! 2444: addl $12, %esp ! 2445: popl %ebx ! 2446: popl %esi ! 2447: popl %edi ! 2448: popl %ebp ! 2449: ret ! 2450: .L340: ! 2451: leal -983040(%esi,%esi), %esi ! 2452: jmp .L341 ! 2453: .size Call_BackHLine, .-Call_BackHLine ! 2454: .p2align 4,,15 ! 2455: .globl Call_OldHLine ! 2456: .type Call_OldHLine, @function ! 2457: Call_OldHLine: ! 2458: pushl %ebp ! 2459: movl %esp, %ebp ! 2460: pushl %edi ! 2461: pushl %esi ! 2462: pushl %ebx ! 2463: subl $12, %esp ! 2464: movl $15, (%esp) ! 2465: call GetReg ! 2466: movl %eax, (%esp) ! 2467: call MemReadWord ! 2468: movl $4, (%esp) ! 2469: movswl %ax,%esi ! 2470: sarl $2, %esi ! 2471: call GetReg ! 2472: movl $5, (%esp) ! 2473: movzwl %ax, %edi ! 2474: call GetReg ! 2475: movl $11, (%esp) ! 2476: movzwl %ax, %ebx ! 2477: call GetReg ! 2478: testl $1048576, %eax ! 2479: leal -1048576(%eax,%eax), %edx ! 2480: jne .L352 ! 2481: leal -983040(%eax,%eax), %edx ! 2482: .L352: ! 2483: movl %ebx, %eax ! 2484: movl STRam, %ecx ! 2485: shrl $31, %eax ! 2486: addl %eax, %ebx ! 2487: sarl %ebx ! 2488: addl %ecx, %edx ! 2489: decl %ebx ! 2490: leal (%edi,%edx), %eax ! 2491: cmpl $-1, %ebx ! 2492: je .L358 ! 2493: .p2align 4,,15 ! 2494: .L356: ! 2495: movl %esi, %edx ! 2496: decl %ebx ! 2497: movb %dl, (%eax) ! 2498: incl %eax ! 2499: cmpl $-1, %ebx ! 2500: jne .L356 ! 2501: .L358: ! 2502: addl $12, %esp ! 2503: popl %ebx ! 2504: popl %esi ! 2505: popl %edi ! 2506: popl %ebp ! 2507: ret ! 2508: .size Call_OldHLine, .-Call_OldHLine ! 2509: .p2align 4,,15 ! 2510: .globl Call_HLine ! 2511: .type Call_HLine, @function ! 2512: Call_HLine: ! 2513: pushl %ebp ! 2514: movl %esp, %ebp ! 2515: pushl %edi ! 2516: pushl %esi ! 2517: pushl %ebx ! 2518: subl $12, %esp ! 2519: movl $1, (%esp) ! 2520: call GetReg ! 2521: movl $4, (%esp) ! 2522: movzwl %ax,%esi ! 2523: sarl $2, %esi ! 2524: call GetReg ! 2525: movl $5, (%esp) ! 2526: movzwl %ax,%edi ! 2527: call GetReg ! 2528: movl $11, (%esp) ! 2529: movzwl %ax,%ebx ! 2530: decl %ebx ! 2531: call GetReg ! 2532: movl STRam, %edx ! 2533: addl %edx, %eax ! 2534: addl %edi, %eax ! 2535: cmpl $-1, %ebx ! 2536: je .L365 ! 2537: .p2align 4,,15 ! 2538: .L363: ! 2539: movl %esi, %edx ! 2540: decl %ebx ! 2541: movb %dl, (%eax) ! 2542: incl %eax ! 2543: cmpl $-1, %ebx ! 2544: jne .L363 ! 2545: .L365: ! 2546: addl $12, %esp ! 2547: popl %ebx ! 2548: popl %esi ! 2549: popl %edi ! 2550: popl %ebp ! 2551: ret ! 2552: .size Call_HLine, .-Call_HLine ! 2553: .p2align 4,,15 ! 2554: .globl Call_BlitBmp ! 2555: .type Call_BlitBmp, @function ! 2556: Call_BlitBmp: ! 2557: pushl %ebp ! 2558: movl %esp, %ebp ! 2559: pushl %edi ! 2560: pushl %esi ! 2561: pushl %ebx ! 2562: subl $60, %esp ! 2563: movl $15, (%esp) ! 2564: call GetReg ! 2565: movl %eax, %esi ! 2566: subl $2, %esi ! 2567: leal 2(%esi), %eax ! 2568: movl %eax, (%esp) ! 2569: call MemReadWord ! 2570: cwtl ! 2571: movl %eax, -16(%ebp) ! 2572: leal 4(%esi), %eax ! 2573: movl %eax, (%esp) ! 2574: call MemReadWord ! 2575: cwtl ! 2576: movl %eax, -20(%ebp) ! 2577: leal 6(%esi), %eax ! 2578: movl %eax, (%esp) ! 2579: call MemReadWord ! 2580: cwtl ! 2581: movl %eax, -24(%ebp) ! 2582: leal 8(%esi), %eax ! 2583: movl %eax, (%esp) ! 2584: call MemReadWord ! 2585: movswl %ax,%edi ! 2586: leal 10(%esi), %eax ! 2587: movl %eax, (%esp) ! 2588: call MemReadLong ! 2589: movl %eax, %ebx ! 2590: leal 14(%esi), %eax ! 2591: movl %eax, (%esp) ! 2592: call MemReadLong ! 2593: movl STRam, %edx ! 2594: movl -24(%ebp), %esi ! 2595: leal 4(%ebx,%edx), %ebx ! 2596: movl %ebx, -28(%ebp) ! 2597: addl %eax, %edx ! 2598: movl -24(%ebp), %ebx ! 2599: leal (%edi,%edi,4), %eax ! 2600: sall $6, %eax ! 2601: addl %eax, %edx ! 2602: addl %esi, %edx ! 2603: testl %ebx, %ebx ! 2604: movl %edx, -32(%ebp) ! 2605: js .L366 ! 2606: testl %edi, %edi ! 2607: js .L366 ! 2608: cmpl $200, -20(%ebp) ! 2609: jg .L366 ! 2610: cmpl $320, -16(%ebp) ! 2611: jg .L366 ! 2612: movl -20(%ebp), %eax ! 2613: movl -16(%ebp), %ecx ! 2614: imull %ecx, %eax ! 2615: addl %eax, %eax ! 2616: movl %eax, -56(%ebp) ! 2617: movl -20(%ebp), %eax ! 2618: decl %eax ! 2619: movl %eax, -40(%ebp) ! 2620: incl %eax ! 2621: je .L366 ! 2622: .L388: ! 2623: movl -32(%ebp), %esi ! 2624: movl -16(%ebp), %eax ! 2625: leal 320(%esi), %edx ! 2626: movl %edx, -32(%ebp) ! 2627: testl %eax, %eax ! 2628: movl %eax, -36(%ebp) ! 2629: je .L391 ! 2630: movl -56(%ebp), %edx ! 2631: leal (%edx,%edx,2), %edx ! 2632: movl %edx, -60(%ebp) ! 2633: .L387: ! 2634: movl -28(%ebp), %edx ! 2635: xorl %ebx, %ebx ! 2636: movzwl (%edx), %eax ! 2637: #APP ! 2638: xchgb %al,%ah ! 2639: #NO_APP ! 2640: cwtl ! 2641: movl %eax, -44(%ebp) ! 2642: movl -56(%ebp), %eax ! 2643: addl %eax, %edx ! 2644: movzwl (%edx), %eax ! 2645: #APP ! 2646: xchgb %al,%ah ! 2647: #NO_APP ! 2648: movl %edx, -28(%ebp) ! 2649: cwtl ! 2650: movl %eax, -48(%ebp) ! 2651: movl -56(%ebp), %eax ! 2652: addl %eax, %edx ! 2653: movzwl (%edx), %eax ! 2654: #APP ! 2655: xchgb %al,%ah ! 2656: #NO_APP ! 2657: movl %edx, -28(%ebp) ! 2658: cwtl ! 2659: movl %eax, -52(%ebp) ! 2660: movl -56(%ebp), %eax ! 2661: addl %eax, %edx ! 2662: movzwl (%edx), %eax ! 2663: movl %edx, -28(%ebp) ! 2664: #APP ! 2665: xchgb %al,%ah ! 2666: #NO_APP ! 2667: movswl %ax,%edi ! 2668: .p2align 4,,15 ! 2669: .L386: ! 2670: movl -44(%ebp), %eax ! 2671: movl $15, %ecx ! 2672: subl %ebx, %ecx ! 2673: incl %ebx ! 2674: sarl %cl, %eax ! 2675: movb %al, %dl ! 2676: movl -48(%ebp), %eax ! 2677: andb $1, %dl ! 2678: sarl %cl, %eax ! 2679: andl $1, %eax ! 2680: addl %eax, %eax ! 2681: orb %al, %dl ! 2682: movl -52(%ebp), %eax ! 2683: sarl %cl, %eax ! 2684: andl $1, %eax ! 2685: sall $2, %eax ! 2686: orb %al, %dl ! 2687: movl %edi, %eax ! 2688: sarl %cl, %eax ! 2689: andl $1, %eax ! 2690: sall $3, %eax ! 2691: orb %al, %dl ! 2692: movb %dl, (%esi) ! 2693: incl %esi ! 2694: cmpl $15, %ebx ! 2695: jle .L386 ! 2696: movl -60(%ebp), %edx ! 2697: subl %edx, -28(%ebp) ! 2698: addl $2, -28(%ebp) ! 2699: decl -36(%ebp) ! 2700: jne .L387 ! 2701: .L391: ! 2702: decl -40(%ebp) ! 2703: cmpl $-1, -40(%ebp) ! 2704: jne .L388 ! 2705: .L366: ! 2706: addl $60, %esp ! 2707: popl %ebx ! 2708: popl %esi ! 2709: popl %edi ! 2710: popl %ebp ! 2711: ret ! 2712: .size Call_BlitBmp, .-Call_BlitBmp ! 2713: .p2align 4,,15 ! 2714: .globl Call_DrawStrShadowed ! 2715: .type Call_DrawStrShadowed, @function ! 2716: Call_DrawStrShadowed: ! 2717: pushl %ebp ! 2718: movl %esp, %ebp ! 2719: subl $40, %esp ! 2720: movl $8, (%esp) ! 2721: movl %ebx, -12(%ebp) ! 2722: movl %esi, -8(%ebp) ! 2723: movl %edi, -4(%ebp) ! 2724: call GetReg ! 2725: movl $0, (%esp) ! 2726: movl STRam, %ecx ! 2727: movl %eax, %ebx ! 2728: addl %ecx, %ebx ! 2729: call GetReg ! 2730: movl $2, (%esp) ! 2731: movl %eax, %edi ! 2732: call GetReg ! 2733: movl $1, (%esp) ! 2734: movl %eax, %esi ! 2735: call GetReg ! 2736: movl %eax, (%esp) ! 2737: movl $1, %edx ! 2738: movl %edx, 16(%esp) ! 2739: movl %ebx, 12(%esp) ! 2740: movl %edi, 8(%esp) ! 2741: movl %esi, 4(%esp) ! 2742: call DrawStr ! 2743: movl %eax, 4(%esp) ! 2744: movl $1, (%esp) ! 2745: call SetReg ! 2746: movl -12(%ebp), %ebx ! 2747: movl -8(%ebp), %esi ! 2748: movl -4(%ebp), %edi ! 2749: movl %ebp, %esp ! 2750: popl %ebp ! 2751: ret ! 2752: .size Call_DrawStrShadowed, .-Call_DrawStrShadowed ! 2753: .p2align 4,,15 ! 2754: .globl Call_DrawStr ! 2755: .type Call_DrawStr, @function ! 2756: Call_DrawStr: ! 2757: pushl %ebp ! 2758: movl %esp, %ebp ! 2759: subl $40, %esp ! 2760: movl $8, (%esp) ! 2761: movl %ebx, -12(%ebp) ! 2762: movl %esi, -8(%ebp) ! 2763: movl %edi, -4(%ebp) ! 2764: call GetReg ! 2765: movl $0, (%esp) ! 2766: movl STRam, %ecx ! 2767: movl %eax, %ebx ! 2768: addl %ecx, %ebx ! 2769: call GetReg ! 2770: movl $2, (%esp) ! 2771: movl %eax, %edi ! 2772: call GetReg ! 2773: movl $1, (%esp) ! 2774: movl %eax, %esi ! 2775: call GetReg ! 2776: movl %eax, (%esp) ! 2777: xorl %edx, %edx ! 2778: movl %edx, 16(%esp) ! 2779: movl %ebx, 12(%esp) ! 2780: movl %edi, 8(%esp) ! 2781: movl %esi, 4(%esp) ! 2782: call DrawStr ! 2783: movl %eax, 4(%esp) ! 2784: movl $1, (%esp) ! 2785: call SetReg ! 2786: movl -12(%ebp), %ebx ! 2787: movl -8(%ebp), %esi ! 2788: movl -4(%ebp), %edi ! 2789: movl %ebp, %esp ! 2790: popl %ebp ! 2791: ret ! 2792: .size Call_DrawStr, .-Call_DrawStr ! 2793: .p2align 4,,15 ! 2794: .globl Call_SetMainPalette ! 2795: .type Call_SetMainPalette, @function ! 2796: Call_SetMainPalette: ! 2797: pushl %ebp ! 2798: movl %esp, %ebp ! 2799: pushl %esi ! 2800: xorl %esi, %esi ! 2801: pushl %ebx ! 2802: subl $16, %esp ! 2803: movl $15, (%esp) ! 2804: call GetReg ! 2805: movl %eax, (%esp) ! 2806: call MemReadLong ! 2807: movl %eax, %ebx ! 2808: .p2align 4,,15 ! 2809: .L401: ! 2810: movl %ebx, (%esp) ! 2811: addl $2, %ebx ! 2812: call MemReadWord ! 2813: movw %ax, MainPalette(%esi,%esi) ! 2814: incl %esi ! 2815: cmpl $15, %esi ! 2816: jle .L401 ! 2817: addl $16, %esp ! 2818: popl %ebx ! 2819: popl %esi ! 2820: popl %ebp ! 2821: ret ! 2822: .size Call_SetMainPalette, .-Call_SetMainPalette ! 2823: .p2align 4,,15 ! 2824: .globl Call_SetCtrlPalette ! 2825: .type Call_SetCtrlPalette, @function ! 2826: Call_SetCtrlPalette: ! 2827: pushl %ebp ! 2828: movl %esp, %ebp ! 2829: pushl %esi ! 2830: xorl %esi, %esi ! 2831: pushl %ebx ! 2832: subl $16, %esp ! 2833: movl $15, (%esp) ! 2834: call GetReg ! 2835: movl %eax, (%esp) ! 2836: call MemReadLong ! 2837: movl %eax, %ebx ! 2838: .p2align 4,,15 ! 2839: .L409: ! 2840: movl %ebx, (%esp) ! 2841: addl $2, %ebx ! 2842: call MemReadWord ! 2843: movw %ax, CtrlPalette(%esi,%esi) ! 2844: incl %esi ! 2845: cmpl $15, %esi ! 2846: jle .L409 ! 2847: addl $16, %esp ! 2848: popl %ebx ! 2849: popl %esi ! 2850: popl %ebp ! 2851: ret ! 2852: .size Call_SetCtrlPalette, .-Call_SetCtrlPalette ! 2853: .p2align 4,,15 ! 2854: .globl Call_InformScreens ! 2855: .type Call_InformScreens, @function ! 2856: Call_InformScreens: ! 2857: pushl %ebp ! 2858: movl %esp, %ebp ! 2859: subl $8, %esp ! 2860: movl $15, (%esp) ! 2861: movl %ebx, -4(%ebp) ! 2862: call GetReg ! 2863: movl %eax, %ebx ! 2864: subl $2, %ebx ! 2865: leal 2(%ebx), %eax ! 2866: movl %eax, (%esp) ! 2867: call MemReadLong ! 2868: movl %eax, physcreen2 ! 2869: leal 6(%ebx), %eax ! 2870: movl %eax, (%esp) ! 2871: call MemReadLong ! 2872: movl %eax, logscreen2 ! 2873: leal 10(%ebx), %eax ! 2874: movl %eax, (%esp) ! 2875: call MemReadLong ! 2876: movl %eax, physcreen ! 2877: leal 14(%ebx), %eax ! 2878: movl %eax, (%esp) ! 2879: call MemReadLong ! 2880: movl %eax, logscreen ! 2881: movl -4(%ebp), %ebx ! 2882: movl %ebp, %esp ! 2883: popl %ebp ! 2884: ret ! 2885: .size Call_InformScreens, .-Call_InformScreens ! 2886: .p2align 4,,15 ! 2887: .globl Call_SetScreenBase ! 2888: .type Call_SetScreenBase, @function ! 2889: Call_SetScreenBase: ! 2890: pushl %ebp ! 2891: movl %esp, %ebp ! 2892: pushl %ebx ! 2893: subl $4, %esp ! 2894: movl $15, (%esp) ! 2895: call GetReg ! 2896: movl %eax, (%esp) ! 2897: call MemReadLong ! 2898: movl %eax, VideoBase ! 2899: movl STRam, %edx ! 2900: movl len_working_ext_pal, %ecx ! 2901: addl %edx, %eax ! 2902: xorl %edx, %edx ! 2903: cmpl %ecx, %edx ! 2904: movl %eax, VideoRaster ! 2905: jge .L420 ! 2906: movl $MainPalette, %ebx ! 2907: .p2align 4,,15 ! 2908: .L418: ! 2909: movzwl working_ext_pal(%edx,%edx), %eax ! 2910: movw %ax, 32(%ebx,%edx,2) ! 2911: incl %edx ! 2912: cmpl %ecx, %edx ! 2913: jl .L418 ! 2914: .L420: ! 2915: leal 16(%ecx), %eax ! 2916: movl %eax, len_main_palette ! 2917: popl %ebx ! 2918: popl %ebx ! 2919: popl %ebp ! 2920: ret ! 2921: .size Call_SetScreenBase, .-Call_SetScreenBase ! 2922: .p2align 4,,15 ! 2923: .globl Call_MakeExtPalette ! 2924: .type Call_MakeExtPalette, @function ! 2925: Call_MakeExtPalette: ! 2926: pushl %ebp ! 2927: movl %esp, %ebp ! 2928: pushl %edi ! 2929: pushl %esi ! 2930: xorl %esi, %esi ! 2931: pushl %ebx ! 2932: subl $12, %esp ! 2933: movl $15, (%esp) ! 2934: call GetReg ! 2935: movl %eax, (%esp) ! 2936: call MemReadLong ! 2937: movl %eax, (%esp) ! 2938: movl %eax, %ebx ! 2939: addl $2, %ebx ! 2940: call MemReadWord ! 2941: movswl %ax,%edi ! 2942: sarl $2, %edi ! 2943: cmpl %edi, %esi ! 2944: movl %edi, len_working_ext_pal ! 2945: jl .L426 ! 2946: .L428: ! 2947: addl $12, %esp ! 2948: popl %ebx ! 2949: popl %esi ! 2950: popl %edi ! 2951: popl %ebp ! 2952: ret ! 2953: .p2align 4,,7 ! 2954: .L426: ! 2955: movl %ebx, (%esp) ! 2956: addl $2, %ebx ! 2957: call MemReadWord ! 2958: movw %ax, working_ext_pal(%esi,%esi) ! 2959: incl %esi ! 2960: movl %ebx, (%esp) ! 2961: call MemReadWord ! 2962: movl %ebx, (%esp) ! 2963: cwtl ! 2964: addl $64, %eax ! 2965: movl %eax, 4(%esp) ! 2966: addl $2, %ebx ! 2967: call MemWriteWord ! 2968: cmpl %edi, %esi ! 2969: jl .L426 ! 2970: jmp .L428 ! 2971: .size Call_MakeExtPalette, .-Call_MakeExtPalette ! 2972: .section .rodata.str1.1 ! 2973: .LC11: ! 2974: .string "D: " ! 2975: .LC12: ! 2976: .string "$%x " ! 2977: .LC13: ! 2978: .string "A: " ! 2979: .text ! 2980: .p2align 4,,15 ! 2981: .globl Call_DumpRegs ! 2982: .type Call_DumpRegs, @function ! 2983: Call_DumpRegs: ! 2984: pushl %ebp ! 2985: movl %esp, %ebp ! 2986: pushl %ebx ! 2987: subl $20, %esp ! 2988: xorl %ebx, %ebx ! 2989: movl $.LC11, (%esp) ! 2990: call printf ! 2991: .p2align 4,,15 ! 2992: .L434: ! 2993: movl %ebx, (%esp) ! 2994: incl %ebx ! 2995: call GetReg ! 2996: movl %eax, 4(%esp) ! 2997: movl $.LC12, (%esp) ! 2998: call printf ! 2999: cmpl $7, %ebx ! 3000: jle .L434 ! 3001: movl $10, (%esp) ! 3002: xorl %ebx, %ebx ! 3003: call putchar ! 3004: movl $.LC13, (%esp) ! 3005: call printf ! 3006: .p2align 4,,15 ! 3007: .L439: ! 3008: leal 8(%ebx), %eax ! 3009: incl %ebx ! 3010: movl %eax, (%esp) ! 3011: call GetReg ! 3012: movl %eax, 4(%esp) ! 3013: movl $.LC12, (%esp) ! 3014: call printf ! 3015: cmpl $7, %ebx ! 3016: jle .L439 ! 3017: movl $10, (%esp) ! 3018: call putchar ! 3019: addl $20, %esp ! 3020: popl %ebx ! 3021: popl %ebp ! 3022: ret ! 3023: .size Call_DumpRegs, .-Call_DumpRegs ! 3024: .p2align 4,,15 ! 3025: .globl Call_NotifyOfScrFlip ! 3026: .type Call_NotifyOfScrFlip, @function ! 3027: Call_NotifyOfScrFlip: ! 3028: pushl %ebp ! 3029: movl $1, %ecx ! 3030: movl %esp, %ebp ! 3031: popl %ebp ! 3032: movl %ecx, bScreenContentsChanged ! 3033: ret ! 3034: .size Call_NotifyOfScrFlip, .-Call_NotifyOfScrFlip ! 3035: .p2align 4,,15 ! 3036: .globl Call_NotifyMousePos ! 3037: .type Call_NotifyMousePos, @function ! 3038: Call_NotifyMousePos: ! 3039: pushl %ebp ! 3040: movl %esp, %ebp ! 3041: popl %ebp ! 3042: ret ! 3043: .size Call_NotifyMousePos, .-Call_NotifyMousePos ! 3044: .p2align 4,,15 ! 3045: .globl Call_DrawQuad ! 3046: .type Call_DrawQuad, @function ! 3047: Call_DrawQuad: ! 3048: pushl %ebp ! 3049: movl %esp, %ebp ! 3050: pushl %esi ! 3051: pushl %ebx ! 3052: subl $48, %esp ! 3053: movl $0, (%esp) ! 3054: call GetReg ! 3055: pushl %eax ! 3056: fildl (%esp) ! 3057: addl $4, %esp ! 3058: movl $1, (%esp) ! 3059: fstps -40(%ebp) ! 3060: call GetReg ! 3061: pushl %eax ! 3062: fildl (%esp) ! 3063: addl $4, %esp ! 3064: movl $2, (%esp) ! 3065: fstps -36(%ebp) ! 3066: call GetReg ! 3067: pushl %eax ! 3068: fildl (%esp) ! 3069: addl $4, %esp ! 3070: movl $3, (%esp) ! 3071: fstps -32(%ebp) ! 3072: call GetReg ! 3073: pushl %eax ! 3074: fildl (%esp) ! 3075: addl $4, %esp ! 3076: movl $4, (%esp) ! 3077: fstps -28(%ebp) ! 3078: call GetReg ! 3079: pushl %eax ! 3080: fildl (%esp) ! 3081: addl $4, %esp ! 3082: movl $5, (%esp) ! 3083: fstps -24(%ebp) ! 3084: call GetReg ! 3085: pushl %eax ! 3086: fildl (%esp) ! 3087: addl $4, %esp ! 3088: movl $6, (%esp) ! 3089: fstps -20(%ebp) ! 3090: call GetReg ! 3091: pushl %eax ! 3092: fildl (%esp) ! 3093: addl $4, %esp ! 3094: movl $7, (%esp) ! 3095: fstps -16(%ebp) ! 3096: call GetReg ! 3097: pushl %eax ! 3098: xorl %edx, %edx ! 3099: fld1 ! 3100: fildl (%esp) ! 3101: addl $4, %esp ! 3102: fstps -12(%ebp) ! 3103: .p2align 4,,15 ! 3104: .L462: ! 3105: xorl %ecx, %ecx ! 3106: movl $-1, %ebx ! 3107: xorl %esi, %esi ! 3108: .p2align 4,,15 ! 3109: .L460: ! 3110: cmpl %esi, %edx ! 3111: je .L453 ! 3112: flds -36(%ebp,%edx,8) ! 3113: flds -36(%ebp,%esi,8) ! 3114: fxch %st(1) ! 3115: fucom %st(1) ! 3116: fnstsw %ax ! 3117: sahf ! 3118: jbe .L456 ! 3119: incl %ecx ! 3120: .L456: ! 3121: fucompp ! 3122: fnstsw %ax ! 3123: sahf ! 3124: jne .L453 ! 3125: jp .L453 ! 3126: movl %esi, %ebx ! 3127: .p2align 4,,15 ! 3128: .L453: ! 3129: incl %esi ! 3130: cmpl $3, %esi ! 3131: jle .L460 ! 3132: cmpl $2, %ecx ! 3133: je .L467 ! 3134: .L449: ! 3135: incl %edx ! 3136: cmpl $3, %edx ! 3137: jle .L462 ! 3138: fstp %st(0) ! 3139: .L448: ! 3140: movl $8, (%esp) ! 3141: call GetReg ! 3142: testl %eax, %eax ! 3143: js .L468 ! 3144: .L463: ! 3145: sarl $2, %eax ! 3146: movl $4, %ebx ! 3147: movl %eax, 8(%esp) ! 3148: leal -40(%ebp), %eax ! 3149: movl %ebx, 4(%esp) ! 3150: movl %eax, (%esp) ! 3151: call DrawPoly ! 3152: addl $48, %esp ! 3153: popl %ebx ! 3154: popl %esi ! 3155: popl %ebp ! 3156: ret ! 3157: .L468: ! 3158: addl $3, %eax ! 3159: jmp .L463 ! 3160: .L467: ! 3161: cmpl $-1, %ebx ! 3162: je .L449 ! 3163: flds -36(%ebp,%ebx,8) ! 3164: fsub %st(1), %st ! 3165: fstps -36(%ebp,%ebx,8) ! 3166: flds -36(%ebp,%edx,8) ! 3167: fsubp %st, %st(1) ! 3168: fstps -36(%ebp,%edx,8) ! 3169: jmp .L448 ! 3170: .size Call_DrawQuad, .-Call_DrawQuad ! 3171: .p2align 4,,15 ! 3172: .globl Call_DrawTriangle ! 3173: .type Call_DrawTriangle, @function ! 3174: Call_DrawTriangle: ! 3175: pushl %ebp ! 3176: movl %esp, %ebp ! 3177: pushl %edi ! 3178: pushl %esi ! 3179: pushl %ebx ! 3180: subl $44, %esp ! 3181: movl $8, (%esp) ! 3182: call GetReg ! 3183: cwtl ! 3184: testl %eax, %eax ! 3185: js .L471 ! 3186: .L470: ! 3187: movl $5, (%esp) ! 3188: sarl $2, %eax ! 3189: movl %eax, -16(%ebp) ! 3190: call GetReg ! 3191: movl $4, (%esp) ! 3192: cwtl ! 3193: movl %eax, -20(%ebp) ! 3194: call GetReg ! 3195: movl $3, (%esp) ! 3196: cwtl ! 3197: movl %eax, -24(%ebp) ! 3198: call GetReg ! 3199: movl $2, (%esp) ! 3200: movswl %ax,%ebx ! 3201: call GetReg ! 3202: movl $1, (%esp) ! 3203: movswl %ax,%edi ! 3204: call GetReg ! 3205: movl $0, (%esp) ! 3206: movswl %ax,%esi ! 3207: call GetReg ! 3208: movl %ebx, 12(%esp) ! 3209: movl -16(%ebp), %edx ! 3210: cwtl ! 3211: movl %edi, 8(%esp) ! 3212: movl %esi, 4(%esp) ! 3213: movl %edx, 24(%esp) ! 3214: movl -20(%ebp), %edx ! 3215: movl %eax, (%esp) ! 3216: movl %edx, 20(%esp) ! 3217: movl -24(%ebp), %edx ! 3218: movl %edx, 16(%esp) ! 3219: call DrawTriangle ! 3220: addl $44, %esp ! 3221: popl %ebx ! 3222: popl %esi ! 3223: popl %edi ! 3224: popl %ebp ! 3225: ret ! 3226: .p2align 4,,7 ! 3227: .L471: ! 3228: addl $3, %eax ! 3229: jmp .L470 ! 3230: .size Call_DrawTriangle, .-Call_DrawTriangle ! 3231: .p2align 4,,15 ! 3232: .globl Call_HostUpdate ! 3233: .type Call_HostUpdate, @function ! 3234: Call_HostUpdate: ! 3235: pushl %ebp ! 3236: movl %esp, %ebp ! 3237: subl $8, %esp ! 3238: call Keymap_DebounceAllKeys ! 3239: call ShortCut_CheckKeys ! 3240: movl %ebp, %esp ! 3241: popl %ebp ! 3242: jmp Main_EventHandler ! 3243: .size Call_HostUpdate, .-Call_HostUpdate ! 3244: .p2align 4,,15 ! 3245: .type SetExceptionHandler, @function ! 3246: SetExceptionHandler: ! 3247: pushl %ebp ! 3248: movl %esp, %ebp ! 3249: subl $8, %esp ! 3250: movl $0, (%esp) ! 3251: movl %ebx, -4(%ebp) ! 3252: call GetReg ! 3253: movl $8, (%esp) ! 3254: movl %eax, %ebx ! 3255: andl $31, %ebx ! 3256: call GetReg ! 3257: movl %eax, exception_handlers(,%ebx,4) ! 3258: movl -4(%ebp), %ebx ! 3259: movl %ebp, %esp ! 3260: popl %ebp ! 3261: ret ! 3262: .size SetExceptionHandler, .-SetExceptionHandler ! 3263: .section .rodata.str1.32,"aMS",@progbits,1 ! 3264: .align 32 ! 3265: .LC16: ! 3266: .string " $%x $%x $%x $%x $%x $%x $%x $%x*$%x $%x $%x $%x $%x $%x $%x $%x:%d\n" ! 3267: .text ! 3268: .p2align 4,,15 ! 3269: .globl DumpMess ! 3270: .type DumpMess, @function ! 3271: DumpMess: ! 3272: pushl %ebp ! 3273: movl %esp, %ebp ! 3274: pushl %edi ! 3275: pushl %esi ! 3276: pushl %ebx ! 3277: subl $124, %esp ! 3278: cmpb $0, X ! 3279: jne .L485 ! 3280: .L475: ! 3281: cmpb $0, Z ! 3282: jne .L486 ! 3283: .L477: ! 3284: cmpb $0, N ! 3285: jne .L487 ! 3286: .L479: ! 3287: cmpb $0, V ! 3288: jne .L488 ! 3289: .L481: ! 3290: cmpb $0, C ! 3291: jne .L489 ! 3292: .L483: ! 3293: movl $15, (%esp) ! 3294: call GetReg ! 3295: movl %eax, -16(%ebp) ! 3296: movl $14, (%esp) ! 3297: call GetReg ! 3298: movl %eax, -20(%ebp) ! 3299: movl $13, (%esp) ! 3300: call GetReg ! 3301: movl %eax, -24(%ebp) ! 3302: movl $12, (%esp) ! 3303: call GetReg ! 3304: movl %eax, -28(%ebp) ! 3305: movl $11, (%esp) ! 3306: call GetReg ! 3307: movl %eax, -32(%ebp) ! 3308: movl $10, (%esp) ! 3309: call GetReg ! 3310: movl %eax, -36(%ebp) ! 3311: movl $9, (%esp) ! 3312: call GetReg ! 3313: movl %eax, -40(%ebp) ! 3314: movl $8, (%esp) ! 3315: call GetReg ! 3316: movl %eax, -44(%ebp) ! 3317: movl $7, (%esp) ! 3318: call GetReg ! 3319: movl %eax, -48(%ebp) ! 3320: movl $6, (%esp) ! 3321: call GetReg ! 3322: movl %eax, -52(%ebp) ! 3323: movl $5, (%esp) ! 3324: call GetReg ! 3325: movl %eax, -56(%ebp) ! 3326: movl $4, (%esp) ! 3327: call GetReg ! 3328: movl %eax, -60(%ebp) ! 3329: movl $3, (%esp) ! 3330: call GetReg ! 3331: movl $2, (%esp) ! 3332: movl %eax, %edi ! 3333: call GetReg ! 3334: movl $1, (%esp) ! 3335: movl %eax, %esi ! 3336: call GetReg ! 3337: movl $0, (%esp) ! 3338: movl %eax, %ebx ! 3339: call GetReg ! 3340: movl %eax, 4(%esp) ! 3341: movl line_no, %edx ! 3342: movl %edi, 16(%esp) ! 3343: movl %esi, 12(%esp) ! 3344: movl %edx, 68(%esp) ! 3345: movl -16(%ebp), %edx ! 3346: movl %ebx, 8(%esp) ! 3347: movl $.LC16, (%esp) ! 3348: movl %edx, 64(%esp) ! 3349: movl -20(%ebp), %edx ! 3350: movl %edx, 60(%esp) ! 3351: movl -24(%ebp), %edx ! 3352: movl %edx, 56(%esp) ! 3353: movl -28(%ebp), %edx ! 3354: movl %edx, 52(%esp) ! 3355: movl -32(%ebp), %edx ! 3356: movl %edx, 48(%esp) ! 3357: movl -36(%ebp), %edx ! 3358: movl %edx, 44(%esp) ! 3359: movl -40(%ebp), %edx ! 3360: movl %edx, 40(%esp) ! 3361: movl -44(%ebp), %edx ! 3362: movl %edx, 36(%esp) ! 3363: movl -48(%ebp), %edx ! 3364: movl %edx, 32(%esp) ! 3365: movl -52(%ebp), %edx ! 3366: movl %edx, 28(%esp) ! 3367: movl -56(%ebp), %edx ! 3368: movl %edx, 24(%esp) ! 3369: movl -60(%ebp), %edx ! 3370: movl %edx, 20(%esp) ! 3371: call printf ! 3372: addl $124, %esp ! 3373: popl %ebx ! 3374: popl %esi ! 3375: popl %edi ! 3376: popl %ebp ! 3377: ret ! 3378: .p2align 4,,7 ! 3379: .L489: ! 3380: movl $67, (%esp) ! 3381: movl stdout, %eax ! 3382: movl %eax, 4(%esp) ! 3383: call _IO_putc ! 3384: jmp .L483 ! 3385: .p2align 4,,7 ! 3386: .L488: ! 3387: movl $86, (%esp) ! 3388: movl stdout, %eax ! 3389: movl %eax, 4(%esp) ! 3390: call _IO_putc ! 3391: jmp .L481 ! 3392: .p2align 4,,7 ! 3393: .L487: ! 3394: movl $78, (%esp) ! 3395: movl stdout, %eax ! 3396: movl %eax, 4(%esp) ! 3397: call _IO_putc ! 3398: jmp .L479 ! 3399: .p2align 4,,7 ! 3400: .L486: ! 3401: movl $90, (%esp) ! 3402: movl stdout, %eax ! 3403: movl %eax, 4(%esp) ! 3404: call _IO_putc ! 3405: jmp .L477 ! 3406: .p2align 4,,7 ! 3407: .L485: ! 3408: movl $88, (%esp) ! 3409: movl stdout, %eax ! 3410: movl %eax, 4(%esp) ! 3411: call _IO_putc ! 3412: jmp .L475 ! 3413: .size DumpMess, .-DumpMess ! 3414: .local PrevRegs.0 ! 3415: .comm PrevRegs.0,64,32 ! 3416: .section .rodata.str1.1 ! 3417: .LC17: ! 3418: .string " %c%d:%x" ! 3419: .LC18: ! 3420: .string "(%d)\n" ! 3421: .text ! 3422: .p2align 4,,15 ! 3423: .globl DumpRegsChanged ! 3424: .type DumpRegsChanged, @function ! 3425: DumpRegsChanged: ! 3426: pushl %ebp ! 3427: movl %esp, %ebp ! 3428: pushl %esi ! 3429: xorl %esi, %esi ! 3430: pushl %ebx ! 3431: subl $16, %esp ! 3432: xorl %ebx, %ebx ! 3433: .p2align 4,,15 ! 3434: .L510: ! 3435: movl %ebx, (%esp) ! 3436: call GetReg ! 3437: cmpl %eax, PrevRegs.0(,%ebx,4) ! 3438: je .L493 ! 3439: testl %esi, %esi ! 3440: jne .L496 ! 3441: cmpb $0, Z ! 3442: jne .L514 ! 3443: .L497: ! 3444: cmpb $0, V ! 3445: jne .L515 ! 3446: .L499: ! 3447: cmpb $0, C ! 3448: jne .L516 ! 3449: .L501: ! 3450: cmpb $0, N ! 3451: jne .L517 ! 3452: .L503: ! 3453: cmpb $0, X ! 3454: jne .L518 ! 3455: .L505: ! 3456: movl $1, %esi ! 3457: .L496: ! 3458: movl %ebx, (%esp) ! 3459: call GetReg ! 3460: movl %eax, 12(%esp) ! 3461: cmpl $7, %ebx ! 3462: movl %ebx, %eax ! 3463: jle .L507 ! 3464: leal -8(%ebx), %eax ! 3465: .L507: ! 3466: movl %eax, 8(%esp) ! 3467: xorl %eax, %eax ! 3468: cmpl $7, %ebx ! 3469: setle %al ! 3470: movl $.LC17, (%esp) ! 3471: leal 97(%eax,%eax,2), %eax ! 3472: movl %eax, 4(%esp) ! 3473: call printf ! 3474: movl %ebx, (%esp) ! 3475: call GetReg ! 3476: movl %eax, PrevRegs.0(,%ebx,4) ! 3477: .L493: ! 3478: incl %ebx ! 3479: cmpl $15, %ebx ! 3480: jle .L510 ! 3481: testl %esi, %esi ! 3482: jne .L519 ! 3483: .L490: ! 3484: addl $16, %esp ! 3485: popl %ebx ! 3486: popl %esi ! 3487: popl %ebp ! 3488: ret ! 3489: .L519: ! 3490: movl $.LC18, (%esp) ! 3491: movl line_no, %eax ! 3492: movl %eax, 4(%esp) ! 3493: call printf ! 3494: jmp .L490 ! 3495: .p2align 4,,7 ! 3496: .L518: ! 3497: movl $88, (%esp) ! 3498: movl stdout, %eax ! 3499: movl %eax, 4(%esp) ! 3500: call _IO_putc ! 3501: jmp .L505 ! 3502: .p2align 4,,7 ! 3503: .L517: ! 3504: movl $78, (%esp) ! 3505: movl stdout, %eax ! 3506: movl %eax, 4(%esp) ! 3507: call _IO_putc ! 3508: jmp .L503 ! 3509: .p2align 4,,7 ! 3510: .L516: ! 3511: movl $67, (%esp) ! 3512: movl stdout, %eax ! 3513: movl %eax, 4(%esp) ! 3514: call _IO_putc ! 3515: jmp .L501 ! 3516: .p2align 4,,7 ! 3517: .L515: ! 3518: movl $86, (%esp) ! 3519: movl stdout, %eax ! 3520: movl %eax, 4(%esp) ! 3521: call _IO_putc ! 3522: jmp .L499 ! 3523: .p2align 4,,7 ! 3524: .L514: ! 3525: movl $90, (%esp) ! 3526: movl stdout, %eax ! 3527: movl %eax, 4(%esp) ! 3528: call _IO_putc ! 3529: jmp .L497 ! 3530: .size DumpRegsChanged, .-DumpRegsChanged ! 3531: .globl hcalls ! 3532: .data ! 3533: .align 32 ! 3534: .type hcalls, @object ! 3535: .size hcalls, 324 ! 3536: hcalls: ! 3537: .long SetExceptionHandler ! 3538: .long Call_Memset ! 3539: .long Call_MemsetBlue ! 3540: .long Call_BlitCursor ! 3541: .long Call_RestoreUnderCursor ! 3542: .long Call_BlitBmp ! 3543: .long Call_OldHLine ! 3544: .long Call_HostUpdate ! 3545: .long Call_Memcpy ! 3546: .long Call_PutPix ! 3547: .long Call_BackHLine ! 3548: .long Call_FillLine ! 3549: .long Call_SetMainPalette ! 3550: .long Call_SetCtrlPalette ! 3551: .long Call_SetScreenBase ! 3552: .long Screen_Draw ! 3553: .long Call_DumpRegs ! 3554: .long Call_MakeExtPalette ! 3555: .long Call_PlaySFX ! 3556: .long Call_GetMouseInput ! 3557: .long Call_GetKeyboardEvent ! 3558: .long 0 ! 3559: .long Call_HLine ! 3560: .long Call_NotifyOfScrFlip ! 3561: .long Call_NotifyMousePos ! 3562: .long Call_InformScreens ! 3563: .long GemDOS_SetDTA ! 3564: .long Call_DrawStrShadowed ! 3565: .long Call_DrawStr ! 3566: .long Call_DrawTriangle ! 3567: .long Call_DrawQuad ! 3568: .long 0 ! 3569: .long 0 ! 3570: .long 0 ! 3571: .long 0 ! 3572: .long 0 ! 3573: .long 0 ! 3574: .long 0 ! 3575: .long 0 ! 3576: .long 0 ! 3577: .long 0 ! 3578: .long 0 ! 3579: .long 0 ! 3580: .long 0 ! 3581: .long 0 ! 3582: .long 0 ! 3583: .long 0 ! 3584: .long 0 ! 3585: .long 0 ! 3586: .long 0 ! 3587: .long 0 ! 3588: .long 0 ! 3589: .long 0 ! 3590: .long 0 ! 3591: .long 0 ! 3592: .long 0 ! 3593: .long 0 ! 3594: .long 0 ! 3595: .long 0 ! 3596: .long 0 ! 3597: .long GemDOS_Create ! 3598: .long GemDOS_Open ! 3599: .long GemDOS_Close ! 3600: .long GemDOS_Read ! 3601: .long GemDOS_Write ! 3602: .long GemDOS_UnLink ! 3603: .long 0 ! 3604: .long 0 ! 3605: .long 0 ! 3606: .long 0 ! 3607: .long 0 ! 3608: .long 0 ! 3609: .long 0 ! 3610: .long 0 ! 3611: .long 0 ! 3612: .long 0 ! 3613: .long 0 ! 3614: .long 0 ! 3615: .long GemDOS_SFirst ! 3616: .long GemDOS_SNext ! 3617: .long 0 ! 3618: .comm emudrive,516,32 ! 3619: .comm FileHandles,8448,32 ! 3620: .comm InternalDTAs,69632,32 ! 3621: .comm DTAIndex,4,4 ! 3622: .comm pDTA,4,4 ! 3623: .comm under_mouse,256,32 ! 3624: .comm len_working_ext_pal,4,4 ! 3625: .comm working_ext_pal,480,32 ! 3626: .section .note.GNU-stack,"",@progbits ! 3627: .ident "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-8)"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.