GAS LISTING /tmp/ccptpGUU.s page 1 GNU assembler version 2.39 (ia16-elf) using BFD version (GNU Binutils) 2.39. options passed : -a=sys.lst --listing-cont-lines=9999 --listing-rhs-width=9999 --listing-lhs-width=2 -ag input file : /tmp/ccptpGUU.s output file : sys.obj target : ia16-unknown-elf time stamp : 2025-10-10T20:03:49.000+0200 GAS LISTING /tmp/ccptpGUU.s page 2 1 .arch i8086,jumps 2 .code16 3 .att_syntax prefix 4 #NO_APP 5 .text 6 .global int86x 7 .type int86x, @function 8 int86x: 9 0000 56 pushw %si 10 0001 57 pushw %di 11 0002 55 pushw %bp 12 0003 89E5 movw %sp, %bp 13 0005 1E pushw %ds 14 0006 8B5E0A movw 10(%bp), %bx 15 0009 8B07 movw (%bx), %ax 16 000b 8B5702 movw 2(%bx), %dx 17 000e 8956FE movw %dx, -2(%bp) 18 0011 8B4F04 movw 4(%bx), %cx 19 0014 8B7F06 movw 6(%bx), %di 20 0017 8B7708 movw 8(%bx), %si 21 001a 8B5E0E movw 14(%bp), %bx 22 001d 8E4702 movw 2(%bx), %es 23 0020 8E1F movw (%bx), %ds 24 0022 8A5608 movb 8(%bp), %dl 25 0025 8B5EFE movw -2(%bp), %bx 26 #APP 27 ;# 111 "sys.c" 1 1 /*************************************************************** 2 3 sys.c 4 DOS-C 5 6 sys utility for DOS-C 7 8 Copyright (c) 1991 9 Pasquale J. Villani 10 All Rights Reserved 11 12 This file is part of DOS-C. 13 14 DOS-C is free software; you can redistribute it and/or modify it under the 15 terms of the GNU General Public License as published by the Free Software 16 Foundation; either version 2, or (at your option) any later version. 17 18 DOS-C is distributed in the hope that it will be useful, but WITHOUT ANY 19 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 20 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 21 details. 22 23 You should have received a copy of the GNU General Public License along with 24 DOS-C; see the file COPYING. If not, write to the Free Software Foundation, 25 675 Mass Ave, Cambridge, MA 02139, USA. 26 27 ***************************************************************/ 28 29 /* #define DEBUG */ /* to display extra information */ 30 /* #define DDEBUG */ /* to enable display of sector dumps */ GAS LISTING /tmp/ccptpGUU.s page 3 31 /* #define WITHOEMCOMPATBS */ /* include support for OEM MS/PC DOS 3.??-6.x */ 32 #define FDCONFIG /* include support to configure FD kernel */ 33 34 #define SYS_VERSION "v3.6f" 35 #define SYS_NAME "DOS System Installer " 36 37 #include 38 #ifndef __GNUC__ 39 #include 40 #endif 41 #include 42 #ifndef __GNUC__ 43 #include 44 #include 45 #ifdef __TURBOC__ 46 #include 47 #else 48 #include 49 #endif 50 #endif 51 #include 52 #ifdef __TURBOC__ 53 #include 54 #endif 55 #define SYS_MAXPATH 260 56 #include "portab.h" 57 #include "algnbyte.h" 58 #include "device.h" 59 #include "dcb.h" 60 #include "xstructs.h" 61 #include "ddate.h" 62 #include "dtime.h" 63 #include "fat.h" 64 65 /* These definitions deliberately put here instead of 66 * #including to make executable MUCH smaller 67 * using [s]printf from prf.c! 68 */ 69 extern int VA_CDECL printf(CONST char * fmt, ...); 70 extern int VA_CDECL sprintf(char * buff, CONST char * fmt, ...); 71 72 #include "fat12com.h" 73 #include "fat16com.h" 74 #ifdef WITHFAT32 75 #include "fat32chs.h" 76 #include "fat32lba.h" 77 #endif 78 #ifdef WITHOEMCOMPATBS 79 #include "oemfat12.h" 80 #include "oemfat16.h" 81 #endif 82 83 #ifndef __WATCOMC__ 84 85 #ifdef __GNUC__ 86 #include 87 #include GAS LISTING /tmp/ccptpGUU.s page 4 88 #include 89 #include 90 #define O_BINARY 0 91 #define stricmp strcasecmp 92 #define memicmp strncasecmp 93 union REGS { 94 struct { 95 unsigned char al, ah, bl, bh, cl, ch, dl, dh; 96 } h; 97 struct { 98 unsigned short ax, bx, cx, dx, si, di, cflag; 99 } x; 100 }; 101 struct SREGS { 102 unsigned short ds, es; 103 }; 104 struct _diskfree_t { 105 unsigned short avail_clusters, sectors_per_cluster, bytes_per_sector; 106 }; 107 108 int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *s) 109 { 110 /* must save sp for int25/26 */ 111 0028 2E881636 00EB0089 asm("mov %7, %%cs:(1f+1); jmp 0f; 0:" 111 FA89E757 57CD005F 111 5F89FC19 F6 112 "mov %%di, %%dx; mov %%sp, %%di;" 28 mov %dl, %cs:(1f+1); jmp 0f; 0:mov %di, %dx; mov %sp, %di;push %di; push %di;1:int $0x00; pop %di; pop %di;mov %di, %sp; sbb %si, %si 29 ;# 0 "" 2 30 #NO_APP 31 003d 8B7E0C movw 12(%bp), %di 32 0040 3689750C movw %si, %ss:12(%di) 33 0044 368905 movw %ax, %ss:(%di) 34 0047 36895D02 movw %bx, %ss:2(%di) 35 004b 36894D04 movw %cx, %ss:4(%di) 36 004f 36895506 movw %dx, %ss:6(%di) 37 0053 8B5E0E movw 14(%bp), %bx 38 0056 368C4702 movw %es, %ss:2(%bx) 39 005a 368C1F movw %ds, %ss:(%bx) 40 005d 368B05 movw %ss:(%di), %ax 41 0060 89EC movw %bp, %sp 42 0062 5D popw %bp 43 0063 5F popw %di 44 0064 5E popw %si 45 0065 16 pushw %ss 46 0066 1F popw %ds 47 0067 C3 ret 48 .size int86x, .-int86x 49 .global int86 50 .type int86, @function 51 int86: 52 0068 55 pushw %bp 53 0069 89E5 movw %sp, %bp 54 006b 1E pushw %ds 55 006c 1E pushw %ds 56 006d C746FC00 00 movw $0, -4(%bp) 57 0072 C746FE00 00 movw $0, -2(%bp) GAS LISTING /tmp/ccptpGUU.s page 5 58 0077 8D46FC leaw -4(%bp), %ax 59 007a 50 pushw %ax 60 007b FF7608 pushw 8(%bp) 61 007e FF7606 pushw 6(%bp) 62 0081 FF7604 pushw 4(%bp) 63 0084 E8FEFF call int86x 64 0087 89EC movw %bp, %sp 65 0089 5D popw %bp 66 008a C3 ret 67 .size int86, .-int86 68 .global intdos 69 .type intdos, @function 70 intdos: 71 008b 55 pushw %bp 72 008c 89E5 movw %sp, %bp 73 008e FF7606 pushw 6(%bp) 74 0091 FF7604 pushw 4(%bp) 75 0094 B82100 movw $33, %ax 76 0097 50 pushw %ax 77 0098 E8FEFF call int86 78 009b 89EC movw %bp, %sp 79 009d 5D popw %bp 80 009e C3 ret 81 .size intdos, .-intdos 82 .global intdosx 83 .type intdosx, @function 84 intdosx: 85 009f 56 pushw %si 86 00a0 57 pushw %di 87 00a1 55 pushw %bp 88 00a2 89E5 movw %sp, %bp 89 00a4 8B5E08 movw 8(%bp), %bx 90 00a7 8B760C movw 12(%bp), %si 91 00aa 8B07 movw (%bx), %ax 92 00ac 8B4F04 movw 4(%bx), %cx 93 00af 8B5706 movw 6(%bx), %dx 94 00b2 8B7F0A movw 10(%bx), %di 95 00b5 8E5F08 movw 8(%bx), %ds 96 00b8 36C41C lesw %ss:(%si), %bx 97 00bb 8CDE movw %ds, %si 98 #APP 99 ;# 143 "sys.c" 1 113 "push %%di; push %%di;" 114 /* push twice to work both for int 25h/26h and int 21h */ 115 "1:int $0x00; pop %%di; pop %%di;" 116 /* second pop always reads the correct SP value. 117 the first pop may read the FL left on stack. */ 118 "mov %%di, %%sp; sbb %0, %0" : 119 "=r"(out->x.cflag), 120 "=a"(out->x.ax), "=b"(out->x.bx), "=c"(out->x.cx), "=d"(out->x.dx), 121 "=e"(s->es), "=Rds"(s->ds) : 122 "q"((unsigned char)ivec), "a"(in->x.ax), "b"(in->x.bx), 123 "c"(in->x.cx), "D"(in->x.dx), "S"(in->x.si), "e"(s->es), 124 "Rds"(s->ds) 125 : 126 "cc", "memory"); 127 return out->x.ax; GAS LISTING /tmp/ccptpGUU.s page 6 128 } 129 130 int int86(int ivec, union REGS *in, union REGS *out) 131 { 132 struct SREGS sr = {0,}; 133 return int86x(ivec, in, out, &sr); 134 } 135 136 int intdos(union REGS *in, union REGS *out) 137 { 138 return int86(0x21, in, out); 139 } 140 141 int intdosx(union REGS *in, union REGS *out, struct SREGS *s) 142 { 143 00bd 1E8EDBCD 211F19D2 asm("push %%ds; mov %%bx, %%ds; int $0x21; pop %%ds; sbb %0, %0": 144 "=r"(out->x.cflag), "=a"(out->x.ax) : 100 push %ds; mov %bx, %ds; int $0x21; pop %ds; sbb %dx, %dx 101 ;# 0 "" 2 102 #NO_APP 103 00c5 8B5E0A movw 10(%bp), %bx 104 00c8 3689570C movw %dx, %ss:12(%bx) 105 00cc 368907 movw %ax, %ss:(%bx) 106 00cf 5D popw %bp 107 00d0 5F popw %di 108 00d1 5E popw %si 109 00d2 16 pushw %ss 110 00d3 1F popw %ds 111 00d4 C3 ret 112 .size intdosx, .-intdosx 113 .global _dos_allocmem 114 .type _dos_allocmem, @function 115 _dos_allocmem: 116 00d5 55 pushw %bp 117 00d6 89E5 movw %sp, %bp 118 00d8 83EC1C subw $28, %sp 119 00db C646E548 movb $72, -27(%bp) 120 00df 8B4604 movw 4(%bp), %ax 121 00e2 8946E6 movw %ax, -26(%bp) 122 00e5 8D46F2 leaw -14(%bp), %ax 123 00e8 50 pushw %ax 124 00e9 8D46E4 leaw -28(%bp), %ax 125 00ec 50 pushw %ax 126 00ed E8FEFF call intdos 127 00f0 83C404 addw $4, %sp 128 00f3 837EFE00 cmpw $0, -2(%bp) 129 00f7 7507 jne .L9 130 00f9 8B5E06 movw 6(%bp), %bx 131 00fc 8907 movw %ax, (%bx) 132 00fe 31C0 xorw %ax, %ax 133 .L9: 134 0100 89EC movw %bp, %sp 135 0102 5D popw %bp 136 0103 C3 ret 137 .size _dos_allocmem, .-_dos_allocmem 138 .global _dos_freemem 139 .type _dos_freemem, @function GAS LISTING /tmp/ccptpGUU.s page 7 140 _dos_freemem: 141 0104 55 pushw %bp 142 0105 89E5 movw %sp, %bp 143 0107 83EC20 subw $32, %sp 144 010a C646E549 movb $73, -27(%bp) 145 010e 8B4604 movw 4(%bp), %ax 146 0111 8946E2 movw %ax, -30(%bp) 147 0114 8D46E0 leaw -32(%bp), %ax 148 0117 50 pushw %ax 149 0118 8D46F2 leaw -14(%bp), %ax 150 011b 50 pushw %ax 151 011c 8D46E4 leaw -28(%bp), %ax 152 011f 50 pushw %ax 153 0120 E8FEFF call intdosx 154 0123 89EC movw %bp, %sp 155 0125 5D popw %bp 156 0126 C3 ret 157 .size _dos_freemem, .-_dos_freemem 158 .global _dos_getdiskfree 159 .type _dos_getdiskfree, @function 160 _dos_getdiskfree: 161 0127 56 pushw %si 162 0128 55 pushw %bp 163 0129 89E5 movw %sp, %bp 164 012b 83EC1C subw $28, %sp 165 012e 8B7608 movw 8(%bp), %si 166 0131 C746E400 36 movw $13824, -28(%bp) 167 0136 8B4606 movw 6(%bp), %ax 168 0139 8946EA movw %ax, -22(%bp) 169 013c 8D46F2 leaw -14(%bp), %ax 170 013f 50 pushw %ax 171 0140 8D46E4 leaw -28(%bp), %ax 172 0143 50 pushw %ax 173 0144 E8FEFF call intdos 174 0147 8B56F4 movw -12(%bp), %dx 175 014a 8914 movw %dx, (%si) 176 014c 8B56F8 movw -8(%bp), %dx 177 014f 895402 movw %dx, 2(%si) 178 0152 8B56F6 movw -10(%bp), %dx 179 0155 895404 movw %dx, 4(%si) 180 0158 89EC movw %bp, %sp 181 015a 5D popw %bp 182 015b 5E popw %si 183 015c C3 ret 184 .size _dos_getdiskfree, .-_dos_getdiskfree 185 .global filelength 186 .type filelength, @function 187 filelength: 188 015d 56 pushw %si 189 015e 57 pushw %di 190 015f 55 pushw %bp 191 0160 89E5 movw %sp, %bp 192 0162 1E pushw %ds 193 0163 B80200 movw $2, %ax 194 0166 50 pushw %ax 195 0167 31F6 xorw %si, %si 196 0169 56 pushw %si GAS LISTING /tmp/ccptpGUU.s page 8 197 016a 56 pushw %si 198 016b FF7608 pushw 8(%bp) 199 016e E8FEFF call lseek 200 0171 8946FE movw %ax, -2(%bp) 201 0174 89D7 movw %dx, %di 202 0176 56 pushw %si 203 0177 56 pushw %si 204 0178 56 pushw %si 205 0179 FF7608 pushw 8(%bp) 206 017c E8FEFF call lseek 207 017f 83C410 addw $16, %sp 208 0182 8B46FE movw -2(%bp), %ax 209 0185 89FA movw %di, %dx 210 0187 89EC movw %bp, %sp 211 0189 5D popw %bp 212 018a 5F popw %di 213 018b 5E popw %si 214 018c C3 ret 215 .size filelength, .-filelength 216 .global _dos_findfirst 217 .type _dos_findfirst, @function 218 _dos_findfirst: 219 018d 56 pushw %si 220 018e 57 pushw %di 221 018f 55 pushw %bp 222 0190 89E5 movw %sp, %bp 223 0192 83EC22 subw $34, %sp 224 0195 C646E51A movb $26, -27(%bp) 225 0199 8B460C movw 12(%bp), %ax 226 019c 8946EA movw %ax, -22(%bp) 227 019f 8C56E0 movw %ss, -32(%bp) 228 01a2 8D56E0 leaw -32(%bp), %dx 229 01a5 52 pushw %dx 230 01a6 8956DE movw %dx, -34(%bp) 231 01a9 8D7EF2 leaw -14(%bp), %di 232 01ac 57 pushw %di 233 01ad 8D76E4 leaw -28(%bp), %si 234 01b0 56 pushw %si 235 01b1 E8FEFF call intdosx 236 01b4 C646E54E movb $78, -27(%bp) 237 01b8 C44608 lesw 8(%bp), %ax 238 01bb 8946EA movw %ax, -22(%bp) 239 01be 8C46E8 movw %es, -24(%bp) 240 01c1 8C56E0 movw %ss, -32(%bp) 241 01c4 8B56DE movw -34(%bp), %dx 242 01c7 52 pushw %dx 243 01c8 57 pushw %di 244 01c9 56 pushw %si 245 01ca E8FEFF call intdosx 246 01cd 8B46FE movw -2(%bp), %ax 247 01d0 83C40C addw $12, %sp 248 01d3 85C0 testw %ax, %ax 249 01d5 7403 je .L19 250 01d7 8B46F2 movw -14(%bp), %ax 251 .L19: 252 01da 89EC movw %bp, %sp 253 01dc 5D popw %bp GAS LISTING /tmp/ccptpGUU.s page 9 254 01dd 5F popw %di 255 01de 5E popw %si 256 01df C3 ret 257 .size _dos_findfirst, .-_dos_findfirst 258 .global getcurdrive 259 .type getcurdrive, @function 260 getcurdrive: 261 01e0 55 pushw %bp 262 01e1 89E5 movw %sp, %bp 263 01e3 83EC0E subw $14, %sp 264 01e6 C646F319 movb $25, -13(%bp) 265 01ea 8D46F2 leaw -14(%bp), %ax 266 01ed 50 pushw %ax 267 01ee 50 pushw %ax 268 01ef B82100 movw $33, %ax 269 01f2 50 pushw %ax 270 01f3 E8FEFF call int86 271 01f6 8A46F2 movb -14(%bp), %al 272 01f9 30E4 xorb %ah, %ah 273 01fb 89EC movw %bp, %sp 274 01fd 5D popw %bp 275 01fe C3 ret 276 .size getcurdrive, .-getcurdrive 277 .global stat 278 .type stat, @function 279 stat: 280 01ff 56 pushw %si 281 0200 55 pushw %bp 282 0201 89E5 movw %sp, %bp 283 0203 83EC2C subw $44, %sp 284 0206 8B7608 movw 8(%bp), %si 285 0209 8D46D5 leaw -43(%bp), %ax 286 020c 50 pushw %ax 287 020d B80600 movw $6, %ax 288 0210 50 pushw %ax 289 0211 FF7606 pushw 6(%bp) 290 0214 E8FEFF call _dos_findfirst 291 0217 C456EF lesw -17(%bp), %dx 292 021a 895410 movw %dx, 16(%si) 293 021d 8C4412 movw %es, 18(%si) 294 0220 89EC movw %bp, %sp 295 0222 5D popw %bp 296 0223 5E popw %si 297 0224 C3 ret 298 .size stat, .-stat 299 .section .rodata.str1.1,"aMS",@progbits,1 300 .LC0: 301 0000 55736167 653A2025 .ascii "Usage: %s [source] drive: [bootsect] [{option}]\n source " 301 73205B73 6F757263 301 655D2064 72697665 301 3A205B62 6F6F7473 301 6563745D 205B7B6F 301 7074696F 6E7D5D0A 301 2020736F 75726365 301 202020 302 003b 3D20413A 2C423A2C .ascii "= A:,B:,C:\\DOS\\,etc., or current directory if not given\n " 302 433A5C44 4F535C2C GAS LISTING /tmp/ccptpGUU.s page 10 302 6574632E 2C206F72 302 20637572 72656E74 302 20646972 6563746F 302 72792069 66206E6F 302 74206769 76656E0A 302 20 303 0074 20647269 76652020 .ascii " drive = A,B,etc.\n bootsect = name of 512-byte boot sec" 303 20203D20 412C422C 303 6574632E 0A202062 303 6F6F7473 65637420 303 3D206E61 6D65206F 303 66203531 322D6279 303 74652062 6F6F7420 303 736563 304 00af 746F7220 66696C65 .ascii "tor file image for drive:\n to write to *instead" 304 20696D61 67652066 304 6F722064 72697665 304 3A0A2020 20202020 304 20202020 20202074 304 6F207772 69746520 304 746F202A 696E7374 304 656164 305 00ea 2A206F66 20726561 .ascii "* of real boot sector\n {option} is one or more of the foll" 305 6C20626F 6F742073 305 6563746F 720A2020 305 7B6F7074 696F6E7D 305 20697320 6F6E6520 305 6F72206D 6F726520 305 6F662074 68652066 305 6F6C6C 306 0125 6F77696E 673A0A20 .ascii "owing:\n /BOTH : write to *both* the real boot sector an" 306 202F424F 54482020 306 20203A20 77726974 306 6520746F 202A626F 306 74682A20 74686520 306 7265616C 20626F6F 306 74207365 63746F72 306 20616E 307 0160 64207468 6520696D .ascii "d the image file\n /BOOTONLY: do *not* copy kernel / shell," 307 61676520 66696C65 307 0A20202F 424F4F54 307 4F4E4C59 3A20646F 307 202A6E6F 742A2063 307 6F707920 6B65726E 307 656C202F 20736865 307 6C6C2C 308 019b 206F6E6C 79207570 .ascii " only update boot sector or image\n /UPDATE : copy kernel " 308 64617465 20626F6F 308 74207365 63746F72 308 206F7220 696D6167 308 650A2020 2F555044 308 41544520 203A2063 308 6F707920 6B65726E 308 656C20 309 01d6 616E6420 75706461 .ascii "and update boot sector (do *not* copy shell)\n /OEM : i" 309 74652062 6F6F7420 309 73656374 6F722028 GAS LISTING /tmp/ccptpGUU.s page 11 309 646F202A 6E6F742A 309 20636F70 79207368 309 656C6C29 0A20202F 309 4F454D20 20202020 309 3A2069 310 0211 6E646963 61746573 .ascii "ndicates boot sector, filenames, and load segment to use\n " 310 20626F6F 74207365 310 63746F72 2C206669 310 6C656E61 6D65732C 310 20616E64 206C6F61 310 64207365 676D656E 310 7420746F 20757365 310 0A2020 311 024c 20202020 20202020 .ascii " /OEM:FD FreeDOS settings\n /OEM" 311 2020202F 4F454D3A 311 46442020 20202020 311 20467265 65444F53 311 20736574 74696E67 311 730A2020 20202020 311 20202020 2020202F 311 4F454D 312 0287 3A454452 20202020 .ascii ":EDR Enhanced DR-DOS (DRBIO.SYS and DRDOS.SYS)\n " 312 2020456E 68616E63 312 65642044 522D444F 312 53202844 5242494F 312 2E535953 20616E64 312 20445244 4F532E53 312 5953290A 20202020 312 202020 313 02c2 20202020 20202F4F .ascii " /OEM:LEDRPACK Enhanced DR-DOS (EDRPACK.SYS, lDOS drloa" 313 454D3A4C 45445250 313 41434B20 456E6861 313 6E636564 2044522D 313 444F5320 28454452 313 5041434B 2E535953 313 2C206C44 4F532064 313 726C6F61 314 02fe 64290A20 20202020 .ascii "d)\n /OEM:LEDR Enhanced DR-DOS (EDRDOS.COM, " 314 20202020 20202020 314 2F4F454D 3A4C4544 314 52202020 2020456E 314 68616E63 65642044 314 522D444F 53202845 314 4452444F 532E434F 314 4D2C20 315 0339 6C444F53 20696E69 .ascii "lDOS iniload)\n /OEM:LMSPACK OSS MS-DOS (LMSPAC" 315 6C6F6164 290A2020 315 20202020 20202020 315 2020202F 4F454D3A 315 4C4D5350 41434B20 315 204F5353 204D532D 315 444F5320 284C4D53 315 504143 316 0374 4B2E5359 532C206C .ascii "K.SYS, lDOS drload)\n /OEM:LMS OSS MS-DOS (" 316 444F5320 64726C6F 316 6164290A 20202020 316 20202020 20202020 GAS LISTING /tmp/ccptpGUU.s page 12 316 202F4F45 4D3A4C4D 316 53202020 2020204F 316 5353204D 532D444F 316 532028 317 03af 4C4D5344 4F532E43 .ascii "LMSDOS.COM, lDOS iniload)\n /OEM:OPENDOS Calder" 317 4F4D2C20 6C444F53 317 20696E69 6C6F6164 317 290A2020 20202020 317 20202020 2020202F 317 4F454D3A 4F50454E 317 444F5320 2043616C 317 646572 318 03ea 61204F70 656E444F .ascii "a OpenDOS 7.01 (and Novell DOS 7),\n " 318 5320372E 30312028 318 616E6420 4E6F7665 318 6C6C2044 4F532037 318 292C0A20 20202020 318 20202020 20202020 318 20202020 20202020 318 202020 319 0425 20202044 522D444F .ascii " DR-DOS 7.02 - 7.03, 7.01.01 - 7.01.06\n defau" 319 5320372E 3032202D 319 20372E30 332C2037 319 2E30312E 3031202D 319 20372E30 312E3036 319 0A202020 20202020 319 20202020 20206465 319 666175 320 0460 6C742069 73202F4F .ascii "lt is /OEM[:AUTO], select DOS based on existing files\n /K " 320 454D5B3A 4155544F 320 5D2C2073 656C6563 320 7420444F 53206261 320 73656420 6F6E2065 320 78697374 696E6720 320 66696C65 730A2020 320 2F4B20 321 049b 6E616D65 20203A20 .ascii "name : name of kernel to use in boot sector instead of %s\n" 321 6E616D65 206F6620 321 6B65726E 656C2074 321 6F207573 6520696E 321 20626F6F 74207365 321 63746F72 20696E73 321 74656164 206F6620 321 25730A 322 04d6 20202F4C 20736567 .ascii " /L segm : hex load segment to use in boot sector instead " 322 6D20203A 20686578 322 206C6F61 64207365 322 676D656E 7420746F 322 20757365 20696E20 322 626F6F74 20736563 322 746F7220 696E7374 322 65616420 323 0512 6F662025 3032780A .ascii "of %02x\n /B btdrv : hex BIOS # of boot drive set in bs, 0=" 323 20202F42 20627464 323 7276203A 20686578 323 2042494F 53202320 323 6F662062 6F6F7420 GAS LISTING /tmp/ccptpGUU.s page 13 323 64726976 65207365 323 7420696E 2062732C 323 20303D 324 054d 413A2C20 38303D31 .ascii "A:, 80=1st hd,...\n /FORCE : override autom" 324 73742068 642C2E2E 324 2E0A2020 2F464F52 324 43452020 203A206F 324 76657272 69646520 324 6175746F 6D 325 057a 61746963 2073656C .string "atic selection of BIOS related settings\n /FORCE:BSDRV use boot drive # set in bootsector\n /FORCE:BIOSDRV use boot drive # provided by BIOS\n /NOBAKBS : skips copy 325 65637469 6F6E206F 325 66204249 4F532072 325 656C6174 65642073 325 65747469 6E67730A 325 20202020 20202020 325 20202020 202F464F 325 5243453A 42534452 325 56207573 6520626F 325 6F742064 72697665 325 20232073 65742069 325 6E20626F 6F747365 325 63746F72 0A202020 325 20202020 20202020 325 20202F46 4F524345 325 3A42494F 53445256 325 20757365 20626F6F 325 74206472 69766520 325 23207072 6F766964 325 65642062 79204249 325 4F530A20 202F4E4F 325 42414B42 53203A20 325 736B6970 7320636F 325 7079696E 6720626F 325 6F742073 6563746F 325 7220746F 20626163 325 6B757020 62732C20 325 46415433 32206F6E 325 6C792065 6C736520 325 69676E6F 7265640A 325 25732043 4F4E4649 325 47202F68 656C700A 325 00 326 .text 327 .global showHelpAndExit 328 .type showHelpAndExit, @function 329 showHelpAndExit: 330 0225 B80000 movw $pgm, %ax 331 0228 50 pushw %ax 332 0229 BB0000 movw $bootFiles, %bx 333 022c FF7704 pushw 4(%bx) 334 022f FF37 pushw (%bx) 335 0231 50 pushw %ax 336 0232 B80000 movw $.LC0, %ax 337 0235 50 pushw %ax 338 0236 E8FEFF call printf 339 0239 B80100 movw $1, %ax 340 023c 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 14 341 023d E8FEFF call exit 342 .size showHelpAndExit, .-showHelpAndExit 343 .global int2526readwrite 344 .type int2526readwrite, @function 345 int2526readwrite: 346 0240 55 pushw %bp 347 0241 89E5 movw %sp, %bp 348 0243 83EC12 subw $18, %sp 349 0246 8B4604 movw 4(%bp), %ax 350 0249 8846F2 movb %al, -14(%bp) 351 024c 8B4606 movw 6(%bp), %ax 352 024f 8946F4 movw %ax, -12(%bp) 353 0252 C746F6FF FF movw $-1, -10(%bp) 354 0257 8C56EE movw %ss, -18(%bp) 355 025a 8D46EE leaw -18(%bp), %ax 356 025d 50 pushw %ax 357 025e 8D46F2 leaw -14(%bp), %ax 358 0261 50 pushw %ax 359 0262 50 pushw %ax 360 0263 FF7608 pushw 8(%bp) 361 0266 E8FEFF call int86x 362 0269 8B46FE movw -2(%bp), %ax 363 026c 89EC movw %bp, %sp 364 026e 5D popw %bp 365 026f C3 ret 366 .size int2526readwrite, .-int2526readwrite 367 .global fat32readwrite 368 .type fat32readwrite, @function 369 fat32readwrite: 370 0270 55 pushw %bp 371 0271 89E5 movw %sp, %bp 372 0273 83EC12 subw $18, %sp 373 0276 C746F205 73 movw $29445, -14(%bp) 374 027b 8B4604 movw 4(%bp), %ax 375 027e 8846F8 movb %al, -8(%bp) 376 0281 8B4606 movw 6(%bp), %ax 377 0284 8946F4 movw %ax, -12(%bp) 378 0287 C746F6FF FF movw $-1, -10(%bp) 379 028c 8B4608 movw 8(%bp), %ax 380 028f 8946FA movw %ax, -6(%bp) 381 0292 8C56EE movw %ss, -18(%bp) 382 0295 8D46EE leaw -18(%bp), %ax 383 0298 50 pushw %ax 384 0299 8D46F2 leaw -14(%bp), %ax 385 029c 50 pushw %ax 386 029d 50 pushw %ax 387 029e B82100 movw $33, %ax 388 02a1 50 pushw %ax 389 02a2 E8FEFF call int86x 390 02a5 8B46FE movw -2(%bp), %ax 391 02a8 89EC movw %bp, %sp 392 02aa 5D popw %bp 393 02ab C3 ret 394 .size fat32readwrite, .-fat32readwrite 395 .global reset_drive 396 .type reset_drive, @function 397 reset_drive: GAS LISTING /tmp/ccptpGUU.s page 15 398 02ac 56 pushw %si 399 02ad 55 pushw %bp 400 02ae 89E5 movw %sp, %bp 401 02b0 83EC0E subw $14, %sp 402 02b3 C646F30D movb $13, -13(%bp) 403 02b7 8D76F2 leaw -14(%bp), %si 404 02ba 56 pushw %si 405 02bb 56 pushw %si 406 02bc E8FEFF call intdos 407 02bf C646F332 movb $50, -13(%bp) 408 02c3 8A4606 movb 6(%bp), %al 409 02c6 FEC0 incb %al 410 02c8 8846F8 movb %al, -8(%bp) 411 02cb 56 pushw %si 412 02cc 56 pushw %si 413 02cd E8FEFF call intdos 414 02d0 89EC movw %bp, %sp 415 02d2 5D popw %bp 416 02d3 5E popw %si 417 02d4 C3 ret 418 .size reset_drive, .-reset_drive 419 .global generic_block_ioctl 420 .type generic_block_ioctl, @function 421 generic_block_ioctl: 422 02d5 55 pushw %bp 423 02d6 89E5 movw %sp, %bp 424 02d8 83EC0E subw $14, %sp 425 02db C746F20D 44 movw $17421, -14(%bp) 426 02e0 C44606 lesw 6(%bp), %ax 427 02e3 8946F6 movw %ax, -10(%bp) 428 02e6 8C46F8 movw %es, -8(%bp) 429 02e9 8B4604 movw 4(%bp), %ax 430 02ec 8946F4 movw %ax, -12(%bp) 431 02ef 8D46F2 leaw -14(%bp), %ax 432 02f2 50 pushw %ax 433 02f3 50 pushw %ax 434 02f4 E8FEFF call intdos 435 02f7 8B46FE movw -2(%bp), %ax 436 02fa 89EC movw %bp, %sp 437 02fc 5D popw %bp 438 02fd C3 ret 439 .size generic_block_ioctl, .-generic_block_ioctl 440 .global truename 441 .type truename, @function 442 truename: 443 02fe 55 pushw %bp 444 02ff 89E5 movw %sp, %bp 445 0301 83EC12 subw $18, %sp 446 0304 C646F360 movb $96, -13(%bp) 447 0308 8C56F0 movw %ss, -16(%bp) 448 030b 8B4604 movw 4(%bp), %ax 449 030e 8946FC movw %ax, -4(%bp) 450 0311 8C56EE movw %ss, -18(%bp) 451 0314 8B4606 movw 6(%bp), %ax 452 0317 8946FA movw %ax, -6(%bp) 453 031a 8D46EE leaw -18(%bp), %ax 454 031d 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 16 455 031e 8D46F2 leaw -14(%bp), %ax 456 0321 50 pushw %ax 457 0322 50 pushw %ax 458 0323 E8FEFF call intdosx 459 0326 89EC movw %bp, %sp 460 0328 5D popw %bp 461 0329 C3 ret 462 .size truename, .-truename 463 .global MyAbsReadWrite 464 .type MyAbsReadWrite, @function 465 MyAbsReadWrite: 466 032a 56 pushw %si 467 032b 57 pushw %di 468 032c 55 pushw %bp 469 032d 89E5 movw %sp, %bp 470 032f 83EC0A subw $10, %sp 471 0332 8B7608 movw 8(%bp), %si 472 0335 8B7E12 movw 18(%bp), %di 473 0338 C4460C lesw 12(%bp), %ax 474 033b 8946F6 movw %ax, -10(%bp) 475 033e 8C46F8 movw %es, -8(%bp) 476 0341 8B460A movw 10(%bp), %ax 477 0344 8946FA movw %ax, -6(%bp) 478 0347 8B4610 movw 16(%bp), %ax 479 034a 8946FC movw %ax, -4(%bp) 480 034d 8C56FE movw %ss, -2(%bp) 481 0350 85FF testw %di, %di 482 0352 752B jne .L40 483 0354 B82500 movw $37, %ax 484 .L51: 485 0357 50 pushw %ax 486 0358 8D46F6 leaw -10(%bp), %ax 487 035b 50 pushw %ax 488 035c 56 pushw %si 489 035d E8FEFF call int2526readwrite 490 0360 83C406 addw $6, %sp 491 0363 83F8FF cmpw $-1, %ax 492 0366 7408 je .L41 493 0368 31C0 xorw %ax, %ax 494 .L39: 495 036a 89EC movw %bp, %sp 496 036c 5D popw %bp 497 036d 5F popw %di 498 036e 5E popw %si 499 036f C3 ret 500 .L41: 501 0370 57 pushw %di 502 0371 8D46F6 leaw -10(%bp), %ax 503 0374 50 pushw %ax 504 0375 46 incw %si 505 0376 56 pushw %si 506 0377 E8FEFF call fat32readwrite 507 037a 83C406 addw $6, %sp 508 037d EBEB jmp .L39 509 .L40: 510 037f B82600 movw $38, %ax 511 0382 EBD3 jmp .L51 GAS LISTING /tmp/ccptpGUU.s page 17 512 .size MyAbsReadWrite, .-MyAbsReadWrite 513 .global getextdrivespace 514 .type getextdrivespace, @function 515 getextdrivespace: 516 0384 55 pushw %bp 517 0385 89E5 movw %sp, %bp 518 0387 83EC12 subw $18, %sp 519 038a C746F203 73 movw $29443, -14(%bp) 520 038f 8C56F0 movw %ss, -16(%bp) 521 0392 8B4606 movw 6(%bp), %ax 522 0395 8946FC movw %ax, -4(%bp) 523 0398 8C56EE movw %ss, -18(%bp) 524 039b 8B4604 movw 4(%bp), %ax 525 039e 8946F8 movw %ax, -8(%bp) 526 03a1 8B4608 movw 8(%bp), %ax 527 03a4 8946F6 movw %ax, -10(%bp) 528 03a7 8D46EE leaw -18(%bp), %ax 529 03aa 50 pushw %ax 530 03ab 8D46F2 leaw -14(%bp), %ax 531 03ae 50 pushw %ax 532 03af 50 pushw %ax 533 03b0 E8FEFF call intdosx 534 03b3 83C406 addw $6, %sp 535 03b6 B001 movb $1, %al 536 03b8 817EF200 73 cmpw $29440, -14(%bp) 537 03bd 7408 je .L53 538 03bf 837EFE01 cmpw $1, -2(%bp) 539 03c3 18C0 sbbb %al, %al 540 03c5 FEC0 incb %al 541 .L53: 542 03c7 30E4 xorb %ah, %ah 543 03c9 89EC movw %bp, %sp 544 03cb 5D popw %bp 545 03cc C3 ret 546 .size getextdrivespace, .-getextdrivespace 547 .global haveLBA 548 .type haveLBA, @function 549 haveLBA: 550 03cd 55 pushw %bp 551 03ce 89E5 movw %sp, %bp 552 03d0 83EC12 subw $18, %sp 553 03d3 C746F200 41 movw $16640, -14(%bp) 554 03d8 C746F4AA 55 movw $21930, -12(%bp) 555 03dd C646F880 movb $-128, -8(%bp) 556 03e1 C746EE40 00 movw $64, -18(%bp) 557 03e6 8D46EE leaw -18(%bp), %ax 558 03e9 50 pushw %ax 559 03ea 8D46F2 leaw -14(%bp), %ax 560 03ed 50 pushw %ax 561 03ee 50 pushw %ax 562 03ef B81300 movw $19, %ax 563 03f2 50 pushw %ax 564 03f3 E8FEFF call int86x 565 03f6 83C408 addw $8, %sp 566 03f9 30C0 xorb %al, %al 567 03fb 817EF455 AA cmpw $-21931, -12(%bp) 568 0400 7505 jne .L58 GAS LISTING /tmp/ccptpGUU.s page 18 569 0402 8A46F6 movb -10(%bp), %al 570 0405 2401 andb $1, %al 571 .L58: 572 0407 30E4 xorb %ah, %ah 573 0409 89EC movw %bp, %sp 574 040b 5D popw %bp 575 040c C3 ret 576 .size haveLBA, .-haveLBA 577 .section .rodata.str1.1 578 .LC1: 579 067b 4F6C6420 626F6F74 .string "Old boot sector values: sectors/track: %u, heads: %u, hidden: %lu\n" 579 20736563 746F7220 579 76616C75 65733A20 579 73656374 6F72732F 579 74726163 6B3A2025 579 752C2068 65616473 579 3A202575 2C206869 579 6464656E 3A20256C 579 750A00 580 .LC2: 581 06be 44656661 756C7420 .string "Default and new boot sector values: sectors/track: %u, heads: %u, hidden: %lu\n" 581 616E6420 6E657720 581 626F6F74 20736563 581 746F7220 76616C75 581 65733A20 73656374 581 6F72732F 74726163 581 6B3A2025 752C2068 581 65616473 3A202575 581 2C206869 6464656E 581 3A20256C 750A00 582 .text 583 .global correct_bpb 584 .type correct_bpb, @function 585 correct_bpb: 586 040d 56 pushw %si 587 040e 57 pushw %di 588 040f 55 pushw %bp 589 0410 89E5 movw %sp, %bp 590 0412 8B7608 movw 8(%bp), %si 591 0415 8B7E0A movw 10(%bp), %di 592 0418 8B441E movw 30(%si), %ax 593 041b 0B441C orw 28(%si), %ax 594 041e 7444 je .L62 595 0420 837E0C00 cmpw $0, 12(%bp) 596 0424 7429 je .L65 597 0426 FF751E pushw 30(%di) 598 0429 FF751C pushw 28(%di) 599 042c FF751A pushw 26(%di) 600 042f FF7518 pushw 24(%di) 601 0432 B87B06 movw $.LC1, %ax 602 0435 50 pushw %ax 603 0436 E8FEFF call printf 604 0439 FF741E pushw 30(%si) 605 043c FF741C pushw 28(%si) 606 043f FF741A pushw 26(%si) 607 0442 FF7418 pushw 24(%si) 608 0445 B8BE06 movw $.LC2, %ax GAS LISTING /tmp/ccptpGUU.s page 19 609 0448 50 pushw %ax 610 0449 E8FEFF call printf 611 044c 83C414 addw $20, %sp 612 .L65: 613 044f C44418 lesw 24(%si), %ax 614 0452 894518 movw %ax, 24(%di) 615 0455 8C451A movw %es, 26(%di) 616 0458 8B541C movw 28(%si), %dx 617 045b 8B441E movw 30(%si), %ax 618 045e 89551C movw %dx, 28(%di) 619 0461 89451E movw %ax, 30(%di) 620 .L62: 621 0464 89EC movw %bp, %sp 622 0466 5D popw %bp 623 0467 5F popw %di 624 0468 5E popw %si 625 0469 C3 ret 626 .size correct_bpb, .-correct_bpb 627 .section .rodata.str1.1 628 .LC3: 629 070d 25733A20 63616E27 .string "%s: can't open\"%s\"\nDOS errnum %d" 629 74206F70 656E2225 629 73220A44 4F532065 629 72726E75 6D202564 629 00 630 .LC4: 631 072e 25733A20 6661696C .string "%s: failed to read %u bytes from %s\n" 631 65642074 6F207265 631 61642025 75206279 631 74657320 66726F6D 631 2025730A 00 632 .text 633 .global readBS 634 .type readBS, @function 635 readBS: 636 046a 56 pushw %si 637 046b 57 pushw %di 638 046c 55 pushw %bp 639 046d 89E5 movw %sp, %bp 640 046f 1E pushw %ds 641 0470 1E pushw %ds 642 0471 8B7608 movw 8(%bp), %si 643 0474 8B460A movw 10(%bp), %ax 644 0477 8946FE movw %ax, -2(%bp) 645 047a 85F6 testw %si, %si 646 047c 7465 je .L73 647 047e 31C0 xorw %ax, %ax 648 0480 50 pushw %ax 649 0481 56 pushw %si 650 0482 E8FEFF call open 651 0485 89C7 movw %ax, %di 652 0487 83C404 addw $4, %sp 653 048a 85C0 testw %ax, %ax 654 048c 7D19 jge .L75 655 048e E8FEFF call __errno 656 0491 93 xchgw %ax, %bx 657 0492 FF37 pushw (%bx) GAS LISTING /tmp/ccptpGUU.s page 20 658 0494 56 pushw %si 659 0495 B80000 movw $pgm, %ax 660 0498 50 pushw %ax 661 0499 B80D07 movw $.LC3, %ax 662 049c 50 pushw %ax 663 049d E8FEFF call printf 664 04a0 B80100 movw $1, %ax 665 04a3 50 pushw %ax 666 04a4 E8FEFF call exit 667 .L75: 668 04a7 B90002 movw $512, %cx 669 04aa 51 pushw %cx 670 04ab 894EFC movw %cx, -4(%bp) 671 04ae FF76FE pushw -2(%bp) 672 04b1 50 pushw %ax 673 04b2 E8FEFF call read 674 04b5 83C406 addw $6, %sp 675 04b8 3D0002 cmpw $512, %ax 676 04bb 8B4EFC movw -4(%bp), %cx 677 04be 7418 je .L76 678 04c0 56 pushw %si 679 04c1 51 pushw %cx 680 04c2 B80000 movw $pgm, %ax 681 04c5 50 pushw %ax 682 04c6 B82E07 movw $.LC4, %ax 683 04c9 50 pushw %ax 684 04ca E8FEFF call printf 685 04cd 57 pushw %di 686 04ce E8FEFF call close 687 04d1 B80100 movw $1, %ax 688 04d4 50 pushw %ax 689 04d5 E8FEFF call exit 690 .L76: 691 04d8 897E08 movw %di, 8(%bp) 692 04db 89EC movw %bp, %sp 693 04dd 5D popw %bp 694 04de 5F popw %di 695 04df 5E popw %si 696 04e0 E9FEFF jmp close 697 .L73: 698 04e3 89EC movw %bp, %sp 699 04e5 5D popw %bp 700 04e6 5F popw %di 701 04e7 5E popw %si 702 04e8 C3 ret 703 .size readBS, .-readBS 704 .section .rodata.str1.1 705 .LC5: 706 0753 25733A20 6D697373 .string "%s: missing filename of boot sector to restore\n" 706 696E6720 66696C65 706 6E616D65 206F6620 706 626F6F74 20736563 706 746F7220 746F2072 706 6573746F 72650A00 707 .LC6: 708 0783 25733A20 6661696C .string "%s: failed to write boot sector to drive %c:\n" 708 65642074 6F207772 GAS LISTING /tmp/ccptpGUU.s page 21 708 69746520 626F6F74 708 20736563 746F7220 708 746F2064 72697665 708 2025633A 0A00 709 .text 710 .global restoreBS 711 .type restoreBS, @function 712 restoreBS: 713 04e9 56 pushw %si 714 04ea 57 pushw %di 715 04eb 55 pushw %bp 716 04ec 89E5 movw %sp, %bp 717 04ee 81EC0602 subw $518, %sp 718 04f2 8B4608 movw 8(%bp), %ax 719 04f5 8B7E0A movw 10(%bp), %di 720 04f8 85C0 testw %ax, %ax 721 04fa BE0100 movw $1, %si 722 04fd 750F jne .L79 723 04ff B80000 movw $pgm, %ax 724 0502 50 pushw %ax 725 0503 B85307 movw $.LC5, %ax 726 0506 50 pushw %ax 727 0507 E8FEFF call printf 728 050a 56 pushw %si 729 050b E8FEFF call exit 730 .L79: 731 050e 8D8E00FE leaw -512(%bp), %cx 732 0512 51 pushw %cx 733 0513 898EFAFD movw %cx, -518(%bp) 734 0517 50 pushw %ax 735 0518 E8FEFF call readBS 736 051b 89F8 movw %di, %ax 737 051d 40 incw %ax 738 051e 8986FEFD movw %ax, -514(%bp) 739 0522 31D2 xorw %dx, %dx 740 0524 52 pushw %dx 741 0525 8996FCFD movw %dx, -516(%bp) 742 0529 B84A08 movw $2122, %ax 743 052c 50 pushw %ax 744 052d FFB6FEFD pushw -514(%bp) 745 0531 E8FEFF call generic_block_ioctl 746 0534 57 pushw %di 747 0535 E8FEFF call reset_drive 748 0538 56 pushw %si 749 0539 8B8EFAFD movw -518(%bp), %cx 750 053d 51 pushw %cx 751 053e 8B96FCFD movw -516(%bp), %dx 752 0542 52 pushw %dx 753 0543 52 pushw %dx 754 0544 56 pushw %si 755 0545 57 pushw %di 756 0546 E8FEFF call MyAbsReadWrite 757 0549 83C418 addw $24, %sp 758 054c 85C0 testw %ax, %ax 759 054e 7413 je .L80 760 0550 8D4541 leaw 65(%di), %ax 761 0553 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 22 762 0554 B80000 movw $pgm, %ax 763 0557 50 pushw %ax 764 0558 B88307 movw $.LC6, %ax 765 055b 50 pushw %ax 766 055c E8FEFF call printf 767 055f 56 pushw %si 768 0560 E8FEFF call exit 769 .L80: 770 0563 8986FCFD movw %ax, -516(%bp) 771 0567 57 pushw %di 772 0568 E8FEFF call reset_drive 773 056b 8B86FCFD movw -516(%bp), %ax 774 056f 50 pushw %ax 775 0570 B86A08 movw $2154, %ax 776 0573 50 pushw %ax 777 0574 FFB6FEFD pushw -514(%bp) 778 0578 E8FEFF call generic_block_ioctl 779 057b 89EC movw %bp, %sp 780 057d 5D popw %bp 781 057e 5F popw %di 782 057f 5E popw %si 783 0580 C3 ret 784 .size restoreBS, .-restoreBS 785 .section .rodata.str1.1 786 .LC7: 787 07b1 25733A20 63616E27 .string "%s: can't create\"%s\"\nDOS errnum %d" 787 74206372 65617465 787 22257322 0A444F53 787 20657272 6E756D20 787 256400 788 .LC8: 789 07d4 25733A20 6661696C .string "%s: failed to write %u bytes to %s\n" 789 65642074 6F207772 789 69746520 25752062 789 79746573 20746F20 789 25730A00 790 .text 791 .global saveBS 792 .type saveBS, @function 793 saveBS: 794 0581 56 pushw %si 795 0582 57 pushw %di 796 0583 55 pushw %bp 797 0584 89E5 movw %sp, %bp 798 0586 1E pushw %ds 799 0587 1E pushw %ds 800 0588 8B7608 movw 8(%bp), %si 801 058b 8B460A movw 10(%bp), %ax 802 058e 8946FE movw %ax, -2(%bp) 803 0591 85F6 testw %si, %si 804 0593 746A je .L82 805 0595 B88001 movw $384, %ax 806 0598 50 pushw %ax 807 0599 B80102 movw $513, %ax 808 059c 50 pushw %ax 809 059d 56 pushw %si 810 059e E8FEFF call open GAS LISTING /tmp/ccptpGUU.s page 23 811 05a1 89C7 movw %ax, %di 812 05a3 83C406 addw $6, %sp 813 05a6 85C0 testw %ax, %ax 814 05a8 7D19 jge .L84 815 05aa E8FEFF call __errno 816 05ad 93 xchgw %ax, %bx 817 05ae FF37 pushw (%bx) 818 05b0 56 pushw %si 819 05b1 B80000 movw $pgm, %ax 820 05b4 50 pushw %ax 821 05b5 B8B107 movw $.LC7, %ax 822 05b8 50 pushw %ax 823 05b9 E8FEFF call printf 824 05bc B80100 movw $1, %ax 825 05bf 50 pushw %ax 826 05c0 E8FEFF call exit 827 .L84: 828 05c3 B90002 movw $512, %cx 829 05c6 51 pushw %cx 830 05c7 894EFC movw %cx, -4(%bp) 831 05ca FF76FE pushw -2(%bp) 832 05cd 50 pushw %ax 833 05ce E8FEFF call write 834 05d1 83C406 addw $6, %sp 835 05d4 3D0002 cmpw $512, %ax 836 05d7 8B4EFC movw -4(%bp), %cx 837 05da 7418 je .L85 838 05dc 56 pushw %si 839 05dd 51 pushw %cx 840 05de B80000 movw $pgm, %ax 841 05e1 50 pushw %ax 842 05e2 B8D407 movw $.LC8, %ax 843 05e5 50 pushw %ax 844 05e6 E8FEFF call printf 845 05e9 57 pushw %di 846 05ea E8FEFF call close 847 05ed B80100 movw $1, %ax 848 05f0 50 pushw %ax 849 05f1 E8FEFF call exit 850 .L85: 851 05f4 897E08 movw %di, 8(%bp) 852 05f7 89EC movw %bp, %sp 853 05f9 5D popw %bp 854 05fa 5F popw %di 855 05fb 5E popw %si 856 05fc E9FEFF jmp close 857 .L82: 858 05ff 89EC movw %bp, %sp 859 0601 5D popw %bp 860 0602 5F popw %di 861 0603 5E popw %si 862 0604 C3 ret 863 .size saveBS, .-saveBS 864 .section .rodata.str1.1 865 .LC9: 866 07f8 25733A20 6D697373 .string "%s: missing filename to dump boot sector to\n" 866 696E6720 66696C65 GAS LISTING /tmp/ccptpGUU.s page 24 866 6E616D65 20746F20 866 64756D70 20626F6F 866 74207365 63746F72 866 20746F0A 00 867 .LC10: 868 0825 25733A20 6661696C .string "%s: failed to read boot sector for drive %c:\n" 868 65642074 6F207265 868 61642062 6F6F7420 868 73656374 6F722066 868 6F722064 72697665 868 2025633A 0A00 869 .text 870 .global dumpBS 871 .type dumpBS, @function 872 dumpBS: 873 0605 56 pushw %si 874 0606 57 pushw %di 875 0607 55 pushw %bp 876 0608 89E5 movw %sp, %bp 877 060a 81EC0402 subw $516, %sp 878 060e 8B7E0A movw 10(%bp), %di 879 0611 837E0800 cmpw $0, 8(%bp) 880 0615 BE0100 movw $1, %si 881 0618 750F jne .L88 882 061a B80000 movw $pgm, %ax 883 061d 50 pushw %ax 884 061e B8F807 movw $.LC9, %ax 885 0621 50 pushw %ax 886 0622 E8FEFF call printf 887 0625 56 pushw %si 888 0626 E8FEFF call exit 889 .L88: 890 0629 89F8 movw %di, %ax 891 062b 40 incw %ax 892 062c 8986FEFD movw %ax, -514(%bp) 893 0630 31D2 xorw %dx, %dx 894 0632 52 pushw %dx 895 0633 8996FCFD movw %dx, -516(%bp) 896 0637 B84A08 movw $2122, %ax 897 063a 50 pushw %ax 898 063b FFB6FEFD pushw -514(%bp) 899 063f E8FEFF call generic_block_ioctl 900 0642 57 pushw %di 901 0643 E8FEFF call reset_drive 902 0646 8B96FCFD movw -516(%bp), %dx 903 064a 52 pushw %dx 904 064b 8D8600FE leaw -512(%bp), %ax 905 064f 50 pushw %ax 906 0650 52 pushw %dx 907 0651 52 pushw %dx 908 0652 56 pushw %si 909 0653 57 pushw %di 910 0654 E8FEFF call MyAbsReadWrite 911 0657 83C414 addw $20, %sp 912 065a 85C0 testw %ax, %ax 913 065c 7413 je .L89 914 065e 8D4541 leaw 65(%di), %ax GAS LISTING /tmp/ccptpGUU.s page 25 915 0661 50 pushw %ax 916 0662 B80000 movw $pgm, %ax 917 0665 50 pushw %ax 918 0666 B82508 movw $.LC10, %ax 919 0669 50 pushw %ax 920 066a E8FEFF call printf 921 066d 56 pushw %si 922 066e E8FEFF call exit 923 .L89: 924 0671 8986FCFD movw %ax, -516(%bp) 925 0675 57 pushw %di 926 0676 E8FEFF call reset_drive 927 0679 8B86FCFD movw -516(%bp), %ax 928 067d 50 pushw %ax 929 067e B86A08 movw $2154, %ax 930 0681 50 pushw %ax 931 0682 FFB6FEFD pushw -514(%bp) 932 0686 E8FEFF call generic_block_ioctl 933 0689 8D8600FE leaw -512(%bp), %ax 934 068d 50 pushw %ax 935 068e FF7608 pushw 8(%bp) 936 0691 E8FEFF call saveBS 937 0694 89EC movw %bp, %sp 938 0696 5D popw %bp 939 0697 5F popw %di 940 0698 5E popw %si 941 0699 C3 ret 942 .size dumpBS, .-dumpBS 943 .section .rodata.str1.1 944 .LC11: 945 0853 434F4D4D 414E442E .string "COMMAND.COM" 945 434F4D00 946 .LC12: 947 085f 48454C50 00 .string "HELP" 948 .LC13: 949 0864 56455242 4F534500 .string "VERBOSE" 950 .LC14: 951 086c 424F5448 00 .string "BOTH" 952 .LC15: 953 0871 424F4F54 4F4E4C59 .string "BOOTONLY" 953 00 954 .LC16: 955 087a 55504441 544500 .string "UPDATE" 956 .LC17: 957 0881 4F454D00 .string "OEM" 958 .LC18: 959 0885 4155544F 00 .string "AUTO" 960 .LC19: 961 088a 4C454452 5041434B .string "LEDRPACK" 961 00 962 .LC20: 963 0893 4C454452 00 .string "LEDR" 964 .LC21: 965 0898 45445200 .string "EDR" 966 .LC22: 967 089c 4C4D5350 41434B00 .string "LMSPACK" 968 .LC23: GAS LISTING /tmp/ccptpGUU.s page 26 969 08a4 4C4D5300 .string "LMS" 970 .LC24: 971 08a8 4F50454E 444F5300 .string "OPENDOS" 972 .LC25: 973 08b0 464400 .string "FD" 974 .LC26: 975 08b3 25733A20 756E6B6E .string "%s: unknown OEM qualifier %s\n" 975 6F776E20 4F454D20 975 7175616C 69666965 975 72202573 0A00 976 .LC27: 977 08d1 464F5243 4500 .string "FORCE" 978 .LC28: 979 08d7 43485300 .string "CHS" 980 .LC29: 981 08db 4C424100 .string "LBA" 982 .LC30: 983 08df 42534452 5600 .string "BSDRV" 984 .LC31: 985 08e5 42494F53 44525600 .string "BIOSDRV" 986 .LC32: 987 08ed 25733A20 696E7661 .string "%s: invalid FORCE qualifier %s\n" 987 6C696420 464F5243 987 45207175 616C6966 987 69657220 25730A00 988 .LC33: 989 090d 44525600 .string "DRV" 990 .LC34: 991 0911 4E4F4241 4B425300 .string "NOBAKBS" 992 .LC35: 993 0919 4200 .string "B" 994 .LC36: 995 091b 534B464E 00 .string "SKFN" 996 .LC37: 997 0920 5343464E 00 .string "SCFN" 998 .LC38: 999 0925 4241434B 55504253 .string "BACKUPBS" 999 00 1000 .LC39: 1001 092e 44554D50 425300 .string "DUMPBS" 1002 .LC40: 1003 0935 25733A20 756E7370 .string "%s: unspecified drive, unable to obtain boot sector\n" 1003 65636966 69656420 1003 64726976 652C2075 1003 6E61626C 6520746F 1003 206F6274 61696E20 1003 626F6F74 20736563 1003 746F720A 00 1004 .LC41: 1005 096a 52455354 4F524253 .string "RESTORBS" 1005 00 1006 .LC42: 1007 0973 25733A20 756E7370 .string "%s: unspecified drive, unable to restore boot sector\n" 1007 65636966 69656420 1007 64726976 652C2075 1007 6E61626C 6520746F 1007 20726573 746F7265 GAS LISTING /tmp/ccptpGUU.s page 27 1007 20626F6F 74207365 1007 63746F72 0A00 1008 .LC43: 1009 09a9 25733A20 756E6B6E .string "%s: unknown option, %s\n" 1009 6F776E20 6F707469 1009 6F6E2C20 25730A00 1010 .LC44: 1011 09c1 25733A20 756E6B6E .string "%s: unknown option or missing parameter, %s\n" 1011 6F776E20 6F707469 1011 6F6E206F 72206D69 1011 7373696E 67207061 1011 72616D65 7465722C 1011 2025730A 00 1012 .LC45: 1013 09ee 25733A20 696E7661 .string "%s: invalid argument %s\n" 1013 6C696420 61726775 1013 6D656E74 2025730A 1013 00 1014 .LC46: 1015 0a07 25733A20 64726976 .string "%s: drive %c must be A:..Z:\n" 1015 65202563 206D7573 1015 74206265 20413A2E 1015 2E5A3A0A 00 1016 .LC47: 1017 0a24 25633A00 .string "%c:" 1018 .LC48: 1019 0a28 5C00 .string "\\" 1020 .LC49: 1021 0a2a 2E5C00 .string ".\\" 1022 .LC50: 1023 0a2d 25732573 00 .string "%s%s" 1024 .LC51: 1025 0a32 25735C25 7300 .string "%s\\%s" 1026 .LC52: 1027 0a38 25733A20 6661696C .string "%s: failed to find kernel file %s\n" 1027 65642074 6F206669 1027 6E64206B 65726E65 1027 6C206669 6C652025 1027 730A00 1028 .LC53: 1029 0a5b 25733A20 6661696C .string "%s: failed to find source file %s\n" 1029 65642074 6F206669 1029 6E642073 6F757263 1029 65206669 6C652025 1029 730A00 1030 .LC54: 1031 0a7e 25733A20 736F7572 .string "%s: source file %s appears corrupt, invalid size\n" 1031 63652066 696C6520 1031 25732061 70706561 1031 72732063 6F727275 1031 70742C20 696E7661 1031 6C696420 73697A65 1031 0A00 1032 .LC55: 1033 0ab0 434F4D53 50454300 .string "COMSPEC" 1034 .LC56: 1035 0ab8 25733A20 6661696C .string "%s: failed to find command interpreter (shell) file %s\n" GAS LISTING /tmp/ccptpGUU.s page 28 1035 65642074 6F206669 1035 6E642063 6F6D6D61 1035 6E642069 6E746572 1035 70726574 65722028 1035 7368656C 6C292066 1035 696C6520 25730A00 1036 .text 1037 .global initOptions 1038 .type initOptions, @function 1039 initOptions: 1040 069a 56 pushw %si 1041 069b 57 pushw %di 1042 069c 55 pushw %bp 1043 069d 89E5 movw %sp, %bp 1044 069f 81EC5801 subw $344, %sp 1045 06a3 8B7E0C movw 12(%bp), %di 1046 06a6 B82901 movw $297, %ax 1047 06a9 50 pushw %ax 1048 06aa 31F6 xorw %si, %si 1049 06ac 56 pushw %si 1050 06ad 57 pushw %di 1051 06ae E8FEFF call memset 1052 06b1 C7850501 FFFF movw $-1, 261(%di) 1053 06b7 C7851801 0100 movw $1, 280(%di) 1054 06bd C7851A01 0100 movw $1, 282(%di) 1055 06c3 83C406 addw $6, %sp 1056 06c6 89B6B6FE movw %si, -330(%bp) 1057 06ca 89B6BEFE movw %si, -322(%bp) 1058 06ce C786B8FE 0100 movw $1, -328(%bp) 1059 .L92: 1060 06d4 8B86B8FE movw -328(%bp), %ax 1061 06d8 3B4608 cmpw 8(%bp), %ax 1062 06db 7C69 jl .L144 1063 06dd 83BD1E01 00 cmpw $0, 286(%di) 1064 06e2 7506 jne .L145 1065 06e4 C7851C01 0100 movw $1, 284(%di) 1066 .L145: 1067 06ea 83BEBEFE 00 cmpw $0, -322(%bp) 1068 06ef 7503E996 00 je .L94 1069 06f4 8B9EBEFE movw -322(%bp), %bx 1070 06f8 D1E3 shlw $1, %bx 1071 06fa 899EBEFE movw %bx, -322(%bp) 1072 06fe 8B760A movw 10(%bp), %si 1073 0701 8B30 movw (%bx,%si), %si 1074 0703 8A04 movb (%si), %al 1075 0705 98 cbtw 1076 0706 8B360000 movw __ctype_ptr__, %si 1077 070a 89C3 movw %ax, %bx 1078 070c 8A5001 movb 1(%bx,%si), %dl 1079 070f 80E203 andb $3, %dl 1080 0712 80FA02 cmpb $2, %dl 1081 0715 7503 jne .L147 1082 0717 83C0E0 addw $-32, %ax 1083 .L147: 1084 071a 04BF addb $-65, %al 1085 071c 88850401 movb %al, 260(%di) 1086 0720 3C19 cmpb $25, %al GAS LISTING /tmp/ccptpGUU.s page 29 1087 0722 7F03E9B4 05 jle .L148 1088 0727 8B7E0A movw 10(%bp), %di 1089 072a 8B9EBEFE movw -322(%bp), %bx 1090 072e 8B19 movw (%bx,%di), %bx 1091 0730 8A07 movb (%bx), %al 1092 0732 98 cbtw 1093 0733 50 pushw %ax 1094 0734 B80000 movw $pgm, %ax 1095 0737 50 pushw %ax 1096 0738 B8070A movw $.LC46, %ax 1097 .L269: 1098 073b 50 pushw %ax 1099 073c E8FEFF call printf 1100 073f B80100 movw $1, %ax 1101 0742 50 pushw %ax 1102 0743 E8FEFF call exit 1103 .L144: 1104 0746 8B86B8FE movw -328(%bp), %ax 1105 074a D1E0 shlw $1, %ax 1106 074c 8986B4FE movw %ax, -332(%bp) 1107 0750 8B760A movw 10(%bp), %si 1108 0753 93 xchgw %ax, %bx 1109 0754 8B00 movw (%bx,%si), %ax 1110 0756 8986BCFE movw %ax, -324(%bp) 1111 075a 89C3 movw %ax, %bx 1112 075c 803F2F cmpb $47, (%bx) 1113 075f 7403E9E2 04 jne .L93 1114 0764 40 incw %ax 1115 0765 8986BAFE movw %ax, -326(%bp) 1116 0769 8A4701 movb 1(%bx), %al 1117 076c 8886ADFE movb %al, -339(%bp) 1118 0770 3C3F cmpb $63, %al 1119 0772 7416 je .L94 1120 0774 B80400 movw $4, %ax 1121 0777 50 pushw %ax 1122 0778 B85F08 movw $.LC12, %ax 1123 077b 50 pushw %ax 1124 077c FFB6BAFE pushw -326(%bp) 1125 0780 E8FEFF call strncasecmp 1126 0783 83C406 addw $6, %sp 1127 0786 85C0 testw %ax, %ax 1128 0788 7503 jne .L95 1129 .L94: 1130 078a E8FEFF call showHelpAndExit 1131 .L95: 1132 078d BA0700 movw $7, %dx 1133 0790 52 pushw %dx 1134 0791 8996B2FE movw %dx, -334(%bp) 1135 0795 B86408 movw $.LC13, %ax 1136 0798 50 pushw %ax 1137 0799 FFB6BAFE pushw -326(%bp) 1138 079d E8FEFF call strncasecmp 1139 07a0 83C406 addw $6, %sp 1140 07a3 85C0 testw %ax, %ax 1141 07a5 8B96B2FE movw -334(%bp), %dx 1142 07a9 8996B0FE movw %dx, -336(%bp) 1143 07ad 750D jne .L96 GAS LISTING /tmp/ccptpGUU.s page 30 1144 07af C7852701 0100 movw $1, 295(%di) 1145 .L97: 1146 07b5 FF86B8FE incw -328(%bp) 1147 07b9 E918FF jmp .L92 1148 .L96: 1149 07bc B80400 movw $4, %ax 1150 07bf 50 pushw %ax 1151 07c0 B86C08 movw $.LC14, %ax 1152 07c3 50 pushw %ax 1153 07c4 FFB6BAFE pushw -326(%bp) 1154 07c8 E8FEFF call strncasecmp 1155 07cb 83C406 addw $6, %sp 1156 07ce 85C0 testw %ax, %ax 1157 07d0 7508 jne .L98 1158 07d2 C7851C01 0100 movw $1, 284(%di) 1159 07d8 EBDB jmp .L97 1160 .L98: 1161 07da BA0800 movw $8, %dx 1162 07dd 52 pushw %dx 1163 07de 8996B2FE movw %dx, -334(%bp) 1164 07e2 B87108 movw $.LC15, %ax 1165 07e5 50 pushw %ax 1166 07e6 FFB6BAFE pushw -326(%bp) 1167 07ea E8FEFF call strncasecmp 1168 07ed 83C406 addw $6, %sp 1169 07f0 85C0 testw %ax, %ax 1170 07f2 8B96B2FE movw -334(%bp), %dx 1171 07f6 8996AEFE movw %dx, -338(%bp) 1172 07fa 750A jne .L99 1173 07fc 89851801 movw %ax, 280(%di) 1174 .L263: 1175 0800 89851A01 movw %ax, 282(%di) 1176 0804 EBAF jmp .L97 1177 .L99: 1178 0806 BA0600 movw $6, %dx 1179 0809 52 pushw %dx 1180 080a 8996B2FE movw %dx, -334(%bp) 1181 080e B87A08 movw $.LC16, %ax 1182 0811 50 pushw %ax 1183 0812 FFB6BAFE pushw -326(%bp) 1184 0816 E8FEFF call strncasecmp 1185 0819 83C406 addw $6, %sp 1186 081c 85C0 testw %ax, %ax 1187 081e 8B96B2FE movw -334(%bp), %dx 1188 0822 8996AAFE movw %dx, -342(%bp) 1189 0826 7508 jne .L100 1190 0828 C7851801 0100 movw $1, 280(%di) 1191 082e EBD0 jmp .L263 1192 .L100: 1193 0830 BA0300 movw $3, %dx 1194 0833 52 pushw %dx 1195 0834 8996B2FE movw %dx, -334(%bp) 1196 0838 B88108 movw $.LC17, %ax 1197 083b 50 pushw %ax 1198 083c FFB6BAFE pushw -326(%bp) 1199 0840 E8FEFF call strncasecmp 1200 0843 83C406 addw $6, %sp GAS LISTING /tmp/ccptpGUU.s page 31 1201 0846 85C0 testw %ax, %ax 1202 0848 7403E909 01 jne .L101 1203 084d 8B9EBCFE movw -324(%bp), %bx 1204 0851 8A4704 movb 4(%bx), %al 1205 0854 84C0 testb %al, %al 1206 0856 7509 jne .L102 1207 .L265: 1208 0858 C7850501 FFFF movw $-1, 261(%di) 1209 085e E954FF jmp .L97 1210 .L102: 1211 0861 8BB6BCFE movw -324(%bp), %si 1212 0865 3C3A cmpb $58, %al 1213 0867 7403E9D8 00 jne .L103 1214 086c 83C605 addw $5, %si 1215 086f B80400 movw $4, %ax 1216 0872 50 pushw %ax 1217 0873 B88508 movw $.LC18, %ax 1218 0876 50 pushw %ax 1219 0877 56 pushw %si 1220 0878 E8FEFF call strncasecmp 1221 087b 83C406 addw $6, %sp 1222 087e 85C0 testw %ax, %ax 1223 0880 74D6 je .L265 1224 0882 FFB6AEFE pushw -338(%bp) 1225 0886 B88A08 movw $.LC19, %ax 1226 0889 50 pushw %ax 1227 088a 56 pushw %si 1228 088b E8FEFF call strncasecmp 1229 088e 83C406 addw $6, %sp 1230 0891 85C0 testw %ax, %ax 1231 0893 7509 jne .L105 1232 0895 C7850501 0200 movw $2, 261(%di) 1233 089b E917FF jmp .L97 1234 .L105: 1235 089e B80400 movw $4, %ax 1236 08a1 50 pushw %ax 1237 08a2 B89308 movw $.LC20, %ax 1238 08a5 50 pushw %ax 1239 08a6 56 pushw %si 1240 08a7 E8FEFF call strncasecmp 1241 08aa 83C406 addw $6, %sp 1242 08ad 85C0 testw %ax, %ax 1243 08af 7509 jne .L106 1244 08b1 C7850501 0300 movw $3, 261(%di) 1245 08b7 E9FBFE jmp .L97 1246 .L106: 1247 08ba FFB6B2FE pushw -334(%bp) 1248 08be B89808 movw $.LC21, %ax 1249 08c1 50 pushw %ax 1250 08c2 56 pushw %si 1251 08c3 E8FEFF call strncasecmp 1252 08c6 83C406 addw $6, %sp 1253 08c9 85C0 testw %ax, %ax 1254 08cb 7509 jne .L107 1255 08cd C7850501 0100 movw $1, 261(%di) 1256 08d3 E9DFFE jmp .L97 1257 .L107: GAS LISTING /tmp/ccptpGUU.s page 32 1258 08d6 FFB6B0FE pushw -336(%bp) 1259 08da B89C08 movw $.LC22, %ax 1260 08dd 50 pushw %ax 1261 08de 56 pushw %si 1262 08df E8FEFF call strncasecmp 1263 08e2 83C406 addw $6, %sp 1264 08e5 85C0 testw %ax, %ax 1265 08e7 7509 jne .L108 1266 08e9 C7850501 0400 movw $4, 261(%di) 1267 08ef E9C3FE jmp .L97 1268 .L108: 1269 08f2 FFB6B2FE pushw -334(%bp) 1270 08f6 B8A408 movw $.LC23, %ax 1271 08f9 50 pushw %ax 1272 08fa 56 pushw %si 1273 08fb E8FEFF call strncasecmp 1274 08fe 83C406 addw $6, %sp 1275 0901 85C0 testw %ax, %ax 1276 0903 7509 jne .L109 1277 0905 C7850501 0500 movw $5, 261(%di) 1278 090b E9A7FE jmp .L97 1279 .L109: 1280 090e FFB6B0FE pushw -336(%bp) 1281 0912 B8A808 movw $.LC24, %ax 1282 0915 50 pushw %ax 1283 0916 56 pushw %si 1284 0917 E8FEFF call strncasecmp 1285 091a 83C406 addw $6, %sp 1286 091d 85C0 testw %ax, %ax 1287 091f 7509 jne .L110 1288 0921 C7850501 0600 movw $6, 261(%di) 1289 0927 E98BFE jmp .L97 1290 .L110: 1291 092a B80200 movw $2, %ax 1292 092d 50 pushw %ax 1293 092e B8B008 movw $.LC25, %ax 1294 0931 50 pushw %ax 1295 0932 56 pushw %si 1296 0933 E8FEFF call strncasecmp 1297 0936 83C406 addw $6, %sp 1298 0939 85C0 testw %ax, %ax 1299 093b 750A jne .L267 1300 093d 89850501 movw %ax, 261(%di) 1301 0941 E971FE jmp .L97 1302 .L103: 1303 0944 83C604 addw $4, %si 1304 .L267: 1305 0947 56 pushw %si 1306 0948 B80000 movw $pgm, %ax 1307 094b 50 pushw %ax 1308 094c B8B308 movw $.LC26, %ax 1309 .L268: 1310 094f 50 pushw %ax 1311 0950 E8FEFF call printf 1312 0953 E8FEFF call showHelpAndExit 1313 .L101: 1314 0956 BA0500 movw $5, %dx GAS LISTING /tmp/ccptpGUU.s page 33 1315 0959 52 pushw %dx 1316 095a 8996A8FE movw %dx, -344(%bp) 1317 095e B8D108 movw $.LC27, %ax 1318 0961 50 pushw %ax 1319 0962 FFB6BAFE pushw -326(%bp) 1320 0966 E8FEFF call strncasecmp 1321 0969 83C406 addw $6, %sp 1322 096c 85C0 testw %ax, %ax 1323 096e 7403E9BF 00 jne .L112 1324 0973 8B9EBCFE movw -324(%bp), %bx 1325 0977 807F063A cmpb $58, 6(%bx) 1326 097b 7403E98D 00 jne .L113 1327 0980 89DE movw %bx, %si 1328 0982 83C607 addw $7, %si 1329 0985 B80400 movw $4, %ax 1330 0988 50 pushw %ax 1331 0989 B88508 movw $.LC18, %ax 1332 098c 50 pushw %ax 1333 098d 56 pushw %si 1334 098e E8FEFF call strncasecmp 1335 0991 83C406 addw $6, %sp 1336 0994 85C0 testw %ax, %ax 1337 0996 7507 jne .L114 1338 0998 88852601 movb %al, 294(%di) 1339 099c E916FE jmp .L97 1340 .L114: 1341 099f FFB6B2FE pushw -334(%bp) 1342 09a3 B8D708 movw $.LC28, %ax 1343 09a6 50 pushw %ax 1344 09a7 56 pushw %si 1345 09a8 E8FEFF call strncasecmp 1346 09ab 83C406 addw $6, %sp 1347 09ae 85C0 testw %ax, %ax 1348 09b0 7508 jne .L115 1349 09b2 C6852601 02 movb $2, 294(%di) 1350 09b7 E9FBFD jmp .L97 1351 .L115: 1352 09ba FFB6B2FE pushw -334(%bp) 1353 09be B8DB08 movw $.LC29, %ax 1354 09c1 50 pushw %ax 1355 09c2 56 pushw %si 1356 09c3 E8FEFF call strncasecmp 1357 09c6 83C406 addw $6, %sp 1358 09c9 85C0 testw %ax, %ax 1359 09cb 7508 jne .L116 1360 09cd C6852601 01 movb $1, 294(%di) 1361 09d2 E9E0FD jmp .L97 1362 .L116: 1363 09d5 FFB6A8FE pushw -344(%bp) 1364 09d9 B8DF08 movw $.LC30, %ax 1365 09dc 50 pushw %ax 1366 09dd 56 pushw %si 1367 09de E8FEFF call strncasecmp 1368 09e1 83C406 addw $6, %sp 1369 09e4 85C0 testw %ax, %ax 1370 09e6 7509 jne .L117 1371 .L264: GAS LISTING /tmp/ccptpGUU.s page 34 1372 09e8 C7851401 0100 movw $1, 276(%di) 1373 09ee E9C4FD jmp .L97 1374 .L117: 1375 09f1 FFB6B0FE pushw -336(%bp) 1376 09f5 B8E508 movw $.LC31, %ax 1377 09f8 50 pushw %ax 1378 09f9 56 pushw %si 1379 09fa E8FEFF call strncasecmp 1380 09fd 83C406 addw $6, %sp 1381 0a00 85C0 testw %ax, %ax 1382 0a02 7523 jne .L119 1383 0a04 C7851401 FFFF movw $-1, 276(%di) 1384 0a0a E9A8FD jmp .L97 1385 .L113: 1386 0a0d 8BB6BCFE movw -324(%bp), %si 1387 0a11 83C606 addw $6, %si 1388 0a14 FFB6B2FE pushw -334(%bp) 1389 0a18 B80D09 movw $.LC33, %ax 1390 0a1b 50 pushw %ax 1391 0a1c 56 pushw %si 1392 0a1d E8FEFF call strncasecmp 1393 0a20 83C406 addw $6, %sp 1394 0a23 85C0 testw %ax, %ax 1395 0a25 74C1 je .L264 1396 .L119: 1397 0a27 56 pushw %si 1398 0a28 B80000 movw $pgm, %ax 1399 0a2b 50 pushw %ax 1400 0a2c B8ED08 movw $.LC32, %ax 1401 0a2f E91DFF jmp .L268 1402 .L112: 1403 0a32 FFB6B0FE pushw -336(%bp) 1404 0a36 B81109 movw $.LC34, %ax 1405 0a39 50 pushw %ax 1406 0a3a FFB6BAFE pushw -326(%bp) 1407 0a3e E8FEFF call strncasecmp 1408 0a41 83C406 addw $6, %sp 1409 0a44 85C0 testw %ax, %ax 1410 0a46 7509 jne .L120 1411 0a48 C7851601 0100 movw $1, 278(%di) 1412 0a4e E964FD jmp .L97 1413 .L120: 1414 0a51 FF86B8FE incw -328(%bp) 1415 0a55 8B86B8FE movw -328(%bp), %ax 1416 0a59 394608 cmpw %ax, 8(%bp) 1417 0a5c 7F03E9D7 01 jle .L121 1418 0a61 A10000 movw __ctype_ptr__, %ax 1419 0a64 8986BCFE movw %ax, -324(%bp) 1420 0a68 8A86ADFE movb -339(%bp), %al 1421 0a6c 98 cbtw 1422 0a6d 8BB6BCFE movw -324(%bp), %si 1423 0a71 89C3 movw %ax, %bx 1424 0a73 8A5001 movb 1(%bx,%si), %dl 1425 0a76 8896B2FE movb %dl, -334(%bp) 1426 0a7a 80E203 andb $3, %dl 1427 0a7d 80FA02 cmpb $2, %dl 1428 0a80 7503 jne .L123 GAS LISTING /tmp/ccptpGUU.s page 35 1429 0a82 83C0E0 addw $-32, %ax 1430 .L123: 1431 0a85 83F84B cmpw $75, %ax 1432 0a88 7511 jne .L124 1433 0a8a 8B760A movw 10(%bp), %si 1434 0a8d 8B9EB4FE movw -332(%bp), %bx 1435 0a91 8B4002 movw 2(%bx,%si), %ax 1436 0a94 89850701 movw %ax, 263(%di) 1437 0a98 E91AFD jmp .L97 1438 .L124: 1439 0a9b 83F84C cmpw $76, %ax 1440 0a9e 751E jne .L125 1441 0aa0 B81000 movw $16, %ax 1442 0aa3 50 pushw %ax 1443 0aa4 31C0 xorw %ax, %ax 1444 0aa6 50 pushw %ax 1445 0aa7 8B760A movw 10(%bp), %si 1446 0aaa 8B9EB4FE movw -332(%bp), %bx 1447 0aae FF7002 pushw 2(%bx,%si) 1448 0ab1 E8FEFF call strtol 1449 0ab4 89850B01 movw %ax, 267(%di) 1450 .L262: 1451 0ab8 83C406 addw $6, %sp 1452 0abb E9F7FC jmp .L97 1453 .L125: 1454 0abe B80200 movw $2, %ax 1455 0ac1 50 pushw %ax 1456 0ac2 B81909 movw $.LC35, %ax 1457 0ac5 50 pushw %ax 1458 0ac6 FFB6BAFE pushw -326(%bp) 1459 0aca E8FEFF call strncasecmp 1460 0acd 83C406 addw $6, %sp 1461 0ad0 85C0 testw %ax, %ax 1462 0ad2 7518 jne .L126 1463 0ad4 BA1000 movw $16, %dx 1464 0ad7 52 pushw %dx 1465 0ad8 50 pushw %ax 1466 0ad9 8B760A movw 10(%bp), %si 1467 0adc 8B9EB4FE movw -332(%bp), %bx 1468 0ae0 FF7002 pushw 2(%bx,%si) 1469 0ae3 E8FEFF call strtol 1470 0ae6 88851301 movb %al, 275(%di) 1471 0aea EBCC jmp .L262 1472 .L126: 1473 0aec B80400 movw $4, %ax 1474 0aef 50 pushw %ax 1475 0af0 B81B09 movw $.LC36, %ax 1476 0af3 50 pushw %ax 1477 0af4 FFB6BAFE pushw -326(%bp) 1478 0af8 E8FEFF call strncasecmp 1479 0afb 83C406 addw $6, %sp 1480 0afe 85C0 testw %ax, %ax 1481 0b00 7515 jne .L127 1482 0b02 89850501 movw %ax, 261(%di) 1483 0b06 8B760A movw 10(%bp), %si 1484 0b09 8B9EB4FE movw -332(%bp), %bx 1485 0b0d 8B4002 movw 2(%bx,%si), %ax GAS LISTING /tmp/ccptpGUU.s page 36 1486 0b10 89852201 movw %ax, 290(%di) 1487 0b14 E99EFC jmp .L97 1488 .L127: 1489 0b17 B80400 movw $4, %ax 1490 0b1a 50 pushw %ax 1491 0b1b B82009 movw $.LC37, %ax 1492 0b1e 50 pushw %ax 1493 0b1f FFB6BAFE pushw -326(%bp) 1494 0b23 E8FEFF call strncasecmp 1495 0b26 83C406 addw $6, %sp 1496 0b29 85C0 testw %ax, %ax 1497 0b2b 7511 jne .L128 1498 0b2d 8B760A movw 10(%bp), %si 1499 0b30 8B9EB4FE movw -332(%bp), %bx 1500 0b34 8B4002 movw 2(%bx,%si), %ax 1501 0b37 89852401 movw %ax, 292(%di) 1502 0b3b E977FC jmp .L97 1503 .L128: 1504 0b3e FFB6AEFE pushw -338(%bp) 1505 0b42 B82509 movw $.LC38, %ax 1506 0b45 50 pushw %ax 1507 0b46 FFB6BAFE pushw -326(%bp) 1508 0b4a E8FEFF call strncasecmp 1509 0b4d 83C406 addw $6, %sp 1510 0b50 85C0 testw %ax, %ax 1511 0b52 7511 jne .L129 1512 0b54 8B760A movw 10(%bp), %si 1513 0b57 8B9EB4FE movw -332(%bp), %bx 1514 0b5b 8B4002 movw 2(%bx,%si), %ax 1515 0b5e 89852001 movw %ax, 288(%di) 1516 0b62 E950FC jmp .L97 1517 .L129: 1518 0b65 FFB6AAFE pushw -342(%bp) 1519 0b69 B82E09 movw $.LC39, %ax 1520 0b6c 50 pushw %ax 1521 0b6d FFB6BAFE pushw -326(%bp) 1522 0b71 E8FEFF call strncasecmp 1523 0b74 83C406 addw $6, %sp 1524 0b77 85C0 testw %ax, %ax 1525 0b79 BE0000 movw $pgm, %si 1526 0b7c 754F jne .L130 1527 0b7e 83BEBEFE 00 cmpw $0, -322(%bp) 1528 0b83 743E je .L131 1529 0b85 8B9EBEFE movw -322(%bp), %bx 1530 0b89 D1E3 shlw $1, %bx 1531 0b8b 8B7E0A movw 10(%bp), %di 1532 0b8e 8B19 movw (%bx,%di), %bx 1533 0b90 8A07 movb (%bx), %al 1534 0b92 98 cbtw 1535 0b93 8BBEBCFE movw -324(%bp), %di 1536 0b97 89C3 movw %ax, %bx 1537 0b99 8A5101 movb 1(%bx,%di), %dl 1538 0b9c 80E203 andb $3, %dl 1539 0b9f 80FA02 cmpb $2, %dl 1540 0ba2 7503 jne .L133 1541 0ba4 83C0E0 addw $-32, %ax 1542 .L133: GAS LISTING /tmp/ccptpGUU.s page 37 1543 0ba7 04BF addb $-65, %al 1544 0ba9 98 cbtw 1545 0baa 50 pushw %ax 1546 0bab 8B9EB8FE movw -328(%bp), %bx 1547 0baf D1E3 shlw $1, %bx 1548 0bb1 8B7E0A movw 10(%bp), %di 1549 0bb4 FF31 pushw (%bx,%di) 1550 0bb6 E8FEFF call dumpBS 1551 .L258: 1552 0bb9 83C404 addw $4, %sp 1553 0bbc B80100 movw $1, %ax 1554 0bbf 50 pushw %ax 1555 0bc0 E8FEFF call exit 1556 .L131: 1557 0bc3 56 pushw %si 1558 0bc4 B83509 movw $.LC40, %ax 1559 .L259: 1560 0bc7 50 pushw %ax 1561 0bc8 E8FEFF call printf 1562 0bcb EBEC jmp .L258 1563 .L130: 1564 0bcd FFB6AEFE pushw -338(%bp) 1565 0bd1 B86A09 movw $.LC41, %ax 1566 0bd4 50 pushw %ax 1567 0bd5 FFB6BAFE pushw -326(%bp) 1568 0bd9 E8FEFF call strncasecmp 1569 0bdc 83C406 addw $6, %sp 1570 0bdf 85C0 testw %ax, %ax 1571 0be1 7543 jne .L135 1572 0be3 83BEBEFE 00 cmpw $0, -322(%bp) 1573 0be8 7436 je .L136 1574 0bea 8B9EBEFE movw -322(%bp), %bx 1575 0bee D1E3 shlw $1, %bx 1576 0bf0 8B7E0A movw 10(%bp), %di 1577 0bf3 8B19 movw (%bx,%di), %bx 1578 0bf5 8A07 movb (%bx), %al 1579 0bf7 98 cbtw 1580 0bf8 89C3 movw %ax, %bx 1581 0bfa 8BBEBCFE movw -324(%bp), %di 1582 0bfe 8A5101 movb 1(%bx,%di), %dl 1583 0c01 80E203 andb $3, %dl 1584 0c04 80FA02 cmpb $2, %dl 1585 0c07 7503 jne .L138 1586 0c09 8D47E0 leaw -32(%bx), %ax 1587 .L138: 1588 0c0c 04BF addb $-65, %al 1589 0c0e 98 cbtw 1590 0c0f 50 pushw %ax 1591 0c10 8B9EB8FE movw -328(%bp), %bx 1592 0c14 D1E3 shlw $1, %bx 1593 0c16 8B7E0A movw 10(%bp), %di 1594 0c19 FF31 pushw (%bx,%di) 1595 0c1b E8FEFF call restoreBS 1596 0c1e EB99 jmp .L258 1597 .L136: 1598 0c20 56 pushw %si 1599 0c21 B87309 movw $.LC42, %ax GAS LISTING /tmp/ccptpGUU.s page 38 1600 0c24 EBA1 jmp .L259 1601 .L135: 1602 0c26 8B9EB8FE movw -328(%bp), %bx 1603 0c2a D1E3 shlw $1, %bx 1604 0c2c 8B7E0A movw 10(%bp), %di 1605 0c2f FF31 pushw (%bx,%di) 1606 0c31 56 pushw %si 1607 0c32 B8A909 movw $.LC43, %ax 1608 0c35 E917FD jmp .L268 1609 .L121: 1610 0c38 FFB6BCFE pushw -324(%bp) 1611 0c3c B80000 movw $pgm, %ax 1612 0c3f 50 pushw %ax 1613 0c40 B8C109 movw $.LC44, %ax 1614 0c43 E909FD jmp .L268 1615 .L93: 1616 0c46 83BEBEFE 00 cmpw $0, -322(%bp) 1617 0c4b 7503E980 00 je .L261 1618 0c50 83BEB6FE 00 cmpw $0, -330(%bp) 1619 0c55 7568 jne .L139 1620 0c57 83BD1E01 00 cmpw $0, 286(%di) 1621 0c5c 7561 jne .L139 1622 0c5e 8B9EBEFE movw -322(%bp), %bx 1623 0c62 D1E3 shlw $1, %bx 1624 0c64 8B760A movw 10(%bp), %si 1625 0c67 8B18 movw (%bx,%si), %bx 1626 0c69 8A6701 movb 1(%bx), %ah 1627 0c6c 84E4 testb %ah, %ah 1628 0c6e 8BB6BCFE movw -324(%bp), %si 1629 0c72 8A4401 movb 1(%si), %al 1630 0c75 740B je .L140 1631 0c77 80FC3A cmpb $58, %ah 1632 0c7a 7523 jne .L141 1633 0c7c 807F0200 cmpb $0, 2(%bx) 1634 0c80 751D jne .L141 1635 .L140: 1636 0c82 84C0 testb %al, %al 1637 0c84 7442 je .L205 1638 0c86 3C3A cmpb $58, %al 1639 0c88 750A jne .L260 1640 0c8a 8B9EBCFE movw -324(%bp), %bx 1641 0c8e 807F0200 cmpb $0, 2(%bx) 1642 0c92 7434 je .L205 1643 .L260: 1644 0c94 8B86BCFE movw -324(%bp), %ax 1645 0c98 89851E01 movw %ax, 286(%di) 1646 0c9c E916FB jmp .L97 1647 .L141: 1648 0c9f 84C0 testb %al, %al 1649 0ca1 7425 je .L205 1650 0ca3 3C3A cmpb $58, %al 1651 0ca5 750A jne .L143 1652 0ca7 8B9EBCFE movw -324(%bp), %bx 1653 0cab 807F0200 cmpb $0, 2(%bx) 1654 0caf 7417 je .L205 1655 .L143: 1656 0cb1 FFB6BCFE pushw -324(%bp) GAS LISTING /tmp/ccptpGUU.s page 39 1657 0cb5 B80000 movw $pgm, %ax 1658 0cb8 50 pushw %ax 1659 0cb9 B8EE09 movw $.LC45, %ax 1660 0cbc E990FC jmp .L268 1661 .L139: 1662 0cbf 83BD1E01 00 cmpw $0, 286(%di) 1663 0cc4 74CE je .L260 1664 0cc6 EBE9 jmp .L143 1665 .L205: 1666 0cc8 8B86BEFE movw -322(%bp), %ax 1667 0ccc 8986B6FE movw %ax, -330(%bp) 1668 .L261: 1669 0cd0 8B86B8FE movw -328(%bp), %ax 1670 0cd4 8986BEFE movw %ax, -322(%bp) 1671 0cd8 E9DAFA jmp .L97 1672 .L148: 1673 0cdb E8FEFF call getcurdrive 1674 0cde 83C041 addw $65, %ax 1675 0ce1 50 pushw %ax 1676 0ce2 BA240A movw $.LC47, %dx 1677 0ce5 52 pushw %dx 1678 0ce6 8996BEFE movw %dx, -322(%bp) 1679 0cea 57 pushw %di 1680 0ceb E8FEFF call sprintf 1681 0cee 83C406 addw $6, %sp 1682 0cf1 83BEB6FE 00 cmpw $0, -330(%bp) 1683 0cf6 8B96BEFE movw -322(%bp), %dx 1684 0cfa 7454 je .L150 1685 0cfc 8B9EB6FE movw -330(%bp), %bx 1686 0d00 D1E3 shlw $1, %bx 1687 0d02 8B760A movw 10(%bp), %si 1688 0d05 8B18 movw (%bx,%si), %bx 1689 0d07 8A6701 movb 1(%bx), %ah 1690 0d0a 80FC3A cmpb $58, %ah 1691 0d0d 7411 je .L151 1692 0d0f 8A07 movb (%bx), %al 1693 0d11 80FC5C cmpb $92, %ah 1694 0d14 7403E972 02 jne .L152 1695 0d19 3C5C cmpb $92, %al 1696 0d1b 7403E96B 02 jne .L152 1697 .L151: 1698 0d20 B8F700 movw $247, %ax 1699 0d23 50 pushw %ax 1700 0d24 53 pushw %bx 1701 0d25 57 pushw %di 1702 0d26 E8FEFF call strncpy 1703 .L266: 1704 0d29 83C406 addw $6, %sp 1705 0d2c 57 pushw %di 1706 0d2d E8FEFF call strlen 1707 0d30 83C402 addw $2, %sp 1708 0d33 89C3 movw %ax, %bx 1709 0d35 83F802 cmpw $2, %ax 1710 0d38 7E16 jle .L150 1711 0d3a 8A41FF movb -1(%bx,%di), %al 1712 0d3d 3C5C cmpb $92, %al 1713 0d3f 740F je .L150 GAS LISTING /tmp/ccptpGUU.s page 40 1714 0d41 3C2F cmpb $47, %al 1715 0d43 740B je .L150 1716 0d45 B8280A movw $.LC48, %ax 1717 0d48 50 pushw %ax 1718 0d49 57 pushw %di 1719 0d4a E8FEFF call strcat 1720 0d4d 83C404 addw $4, %sp 1721 .L150: 1722 0d50 8A850401 movb 260(%di), %al 1723 0d54 98 cbtw 1724 0d55 92 xchgw %ax, %dx 1725 0d56 8A05 movb (%di), %al 1726 0d58 98 cbtw 1727 0d59 8B360000 movw __ctype_ptr__, %si 1728 0d5d 89C3 movw %ax, %bx 1729 0d5f 8A4801 movb 1(%bx,%si), %cl 1730 0d62 80E103 andb $3, %cl 1731 0d65 80F902 cmpb $2, %cl 1732 0d68 7503 jne .L159 1733 0d6a 83C0E0 addw $-32, %ax 1734 .L159: 1735 0d6d 83C0BF addw $-65, %ax 1736 0d70 39C2 cmpw %ax, %dx 1737 0d72 7511 jne .L160 1738 0d74 807D0200 cmpb $0, 2(%di) 1739 0d78 750B jne .L160 1740 0d7a B82A0A movw $.LC49, %ax 1741 0d7d 50 pushw %ax 1742 0d7e 57 pushw %di 1743 0d7f E8FEFF call strcat 1744 0d82 83C404 addw $4, %sp 1745 .L160: 1746 0d85 83BD0501 FF cmpw $-1, 261(%di) 1747 0d8a 7403E9F8 00 jne .L177 1748 0d8f 31C9 xorw %cx, %cx 1749 .L168: 1750 0d91 B80C00 movw $12, %ax 1751 0d94 F7E1 mulw %cx 1752 0d96 898EBAFE movw %cx, -326(%bp) 1753 0d9a 89C3 movw %ax, %bx 1754 0d9c FFB70000 pushw bootFiles(%bx) 1755 0da0 8986BCFE movw %ax, -324(%bp) 1756 0da4 57 pushw %di 1757 0da5 BA2D0A movw $.LC50, %dx 1758 0da8 52 pushw %dx 1759 0da9 8996BEFE movw %dx, -322(%bp) 1760 0dad 8D86FCFE leaw -260(%bp), %ax 1761 0db1 50 pushw %ax 1762 0db2 E8FEFF call sprintf 1763 0db5 8D86C0FE leaw -320(%bp), %ax 1764 0db9 50 pushw %ax 1765 0dba 8D86FCFE leaw -260(%bp), %ax 1766 0dbe 50 pushw %ax 1767 0dbf E8FEFF call stat 1768 0dc2 83C40C addw $12, %sp 1769 0dc5 85C0 testw %ax, %ax 1770 0dc7 8B8EBAFE movw -326(%bp), %cx GAS LISTING /tmp/ccptpGUU.s page 41 1771 0dcb 7403E938 02 jne .L162 1772 0dd0 8B86D2FE movw -302(%bp), %ax 1773 0dd4 0B86D0FE orw -304(%bp), %ax 1774 0dd8 7503E92B 02 je .L162 1775 0ddd 8B9EBCFE movw -324(%bp), %bx 1776 0de1 8B870A00 movw bootFiles+10(%bx), %ax 1777 0de5 BE0800 movw $bootFiles+8, %si 1778 0de8 0B00 orw (%bx,%si), %ax 1779 0dea 8B96BEFE movw -322(%bp), %dx 1780 0dee 7403E9C6 01 jne .L164 1781 .L166: 1782 0df3 898D0501 movw %cx, 261(%di) 1783 .L165: 1784 0df7 83BD0501 FF cmpw $-1, 261(%di) 1785 0dfc 7403E986 00 jne .L177 1786 0e01 807D0200 cmpb $0, 2(%di) 1787 0e05 757A jne .L169 1788 0e07 31C9 xorw %cx, %cx 1789 .L176: 1790 0e09 B80C00 movw $12, %ax 1791 0e0c F7E1 mulw %cx 1792 0e0e 898EBAFE movw %cx, -326(%bp) 1793 0e12 89C3 movw %ax, %bx 1794 0e14 FFB70000 pushw bootFiles(%bx) 1795 0e18 8986BCFE movw %ax, -324(%bp) 1796 0e1c 57 pushw %di 1797 0e1d BA320A movw $.LC51, %dx 1798 0e20 52 pushw %dx 1799 0e21 8996BEFE movw %dx, -322(%bp) 1800 0e25 8D86FCFE leaw -260(%bp), %ax 1801 0e29 50 pushw %ax 1802 0e2a E8FEFF call sprintf 1803 0e2d 8D86C0FE leaw -320(%bp), %ax 1804 0e31 50 pushw %ax 1805 0e32 8D86FCFE leaw -260(%bp), %ax 1806 0e36 50 pushw %ax 1807 0e37 E8FEFF call stat 1808 0e3a 83C40C addw $12, %sp 1809 0e3d 85C0 testw %ax, %ax 1810 0e3f 8B8EBAFE movw -326(%bp), %cx 1811 0e43 7403E91B 02 jne .L170 1812 0e48 8B86D2FE movw -302(%bp), %ax 1813 0e4c 0B86D0FE orw -304(%bp), %ax 1814 0e50 7503E90E 02 je .L170 1815 0e55 8B9EBCFE movw -324(%bp), %bx 1816 0e59 8B870A00 movw bootFiles+10(%bx), %ax 1817 0e5d BE0800 movw $bootFiles+8, %si 1818 0e60 0B00 orw (%bx,%si), %ax 1819 0e62 8B96BEFE movw -322(%bp), %dx 1820 0e66 7403E9A9 01 jne .L172 1821 .L174: 1822 0e6b 898D0501 movw %cx, 261(%di) 1823 0e6f B8280A movw $.LC48, %ax 1824 0e72 50 pushw %ax 1825 0e73 57 pushw %di 1826 0e74 E8FEFF call strcat 1827 0e77 83C404 addw $4, %sp GAS LISTING /tmp/ccptpGUU.s page 42 1828 .L173: 1829 0e7a 83BD0501 FF cmpw $-1, 261(%di) 1830 0e7f 7506 jne .L177 1831 .L169: 1832 0e81 C7850501 0000 movw $0, 261(%di) 1833 .L177: 1834 0e87 83BD0701 00 cmpw $0, 263(%di) 1835 0e8c BE0000 movw $bootFiles, %si 1836 0e8f 8B8D0501 movw 261(%di), %cx 1837 0e93 750C jne .L178 1838 0e95 B80C00 movw $12, %ax 1839 0e98 F7E1 mulw %cx 1840 0e9a 93 xchgw %ax, %bx 1841 0e9b 8B10 movw (%bx,%si), %dx 1842 0e9d 89950701 movw %dx, 263(%di) 1843 .L178: 1844 0ea1 83BD0901 00 cmpw $0, 265(%di) 1845 0ea6 750D jne .L179 1846 0ea8 B80C00 movw $12, %ax 1847 0eab F7E1 mulw %cx 1848 0ead 93 xchgw %ax, %bx 1849 0eae 8B5002 movw 2(%bx,%si), %dx 1850 0eb1 89950901 movw %dx, 265(%di) 1851 .L179: 1852 0eb5 83BD0B01 00 cmpw $0, 267(%di) 1853 0eba 750D jne .L180 1854 0ebc B80C00 movw $12, %ax 1855 0ebf F7E1 mulw %cx 1856 0ec1 93 xchgw %ax, %bx 1857 0ec2 8B5004 movw 4(%bx,%si), %dx 1858 0ec5 89950B01 movw %dx, 267(%di) 1859 .L180: 1860 0ec9 B80C00 movw $12, %ax 1861 0ecc F7E1 mulw %cx 1862 0ece 01C6 addw %ax, %si 1863 0ed0 8B4406 movw 6(%si), %ax 1864 0ed3 89850D01 movw %ax, 269(%di) 1865 0ed7 83C608 addw $8, %si 1866 0eda C404 lesw (%si), %ax 1867 0edc 89850F01 movw %ax, 271(%di) 1868 0ee0 8C851101 movw %es, 273(%di) 1869 0ee4 83BD1401 FF cmpw $-1, 276(%di) 1870 0ee9 7403E981 01 jne .L181 1871 0eee C7851401 0000 movw $0, 276(%di) 1872 .L182: 1873 0ef4 80BD1301 00 cmpb $0, 275(%di) 1874 0ef9 750C jne .L183 1875 0efb 80BD0401 01 cmpb $1, 260(%di) 1876 0f00 7E05 jle .L183 1877 0f02 C6851301 80 movb $-128, 275(%di) 1878 .L183: 1879 0f07 83BD1801 00 cmpw $0, 280(%di) 1880 0f0c 7503E9EE 01 je .L184 1881 0f11 8B852201 movw 290(%di), %ax 1882 0f15 85C0 testw %ax, %ax 1883 0f17 7504 jne .L185 1884 0f19 8B850701 movw 263(%di), %ax GAS LISTING /tmp/ccptpGUU.s page 43 1885 .L185: 1886 0f1d 50 pushw %ax 1887 0f1e 57 pushw %di 1888 0f1f BE2D0A movw $.LC50, %si 1889 0f22 56 pushw %si 1890 0f23 8D96FCFE leaw -260(%bp), %dx 1891 0f27 52 pushw %dx 1892 0f28 8996BEFE movw %dx, -322(%bp) 1893 0f2c E8FEFF call sprintf 1894 0f2f 8D86C0FE leaw -320(%bp), %ax 1895 0f33 50 pushw %ax 1896 0f34 8B96BEFE movw -322(%bp), %dx 1897 0f38 52 pushw %dx 1898 0f39 E8FEFF call stat 1899 0f3c 83C40C addw $12, %sp 1900 0f3f 85C0 testw %ax, %ax 1901 0f41 7503E95A 01 je .L186 1902 0f46 8B852201 movw 290(%di), %ax 1903 0f4a 85C0 testw %ax, %ax 1904 0f4c 7504 jne .L187 1905 0f4e 8B850701 movw 263(%di), %ax 1906 .L187: 1907 0f52 50 pushw %ax 1908 0f53 57 pushw %di 1909 0f54 B8320A movw $.LC51, %ax 1910 0f57 50 pushw %ax 1911 0f58 8D96FCFE leaw -260(%bp), %dx 1912 0f5c 52 pushw %dx 1913 0f5d 8996BEFE movw %dx, -322(%bp) 1914 0f61 E8FEFF call sprintf 1915 0f64 83C408 addw $8, %sp 1916 0f67 807D0200 cmpb $0, 2(%di) 1917 0f6b 8B96BEFE movw -322(%bp), %dx 1918 0f6f 7503E90E 01 je .L188 1919 .L191: 1920 0f74 8B852201 movw 290(%di), %ax 1921 0f78 85C0 testw %ax, %ax 1922 0f7a 7504 jne .L189 1923 0f7c 8B850701 movw 263(%di), %ax 1924 .L189: 1925 0f80 50 pushw %ax 1926 0f81 B80000 movw $pgm, %ax 1927 0f84 50 pushw %ax 1928 0f85 B8380A movw $.LC52, %ax 1929 0f88 E9B0F7 jmp .L269 1930 .L152: 1931 0f8b 84E4 testb %ah, %ah 1932 0f8d 751E jne .L154 1933 0f8f 98 cbtw 1934 0f90 8B360000 movw __ctype_ptr__, %si 1935 0f94 89C3 movw %ax, %bx 1936 0f96 8A4801 movb 1(%bx,%si), %cl 1937 0f99 80E103 andb $3, %cl 1938 0f9c 80F902 cmpb $2, %cl 1939 0f9f 7503 jne .L156 1940 0fa1 83C0E0 addw $-32, %ax 1941 .L156: GAS LISTING /tmp/ccptpGUU.s page 44 1942 0fa4 50 pushw %ax 1943 0fa5 52 pushw %dx 1944 0fa6 57 pushw %di 1945 0fa7 E8FEFF call sprintf 1946 0faa E97CFD jmp .L266 1947 .L154: 1948 0fad B8F500 movw $245, %ax 1949 0fb0 50 pushw %ax 1950 0fb1 53 pushw %bx 1951 0fb2 57 pushw %di 1952 0fb3 E8FEFF call strncat 1953 0fb6 E970FD jmp .L266 1954 .L164: 1955 0fb9 898EBCFE movw %cx, -324(%bp) 1956 0fbd FFB70200 pushw bootFiles+2(%bx) 1957 0fc1 899EBEFE movw %bx, -322(%bp) 1958 0fc5 57 pushw %di 1959 0fc6 52 pushw %dx 1960 0fc7 8D86FCFE leaw -260(%bp), %ax 1961 0fcb 50 pushw %ax 1962 0fcc E8FEFF call sprintf 1963 0fcf 8D86C0FE leaw -320(%bp), %ax 1964 0fd3 50 pushw %ax 1965 0fd4 8D86FCFE leaw -260(%bp), %ax 1966 0fd8 50 pushw %ax 1967 0fd9 E8FEFF call stat 1968 0fdc 83C40C addw $12, %sp 1969 0fdf 85C0 testw %ax, %ax 1970 0fe1 8B8EBCFE movw -324(%bp), %cx 1971 0fe5 7521 jne .L162 1972 0fe7 8B9EBEFE movw -322(%bp), %bx 1973 0feb 8B870A00 movw bootFiles+10(%bx), %ax 1974 0fef 3B86D2FE cmpw -302(%bp), %ax 1975 0ff3 7F13 jg .L162 1976 0ff5 7403E9F9 FD jne .L166 1977 0ffa BE0800 movw $bootFiles+8, %si 1978 0ffd 8B00 movw (%bx,%si), %ax 1979 0fff 3B86D0FE cmpw -304(%bp), %ax 1980 1003 7703E9EB FD jbe .L166 1981 .L162: 1982 1008 41 incw %cx 1983 1009 83F907 cmpw $7, %cx 1984 100c 7403E980 FD jne .L168 1985 1011 E9E3FD jmp .L165 1986 .L172: 1987 1014 898EBCFE movw %cx, -324(%bp) 1988 1018 FFB70200 pushw bootFiles+2(%bx) 1989 101c 899EBEFE movw %bx, -322(%bp) 1990 1020 57 pushw %di 1991 1021 52 pushw %dx 1992 1022 8D86FCFE leaw -260(%bp), %ax 1993 1026 50 pushw %ax 1994 1027 E8FEFF call sprintf 1995 102a 8D86C0FE leaw -320(%bp), %ax 1996 102e 50 pushw %ax 1997 102f 8D86FCFE leaw -260(%bp), %ax 1998 1033 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 45 1999 1034 E8FEFF call stat 2000 1037 83C40C addw $12, %sp 2001 103a 85C0 testw %ax, %ax 2002 103c 8B8EBCFE movw -324(%bp), %cx 2003 1040 7521 jne .L170 2004 1042 8B9EBEFE movw -322(%bp), %bx 2005 1046 8B870A00 movw bootFiles+10(%bx), %ax 2006 104a 3B86D2FE cmpw -302(%bp), %ax 2007 104e 7F13 jg .L170 2008 1050 7403E916 FE jne .L174 2009 1055 BE0800 movw $bootFiles+8, %si 2010 1058 8B00 movw (%bx,%si), %ax 2011 105a 3B86D0FE cmpw -304(%bp), %ax 2012 105e 7703E908 FE jbe .L174 2013 .L170: 2014 1063 41 incw %cx 2015 1064 83F907 cmpw $7, %cx 2016 1067 7403E99D FD jne .L176 2017 106c E90BFE jmp .L173 2018 .L181: 2019 106f 80BD0401 01 cmpb $1, 260(%di) 2020 1074 7E03E97B FE jg .L182 2021 1079 C7851401 0100 movw $1, 276(%di) 2022 107f E972FE jmp .L182 2023 .L188: 2024 1082 8D86C0FE leaw -320(%bp), %ax 2025 1086 50 pushw %ax 2026 1087 52 pushw %dx 2027 1088 E8FEFF call stat 2028 108b 83C404 addw $4, %sp 2029 108e 85C0 testw %ax, %ax 2030 1090 7403E9DF FE jne .L191 2031 1095 B8280A movw $.LC48, %ax 2032 1098 50 pushw %ax 2033 1099 57 pushw %di 2034 109a E8FEFF call strcat 2035 109d 83C404 addw $4, %sp 2036 .L186: 2037 10a0 8B850901 movw 265(%di), %ax 2038 10a4 85C0 testw %ax, %ax 2039 10a6 7457 je .L184 2040 10a8 8B951101 movw 273(%di), %dx 2041 10ac 0B950F01 orw 271(%di), %dx 2042 10b0 744D je .L184 2043 10b2 50 pushw %ax 2044 10b3 57 pushw %di 2045 10b4 56 pushw %si 2046 10b5 8DB6FCFE leaw -260(%bp), %si 2047 10b9 56 pushw %si 2048 10ba E8FEFF call sprintf 2049 10bd 8D86C0FE leaw -320(%bp), %ax 2050 10c1 50 pushw %ax 2051 10c2 56 pushw %si 2052 10c3 E8FEFF call stat 2053 10c6 83C40C addw $12, %sp 2054 10c9 85C0 testw %ax, %ax 2055 10cb 740E je .L194 GAS LISTING /tmp/ccptpGUU.s page 46 2056 10cd FFB50901 pushw 265(%di) 2057 10d1 B80000 movw $pgm, %ax 2058 10d4 50 pushw %ax 2059 10d5 B85B0A movw $.LC53, %ax 2060 10d8 E960F6 jmp .L269 2061 .L194: 2062 10db 8B851101 movw 273(%di), %ax 2063 10df 3B86D2FE cmpw -302(%bp), %ax 2064 10e3 7F0C jg .L210 2065 10e5 7518 jne .L184 2066 10e7 8B850F01 movw 271(%di), %ax 2067 10eb 3B86D0FE cmpw -304(%bp), %ax 2068 10ef 760E jbe .L184 2069 .L210: 2070 10f1 FFB50901 pushw 265(%di) 2071 10f5 B80000 movw $pgm, %ax 2072 10f8 50 pushw %ax 2073 10f9 B87E0A movw $.LC54, %ax 2074 10fc E93CF6 jmp .L269 2075 .L184: 2076 10ff 83BD1A01 00 cmpw $0, 282(%di) 2077 1104 7461 je .L91 2078 1106 8B852401 movw 292(%di), %ax 2079 110a 85C0 testw %ax, %ax 2080 110c 7503 jne .L197 2081 110e B85308 movw $.LC11, %ax 2082 .L197: 2083 1111 50 pushw %ax 2084 1112 57 pushw %di 2085 1113 B82D0A movw $.LC50, %ax 2086 1116 50 pushw %ax 2087 1117 8D96FCFE leaw -260(%bp), %dx 2088 111b 52 pushw %dx 2089 111c 8996BEFE movw %dx, -322(%bp) 2090 1120 E8FEFF call sprintf 2091 1123 8DB6C0FE leaw -320(%bp), %si 2092 1127 56 pushw %si 2093 1128 8B96BEFE movw -322(%bp), %dx 2094 112c 52 pushw %dx 2095 112d E8FEFF call stat 2096 1130 83C40C addw $12, %sp 2097 1133 85C0 testw %ax, %ax 2098 1135 7430 je .L91 2099 1137 B8B00A movw $.LC55, %ax 2100 113a 50 pushw %ax 2101 113b E8FEFF call getenv 2102 113e 83C402 addw $2, %sp 2103 1141 83BD2401 01 cmpw $1, 292(%di) 2104 1146 7304 jnc .L200 2105 1148 85C0 testw %ax, %ax 2106 114a 750F jne .L198 2107 .L200: 2108 114c 8D86FCFE leaw -260(%bp), %ax 2109 1150 50 pushw %ax 2110 1151 B80000 movw $pgm, %ax 2111 1154 50 pushw %ax 2112 1155 B8B80A movw $.LC56, %ax GAS LISTING /tmp/ccptpGUU.s page 47 2113 1158 E9E0F5 jmp .L269 2114 .L198: 2115 115b 56 pushw %si 2116 115c 50 pushw %ax 2117 115d E8FEFF call stat 2118 1160 83C404 addw $4, %sp 2119 1163 85C0 testw %ax, %ax 2120 1165 75E5 jne .L200 2121 .L91: 2122 1167 89EC movw %bp, %sp 2123 1169 5D popw %bp 2124 116a 5F popw %di 2125 116b 5E popw %si 2126 116c C3 ret 2127 .size initOptions, .-initOptions 2128 .section .rodata.str1.1 2129 .LC57: 2130 0af0 2028736D 616C6C29 .string " (small)" 2130 00 2131 .LC58: 2132 0af9 00 .string "" 2133 .LC59: 2134 0afa 52656164 696E6720 .string "Reading old bootsector from drive %c:\n" 2134 6F6C6420 626F6F74 2134 73656374 6F722066 2134 726F6D20 64726976 2134 65202563 3A0A00 2135 .LC60: 2136 0b21 25733A20 63616E27 .string "%s: can't read old boot sector for drive %c:\n" 2136 74207265 6164206F 2136 6C642062 6F6F7420 2136 73656374 6F722066 2136 6F722064 72697665 2136 2025633A 0A00 2137 .LC61: 2138 0b4f 4261636B 696E6720 .string "Backing up original boot sector to %s\n" 2138 7570206F 72696769 2138 6E616C20 626F6F74 2138 20736563 746F7220 2138 746F2025 730A00 2139 .LC62: 2140 0b76 53656374 6F722073 .string "Sector size is not 512 but %d bytes - not currently supported!\n" 2140 697A6520 6973206E 2140 6F742035 31322062 2140 75742025 64206279 2140 74657320 2D206E6F 2140 74206375 7272656E 2140 746C7920 73757070 2140 6F727465 64210A00 2141 .LC63: 2142 0bb6 546F6F20 6D616E79 .string "Too many clusters (%lXh) for FAT32 file system!\n" 2142 20636C75 73746572 2142 73202825 6C586829 2142 20666F72 20464154 2142 33322066 696C6520 2142 73797374 656D210A 2142 00 GAS LISTING /tmp/ccptpGUU.s page 48 2143 .LC64: 2144 0be7 546F6F20 6D616E79 .string "Too many clusters (%lXh) for non-FAT32 file system!\n" 2144 20636C75 73746572 2144 73202825 6C586829 2144 20666F72 206E6F6E 2144 2D464154 33322066 2144 696C6520 73797374 2144 656D210A 00 2145 .LC65: 2146 0c1c 46415420 74797065 .string "FAT type: FAT32%s\n" 2146 3A204641 54333225 2146 730A00 2147 .LC66: 2148 0c2f 25733A20 46415433 .string "%s: FAT32 versions of PC/MS DOS compatible boot sectors\nare not supported.\n" 2148 32207665 7273696F 2148 6E73206F 66205043 2148 2F4D5320 444F5320 2148 636F6D70 61746962 2148 6C652062 6F6F7420 2148 73656374 6F72730A 2148 61726520 6E6F7420 2148 73757070 6F727465 2148 642E0A00 2149 .LC67: 2150 0c7b 46415420 74797065 .string "FAT type: FAT1%c\n" 2150 3A204641 54312563 2150 0A00 2151 .LC68: 2152 0c8d 25733A20 496E7465 .string "%s: Internal error: FAT1%c LBA detect unexpected content\n" 2152 726E616C 20657272 2152 6F723A20 46415431 2152 2563204C 42412064 2152 65746563 7420756E 2152 65787065 63746564 2152 20636F6E 74656E74 2152 0A00 2153 .LC69: 2154 0cc7 496E7465 726E616C .string "Internal Error: no OEM compatible boot sector!" 2154 20457272 6F723A20 2154 6E6F204F 454D2063 2154 6F6D7061 7469626C 2154 6520626F 6F742073 2154 6563746F 722100 2155 .LC70: 2156 0cf6 4652444F 53352E31 .string "FRDOS5.1" 2156 00 2157 .LC71: 2158 0cff 42504220 61707065 .string "BPB appears to have invalid backup boot sector #, forcing to default." 2158 61727320 746F2068 2158 61766520 696E7661 2158 6C696420 6261636B 2158 75702062 6F6F7420 2158 73656374 6F722023 2158 2C20666F 7263696E 2158 6720746F 20646566 2158 61756C74 2E00 2159 .LC72: GAS LISTING /tmp/ccptpGUU.s page 49 2160 0d45 25733A20 496E7465 .string "%s: Internal error: FAT32 load seg unexpected content\n" 2160 726E616C 20657272 2160 6F723A20 46415433 2160 32206C6F 61642073 2160 65672075 6E657870 2160 65637465 6420636F 2160 6E74656E 740A00 2161 .LC73: 2162 0d7c 25733A20 494E5445 .string "%s: INTERNAL ERROR: how did you get here?\n" 2162 524E414C 20455252 2162 4F523A20 686F7720 2162 64696420 796F7520 2162 67657420 68657265 2162 3F0A00 2163 .LC74: 2164 0da7 25733A20 496E7465 .string "%s: Internal error: FAT1%c load seg unexpected content\n" 2164 726E616C 20657272 2164 6F723A20 46415431 2164 2563206C 6F616420 2164 73656720 756E6578 2164 70656374 65642063 2164 6F6E7465 6E740A00 2165 .LC75: 2166 0ddf 25733A20 496E7465 .string "%s: Internal error: OEM FAT1%c load ofs unexpected content\n" 2166 726E616C 20657272 2166 6F723A20 4F454D20 2166 46415431 2563206C 2166 6F616420 6F667320 2166 756E6578 70656374 2166 65642063 6F6E7465 2166 6E740A00 2167 .LC76: 2168 0e1b 25733A20 496E7465 .string "%s: Internal error: Unit save unexpected content\n" 2168 726E616C 20657272 2168 6F723A20 556E6974 2168 20736176 6520756E 2168 65787065 63746564 2168 20636F6E 74656E74 2168 0A00 2169 .LC77: 2170 0e4d 526F6F74 20646972 .string "Root dir entries = %u\n" 2170 20656E74 72696573 2170 203D2025 750A00 2171 .LC78: 2172 0e64 46415420 73746172 .string "FAT starts at sector (%lu + %u)\n" 2172 74732061 74207365 2172 63746F72 2028256C 2172 75202B20 2575290A 2172 00 2173 .LC79: 2174 0e85 526F6F74 20646972 .string "Root directory starts at sector (PREVIOUS + %u * %u)\n" 2174 6563746F 72792073 2174 74617274 73206174 2174 20736563 746F7220 2174 28505245 56494F55 2174 53202B20 2575202A 2174 20257529 0A00 GAS LISTING /tmp/ccptpGUU.s page 50 2175 .LC80: 2176 0ebb 426F6F74 20736563 .string "Boot sector kernel name set to %s\n" 2176 746F7220 6B65726E 2176 656C206E 616D6520 2176 73657420 746F2025 2176 730A00 2177 .LC81: 2178 0ede 426F6F74 20736563 .string "Boot sector kernel load segment set to %X:0h\n" 2178 746F7220 6B65726E 2178 656C206C 6F616420 2178 7365676D 656E7420 2178 73657420 746F2025 2178 583A3068 0A00 2179 .LC82: 2180 0f0c 426F6F74 20736563 .string "Boot sector kernel jmp address set to 70:%Xh\n" 2180 746F7220 6B65726E 2180 656C206A 6D702061 2180 64647265 73732073 2180 65742074 6F203730 2180 3A255868 0A00 2181 .LC83: 2182 0f3a 43616E27 74207772 .string "Can't write new boot sector to drive %c:\n" 2182 69746520 6E657720 2182 626F6F74 20736563 2182 746F7220 746F2064 2182 72697665 2025633A 2182 0A00 2183 .LC84: 2184 0f64 43616E27 74207772 .string "Can't write backup boot sector to drive %c:\n" 2184 69746520 6261636B 2184 75702062 6F6F7420 2184 73656374 6F722074 2184 6F206472 69766520 2184 25633A0A 00 2185 .LC85: 2186 0f91 77726974 696E6720 .string "writing new bootsector to file %s\n" 2186 6E657720 626F6F74 2186 73656374 6F722074 2186 6F206669 6C652025 2186 730A00 2187 .text 2188 .global put_boot 2189 .type put_boot, @function 2190 put_boot: 2191 116d 56 pushw %si 2192 116e 57 pushw %di 2193 116f 55 pushw %bp 2194 1170 89E5 movw %sp, %bp 2195 1172 81EC6804 subw $1128, %sp 2196 1176 8B7E08 movw 8(%bp), %di 2197 1179 83BD2701 00 cmpw $0, 295(%di) 2198 117e 7413 je .L271 2199 1180 8A850401 movb 260(%di), %al 2200 1184 98 cbtw 2201 1185 83C041 addw $65, %ax 2202 1188 50 pushw %ax 2203 1189 B8FA0A movw $.LC59, %ax GAS LISTING /tmp/ccptpGUU.s page 51 2204 118c 50 pushw %ax 2205 118d E8FEFF call printf 2206 1190 83C404 addw $4, %sp 2207 .L271: 2208 1193 31F6 xorw %si, %si 2209 1195 56 pushw %si 2210 1196 B84A08 movw $2122, %ax 2211 1199 50 pushw %ax 2212 119a 8A850401 movb 260(%di), %al 2213 119e 98 cbtw 2214 119f 40 incw %ax 2215 11a0 50 pushw %ax 2216 11a1 E8FEFF call generic_block_ioctl 2217 11a4 8A850401 movb 260(%di), %al 2218 11a8 98 cbtw 2219 11a9 50 pushw %ax 2220 11aa E8FEFF call reset_drive 2221 11ad 56 pushw %si 2222 11ae 8D8600FC leaw -1024(%bp), %ax 2223 11b2 50 pushw %ax 2224 11b3 56 pushw %si 2225 11b4 56 pushw %si 2226 11b5 B80100 movw $1, %ax 2227 11b8 50 pushw %ax 2228 11b9 8A850401 movb 260(%di), %al 2229 11bd 98 cbtw 2230 11be 50 pushw %ax 2231 11bf E8FEFF call MyAbsReadWrite 2232 11c2 89869EFB movw %ax, -1122(%bp) 2233 11c6 83C414 addw $20, %sp 2234 11c9 39F0 cmpw %si, %ax 2235 11cb 89B69AFB movw %si, -1126(%bp) 2236 11cf 741B je .L272 2237 11d1 8A850401 movb 260(%di), %al 2238 11d5 98 cbtw 2239 11d6 83C041 addw $65, %ax 2240 11d9 50 pushw %ax 2241 11da B80000 movw $pgm, %ax 2242 11dd 50 pushw %ax 2243 11de B8210B movw $.LC60, %ax 2244 .L385: 2245 11e1 50 pushw %ax 2246 11e2 E8FEFF call printf 2247 11e5 B80100 movw $1, %ax 2248 11e8 50 pushw %ax 2249 11e9 E8FEFF call exit 2250 .L272: 2251 11ec 8B852001 movw 288(%di), %ax 2252 11f0 85C0 testw %ax, %ax 2253 11f2 7417 je .L273 2254 11f4 50 pushw %ax 2255 11f5 B84F0B movw $.LC61, %ax 2256 11f8 50 pushw %ax 2257 11f9 E8FEFF call printf 2258 11fc 8D8600FC leaw -1024(%bp), %ax 2259 1200 50 pushw %ax 2260 1201 FFB52001 pushw 288(%di) GAS LISTING /tmp/ccptpGUU.s page 52 2261 1205 E8FEFF call saveBS 2262 1208 83C408 addw $8, %sp 2263 .L273: 2264 120b 8B860BFC movw -1013(%bp), %ax 2265 120f 3D0002 cmpw $512, %ax 2266 1212 740F je .L274 2267 1214 50 pushw %ax 2268 1215 B8760B movw $.LC62, %ax 2269 .L386: 2270 1218 50 pushw %ax 2271 1219 E8FEFF call printf 2272 121c B80100 movw $1, %ax 2273 121f 50 pushw %ax 2274 1220 E8FEFF call exit 2275 .L274: 2276 1223 8B8611FC movw -1007(%bp), %ax 2277 1227 B105 movb $5, %cl 2278 1229 D3E0 shlw %cl, %ax 2279 122b 05FF01 addw $511, %ax 2280 122e B109 movb $9, %cl 2281 1230 D3E8 shrw %cl, %ax 2282 1232 898698FB movw %ax, -1128(%bp) 2283 1236 8B8616FC movw -1002(%bp), %ax 2284 123a 89869CFB movw %ax, -1124(%bp) 2285 123e 85C0 testw %ax, %ax 2286 1240 7503E98E 00 je .L275 2287 1245 8EC0 movw %ax, %es 2288 1247 31C9 xorw %cx, %cx 2289 .L276: 2290 1249 8B9613FC movw -1005(%bp), %dx 2291 124d 85D2 testw %dx, %dx 2292 124f 7503E98A 00 je .L277 2293 1254 89D6 movw %dx, %si 2294 1256 31DB xorw %bx, %bx 2295 .L278: 2296 1258 8B960EFC movw -1010(%bp), %dx 2297 125c C786A0FB 0000 movw $0, -1120(%bp) 2298 1262 29D6 subw %dx, %si 2299 1264 1B9EA0FB sbbw -1120(%bp), %bx 2300 1268 8A8610FC movb -1008(%bp), %al 2301 126c 8886A0FB movb %al, -1120(%bp) 2302 1270 C686A1FB 00 movb $0, -1119(%bp) 2303 1275 91 xchgw %ax, %cx 2304 1276 F7A6A0FB mulw -1120(%bp) 2305 127a 91 xchgw %ax, %cx 2306 127b 8CC0 movw %es, %ax 2307 127d F7A6A0FB mulw -1120(%bp) 2308 1281 8986A0FB movw %ax, -1120(%bp) 2309 1285 8996A2FB movw %dx, -1118(%bp) 2310 1289 018EA2FB addw %cx, -1118(%bp) 2311 128d 29C6 subw %ax, %si 2312 128f 89D9 movw %bx, %cx 2313 1291 1B8EA2FB sbbw -1118(%bp), %cx 2314 1295 8B8698FB movw -1128(%bp), %ax 2315 1299 31D2 xorw %dx, %dx 2316 129b 29C6 subw %ax, %si 2317 129d 19D1 sbbw %dx, %cx GAS LISTING /tmp/ccptpGUU.s page 53 2318 129f 8A860DFC movb -1011(%bp), %al 2319 12a3 30E4 xorb %ah, %ah 2320 12a5 48 decw %ax 2321 12a6 30E4 xorb %ah, %ah 2322 12a8 40 incw %ax 2323 12a9 99 cwtd 2324 12aa 52 pushw %dx 2325 12ab 50 pushw %ax 2326 12ac 51 pushw %cx 2327 12ad 56 pushw %si 2328 12ae E8FEFF call __udivsi3 2329 12b1 83C408 addw $8, %sp 2330 12b4 83BE9CFB 00 cmpw $0, -1124(%bp) 2331 12b9 7403E9AC 00 jne .L279 2332 12be 81FAFF0F cmpw $4095, %dx 2333 12c2 7707 ja .L353 2334 12c4 7523 jne .L280 2335 12c6 83F8F4 cmpw $-12, %ax 2336 12c9 761E jbe .L280 2337 .L353: 2338 12cb 52 pushw %dx 2339 12cc 50 pushw %ax 2340 12cd B8B60B movw $.LC63, %ax 2341 12d0 E90EFF jmp .L385 2342 .L275: 2343 12d3 8E8624FC movw -988(%bp), %es 2344 12d7 8B8E26FC movw -986(%bp), %cx 2345 12db E96BFF jmp .L276 2346 .L277: 2347 12de 8BB620FC movw -992(%bp), %si 2348 12e2 8B9E22FC movw -990(%bp), %bx 2349 12e6 E96FFF jmp .L278 2350 .L280: 2351 12e9 C6060000 20 movb $32, fs 2352 12ee 85D2 testw %dx, %dx 2353 12f0 750B jne .L282 2354 12f2 83F8F4 cmpw $-12, %ax 2355 12f5 7706 ja .L282 2356 12f7 C7060000 0100 movw $1, smallfat32 2357 .L282: 2358 12fd C686A4FB 04 movb $4, -1116(%bp) 2359 1302 A00000 movb fs, %al 2360 1305 3C20 cmpb $32, %al 2361 1307 7403E95A 01 jne .L288 2362 130c 83BD2701 00 cmpw $0, 295(%di) 2363 1311 7415 je .L289 2364 1313 833E0000 00 cmpw $0, smallfat32 2365 1318 7575 jne .L346 2366 131a B8F90A movw $.LC58, %ax 2367 .L290: 2368 131d 50 pushw %ax 2369 131e B81C0C movw $.LC65, %ax 2370 1321 50 pushw %ax 2371 1322 E8FEFF call printf 2372 1325 83C404 addw $4, %sp 2373 .L289: 2374 1328 8A850401 movb 260(%di), %al GAS LISTING /tmp/ccptpGUU.s page 54 2375 132c 3C01 cmpb $1, %al 2376 132e 7E29 jle .L292 2377 1330 8DB6A4FB leaw -1116(%bp), %si 2378 1334 56 pushw %si 2379 1335 BA6048 movw $18528, %dx 2380 1338 52 pushw %dx 2381 1339 98 cbtw 2382 133a 40 incw %ax 2383 133b 50 pushw %ax 2384 133c E8FEFF call generic_block_ioctl 2385 133f 83C406 addw $6, %sp 2386 1342 85C0 testw %ax, %ax 2387 1344 7513 jne .L292 2388 1346 FFB52701 pushw 295(%di) 2389 134a 8D8600FC leaw -1024(%bp), %ax 2390 134e 50 pushw %ax 2391 134f 83C6FC addw $-4, %si 2392 1352 56 pushw %si 2393 1353 E8FEFF call correct_bpb 2394 1356 83C406 addw $6, %sp 2395 .L292: 2396 1359 83BD0D01 00 cmpw $0, 269(%di) 2397 135e 7534 jne .L294 2398 1360 B80000 movw $pgm, %ax 2399 1363 50 pushw %ax 2400 1364 B82F0C movw $.LC66, %ax 2401 1367 E9AEFE jmp .L386 2402 .L279: 2403 136a 85D2 testw %dx, %dx 2404 136c 7519 jne .L286 2405 136e 3DF40F cmpw $4084, %ax 2406 1371 7707 ja .L365 2407 1373 C6060000 0C movb $12, fs 2408 1378 EB83 jmp .L282 2409 .L365: 2410 137a 83F8F4 cmpw $-12, %ax 2411 137d 7708 ja .L286 2412 137f C6060000 10 movb $16, fs 2413 1384 E976FF jmp .L282 2414 .L286: 2415 1387 52 pushw %dx 2416 1388 50 pushw %ax 2417 1389 B8E70B movw $.LC64, %ax 2418 138c E952FE jmp .L385 2419 .L346: 2420 138f B8F00A movw $.LC57, %ax 2421 1392 EB89 jmp .L290 2422 .L294: 2423 1394 8A852601 movb 294(%di), %al 2424 1398 3C01 cmpb $1, %al 2425 139a BE0002 movw $512, %si 2426 139d 7403E9AB 00 jne .L295 2427 .L298: 2428 13a2 8D8600FE leaw -512(%bp), %ax 2429 13a6 56 pushw %si 2430 13a7 BA0000 movw $fat32lba, %dx 2431 .L382: GAS LISTING /tmp/ccptpGUU.s page 55 2432 13aa 52 pushw %dx 2433 13ab 50 pushw %ax 2434 13ac E8FEFF call memcpy 2435 13af 83C406 addw $6, %sp 2436 .L296: 2437 13b2 8A160000 movb fs, %dl 2438 13b6 8896A0FB movb %dl, -1120(%bp) 2439 13ba 8D860BFE leaw -501(%bp), %ax 2440 13be 8D8E0BFC leaw -1013(%bp), %cx 2441 13c2 80FA20 cmpb $32, %dl 2442 13c5 7403E980 01 jne .L309 2443 13ca BB4F00 movw $79, %bx 2444 .L383: 2445 13cd 53 pushw %bx 2446 13ce 51 pushw %cx 2447 13cf 50 pushw %ax 2448 13d0 E8FEFF call memcpy 2449 13d3 83C406 addw $6, %sp 2450 13d6 8A96A0FB movb -1120(%bp), %dl 2451 13da 8896A0FB movb %dl, -1120(%bp) 2452 13de 8D8603FE leaw -509(%bp), %ax 2453 13e2 B90800 movw $8, %cx 2454 13e5 51 pushw %cx 2455 13e6 B9F60C movw $.LC70, %cx 2456 13e9 51 pushw %cx 2457 13ea 50 pushw %ax 2458 13eb E8FEFF call memcpy 2459 13ee 83C406 addw $6, %sp 2460 13f1 8A96A0FB movb -1120(%bp), %dl 2461 13f5 80FA20 cmpb $32, %dl 2462 13f8 7403E9B3 02 jne .L311 2463 13fd 8B8632FE movw -462(%bp), %ax 2464 1401 85C0 testw %ax, %ax 2465 1403 7406 je .L312 2466 1405 3B860EFE cmpw -498(%bp), %ax 2467 1409 7617 jbe .L313 2468 .L312: 2469 140b 83BD2701 00 cmpw $0, 295(%di) 2470 1410 740A je .L314 2471 1412 B8FF0C movw $.LC71, %ax 2472 1415 50 pushw %ax 2473 1416 E8FEFF call puts 2474 1419 83C402 addw $2, %sp 2475 .L314: 2476 141c C78632FE 0600 movw $6, -462(%bp) 2477 .L313: 2478 1422 8A851301 movb 275(%di), %al 2479 1426 888640FE movb %al, -448(%bp) 2480 142a 83BD0D01 00 cmpw $0, 269(%di) 2481 142f 7503E972 02 je .L315 2482 1434 8B8678FE movw -392(%bp), %ax 2483 1438 83E0EF andw $-17, %ax 2484 143b 83F860 cmpw $96, %ax 2485 143e 7503E90D 01 je .L316 2486 1443 B80000 movw $pgm, %ax 2487 1446 50 pushw %ax 2488 1447 B8450D movw $.LC72, %ax GAS LISTING /tmp/ccptpGUU.s page 56 2489 144a E9CBFD jmp .L386 2490 .L295: 2491 144d 84C0 testb %al, %al 2492 144f 750A jne .L297 2493 1451 E8FEFF call haveLBA 2494 1454 85C0 testw %ax, %ax 2495 1456 7403E947 FF jne .L298 2496 .L297: 2497 145b 8D8600FE leaw -512(%bp), %ax 2498 145f 56 pushw %si 2499 1460 BA0000 movw $fat32chs, %dx 2500 1463 E944FF jmp .L382 2501 .L288: 2502 1466 83BD2701 00 cmpw $0, 295(%di) 2503 146b 7410 je .L299 2504 146d 30E4 xorb %ah, %ah 2505 146f 83C026 addw $38, %ax 2506 1472 50 pushw %ax 2507 1473 B87B0C movw $.LC67, %ax 2508 1476 50 pushw %ax 2509 1477 E8FEFF call printf 2510 147a 83C404 addw $4, %sp 2511 .L299: 2512 147d 8A850401 movb 260(%di), %al 2513 1481 3C01 cmpb $1, %al 2514 1483 7E29 jle .L301 2515 1485 8DB6A4FB leaw -1116(%bp), %si 2516 1489 56 pushw %si 2517 148a BA6008 movw $2144, %dx 2518 148d 52 pushw %dx 2519 148e 98 cbtw 2520 148f 40 incw %ax 2521 1490 50 pushw %ax 2522 1491 E8FEFF call generic_block_ioctl 2523 1494 83C406 addw $6, %sp 2524 1497 85C0 testw %ax, %ax 2525 1499 7513 jne .L301 2526 149b FFB52701 pushw 295(%di) 2527 149f 8D8600FC leaw -1024(%bp), %ax 2528 14a3 50 pushw %ax 2529 14a4 83C6FC addw $-4, %si 2530 14a7 56 pushw %si 2531 14a8 E8FEFF call correct_bpb 2532 14ab 83C406 addw $6, %sp 2533 .L301: 2534 14ae 83BD0D01 00 cmpw $0, 269(%di) 2535 14b3 7503E985 00 je .L303 2536 14b8 8A160000 movb fs, %dl 2537 14bc 80FA10 cmpb $16, %dl 2538 14bf 7447 je .L347 2539 14c1 B80000 movw $fat12com, %ax 2540 .L304: 2541 14c4 8896A0FB movb %dl, -1120(%bp) 2542 14c8 8D8E00FE leaw -512(%bp), %cx 2543 14cc BB0002 movw $512, %bx 2544 14cf 53 pushw %bx 2545 14d0 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 57 2546 14d1 51 pushw %cx 2547 14d2 E8FEFF call memcpy 2548 14d5 83C406 addw $6, %sp 2549 14d8 8A96A0FB movb -1120(%bp), %dl 2550 14dc 80FA10 cmpb $16, %dl 2551 14df 742C je .L348 2552 14e1 B87B01 movw $379, %ax 2553 .L381: 2554 14e4 8EC0 movw %ax, %es 2555 14e6 89EE movw %bp, %si 2556 14e8 93 xchgw %ax, %bx 2557 14e9 80B800FE 84 cmpb $-124, -512(%bx,%si) 2558 14ee 7535 jne .L306 2559 14f0 80B801FE D2 cmpb $-46, -511(%bx,%si) 2560 14f5 752E jne .L306 2561 14f7 8A852601 movb 294(%di), %al 2562 14fb 3C01 cmpb $1, %al 2563 14fd 7513 jne .L307 2564 14ff C78002FE 9090 movw $-28528, -510(%bx,%si) 2565 1505 E9AAFE jmp .L296 2566 .L347: 2567 1508 B80000 movw $fat16com, %ax 2568 150b EBB7 jmp .L304 2569 .L348: 2570 150d B87801 movw $376, %ax 2571 1510 EBD2 jmp .L381 2572 .L307: 2573 1512 3C02 cmpb $2, %al 2574 1514 7403E999 FE jne .L296 2575 1519 89EE movw %bp, %si 2576 151b 8CC3 movw %es, %bx 2577 151d C68000FE 30 movb $48, -512(%bx,%si) 2578 1522 E98DFE jmp .L296 2579 .L306: 2580 1525 80FA0C cmpb $12, %dl 2581 1528 740E je .L349 2582 152a B83600 movw $54, %ax 2583 .L308: 2584 152d 50 pushw %ax 2585 152e B80000 movw $pgm, %ax 2586 1531 50 pushw %ax 2587 1532 B88D0C movw $.LC68, %ax 2588 1535 E9A9FC jmp .L385 2589 .L349: 2590 1538 B83200 movw $50, %ax 2591 153b EBF0 jmp .L308 2592 .L303: 2593 153d B8C70C movw $.LC69, %ax 2594 1540 50 pushw %ax 2595 1541 E8FEFF call puts 2596 1544 83C402 addw $2, %sp 2597 1547 E968FE jmp .L296 2598 .L309: 2599 154a BB3300 movw $51, %bx 2600 154d E97DFE jmp .L383 2601 .L316: 2602 1550 8B850B01 movw 267(%di), %ax GAS LISTING /tmp/ccptpGUU.s page 58 2603 1554 898678FE movw %ax, -392(%bp) 2604 1558 C786A0FB 8200 movw $130, -1120(%bp) 2605 .L317: 2606 155e 89EE movw %bp, %si 2607 1560 8B9EA0FB movw -1120(%bp), %bx 2608 1564 80B800FE 88 cmpb $-120, -512(%bx,%si) 2609 1569 7403E9C7 01 jne .L324 2610 156e 93 xchgw %ax, %bx 2611 156f 40 incw %ax 2612 1570 89869CFB movw %ax, -1124(%bp) 2613 1574 89C3 movw %ax, %bx 2614 1576 80B800FE 56 cmpb $86, -512(%bx,%si) 2615 157b 7403E9B5 01 jne .L324 2616 1580 83BD1401 00 cmpw $0, 276(%di) 2617 1585 7418 je .L325 2618 1587 8B9EA0FB movw -1120(%bp), %bx 2619 158b C68000FE 90 movb $-112, -512(%bx,%si) 2620 1590 93 xchgw %ax, %bx 2621 1591 C68000FE 90 movb $-112, -512(%bx,%si) 2622 1596 8B9EA0FB movw -1120(%bp), %bx 2623 159a C68002FE 90 movb $-112, -510(%bx,%si) 2624 .L325: 2625 159f 83BD2701 00 cmpw $0, 295(%di) 2626 15a4 7433 je .L326 2627 15a6 FFB611FE pushw -495(%bp) 2628 15aa B84D0E movw $.LC77, %ax 2629 15ad 50 pushw %ax 2630 15ae E8FEFF call printf 2631 15b1 FFB60EFE pushw -498(%bp) 2632 15b5 FFB61EFE pushw -482(%bp) 2633 15b9 FFB61CFE pushw -484(%bp) 2634 15bd B8640E movw $.LC78, %ax 2635 15c0 50 pushw %ax 2636 15c1 E8FEFF call printf 2637 15c4 8A8610FE movb -496(%bp), %al 2638 15c8 30E4 xorb %ah, %ah 2639 15ca 50 pushw %ax 2640 15cb FFB616FE pushw -490(%bp) 2641 15cf B8850E movw $.LC79, %ax 2642 15d2 50 pushw %ax 2643 15d3 E8FEFF call printf 2644 15d6 83C412 addw $18, %sp 2645 .L326: 2646 15d9 B80B00 movw $11, %ax 2647 15dc 50 pushw %ax 2648 15dd B82000 movw $32, %ax 2649 15e0 50 pushw %ax 2650 15e1 8D46F1 leaw -15(%bp), %ax 2651 15e4 50 pushw %ax 2652 15e5 E8FEFF call memset 2653 15e8 8B850701 movw 263(%di), %ax 2654 15ec 89869CFB movw %ax, -1124(%bp) 2655 15f0 8E060000 movw __ctype_ptr__, %es 2656 15f4 83C406 addw $6, %sp 2657 15f7 8B869EFB movw -1122(%bp), %ax 2658 15fb 8986A0FB movw %ax, -1120(%bp) 2659 .L327: GAS LISTING /tmp/ccptpGUU.s page 59 2660 15ff 8BB69CFB movw -1124(%bp), %si 2661 1603 8B9EA0FB movw -1120(%bp), %bx 2662 1607 8A00 movb (%bx,%si), %al 2663 1609 84C0 testb %al, %al 2664 160b 7407 je .L357 2665 160d 3C2E cmpb $46, %al 2666 160f 7403E92B 01 jne .L331 2667 .L357: 2668 1614 3C2E cmpb $46, %al 2669 1616 7523 jne .L340 2670 1618 8B86A0FB movw -1120(%bp), %ax 2671 161c 03869CFB addw -1124(%bp), %ax 2672 1620 89869CFB movw %ax, -1124(%bp) 2673 .L333: 2674 1624 8BB69CFB movw -1124(%bp), %si 2675 1628 8B9E9EFB movw -1122(%bp), %bx 2676 162c 8A4001 movb 1(%bx,%si), %al 2677 162f 83FB03 cmpw $3, %bx 2678 1632 7407 je .L340 2679 1634 84C0 testb %al, %al 2680 1636 7403E932 01 jne .L338 2681 .L340: 2682 163b 83BD2701 00 cmpw $0, 295(%di) 2683 1640 7426 je .L335 2684 1642 8D46F1 leaw -15(%bp), %ax 2685 1645 50 pushw %ax 2686 1646 B8BB0E movw $.LC80, %ax 2687 1649 50 pushw %ax 2688 164a E8FEFF call printf 2689 164d 83C404 addw $4, %sp 2690 1650 83BD0D01 00 cmpw $0, 269(%di) 2691 1655 7503E93A 01 je .L341 2692 165a FFB50B01 pushw 267(%di) 2693 165e B8DE0E movw $.LC81, %ax 2694 .L384: 2695 1661 50 pushw %ax 2696 1662 E8FEFF call printf 2697 1665 83C404 addw $4, %sp 2698 .L335: 2699 1668 83BD1C01 00 cmpw $0, 284(%di) 2700 166d 7503E964 01 je .L342 2701 1672 B80100 movw $1, %ax 2702 1675 50 pushw %ax 2703 1676 8DB600FE leaw -512(%bp), %si 2704 167a 56 pushw %si 2705 167b FFB69AFB pushw -1126(%bp) 2706 167f FFB69AFB pushw -1126(%bp) 2707 1683 50 pushw %ax 2708 1684 8A850401 movb 260(%di), %al 2709 1688 98 cbtw 2710 1689 50 pushw %ax 2711 168a E8FEFF call MyAbsReadWrite 2712 168d 83C40C addw $12, %sp 2713 1690 85C0 testw %ax, %ax 2714 1692 7503E907 01 je .L343 2715 1697 8A850401 movb 260(%di), %al 2716 169b 98 cbtw GAS LISTING /tmp/ccptpGUU.s page 60 2717 169c 83C041 addw $65, %ax 2718 169f 50 pushw %ax 2719 16a0 B83A0F movw $.LC83, %ax 2720 16a3 E972FB jmp .L386 2721 .L315: 2722 16a6 B80000 movw $pgm, %ax 2723 16a9 50 pushw %ax 2724 16aa B87C0D movw $.LC73, %ax 2725 16ad E968FB jmp .L386 2726 .L311: 2727 16b0 8A851301 movb 275(%di), %al 2728 16b4 888624FE movb %al, -476(%bp) 2729 16b8 83BD0D01 00 cmpw $0, 269(%di) 2730 16bd 7435 je .L318 2731 16bf 8B865CFE movw -420(%bp), %ax 2732 16c3 83E0EF andw $-17, %ax 2733 16c6 83F860 cmpw $96, %ax 2734 16c9 7418 je .L319 2735 16cb 80FA0C cmpb $12, %dl 2736 16ce 740E je .L350 2737 16d0 B83600 movw $54, %ax 2738 .L320: 2739 16d3 50 pushw %ax 2740 16d4 B80000 movw $pgm, %ax 2741 16d7 50 pushw %ax 2742 16d8 B8A70D movw $.LC74, %ax 2743 16db E903FB jmp .L385 2744 .L350: 2745 16de B83200 movw $50, %ax 2746 16e1 EBF0 jmp .L320 2747 .L319: 2748 16e3 8B850B01 movw 267(%di), %ax 2749 16e7 89865CFE movw %ax, -420(%bp) 2750 16eb C786A0FB 6600 movw $102, -1120(%bp) 2751 16f1 E96AFE jmp .L317 2752 .L318: 2753 16f4 80FA0C cmpb $12, %dl 2754 16f7 8B8D0B01 movw 267(%di), %cx 2755 16fb 7529 jne .L321 2756 16fd 8B861AFF movw -230(%bp), %ax 2757 1701 898E1AFF movw %cx, -230(%bp) 2758 .L322: 2759 1705 C786A0FB 4F00 movw $79, -1120(%bp) 2760 170b A9FFFD testw $-513, %ax 2761 170e 7503E94B FE je .L317 2762 1713 80FA0C cmpb $12, %dl 2763 1716 7418 je .L352 2764 1718 B83600 movw $54, %ax 2765 .L323: 2766 171b 50 pushw %ax 2767 171c B80000 movw $pgm, %ax 2768 171f 50 pushw %ax 2769 1720 B8DF0D movw $.LC75, %ax 2770 1723 E9BBFA jmp .L385 2771 .L321: 2772 1726 8B8618FF movw -232(%bp), %ax 2773 172a 898E18FF movw %cx, -232(%bp) GAS LISTING /tmp/ccptpGUU.s page 61 2774 172e EBD5 jmp .L322 2775 .L352: 2776 1730 B83200 movw $50, %ax 2777 1733 EBE6 jmp .L323 2778 .L324: 2779 1735 B80000 movw $pgm, %ax 2780 1738 50 pushw %ax 2781 1739 B81B0E movw $.LC76, %ax 2782 173c E9D9FA jmp .L386 2783 .L331: 2784 173f 83BEA0FB 07 cmpw $7, -1120(%bp) 2785 1744 7F20 jg .L328 2786 1746 98 cbtw 2787 1747 89C3 movw %ax, %bx 2788 1749 8CC6 movw %es, %si 2789 174b 8A5001 movb 1(%bx,%si), %dl 2790 174e 889698FB movb %dl, -1128(%bp) 2791 1752 80E203 andb $3, %dl 2792 1755 80FA02 cmpb $2, %dl 2793 1758 7503 jne .L330 2794 175a 83C0E0 addw $-32, %ax 2795 .L330: 2796 175d 89EE movw %bp, %si 2797 175f 8B9EA0FB movw -1120(%bp), %bx 2798 1763 8840F1 movb %al, -15(%bx,%si) 2799 .L328: 2800 1766 FF86A0FB incw -1120(%bp) 2801 176a E992FE jmp .L327 2802 .L338: 2803 176d 98 cbtw 2804 176e 89C3 movw %ax, %bx 2805 1770 8CC6 movw %es, %si 2806 1772 8A5001 movb 1(%bx,%si), %dl 2807 1775 8896A0FB movb %dl, -1120(%bp) 2808 1779 80E203 andb $3, %dl 2809 177c 80FA02 cmpb $2, %dl 2810 177f 7503 jne .L337 2811 1781 83C0E0 addw $-32, %ax 2812 .L337: 2813 1784 89EE movw %bp, %si 2814 1786 8B9E9EFB movw -1122(%bp), %bx 2815 178a 8840F9 movb %al, -7(%bx,%si) 2816 178d FF869EFB incw -1122(%bp) 2817 1791 E990FE jmp .L333 2818 .L341: 2819 1794 FFB50B01 pushw 267(%di) 2820 1798 B80C0F movw $.LC82, %ax 2821 179b E9C3FE jmp .L384 2822 .L343: 2823 179e 803E0000 20 cmpb $32, fs 2824 17a3 7531 jne .L342 2825 17a5 83BD1601 00 cmpw $0, 278(%di) 2826 17aa 752A jne .L342 2827 17ac BA0100 movw $1, %dx 2828 17af 52 pushw %dx 2829 17b0 56 pushw %si 2830 17b1 50 pushw %ax GAS LISTING /tmp/ccptpGUU.s page 62 2831 17b2 FFB632FE pushw -462(%bp) 2832 17b6 52 pushw %dx 2833 17b7 8A850401 movb 260(%di), %al 2834 17bb 98 cbtw 2835 17bc 50 pushw %ax 2836 17bd E8FEFF call MyAbsReadWrite 2837 17c0 83C40C addw $12, %sp 2838 17c3 85C0 testw %ax, %ax 2839 17c5 740F je .L342 2840 17c7 8A850401 movb 260(%di), %al 2841 17cb 98 cbtw 2842 17cc 83C041 addw $65, %ax 2843 17cf 50 pushw %ax 2844 17d0 B8640F movw $.LC84, %ax 2845 17d3 E942FA jmp .L386 2846 .L342: 2847 17d6 8B851E01 movw 286(%di), %ax 2848 17da 85C0 testw %ax, %ax 2849 17dc 7421 je .L344 2850 17de 83BD2701 00 cmpw $0, 295(%di) 2851 17e3 740B je .L345 2852 17e5 50 pushw %ax 2853 17e6 B8910F movw $.LC85, %ax 2854 17e9 50 pushw %ax 2855 17ea E8FEFF call printf 2856 17ed 83C404 addw $4, %sp 2857 .L345: 2858 17f0 8D8600FE leaw -512(%bp), %ax 2859 17f4 50 pushw %ax 2860 17f5 FFB51E01 pushw 286(%di) 2861 17f9 E8FEFF call saveBS 2862 17fc 83C404 addw $4, %sp 2863 .L344: 2864 17ff 8A850401 movb 260(%di), %al 2865 1803 98 cbtw 2866 1804 50 pushw %ax 2867 1805 E8FEFF call reset_drive 2868 1808 FFB69AFB pushw -1126(%bp) 2869 180c B86A08 movw $2154, %ax 2870 180f 50 pushw %ax 2871 1810 8A850401 movb 260(%di), %al 2872 1814 98 cbtw 2873 1815 40 incw %ax 2874 1816 50 pushw %ax 2875 1817 E8FEFF call generic_block_ioctl 2876 181a 89EC movw %bp, %sp 2877 181c 5D popw %bp 2878 181d 5F popw %di 2879 181e 5E popw %si 2880 181f C3 ret 2881 .size put_boot, .-put_boot 2882 .section .rodata.str1.1 2883 .LC86: 2884 0fb4 413A5C00 .string "A:\\" 2885 .text 2886 .global check_space 2887 .type check_space, @function GAS LISTING /tmp/ccptpGUU.s page 63 2888 check_space: 2889 1820 56 pushw %si 2890 1821 57 pushw %di 2891 1822 55 pushw %bp 2892 1823 89E5 movw %sp, %bp 2893 1825 83EC0C subw $12, %sp 2894 1828 8B460A movw 10(%bp), %ax 2895 182b 8946F4 movw %ax, -12(%bp) 2896 182e 8B7E0C movw 12(%bp), %di 2897 1831 803E0000 20 cmpb $32, fs 2898 1836 7558 jne .L388 2899 1838 BBB40F movw $.LC86, %bx 2900 183b 8A4608 movb 8(%bp), %al 2901 183e 0441 addb $65, %al 2902 1840 8807 movb %al, (%bx) 2903 1842 B82C00 movw $44, %ax 2904 1845 50 pushw %ax 2905 1846 BE0000 movw $x, %si 2906 1849 56 pushw %si 2907 184a 53 pushw %bx 2908 184b E8FEFF call getextdrivespace 2909 184e 8B4406 movw 6(%si), %ax 2910 1851 F76408 mulw 8(%si) 2911 1854 93 xchgw %ax, %bx 2912 1855 8B440A movw 10(%si), %ax 2913 1858 F76404 mulw 4(%si) 2914 185b 91 xchgw %ax, %cx 2915 185c 01D9 addw %bx, %cx 2916 185e 8B4404 movw 4(%si), %ax 2917 1861 F76408 mulw 8(%si) 2918 1864 8946F6 movw %ax, -10(%bp) 2919 1867 8956F8 movw %dx, -8(%bp) 2920 186a 01D1 addw %dx, %cx 2921 186c 51 pushw %cx 2922 186d 50 pushw %ax 2923 186e 57 pushw %di 2924 186f FF76F4 pushw -12(%bp) 2925 1872 E8FEFF call __udivsi3 2926 1875 B90100 movw $1, %cx 2927 1878 83C40E addw $14, %sp 2928 187b 39540E cmpw %dx, 14(%si) 2929 187e 7709 ja .L389 2930 1880 7505 jne .L390 2931 1882 39440C cmpw %ax, 12(%si) 2932 1885 7702 ja .L389 2933 .L390: 2934 1887 31C9 xorw %cx, %cx 2935 .L389: 2936 1889 91 xchgw %ax, %cx 2937 .L387: 2938 188a 89EC movw %bp, %sp 2939 188c 5D popw %bp 2940 188d 5F popw %di 2941 188e 5E popw %si 2942 188f C3 ret 2943 .L388: 2944 1890 8D46FA leaw -6(%bp), %ax GAS LISTING /tmp/ccptpGUU.s page 64 2945 1893 50 pushw %ax 2946 1894 8B4608 movw 8(%bp), %ax 2947 1897 40 incw %ax 2948 1898 50 pushw %ax 2949 1899 E8FEFF call _dos_getdiskfree 2950 189c 8B46FA movw -6(%bp), %ax 2951 189f F766FC mulw -4(%bp) 2952 18a2 8EC0 movw %ax, %es 2953 18a4 8B5EFE movw -2(%bp), %bx 2954 18a7 89D8 movw %bx, %ax 2955 18a9 F7E2 mulw %dx 2956 18ab 96 xchgw %ax, %si 2957 18ac 8CC0 movw %es, %ax 2958 18ae F7E3 mulw %bx 2959 18b0 8946F6 movw %ax, -10(%bp) 2960 18b3 8956F8 movw %dx, -8(%bp) 2961 18b6 0176F8 addw %si, -8(%bp) 2962 18b9 BA0100 movw $1, %dx 2963 18bc 83C404 addw $4, %sp 2964 18bf 3B7EF8 cmpw -8(%bp), %di 2965 18c2 770A ja .L393 2966 18c4 750A jne .L392 2967 18c6 8B46F4 movw -12(%bp), %ax 2968 18c9 3B46F6 cmpw -10(%bp), %ax 2969 18cc 7602 jbe .L392 2970 .L393: 2971 18ce 31D2 xorw %dx, %dx 2972 .L392: 2973 18d0 92 xchgw %ax, %dx 2974 18d1 EBB7 jmp .L387 2975 .size check_space, .-check_space 2976 .global alloc_dos_mem 2977 .type alloc_dos_mem, @function 2978 alloc_dos_mem: 2979 18d3 55 pushw %bp 2980 18d4 89E5 movw %sp, %bp 2981 18d6 1E pushw %ds 2982 18d7 8B4604 movw 4(%bp), %ax 2983 18da 8B5606 movw 6(%bp), %dx 2984 18dd 8D4EFE leaw -2(%bp), %cx 2985 18e0 51 pushw %cx 2986 18e1 83C00F addw $15, %ax 2987 18e4 83D200 adcw $0, %dx 2988 18e7 B10C movb $12, %cl 2989 18e9 D3E2 shlw %cl, %dx 2990 18eb B104 movb $4, %cl 2991 18ed D3E8 shrw %cl, %ax 2992 18ef 09D0 orw %dx, %ax 2993 18f1 50 pushw %ax 2994 18f2 E8FEFF call _dos_allocmem 2995 18f5 83C404 addw $4, %sp 2996 18f8 85C0 testw %ax, %ax 2997 18fa 750C jne .L397 2998 18fc 8B56FE movw -2(%bp), %dx 2999 18ff 8B5E08 movw 8(%bp), %bx 3000 1902 8917 movw %dx, (%bx) 3001 .L395: GAS LISTING /tmp/ccptpGUU.s page 65 3002 1904 89EC movw %bp, %sp 3003 1906 5D popw %bp 3004 1907 C3 ret 3005 .L397: 3006 1908 B8FFFF movw $-1, %ax 3007 190b EBF7 jmp .L395 3008 .size alloc_dos_mem, .-alloc_dos_mem 3009 .section .rodata.str1.1 3010 .LC87: 3011 0fb8 436F7079 696E6720 .string "Copying %s...\n" 3011 25732E2E 2E0A00 3012 .LC88: 3013 0fc7 25633A5C 257300 .string "%c:\\%s" 3014 .LC89: 3015 0fce 25733A20 736F7572 .string "%s: source and destination are identical: skipping \"%s\"\n" 3015 63652061 6E642064 3015 65737469 6E617469 3015 6F6E2061 72652069 3015 64656E74 6963616C 3015 3A20736B 69707069 3015 6E672022 2573220A 3015 00 3016 .LC90: 3017 1007 25733A20 6661696C .string "%s: failed to open \"%s\"\n" 3017 65642074 6F206F70 3017 656E2022 2573220A 3017 00 3018 .LC91: 3019 1020 25733A20 4E6F7420 .string "%s: Not enough space to transfer %s\n" 3019 656E6F75 67682073 3019 70616365 20746F20 3019 7472616E 73666572 3019 2025730A 00 3020 .LC92: 3021 1045 2025733A 2063616E .string " %s: can't create\"%s\"\nDOS errnum %d\n" 3021 27742063 72656174 3021 65222573 220A444F 3021 53206572 726E756D 3021 2025640A 00 3022 .LC93: 3023 106a 4E6F7420 656E6F75 .string "Not enough memory to buffer %lu bytes for %s\n" 3023 6768206D 656D6F72 3023 7920746F 20627566 3023 66657220 256C7520 3023 62797465 7320666F 3023 72202573 0A00 3024 .LC94: 3025 1098 43616E27 74207772 .string "Can't write %u bytes to %s\n" 3025 69746520 25752062 3025 79746573 20746F20 3025 25730A00 3026 .LC95: 3027 10b4 256C7520 42797465 .string "%lu Bytes transferred\n" 3027 73207472 616E7366 3027 65727265 640A00 3028 .text 3029 .global copy GAS LISTING /tmp/ccptpGUU.s page 66 3030 .type copy, @function 3031 copy: 3032 190d 56 pushw %si 3033 190e 57 pushw %di 3034 190f 55 pushw %bp 3035 1910 89E5 movw %sp, %bp 3036 1912 83EC18 subw $24, %sp 3037 1915 8B5E08 movw 8(%bp), %bx 3038 1918 83BF2701 00 cmpw $0, 295(%bx) 3039 191d 740D je .L400 3040 191f FF760A pushw 10(%bp) 3041 1922 B8B80F movw $.LC87, %ax 3042 1925 50 pushw %ax 3043 1926 E8FEFF call printf 3044 1929 83C404 addw $4, %sp 3045 .L400: 3046 192c FF760A pushw 10(%bp) 3047 192f BF0401 movw $src.3591, %di 3048 1932 57 pushw %di 3049 1933 E8FEFF call truename 3050 1936 FF760E pushw 14(%bp) 3051 1939 8B460C movw 12(%bp), %ax 3052 193c 83C041 addw $65, %ax 3053 193f 50 pushw %ax 3054 1940 B8C70F movw $.LC88, %ax 3055 1943 50 pushw %ax 3056 1944 BE0000 movw $dest.3592, %si 3057 1947 56 pushw %si 3058 1948 E8FEFF call sprintf 3059 194b 56 pushw %si 3060 194c 57 pushw %di 3061 194d E8FEFF call strcasecmp 3062 1950 83C410 addw $16, %sp 3063 1953 85C0 testw %ax, %ax 3064 1955 7522 jne .L401 3065 1957 8B5E08 movw 8(%bp), %bx 3066 195a 83BF2701 00 cmpw $0, 295(%bx) 3067 195f 7505 jne .L402 3068 .L438: 3069 1961 BA0100 movw $1, %dx 3070 1964 EB6D jmp .L399 3071 .L402: 3072 1966 FF760A pushw 10(%bp) 3073 1969 B80000 movw $pgm, %ax 3074 196c 50 pushw %ax 3075 196d B8CE0F movw $.LC89, %ax 3076 .L439: 3077 1970 50 pushw %ax 3078 1971 E8FEFF call printf 3079 1974 83C406 addw $6, %sp 3080 1977 EBE8 jmp .L438 3081 .L401: 3082 1979 31FF xorw %di, %di 3083 197b 57 pushw %di 3084 197c FF760A pushw 10(%bp) 3085 197f E8FEFF call open 3086 1982 8946FC movw %ax, -4(%bp) GAS LISTING /tmp/ccptpGUU.s page 67 3087 1985 83C404 addw $4, %sp 3088 1988 39F8 cmpw %di, %ax 3089 198a 7D15 jge .L404 3090 198c FF760A pushw 10(%bp) 3091 198f B80000 movw $pgm, %ax 3092 1992 50 pushw %ax 3093 1993 B80710 movw $.LC90, %ax 3094 1996 50 pushw %ax 3095 1997 E8FEFF call printf 3096 199a 83C406 addw $6, %sp 3097 .L408: 3098 199d 31D2 xorw %dx, %dx 3099 199f EB32 jmp .L399 3100 .L404: 3101 19a1 FF76FC pushw -4(%bp) 3102 19a4 E8FEFF call filelength 3103 19a7 52 pushw %dx 3104 19a8 50 pushw %ax 3105 19a9 FF760C pushw 12(%bp) 3106 19ac E8FEFF call check_space 3107 19af 83C408 addw $8, %sp 3108 19b2 85C0 testw %ax, %ax 3109 19b4 7524 jne .L405 3110 19b6 8946FA movw %ax, -6(%bp) 3111 19b9 FF760E pushw 14(%bp) 3112 19bc B80000 movw $pgm, %ax 3113 19bf 50 pushw %ax 3114 19c0 B82010 movw $.LC91, %ax 3115 19c3 50 pushw %ax 3116 19c4 E8FEFF call printf 3117 19c7 FF76FC pushw -4(%bp) 3118 19ca E8FEFF call close 3119 19cd 83C408 addw $8, %sp 3120 19d0 8B56FA movw -6(%bp), %dx 3121 .L399: 3122 19d3 92 xchgw %ax, %dx 3123 19d4 89EC movw %bp, %sp 3124 19d6 5D popw %bp 3125 19d7 5F popw %di 3126 19d8 5E popw %si 3127 19d9 C3 ret 3128 .L405: 3129 19da B88001 movw $384, %ax 3130 19dd 50 pushw %ax 3131 19de B80206 movw $1538, %ax 3132 19e1 50 pushw %ax 3133 19e2 56 pushw %si 3134 19e3 E8FEFF call open 3135 19e6 8946F4 movw %ax, -12(%bp) 3136 19e9 83C406 addw $6, %sp 3137 19ec 85C0 testw %ax, %ax 3138 19ee 7D1D jge .L406 3139 19f0 E8FEFF call __errno 3140 19f3 93 xchgw %ax, %bx 3141 19f4 FF37 pushw (%bx) 3142 19f6 56 pushw %si 3143 19f7 B80000 movw $pgm, %ax GAS LISTING /tmp/ccptpGUU.s page 68 3144 19fa 50 pushw %ax 3145 19fb B84510 movw $.LC92, %ax 3146 19fe 50 pushw %ax 3147 19ff E8FEFF call printf 3148 1a02 FF76FC pushw -4(%bp) 3149 1a05 E8FEFF call close 3150 .L440: 3151 1a08 83C40A addw $10, %sp 3152 1a0b EB90 jmp .L408 3153 .L406: 3154 1a0d FF76FC pushw -4(%bp) 3155 1a10 E8FEFF call filelength 3156 1a13 8946F2 movw %ax, -14(%bp) 3157 1a16 96 xchgw %ax, %si 3158 1a17 8956F8 movw %dx, -8(%bp) 3159 1a1a 8D46FE leaw -2(%bp), %ax 3160 1a1d 50 pushw %ax 3161 1a1e 52 pushw %dx 3162 1a1f 8956FA movw %dx, -6(%bp) 3163 1a22 56 pushw %si 3164 1a23 E8FEFF call alloc_dos_mem 3165 1a26 83C408 addw $8, %sp 3166 1a29 85C0 testw %ax, %ax 3167 1a2b 8B56FA movw -6(%bp), %dx 3168 1a2e 7412 je .L407 3169 1a30 FF760A pushw 10(%bp) 3170 1a33 52 pushw %dx 3171 1a34 56 pushw %si 3172 1a35 B86A10 movw $.LC93, %ax 3173 1a38 50 pushw %ax 3174 1a39 E8FEFF call printf 3175 1a3c 83C408 addw $8, %sp 3176 1a3f E95BFF jmp .L408 3177 .L407: 3178 1a42 8B4EFE movw -2(%bp), %cx 3179 1a45 894EEA movw %cx, -22(%bp) 3180 1a48 8946F0 movw %ax, -16(%bp) 3181 1a4b 837EF800 cmpw $0, -8(%bp) 3182 1a4f 7509 jne .L430 3183 1a51 81FE0040 cmpw $16384, %si 3184 1a55 7703E99A 00 jbe .L436 3185 .L430: 3186 1a5a BB0040 movw $16384, %bx 3187 .L409: 3188 1a5d 92 xchgw %ax, %dx 3189 1a5e C746F600 00 movw $0, -10(%bp) 3190 1a63 31C0 xorw %ax, %ax 3191 1a65 8946EC movw %ax, -20(%bp) 3192 .L411: 3193 1a68 894EE8 movw %cx, -24(%bp) 3194 1a6b 8956FA movw %dx, -6(%bp) 3195 1a6e 53 pushw %bx 3196 1a6f BF0000 movw $copybuffer, %di 3197 1a72 57 pushw %di 3198 1a73 FF76FC pushw -4(%bp) 3199 1a76 E8FEFF call read 3200 1a79 8946EE movw %ax, -18(%bp) GAS LISTING /tmp/ccptpGUU.s page 69 3201 1a7c 83C406 addw $6, %sp 3202 1a7f 85C0 testw %ax, %ax 3203 1a81 8B56FA movw -6(%bp), %dx 3204 1a84 8B4EE8 movw -24(%bp), %cx 3205 1a87 7571 jne .L428 3206 1a89 8946FA movw %ax, -6(%bp) 3207 1a8c 8946F6 movw %ax, -10(%bp) 3208 .L435: 3209 1a8f 89F0 movw %si, %ax 3210 1a91 2B46FA subw -6(%bp), %ax 3211 1a94 8B56F8 movw -8(%bp), %dx 3212 1a97 1B56F6 sbbw -10(%bp), %dx 3213 1a9a 85D2 testw %dx, %dx 3214 1a9c 7403E9AE 00 jne .L429 3215 1aa1 3D0040 cmpw $16384, %ax 3216 1aa4 7603E9A6 00 ja .L429 3217 1aa9 8B56F2 movw -14(%bp), %dx 3218 1aac 2B56FA subw -6(%bp), %dx 3219 .L416: 3220 1aaf 31C0 xorw %ax, %ax 3221 1ab1 0156FA addw %dx, -6(%bp) 3222 1ab4 1146F6 adcw %ax, -10(%bp) 3223 .L418: 3224 1ab7 39C2 cmpw %ax, %dx 3225 1ab9 7403E997 00 jne .L420 3226 1abe 52 pushw %dx 3227 1abf 8956EE movw %dx, -18(%bp) 3228 1ac2 57 pushw %di 3229 1ac3 FF76F4 pushw -12(%bp) 3230 1ac6 E8FEFF call write 3231 1ac9 83C406 addw $6, %sp 3232 1acc 8B56EE movw -18(%bp), %dx 3233 1acf 39C2 cmpw %ax, %dx 3234 1ad1 7503E9A2 00 je .L421 3235 1ad6 B80000 movw $dest.3592, %ax 3236 1ad9 50 pushw %ax 3237 1ada 31C0 xorw %ax, %ax 3238 1adc 50 pushw %ax 3239 1add B89810 movw $.LC94, %ax 3240 1ae0 50 pushw %ax 3241 1ae1 E8FEFF call printf 3242 1ae4 FF76F4 pushw -12(%bp) 3243 1ae7 E8FEFF call close 3244 1aea B80000 movw $dest.3592, %ax 3245 1aed 50 pushw %ax 3246 1aee E8FEFF call unlink 3247 1af1 E914FF jmp .L440 3248 .L436: 3249 1af4 8B5EF2 movw -14(%bp), %bx 3250 1af7 E963FF jmp .L409 3251 .L428: 3252 1afa C746FA00 00 movw $0, -6(%bp) 3253 .L413: 3254 1aff 8B5EFA movw -6(%bp), %bx 3255 1b02 8A19 movb (%bx,%di), %bl 3256 1b04 88D8 movb %bl, %al 3257 1b06 8EC1 movw %cx, %es GAS LISTING /tmp/ccptpGUU.s page 70 3258 1b08 89D3 movw %dx, %bx 3259 1b0a 268807 movb %al, %es:(%bx) 3260 1b0d 42 incw %dx 3261 1b0e 81FA7777 cmpw $30583, %dx 3262 1b12 7606 jbe .L412 3263 1b14 80C690 addb $-112, %dh 3264 1b17 80C507 addb $7, %ch 3265 .L412: 3266 1b1a FF46FA incw -6(%bp) 3267 1b1d 8B46FA movw -6(%bp), %ax 3268 1b20 3B46EE cmpw -18(%bp), %ax 3269 1b23 75DA jne .L413 3270 1b25 0146F6 addw %ax, -10(%bp) 3271 1b28 8356EC00 adcw $0, -20(%bp) 3272 1b2c 89F0 movw %si, %ax 3273 1b2e 2B46F6 subw -10(%bp), %ax 3274 1b31 8B5EF8 movw -8(%bp), %bx 3275 1b34 1B5EEC sbbw -20(%bp), %bx 3276 1b37 85DB testw %bx, %bx 3277 1b39 750E jne .L427 3278 1b3b 3D0040 cmpw $16384, %ax 3279 1b3e 7709 ja .L427 3280 1b40 8B5EF2 movw -14(%bp), %bx 3281 1b43 2B5EF6 subw -10(%bp), %bx 3282 1b46 E91FFF jmp .L411 3283 .L427: 3284 1b49 BB0040 movw $16384, %bx 3285 1b4c E919FF jmp .L411 3286 .L429: 3287 1b4f BA0040 movw $16384, %dx 3288 1b52 E95AFF jmp .L416 3289 .L420: 3290 1b55 8E46EA movw -22(%bp), %es 3291 1b58 8B5EF0 movw -16(%bp), %bx 3292 1b5b 268A0F movb %es:(%bx), %cl 3293 1b5e 89C3 movw %ax, %bx 3294 1b60 8809 movb %cl, (%bx,%di) 3295 1b62 FF46F0 incw -16(%bp) 3296 1b65 817EF077 77 cmpw $30583, -16(%bp) 3297 1b6a 7608 jbe .L419 3298 1b6c 8046F190 addb $-112, -15(%bp) 3299 1b70 8046EB07 addb $7, -21(%bp) 3300 .L419: 3301 1b74 40 incw %ax 3302 1b75 E93FFF jmp .L418 3303 .L421: 3304 1b78 8B46F8 movw -8(%bp), %ax 3305 1b7b 3B46F6 cmpw -10(%bp), %ax 3306 1b7e 7603E90C FF ja .L435 3307 1b83 7508 jne .L433 3308 1b85 3B76FA cmpw -6(%bp), %si 3309 1b88 7603E902 FF ja .L435 3310 .L433: 3311 1b8d FF76FE pushw -2(%bp) 3312 1b90 E8FEFF call _dos_freemem 3313 1b93 FF76F4 pushw -12(%bp) 3314 1b96 E8FEFF call close GAS LISTING /tmp/ccptpGUU.s page 71 3315 1b99 FF76FC pushw -4(%bp) 3316 1b9c E8FEFF call close 3317 1b9f 83C406 addw $6, %sp 3318 1ba2 8B5E08 movw 8(%bp), %bx 3319 1ba5 83BF2701 00 cmpw $0, 295(%bx) 3320 1baa 7503E9B2 FD je .L438 3321 1baf FF76F6 pushw -10(%bp) 3322 1bb2 FF76FA pushw -6(%bp) 3323 1bb5 B8B410 movw $.LC95, %ax 3324 1bb8 E9B5FD jmp .L439 3325 .size copy, .-copy 3326 .section .rodata.str1.1 3327 .LC96: 3328 10cb 434F4E46 494700 .string "CONFIG" 3329 .LC97: 3330 10d2 444F5320 53797374 .string "DOS System Installer v3.6f, Oct 10 2025" 3330 656D2049 6E737461 3330 6C6C6572 2076332E 3330 36662C20 4F637420 3330 31302032 30323500 3331 .LC98: 3332 10fa 50726F63 65737369 .string "Processing boot sector..." 3332 6E672062 6F6F7420 3332 73656374 6F722E2E 3332 2E00 3333 .LC99: 3334 1114 4E6F7720 636F7079 .string "Now copying system files..." 3334 696E6720 73797374 3334 656D2066 696C6573 3334 2E2E2E00 3335 .LC100: 3336 1130 25733A20 63616E6E .string "%s: cannot copy \"%s\"\n" 3336 6F742063 6F707920 3336 22257322 0A00 3337 .LC101: 3338 1146 436F7079 696E6720 .string "Copying shell (command interpreter)..." 3338 7368656C 6C202863 3338 6F6D6D61 6E642069 3338 6E746572 70726574 3338 6572292E 2E2E00 3339 .LC102: 3340 116d 25733A20 54727969 .string "%s: Trying shell from %%COMSPEC%%=\"%s\"\n" 3340 6E672073 68656C6C 3340 2066726F 6D202525 3340 434F4D53 50454325 3340 253D2225 73220A00 3341 .LC103: 3342 1195 0A25733A 20666169 .string "\n%s: failed to find command interpreter (shell) file %s\n" 3342 6C656420 746F2066 3342 696E6420 636F6D6D 3342 616E6420 696E7465 3342 72707265 74657220 3342 28736865 6C6C2920 3342 66696C65 2025730A 3342 00 3343 .LC104: 3344 11ce 53797374 656D2074 .string "System transferred.\n" GAS LISTING /tmp/ccptpGUU.s page 72 3344 72616E73 66657272 3344 65642E0A 00 3345 .section .text.startup,"ax",@progbits 3346 .global main 3347 .type main, @function 3348 main: 3349 0000 56 pushw %si 3350 0001 57 pushw %di 3351 0002 55 pushw %bp 3352 0003 89E5 movw %sp, %bp 3353 0005 81EC3002 subw $560, %sp 3354 0009 8B7E08 movw 8(%bp), %di 3355 000c 8B760A movw 10(%bp), %si 3356 000f 83FF01 cmpw $1, %di 3357 0012 7E1E jle .L442 3358 0014 B80600 movw $6, %ax 3359 0017 50 pushw %ax 3360 0018 B8CB10 movw $.LC96, %ax 3361 001b 50 pushw %ax 3362 001c FF7402 pushw 2(%si) 3363 001f E8FEFF call strncasecmp 3364 0022 83C406 addw $6, %sp 3365 0025 85C0 testw %ax, %ax 3366 0027 7509 jne .L442 3367 0029 56 pushw %si 3368 002a 57 pushw %di 3369 002b E8FEFF call FDKrnConfigMain 3370 002e 50 pushw %ax 3371 002f E8FEFF call exit 3372 .L442: 3373 0032 8D86D7FE leaw -297(%bp), %ax 3374 0036 50 pushw %ax 3375 0037 56 pushw %si 3376 0038 57 pushw %di 3377 0039 E8FEFF call initOptions 3378 003c 83C406 addw $6, %sp 3379 003f 837EFE00 cmpw $0, -2(%bp) 3380 0043 7416 je .L443 3381 0045 B8D210 movw $.LC97, %ax 3382 0048 50 pushw %ax 3383 0049 E8FEFF call puts 3384 004c 8B5EDC movw -36(%bp), %bx 3385 004f D1E3 shlw $1, %bx 3386 0051 FFB70000 pushw msgDOS(%bx) 3387 0055 E8FEFF call printf 3388 0058 83C404 addw $4, %sp 3389 .L443: 3390 005b 837EFE00 cmpw $0, -2(%bp) 3391 005f 740A je .L444 3392 0061 B8FA10 movw $.LC98, %ax 3393 0064 50 pushw %ax 3394 0065 E8FEFF call puts 3395 0068 83C402 addw $2, %sp 3396 .L444: 3397 006b 8D86D7FE leaw -297(%bp), %ax 3398 006f 50 pushw %ax 3399 0070 E8FEFF call put_boot GAS LISTING /tmp/ccptpGUU.s page 73 3400 0073 83C402 addw $2, %sp 3401 0076 837EEF00 cmpw $0, -17(%bp) 3402 007a 7503E989 00 je .L445 3403 007f 837EFE00 cmpw $0, -2(%bp) 3404 0083 740A je .L446 3405 0085 B81411 movw $.LC99, %ax 3406 0088 50 pushw %ax 3407 0089 E8FEFF call puts 3408 008c 83C402 addw $2, %sp 3409 .L446: 3410 008f 8B46F9 movw -7(%bp), %ax 3411 0092 85C0 testw %ax, %ax 3412 0094 7503 jne .L447 3413 0096 8B46DE movw -34(%bp), %ax 3414 .L447: 3415 0099 50 pushw %ax 3416 009a 8DBED7FE leaw -297(%bp), %di 3417 009e 57 pushw %di 3418 009f BA2D0A movw $.LC50, %dx 3419 00a2 52 pushw %dx 3420 00a3 8996D0FD movw %dx, -560(%bp) 3421 00a7 8DB6D3FD leaw -557(%bp), %si 3422 00ab 56 pushw %si 3423 00ac E8FEFF call sprintf 3424 00af FF76DE pushw -34(%bp) 3425 00b2 8A46DB movb -37(%bp), %al 3426 00b5 98 cbtw 3427 00b6 50 pushw %ax 3428 00b7 56 pushw %si 3429 00b8 57 pushw %di 3430 00b9 E8FEFF call copy 3431 00bc 83C410 addw $16, %sp 3432 00bf 85C0 testw %ax, %ax 3433 00c1 8B96D0FD movw -560(%bp), %dx 3434 00c5 7517 jne .L448 3435 .L449: 3436 00c7 8D86D3FD leaw -557(%bp), %ax 3437 00cb 50 pushw %ax 3438 00cc B80000 movw $pgm, %ax 3439 00cf 50 pushw %ax 3440 00d0 B83011 movw $.LC100, %ax 3441 .L475: 3442 00d3 50 pushw %ax 3443 00d4 E8FEFF call printf 3444 00d7 B80100 movw $1, %ax 3445 00da 50 pushw %ax 3446 00db E8FEFF call exit 3447 .L448: 3448 00de 8B46E0 movw -32(%bp), %ax 3449 00e1 85C0 testw %ax, %ax 3450 00e3 7423 je .L445 3451 00e5 50 pushw %ax 3452 00e6 57 pushw %di 3453 00e7 52 pushw %dx 3454 00e8 56 pushw %si 3455 00e9 E8FEFF call sprintf 3456 00ec FF76E0 pushw -32(%bp) GAS LISTING /tmp/ccptpGUU.s page 74 3457 00ef 8A46DB movb -37(%bp), %al 3458 00f2 98 cbtw 3459 00f3 50 pushw %ax 3460 00f4 56 pushw %si 3461 00f5 57 pushw %di 3462 00f6 E8FEFF call copy 3463 00f9 83C410 addw $16, %sp 3464 00fc 85C0 testw %ax, %ax 3465 00fe 7508 jne .L445 3466 0100 8B46E8 movw -24(%bp), %ax 3467 0103 0B46E6 orw -26(%bp), %ax 3468 0106 75BF jne .L449 3469 .L445: 3470 0108 837EF100 cmpw $0, -15(%bp) 3471 010c 7503E9A2 00 je .L450 3472 0111 837EFE00 cmpw $0, -2(%bp) 3473 0115 740A je .L451 3474 0117 B84611 movw $.LC101, %ax 3475 011a 50 pushw %ax 3476 011b E8FEFF call puts 3477 011e 83C402 addw $2, %sp 3478 .L451: 3479 0121 8B46FB movw -5(%bp), %ax 3480 0124 85C0 testw %ax, %ax 3481 0126 BE5308 movw $.LC11, %si 3482 0129 7502 jne .L452 3483 012b 89F0 movw %si, %ax 3484 .L452: 3485 012d 50 pushw %ax 3486 012e 8DBED7FE leaw -297(%bp), %di 3487 0132 57 pushw %di 3488 0133 B82D0A movw $.LC50, %ax 3489 0136 50 pushw %ax 3490 0137 8D96D3FD leaw -557(%bp), %dx 3491 013b 52 pushw %dx 3492 013c 8996D0FD movw %dx, -560(%bp) 3493 0140 E8FEFF call sprintf 3494 0143 56 pushw %si 3495 0144 8A46DB movb -37(%bp), %al 3496 0147 98 cbtw 3497 0148 50 pushw %ax 3498 0149 8B96D0FD movw -560(%bp), %dx 3499 014d 52 pushw %dx 3500 014e 57 pushw %di 3501 014f E8FEFF call copy 3502 0152 83C410 addw $16, %sp 3503 0155 85C0 testw %ax, %ax 3504 0157 755A jne .L450 3505 0159 B8B00A movw $.LC55, %ax 3506 015c 50 pushw %ax 3507 015d E8FEFF call getenv 3508 0160 89C7 movw %ax, %di 3509 0162 83C402 addw $2, %sp 3510 0165 837EFB01 cmpw $1, -5(%bp) 3511 0169 7313 jnc .L453 3512 016b 85C0 testw %ax, %ax 3513 016d 740F je .L453 GAS LISTING /tmp/ccptpGUU.s page 75 3514 016f 50 pushw %ax 3515 0170 B80000 movw $pgm, %ax 3516 0173 50 pushw %ax 3517 0174 B86D11 movw $.LC102, %ax 3518 0177 50 pushw %ax 3519 0178 E8FEFF call printf 3520 017b 83C406 addw $6, %sp 3521 .L453: 3522 017e 837EFB01 cmpw $1, -5(%bp) 3523 0182 7304 jnc .L458 3524 0184 85FF testw %di, %di 3525 0186 7515 jne .L454 3526 .L458: 3527 0188 8B46FB movw -5(%bp), %ax 3528 018b 85C0 testw %ax, %ax 3529 018d 7503 jne .L457 3530 018f B85308 movw $.LC11, %ax 3531 .L457: 3532 0192 50 pushw %ax 3533 0193 B80000 movw $pgm, %ax 3534 0196 50 pushw %ax 3535 0197 B89511 movw $.LC103, %ax 3536 019a E936FF jmp .L475 3537 .L454: 3538 019d 56 pushw %si 3539 019e 8A46DB movb -37(%bp), %al 3540 01a1 98 cbtw 3541 01a2 50 pushw %ax 3542 01a3 57 pushw %di 3543 01a4 8D86D7FE leaw -297(%bp), %ax 3544 01a8 50 pushw %ax 3545 01a9 E8FEFF call copy 3546 01ac 83C408 addw $8, %sp 3547 01af 85C0 testw %ax, %ax 3548 01b1 74D5 je .L458 3549 .L450: 3550 01b3 837EFE00 cmpw $0, -2(%bp) 3551 01b7 740A je .L459 3552 01b9 B80A00 movw $10, %ax 3553 01bc 50 pushw %ax 3554 01bd E8FEFF call putchar 3555 01c0 83C402 addw $2, %sp 3556 .L459: 3557 01c3 B8CE11 movw $.LC104, %ax 3558 01c6 50 pushw %ax 3559 01c7 E8FEFF call puts 3560 01ca 31C0 xorw %ax, %ax 3561 01cc 89EC movw %bp, %sp 3562 01ce 5D popw %bp 3563 01cf 5F popw %di 3564 01d0 5E popw %si 3565 01d1 C3 ret 3566 .size main, .-main 3567 .local dest.3592 3568 .comm dest.3592,260,1 3569 .local src.3591 3570 .comm src.3591,260,1 GAS LISTING /tmp/ccptpGUU.s page 76 3571 .comm copybuffer,16384,1 3572 .global msgDOS 3573 .section .rodata.str1.1 3574 .LC105: 3575 11e3 0A00 .string "\n" 3576 .LC106: 3577 11e5 456E6861 6E636564 .string "Enhanced DR-DOS 7.01.07+ mode (DRBIO.SYS and DRDOS.SYS)\n" 3577 2044522D 444F5320 3577 372E3031 2E30372B 3577 206D6F64 65202844 3577 5242494F 2E535953 3577 20616E64 20445244 3577 4F532E53 5953290A 3577 00 3578 .LC107: 3579 121e 456E6861 6E636564 .string "Enhanced DR-DOS mode (EDRPACK.SYS, lDOS drload)\n" 3579 2044522D 444F5320 3579 6D6F6465 20284544 3579 52504143 4B2E5359 3579 532C206C 444F5320 3579 64726C6F 6164290A 3579 00 3580 .LC108: 3581 124f 456E6861 6E636564 .string "Enhanced DR-DOS mode (EDRDOS.COM, lDOS iniload)\n" 3581 2044522D 444F5320 3581 6D6F6465 20284544 3581 52444F53 2E434F4D 3581 2C206C44 4F532069 3581 6E696C6F 6164290A 3581 00 3582 .LC109: 3583 1280 4F535320 4D532D44 .string "OSS MS-DOS mode (LMSPACK.SYS, lDOS drload)\n" 3583 4F53206D 6F646520 3583 284C4D53 5041434B 3583 2E535953 2C206C44 3583 4F532064 726C6F61 3583 64290A00 3584 .LC110: 3585 12ac 4F535320 4D532D44 .string "OSS MS-DOS mode (LMSDOS.COM, lDOS iniload)\n" 3585 4F53206D 6F646520 3585 284C4D53 444F532E 3585 434F4D2C 206C444F 3585 5320696E 696C6F61 3585 64290A00 3586 .LC111: 3587 12d8 4E6F7665 6C6C2044 .string "Novell DOS 7, Caldera OpenDOS, DR-DOS 7.02 - 7.03, 7.01.01 - 7.01.06 mode\n" 3587 4F532037 2C204361 3587 6C646572 61204F70 3587 656E444F 532C2044 3587 522D444F 5320372E 3587 3032202D 20372E30 3587 332C2037 2E30312E 3587 3031202D 20372E30 3587 312E3036 206D6F64 3587 650A00 3588 .data 3589 .p2align 1 GAS LISTING /tmp/ccptpGUU.s page 77 3590 .type msgDOS, @object 3591 .size msgDOS, 14 3592 msgDOS: 3593 0000 E311 .hword .LC105 3594 0002 E511 .hword .LC106 3595 0004 1E12 .hword .LC107 3596 0006 4F12 .hword .LC108 3597 0008 8012 .hword .LC109 3598 000a AC12 .hword .LC110 3599 000c D812 .hword .LC111 3600 .global bootFiles 3601 .section .rodata.str1.1 3602 .LC112: 3603 1323 4B45524E 454C2E53 .string "KERNEL.SYS" 3603 595300 3604 .LC113: 3605 132e 44524249 4F2E5359 .string "DRBIO.SYS" 3605 5300 3606 .LC114: 3607 1338 4452444F 532E5359 .string "DRDOS.SYS" 3607 5300 3608 .LC115: 3609 1342 45445250 41434B2E .string "EDRPACK.SYS" 3609 53595300 3610 .LC116: 3611 134e 45445244 4F532E43 .string "EDRDOS.COM" 3611 4F4D00 3612 .LC117: 3613 1359 4C4D5350 41434B2E .string "LMSPACK.SYS" 3613 53595300 3614 .LC118: 3615 1365 4C4D5344 4F532E43 .string "LMSDOS.COM" 3615 4F4D00 3616 .LC119: 3617 1370 49424D42 494F2E43 .string "IBMBIO.COM" 3617 4F4D00 3618 .LC120: 3619 137b 49424D44 4F532E43 .string "IBMDOS.COM" 3619 4F4D00 3620 .data 3621 .type bootFiles, @object 3622 .size bootFiles, 84 3623 bootFiles: 3624 000e 2313 .hword .LC112 3625 0010 0000 .hword 0 3626 0012 6000 .hword 96 3627 0014 0100 .hword 1 3628 0016 0000 .hword 0 3629 0018 0000 .hword 0 3630 001a 2E13 .hword .LC113 3631 001c 3813 .hword .LC114 3632 001e 7000 .hword 112 3633 0020 0100 .hword 1 3634 0022 0100 .hword 1 3635 0024 0000 .hword 0 3636 0026 4213 .hword .LC115 3637 0028 0000 .hword 0 GAS LISTING /tmp/ccptpGUU.s page 78 3638 002a 6000 .hword 96 3639 002c 0100 .hword 1 3640 002e 0000 .hword 0 3641 0030 0000 .hword 0 3642 0032 4E13 .hword .LC116 3643 0034 0000 .hword 0 3644 0036 6000 .hword 96 3645 0038 0100 .hword 1 3646 003a 0000 .hword 0 3647 003c 0000 .hword 0 3648 003e 5913 .hword .LC117 3649 0040 0000 .hword 0 3650 0042 6000 .hword 96 3651 0044 0100 .hword 1 3652 0046 0000 .hword 0 3653 0048 0000 .hword 0 3654 004a 6513 .hword .LC118 3655 004c 0000 .hword 0 3656 004e 6000 .hword 96 3657 0050 0100 .hword 1 3658 0052 0000 .hword 0 3659 0054 0000 .hword 0 3660 0056 7013 .hword .LC119 3661 0058 7B13 .hword .LC120 3662 005a 7000 .hword 112 3663 005c 0100 .hword 1 3664 005e 0100 .hword 1 3665 0060 0000 .hword 0 3666 .comm x,44,1 3667 .comm smallfat32,2,2 3668 .comm fs,1,1 3669 .global pgm 3670 .type pgm, @object 3671 .size pgm, 4 3672 pgm: 3673 0062 53595300 .string "SYS" 3674 .global fat32lba 3675 .type fat32lba, @object 3676 .size fat32lba, 512 3677 fat32lba: 3678 0066 EB .byte -21 3679 0067 58 .byte 88 3680 0068 90 .byte -112 3681 0069 00 .byte 0 3682 006a 00 .byte 0 3683 006b 00 .byte 0 3684 006c 00 .byte 0 3685 006d 00 .byte 0 3686 006e 00 .byte 0 3687 006f 00 .byte 0 3688 0070 00 .byte 0 3689 0071 00 .byte 0 3690 0072 00 .byte 0 3691 0073 00 .byte 0 3692 0074 00 .byte 0 3693 0075 00 .byte 0 3694 0076 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 79 3695 0077 00 .byte 0 3696 0078 00 .byte 0 3697 0079 00 .byte 0 3698 007a 00 .byte 0 3699 007b 00 .byte 0 3700 007c 00 .byte 0 3701 007d 00 .byte 0 3702 007e 00 .byte 0 3703 007f 00 .byte 0 3704 0080 00 .byte 0 3705 0081 00 .byte 0 3706 0082 00 .byte 0 3707 0083 00 .byte 0 3708 0084 00 .byte 0 3709 0085 00 .byte 0 3710 0086 00 .byte 0 3711 0087 00 .byte 0 3712 0088 00 .byte 0 3713 0089 00 .byte 0 3714 008a 00 .byte 0 3715 008b 00 .byte 0 3716 008c 00 .byte 0 3717 008d 00 .byte 0 3718 008e 00 .byte 0 3719 008f 00 .byte 0 3720 0090 00 .byte 0 3721 0091 00 .byte 0 3722 0092 00 .byte 0 3723 0093 00 .byte 0 3724 0094 00 .byte 0 3725 0095 00 .byte 0 3726 0096 00 .byte 0 3727 0097 00 .byte 0 3728 0098 00 .byte 0 3729 0099 00 .byte 0 3730 009a 00 .byte 0 3731 009b 00 .byte 0 3732 009c 00 .byte 0 3733 009d 00 .byte 0 3734 009e 00 .byte 0 3735 009f 00 .byte 0 3736 00a0 00 .byte 0 3737 00a1 00 .byte 0 3738 00a2 00 .byte 0 3739 00a3 00 .byte 0 3740 00a4 00 .byte 0 3741 00a5 00 .byte 0 3742 00a6 00 .byte 0 3743 00a7 00 .byte 0 3744 00a8 00 .byte 0 3745 00a9 00 .byte 0 3746 00aa 00 .byte 0 3747 00ab 00 .byte 0 3748 00ac 00 .byte 0 3749 00ad 00 .byte 0 3750 00ae 00 .byte 0 3751 00af 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 80 3752 00b0 00 .byte 0 3753 00b1 00 .byte 0 3754 00b2 00 .byte 0 3755 00b3 00 .byte 0 3756 00b4 00 .byte 0 3757 00b5 00 .byte 0 3758 00b6 00 .byte 0 3759 00b7 00 .byte 0 3760 00b8 46 .byte 70 3761 00b9 41 .byte 65 3762 00ba 54 .byte 84 3763 00bb 33 .byte 51 3764 00bc 32 .byte 50 3765 00bd 20 .byte 32 3766 00be 20 .byte 32 3767 00bf 20 .byte 32 3768 00c0 FC .byte -4 3769 00c1 FA .byte -6 3770 00c2 29 .byte 41 3771 00c3 C0 .byte -64 3772 00c4 8E .byte -114 3773 00c5 D8 .byte -40 3774 00c6 BD .byte -67 3775 00c7 00 .byte 0 3776 00c8 7C .byte 124 3777 00c9 B8 .byte -72 3778 00ca E0 .byte -32 3779 00cb 1F .byte 31 3780 00cc 8E .byte -114 3781 00cd C0 .byte -64 3782 00ce 89 .byte -119 3783 00cf EE .byte -18 3784 00d0 89 .byte -119 3785 00d1 EF .byte -17 3786 00d2 B9 .byte -71 3787 00d3 00 .byte 0 3788 00d4 01 .byte 1 3789 00d5 F3 .byte -13 3790 00d6 A5 .byte -91 3791 00d7 EA .byte -22 3792 00d8 7A .byte 122 3793 00d9 7C .byte 124 3794 00da E0 .byte -32 3795 00db 1F .byte 31 3796 00dc 00 .byte 0 3797 00dd 00 .byte 0 3798 00de 60 .byte 96 3799 00df 00 .byte 0 3800 00e0 8E .byte -114 3801 00e1 D8 .byte -40 3802 00e2 8E .byte -114 3803 00e3 D0 .byte -48 3804 00e4 8D .byte -115 3805 00e5 66 .byte 102 3806 00e6 E0 .byte -32 3807 00e7 FB .byte -5 3808 00e8 88 .byte -120 GAS LISTING /tmp/ccptpGUU.s page 81 3809 00e9 56 .byte 86 3810 00ea 40 .byte 64 3811 00eb BE .byte -66 3812 00ec C6 .byte -58 3813 00ed 7D .byte 125 3814 00ee E8 .byte -24 3815 00ef F9 .byte -7 3816 00f0 00 .byte 0 3817 00f1 66 .byte 102 3818 00f2 31 .byte 49 3819 00f3 C0 .byte -64 3820 00f4 66 .byte 102 3821 00f5 89 .byte -119 3822 00f6 46 .byte 70 3823 00f7 44 .byte 68 3824 00f8 8B .byte -117 3825 00f9 46 .byte 70 3826 00fa 0E .byte 14 3827 00fb 66 .byte 102 3828 00fc 03 .byte 3 3829 00fd 46 .byte 70 3830 00fe 1C .byte 28 3831 00ff 66 .byte 102 3832 0100 89 .byte -119 3833 0101 46 .byte 70 3834 0102 48 .byte 72 3835 0103 66 .byte 102 3836 0104 89 .byte -119 3837 0105 46 .byte 70 3838 0106 4C .byte 76 3839 0107 66 .byte 102 3840 0108 8B .byte -117 3841 0109 46 .byte 70 3842 010a 10 .byte 16 3843 010b 66 .byte 102 3844 010c F7 .byte -9 3845 010d 6E .byte 110 3846 010e 24 .byte 36 3847 010f 66 .byte 102 3848 0110 01 .byte 1 3849 0111 46 .byte 70 3850 0112 4C .byte 76 3851 0113 B8 .byte -72 3852 0114 00 .byte 0 3853 0115 02 .byte 2 3854 0116 3B .byte 59 3855 0117 46 .byte 70 3856 0118 0B .byte 11 3857 0119 74 .byte 116 3858 011a 08 .byte 8 3859 011b 01 .byte 1 3860 011c C0 .byte -64 3861 011d FF .byte -1 3862 011e 06 .byte 6 3863 011f 36 .byte 54 3864 0120 7D .byte 125 3865 0121 EB .byte -21 GAS LISTING /tmp/ccptpGUU.s page 82 3866 0122 F3 .byte -13 3867 0123 66 .byte 102 3868 0124 8B .byte -117 3869 0125 46 .byte 70 3870 0126 2C .byte 44 3871 0127 66 .byte 102 3872 0128 50 .byte 80 3873 0129 E8 .byte -24 3874 012a 96 .byte -106 3875 012b 00 .byte 0 3876 012c 72 .byte 114 3877 012d 4F .byte 79 3878 012e C4 .byte -60 3879 012f 5E .byte 94 3880 0130 76 .byte 118 3881 0131 E8 .byte -24 3882 0132 BC .byte -68 3883 0133 00 .byte 0 3884 0134 31 .byte 49 3885 0135 FF .byte -1 3886 0136 B9 .byte -71 3887 0137 0B .byte 11 3888 0138 00 .byte 0 3889 0139 BE .byte -66 3890 013a F1 .byte -15 3891 013b 7D .byte 125 3892 013c F3 .byte -13 3893 013d A6 .byte -90 3894 013e 74 .byte 116 3895 013f 15 .byte 21 3896 0140 83 .byte -125 3897 0141 C7 .byte -57 3898 0142 20 .byte 32 3899 0143 83 .byte -125 3900 0144 E7 .byte -25 3901 0145 E0 .byte -32 3902 0146 3B .byte 59 3903 0147 7E .byte 126 3904 0148 0B .byte 11 3905 0149 75 .byte 117 3906 014a EB .byte -21 3907 014b 4A .byte 74 3908 014c 75 .byte 117 3909 014d E0 .byte -32 3910 014e 66 .byte 102 3911 014f 58 .byte 88 3912 0150 E8 .byte -24 3913 0151 36 .byte 54 3914 0152 00 .byte 0 3915 0153 EB .byte -21 3916 0154 D2 .byte -46 3917 0155 26 .byte 38 3918 0156 FF .byte -1 3919 0157 75 .byte 117 3920 0158 09 .byte 9 3921 0159 26 .byte 38 3922 015a FF .byte -1 GAS LISTING /tmp/ccptpGUU.s page 83 3923 015b 75 .byte 117 3924 015c 0F .byte 15 3925 015d 66 .byte 102 3926 015e 58 .byte 88 3927 015f 29 .byte 41 3928 0160 DB .byte -37 3929 0161 66 .byte 102 3930 0162 50 .byte 80 3931 0163 E8 .byte -24 3932 0164 5C .byte 92 3933 0165 00 .byte 0 3934 0166 72 .byte 114 3935 0167 0D .byte 13 3936 0168 E8 .byte -24 3937 0169 85 .byte -123 3938 016a 00 .byte 0 3939 016b 4A .byte 74 3940 016c 75 .byte 117 3941 016d FA .byte -6 3942 016e 66 .byte 102 3943 016f 58 .byte 88 3944 0170 E8 .byte -24 3945 0171 16 .byte 22 3946 0172 00 .byte 0 3947 0173 EB .byte -21 3948 0174 EC .byte -20 3949 0175 8A .byte -118 3950 0176 56 .byte 86 3951 0177 40 .byte 64 3952 0178 88 .byte -120 3953 0179 D3 .byte -45 3954 017a FF .byte -1 3955 017b 6E .byte 110 3956 017c 76 .byte 118 3957 017d BE .byte -66 3958 017e EE .byte -18 3959 017f 7D .byte 125 3960 0180 E8 .byte -24 3961 0181 67 .byte 103 3962 0182 00 .byte 0 3963 0183 30 .byte 48 3964 0184 E4 .byte -28 3965 0185 CD .byte -51 3966 0186 16 .byte 22 3967 0187 CD .byte -51 3968 0188 19 .byte 25 3969 0189 06 .byte 6 3970 018a 57 .byte 87 3971 018b 53 .byte 83 3972 018c 89 .byte -119 3973 018d C7 .byte -57 3974 018e C1 .byte -63 3975 018f E7 .byte -25 3976 0190 02 .byte 2 3977 0191 50 .byte 80 3978 0192 8B .byte -117 3979 0193 46 .byte 70 GAS LISTING /tmp/ccptpGUU.s page 84 3980 0194 0B .byte 11 3981 0195 48 .byte 72 3982 0196 21 .byte 33 3983 0197 C7 .byte -57 3984 0198 58 .byte 88 3985 0199 66 .byte 102 3986 019a C1 .byte -63 3987 019b E8 .byte -24 3988 019c 07 .byte 7 3989 019d 66 .byte 102 3990 019e 03 .byte 3 3991 019f 46 .byte 70 3992 01a0 48 .byte 72 3993 01a1 BB .byte -69 3994 01a2 00 .byte 0 3995 01a3 22 .byte 34 3996 01a4 8E .byte -114 3997 01a5 C3 .byte -61 3998 01a6 29 .byte 41 3999 01a7 DB .byte -37 4000 01a8 66 .byte 102 4001 01a9 3B .byte 59 4002 01aa 46 .byte 70 4003 01ab 44 .byte 68 4004 01ac 74 .byte 116 4005 01ad 07 .byte 7 4006 01ae 66 .byte 102 4007 01af 89 .byte -119 4008 01b0 46 .byte 70 4009 01b1 44 .byte 68 4010 01b2 E8 .byte -24 4011 01b3 3B .byte 59 4012 01b4 00 .byte 0 4013 01b5 26 .byte 38 4014 01b6 80 .byte -128 4015 01b7 65 .byte 101 4016 01b8 03 .byte 3 4017 01b9 0F .byte 15 4018 01ba 26 .byte 38 4019 01bb 66 .byte 102 4020 01bc 8B .byte -117 4021 01bd 05 .byte 5 4022 01be 5B .byte 91 4023 01bf 5F .byte 95 4024 01c0 07 .byte 7 4025 01c1 C3 .byte -61 4026 01c2 66 .byte 102 4027 01c3 3D .byte 61 4028 01c4 F8 .byte -8 4029 01c5 FF .byte -1 4030 01c6 FF .byte -1 4031 01c7 0F .byte 15 4032 01c8 73 .byte 115 4033 01c9 18 .byte 24 4034 01ca 66 .byte 102 4035 01cb 48 .byte 72 4036 01cc 66 .byte 102 GAS LISTING /tmp/ccptpGUU.s page 85 4037 01cd 48 .byte 72 4038 01ce 66 .byte 102 4039 01cf 0F .byte 15 4040 01d0 B6 .byte -74 4041 01d1 56 .byte 86 4042 01d2 0D .byte 13 4043 01d3 FE .byte -2 4044 01d4 CA .byte -54 4045 01d5 42 .byte 66 4046 01d6 66 .byte 102 4047 01d7 52 .byte 82 4048 01d8 66 .byte 102 4049 01d9 F7 .byte -9 4050 01da E2 .byte -30 4051 01db 66 .byte 102 4052 01dc 5A .byte 90 4053 01dd 66 .byte 102 4054 01de 03 .byte 3 4055 01df 46 .byte 70 4056 01e0 4C .byte 76 4057 01e1 C3 .byte -61 4058 01e2 F9 .byte -7 4059 01e3 C3 .byte -61 4060 01e4 31 .byte 49 4061 01e5 DB .byte -37 4062 01e6 B4 .byte -76 4063 01e7 0E .byte 14 4064 01e8 CD .byte -51 4065 01e9 10 .byte 16 4066 01ea AC .byte -84 4067 01eb 3C .byte 60 4068 01ec 00 .byte 0 4069 01ed 75 .byte 117 4070 01ee F5 .byte -11 4071 01ef C3 .byte -61 4072 01f0 52 .byte 82 4073 01f1 56 .byte 86 4074 01f2 57 .byte 87 4075 01f3 66 .byte 102 4076 01f4 50 .byte 80 4077 01f5 89 .byte -119 4078 01f6 E7 .byte -25 4079 01f7 6A .byte 106 4080 01f8 00 .byte 0 4081 01f9 6A .byte 106 4082 01fa 00 .byte 0 4083 01fb 66 .byte 102 4084 01fc 50 .byte 80 4085 01fd 06 .byte 6 4086 01fe 53 .byte 83 4087 01ff 6A .byte 106 4088 0200 01 .byte 1 4089 0201 6A .byte 106 4090 0202 10 .byte 16 4091 0203 89 .byte -119 4092 0204 E6 .byte -26 4093 0205 8A .byte -118 GAS LISTING /tmp/ccptpGUU.s page 86 4094 0206 56 .byte 86 4095 0207 40 .byte 64 4096 0208 B4 .byte -76 4097 0209 42 .byte 66 4098 020a CD .byte -51 4099 020b 13 .byte 19 4100 020c 89 .byte -119 4101 020d FC .byte -4 4102 020e 66 .byte 102 4103 020f 58 .byte 88 4104 0210 73 .byte 115 4105 0211 08 .byte 8 4106 0212 50 .byte 80 4107 0213 30 .byte 48 4108 0214 E4 .byte -28 4109 0215 CD .byte -51 4110 0216 13 .byte 19 4111 0217 58 .byte 88 4112 0218 EB .byte -21 4113 0219 D9 .byte -39 4114 021a 66 .byte 102 4115 021b 40 .byte 64 4116 021c 03 .byte 3 4117 021d 5E .byte 94 4118 021e 0B .byte 11 4119 021f 73 .byte 115 4120 0220 07 .byte 7 4121 0221 8C .byte -116 4122 0222 C2 .byte -62 4123 0223 80 .byte -128 4124 0224 C6 .byte -58 4125 0225 10 .byte 16 4126 0226 8E .byte -114 4127 0227 C2 .byte -62 4128 0228 5F .byte 95 4129 0229 5E .byte 94 4130 022a 5A .byte 90 4131 022b C3 .byte -61 4132 022c 4C .byte 76 4133 022d 6F .byte 111 4134 022e 61 .byte 97 4135 022f 64 .byte 100 4136 0230 69 .byte 105 4137 0231 6E .byte 110 4138 0232 67 .byte 103 4139 0233 20 .byte 32 4140 0234 46 .byte 70 4141 0235 72 .byte 114 4142 0236 65 .byte 101 4143 0237 65 .byte 101 4144 0238 44 .byte 68 4145 0239 4F .byte 79 4146 023a 53 .byte 83 4147 023b 20 .byte 32 4148 023c 00 .byte 0 4149 023d 00 .byte 0 4150 023e 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 87 4151 023f 00 .byte 0 4152 0240 00 .byte 0 4153 0241 00 .byte 0 4154 0242 00 .byte 0 4155 0243 00 .byte 0 4156 0244 00 .byte 0 4157 0245 00 .byte 0 4158 0246 00 .byte 0 4159 0247 00 .byte 0 4160 0248 00 .byte 0 4161 0249 00 .byte 0 4162 024a 00 .byte 0 4163 024b 00 .byte 0 4164 024c 00 .byte 0 4165 024d 00 .byte 0 4166 024e 00 .byte 0 4167 024f 00 .byte 0 4168 0250 00 .byte 0 4169 0251 00 .byte 0 4170 0252 00 .byte 0 4171 0253 00 .byte 0 4172 0254 4E .byte 78 4173 0255 6F .byte 111 4174 0256 20 .byte 32 4175 0257 4B .byte 75 4176 0258 45 .byte 69 4177 0259 52 .byte 82 4178 025a 4E .byte 78 4179 025b 45 .byte 69 4180 025c 4C .byte 76 4181 025d 20 .byte 32 4182 025e 20 .byte 32 4183 025f 53 .byte 83 4184 0260 59 .byte 89 4185 0261 53 .byte 83 4186 0262 00 .byte 0 4187 0263 00 .byte 0 4188 0264 55 .byte 85 4189 0265 AA .byte -86 4190 .global fat32chs 4191 .type fat32chs, @object 4192 .size fat32chs, 512 4193 fat32chs: 4194 0266 EB .byte -21 4195 0267 58 .byte 88 4196 0268 90 .byte -112 4197 0269 00 .byte 0 4198 026a 00 .byte 0 4199 026b 00 .byte 0 4200 026c 00 .byte 0 4201 026d 00 .byte 0 4202 026e 00 .byte 0 4203 026f 00 .byte 0 4204 0270 00 .byte 0 4205 0271 00 .byte 0 4206 0272 00 .byte 0 4207 0273 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 88 4208 0274 00 .byte 0 4209 0275 00 .byte 0 4210 0276 00 .byte 0 4211 0277 00 .byte 0 4212 0278 00 .byte 0 4213 0279 00 .byte 0 4214 027a 00 .byte 0 4215 027b 00 .byte 0 4216 027c 00 .byte 0 4217 027d 00 .byte 0 4218 027e 00 .byte 0 4219 027f 00 .byte 0 4220 0280 00 .byte 0 4221 0281 00 .byte 0 4222 0282 00 .byte 0 4223 0283 00 .byte 0 4224 0284 00 .byte 0 4225 0285 00 .byte 0 4226 0286 00 .byte 0 4227 0287 00 .byte 0 4228 0288 00 .byte 0 4229 0289 00 .byte 0 4230 028a 00 .byte 0 4231 028b 00 .byte 0 4232 028c 00 .byte 0 4233 028d 00 .byte 0 4234 028e 00 .byte 0 4235 028f 00 .byte 0 4236 0290 00 .byte 0 4237 0291 00 .byte 0 4238 0292 00 .byte 0 4239 0293 00 .byte 0 4240 0294 00 .byte 0 4241 0295 00 .byte 0 4242 0296 00 .byte 0 4243 0297 00 .byte 0 4244 0298 00 .byte 0 4245 0299 00 .byte 0 4246 029a 00 .byte 0 4247 029b 00 .byte 0 4248 029c 00 .byte 0 4249 029d 00 .byte 0 4250 029e 00 .byte 0 4251 029f 00 .byte 0 4252 02a0 00 .byte 0 4253 02a1 00 .byte 0 4254 02a2 00 .byte 0 4255 02a3 00 .byte 0 4256 02a4 00 .byte 0 4257 02a5 00 .byte 0 4258 02a6 00 .byte 0 4259 02a7 00 .byte 0 4260 02a8 00 .byte 0 4261 02a9 00 .byte 0 4262 02aa 00 .byte 0 4263 02ab 00 .byte 0 4264 02ac 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 89 4265 02ad 00 .byte 0 4266 02ae 00 .byte 0 4267 02af 00 .byte 0 4268 02b0 00 .byte 0 4269 02b1 00 .byte 0 4270 02b2 00 .byte 0 4271 02b3 00 .byte 0 4272 02b4 00 .byte 0 4273 02b5 00 .byte 0 4274 02b6 00 .byte 0 4275 02b7 00 .byte 0 4276 02b8 46 .byte 70 4277 02b9 41 .byte 65 4278 02ba 54 .byte 84 4279 02bb 33 .byte 51 4280 02bc 32 .byte 50 4281 02bd 20 .byte 32 4282 02be 20 .byte 32 4283 02bf 20 .byte 32 4284 02c0 FC .byte -4 4285 02c1 FA .byte -6 4286 02c2 29 .byte 41 4287 02c3 C0 .byte -64 4288 02c4 8E .byte -114 4289 02c5 D8 .byte -40 4290 02c6 BD .byte -67 4291 02c7 00 .byte 0 4292 02c8 7C .byte 124 4293 02c9 B8 .byte -72 4294 02ca E0 .byte -32 4295 02cb 1F .byte 31 4296 02cc 8E .byte -114 4297 02cd C0 .byte -64 4298 02ce 89 .byte -119 4299 02cf EE .byte -18 4300 02d0 89 .byte -119 4301 02d1 EF .byte -17 4302 02d2 B9 .byte -71 4303 02d3 00 .byte 0 4304 02d4 01 .byte 1 4305 02d5 F3 .byte -13 4306 02d6 A5 .byte -91 4307 02d7 EA .byte -22 4308 02d8 7A .byte 122 4309 02d9 7C .byte 124 4310 02da E0 .byte -32 4311 02db 1F .byte 31 4312 02dc 00 .byte 0 4313 02dd 00 .byte 0 4314 02de 60 .byte 96 4315 02df 00 .byte 0 4316 02e0 8E .byte -114 4317 02e1 D8 .byte -40 4318 02e2 8E .byte -114 4319 02e3 D0 .byte -48 4320 02e4 8D .byte -115 4321 02e5 66 .byte 102 GAS LISTING /tmp/ccptpGUU.s page 90 4322 02e6 E0 .byte -32 4323 02e7 FB .byte -5 4324 02e8 88 .byte -120 4325 02e9 56 .byte 86 4326 02ea 40 .byte 64 4327 02eb 8B .byte -117 4328 02ec 76 .byte 118 4329 02ed 1C .byte 28 4330 02ee 8B .byte -117 4331 02ef 7E .byte 126 4332 02f0 1E .byte 30 4333 02f1 03 .byte 3 4334 02f2 76 .byte 118 4335 02f3 0E .byte 14 4336 02f4 83 .byte -125 4337 02f5 D7 .byte -41 4338 02f6 00 .byte 0 4339 02f7 89 .byte -119 4340 02f8 76 .byte 118 4341 02f9 5E .byte 94 4342 02fa 89 .byte -119 4343 02fb 7E .byte 126 4344 02fc 60 .byte 96 4345 02fd 8A .byte -118 4346 02fe 46 .byte 70 4347 02ff 10 .byte 16 4348 0300 98 .byte -104 4349 0301 50 .byte 80 4350 0302 F7 .byte -9 4351 0303 66 .byte 102 4352 0304 26 .byte 38 4353 0305 01 .byte 1 4354 0306 C7 .byte -57 4355 0307 58 .byte 88 4356 0308 F7 .byte -9 4357 0309 66 .byte 102 4358 030a 24 .byte 36 4359 030b 01 .byte 1 4360 030c F0 .byte -16 4361 030d 11 .byte 17 4362 030e FA .byte -6 4363 030f 89 .byte -119 4364 0310 46 .byte 70 4365 0311 62 .byte 98 4366 0312 89 .byte -119 4367 0313 56 .byte 86 4368 0314 64 .byte 100 4369 0315 8B .byte -117 4370 0316 46 .byte 70 4371 0317 0B .byte 11 4372 0318 D1 .byte -47 4373 0319 E8 .byte -24 4374 031a D1 .byte -47 4375 031b E8 .byte -24 4376 031c 48 .byte 72 4377 031d 89 .byte -119 4378 031e 46 .byte 70 GAS LISTING /tmp/ccptpGUU.s page 91 4379 031f 66 .byte 102 4380 0320 91 .byte -111 4381 0321 41 .byte 65 4382 0322 40 .byte 64 4383 0323 D1 .byte -47 4384 0324 E9 .byte -23 4385 0325 83 .byte -125 4386 0326 F9 .byte -7 4387 0327 01 .byte 1 4388 0328 75 .byte 117 4389 0329 F8 .byte -8 4390 032a 89 .byte -119 4391 032b 46 .byte 70 4392 032c 68 .byte 104 4393 032d 49 .byte 73 4394 032e 89 .byte -119 4395 032f 4E .byte 78 4396 0330 48 .byte 72 4397 0331 89 .byte -119 4398 0332 4E .byte 78 4399 0333 4A .byte 74 4400 0334 8B .byte -117 4401 0335 46 .byte 70 4402 0336 2C .byte 44 4403 0337 8B .byte -117 4404 0338 56 .byte 86 4405 0339 2E .byte 46 4406 033a 52 .byte 82 4407 033b 50 .byte 80 4408 033c E8 .byte -24 4409 033d A7 .byte -89 4410 033e 00 .byte 0 4411 033f 72 .byte 114 4412 0340 4F .byte 79 4413 0341 53 .byte 83 4414 0342 C4 .byte -60 4415 0343 5E .byte 94 4416 0344 76 .byte 118 4417 0345 E8 .byte -24 4418 0346 C9 .byte -55 4419 0347 00 .byte 0 4420 0348 52 .byte 82 4421 0349 50 .byte 80 4422 034a 8B .byte -117 4423 034b 46 .byte 70 4424 034c 0B .byte 11 4425 034d B9 .byte -71 4426 034e 0B .byte 11 4427 034f 00 .byte 0 4428 0350 BE .byte -66 4429 0351 F1 .byte -15 4430 0352 7D .byte 125 4431 0353 89 .byte -119 4432 0354 C7 .byte -57 4433 0355 83 .byte -125 4434 0356 EF .byte -17 4435 0357 20 .byte 32 GAS LISTING /tmp/ccptpGUU.s page 92 4436 0358 F3 .byte -13 4437 0359 A6 .byte -90 4438 035a 74 .byte 116 4439 035b 12 .byte 18 4440 035c 83 .byte -125 4441 035d E8 .byte -24 4442 035e 20 .byte 32 4443 035f 75 .byte 117 4444 0360 EC .byte -20 4445 0361 58 .byte 88 4446 0362 5A .byte 90 4447 0363 5B .byte 91 4448 0364 4B .byte 75 4449 0365 75 .byte 117 4450 0366 DA .byte -38 4451 0367 58 .byte 88 4452 0368 5A .byte 90 4453 0369 E8 .byte -24 4454 036a 34 .byte 52 4455 036b 00 .byte 0 4456 036c EB .byte -21 4457 036d CC .byte -52 4458 036e 26 .byte 38 4459 036f 8B .byte -117 4460 0370 45 .byte 69 4461 0371 0F .byte 15 4462 0372 26 .byte 38 4463 0373 8B .byte -117 4464 0374 55 .byte 85 4465 0375 09 .byte 9 4466 0376 29 .byte 41 4467 0377 DB .byte -37 4468 0378 52 .byte 82 4469 0379 50 .byte 80 4470 037a 53 .byte 83 4471 037b E8 .byte -24 4472 037c 68 .byte 104 4473 037d 00 .byte 0 4474 037e 72 .byte 114 4475 037f 5E .byte 94 4476 0380 89 .byte -119 4477 0381 DF .byte -33 4478 0382 5B .byte 91 4479 0383 E8 .byte -24 4480 0384 8B .byte -117 4481 0385 00 .byte 0 4482 0386 4F .byte 79 4483 0387 75 .byte 117 4484 0388 FA .byte -6 4485 0389 58 .byte 88 4486 038a 5A .byte 90 4487 038b E8 .byte -24 4488 038c 12 .byte 18 4489 038d 00 .byte 0 4490 038e EB .byte -21 4491 038f E8 .byte -24 4492 0390 B8 .byte -72 GAS LISTING /tmp/ccptpGUU.s page 93 4493 0391 21 .byte 33 4494 0392 0E .byte 14 4495 0393 CD .byte -51 4496 0394 10 .byte 16 4497 0395 B8 .byte -72 4498 0396 07 .byte 7 4499 0397 0E .byte 14 4500 0398 CD .byte -51 4501 0399 10 .byte 16 4502 039a 30 .byte 48 4503 039b E4 .byte -28 4504 039c CD .byte -51 4505 039d 16 .byte 22 4506 039e CD .byte -51 4507 039f 19 .byte 25 4508 03a0 06 .byte 6 4509 03a1 89 .byte -119 4510 03a2 C7 .byte -57 4511 03a3 23 .byte 35 4512 03a4 7E .byte 126 4513 03a5 66 .byte 102 4514 03a6 8B .byte -117 4515 03a7 4E .byte 78 4516 03a8 68 .byte 104 4517 03a9 D1 .byte -47 4518 03aa EA .byte -22 4519 03ab D1 .byte -47 4520 03ac D8 .byte -40 4521 03ad E2 .byte -30 4522 03ae FA .byte -6 4523 03af D1 .byte -47 4524 03b0 E7 .byte -25 4525 03b1 D1 .byte -47 4526 03b2 E7 .byte -25 4527 03b3 03 .byte 3 4528 03b4 46 .byte 70 4529 03b5 5E .byte 94 4530 03b6 13 .byte 19 4531 03b7 56 .byte 86 4532 03b8 60 .byte 96 4533 03b9 53 .byte 83 4534 03ba BB .byte -69 4535 03bb 00 .byte 0 4536 03bc 22 .byte 34 4537 03bd 8E .byte -114 4538 03be C3 .byte -61 4539 03bf 29 .byte 41 4540 03c0 DB .byte -37 4541 03c1 3B .byte 59 4542 03c2 46 .byte 70 4543 03c3 48 .byte 72 4544 03c4 75 .byte 117 4545 03c5 05 .byte 5 4546 03c6 3B .byte 59 4547 03c7 56 .byte 86 4548 03c8 4A .byte 74 4549 03c9 74 .byte 116 GAS LISTING /tmp/ccptpGUU.s page 94 4550 03ca 09 .byte 9 4551 03cb 89 .byte -119 4552 03cc 46 .byte 70 4553 03cd 48 .byte 72 4554 03ce 89 .byte -119 4555 03cf 56 .byte 86 4556 03d0 4A .byte 74 4557 03d1 E8 .byte -24 4558 03d2 3D .byte 61 4559 03d3 00 .byte 0 4560 03d4 5B .byte 91 4561 03d5 26 .byte 38 4562 03d6 8B .byte -117 4563 03d7 05 .byte 5 4564 03d8 26 .byte 38 4565 03d9 8B .byte -117 4566 03da 55 .byte 85 4567 03db 02 .byte 2 4568 03dc 07 .byte 7 4569 03dd C3 .byte -61 4570 03de 8A .byte -118 4571 03df 56 .byte 86 4572 03e0 40 .byte 64 4573 03e1 88 .byte -120 4574 03e2 D3 .byte -45 4575 03e3 FF .byte -1 4576 03e4 6E .byte 110 4577 03e5 76 .byte 118 4578 03e6 81 .byte -127 4579 03e7 FA .byte -6 4580 03e8 FF .byte -1 4581 03e9 0F .byte 15 4582 03ea 75 .byte 117 4583 03eb 07 .byte 7 4584 03ec 83 .byte -125 4585 03ed F8 .byte -8 4586 03ee F8 .byte -8 4587 03ef 72 .byte 114 4588 03f0 02 .byte 2 4589 03f1 F9 .byte -7 4590 03f2 C3 .byte -61 4591 03f3 89 .byte -119 4592 03f4 D1 .byte -47 4593 03f5 83 .byte -125 4594 03f6 E8 .byte -24 4595 03f7 02 .byte 2 4596 03f8 83 .byte -125 4597 03f9 D9 .byte -39 4598 03fa 00 .byte 0 4599 03fb 8A .byte -118 4600 03fc 5E .byte 94 4601 03fd 0D .byte 13 4602 03fe 4B .byte 75 4603 03ff 28 .byte 40 4604 0400 FF .byte -1 4605 0401 43 .byte 67 4606 0402 91 .byte -111 GAS LISTING /tmp/ccptpGUU.s page 95 4607 0403 F7 .byte -9 4608 0404 E3 .byte -29 4609 0405 91 .byte -111 4610 0406 F7 .byte -9 4611 0407 E3 .byte -29 4612 0408 01 .byte 1 4613 0409 CA .byte -54 4614 040a 03 .byte 3 4615 040b 46 .byte 70 4616 040c 62 .byte 98 4617 040d 13 .byte 19 4618 040e 56 .byte 86 4619 040f 64 .byte 100 4620 0410 C3 .byte -61 4621 0411 52 .byte 82 4622 0412 50 .byte 80 4623 0413 91 .byte -111 4624 0414 8A .byte -118 4625 0415 46 .byte 70 4626 0416 18 .byte 24 4627 0417 F6 .byte -10 4628 0418 66 .byte 102 4629 0419 1A .byte 26 4630 041a 91 .byte -111 4631 041b F7 .byte -9 4632 041c F1 .byte -15 4633 041d 92 .byte -110 4634 041e F6 .byte -10 4635 041f 76 .byte 118 4636 0420 18 .byte 24 4637 0421 89 .byte -119 4638 0422 D1 .byte -47 4639 0423 88 .byte -120 4640 0424 C6 .byte -58 4641 0425 86 .byte -122 4642 0426 E9 .byte -23 4643 0427 D0 .byte -48 4644 0428 C9 .byte -55 4645 0429 D0 .byte -48 4646 042a C9 .byte -55 4647 042b FE .byte -2 4648 042c C4 .byte -60 4649 042d 08 .byte 8 4650 042e E1 .byte -31 4651 042f B8 .byte -72 4652 0430 01 .byte 1 4653 0431 02 .byte 2 4654 0432 8A .byte -118 4655 0433 56 .byte 86 4656 0434 40 .byte 64 4657 0435 CD .byte -51 4658 0436 13 .byte 19 4659 0437 58 .byte 88 4660 0438 5A .byte 90 4661 0439 73 .byte 115 4662 043a 06 .byte 6 4663 043b 30 .byte 48 GAS LISTING /tmp/ccptpGUU.s page 96 4664 043c E4 .byte -28 4665 043d CD .byte -51 4666 043e 13 .byte 19 4667 043f EB .byte -21 4668 0440 D0 .byte -48 4669 0441 03 .byte 3 4670 0442 5E .byte 94 4671 0443 0B .byte 11 4672 0444 73 .byte 115 4673 0445 07 .byte 7 4674 0446 8C .byte -116 4675 0447 C1 .byte -63 4676 0448 80 .byte -128 4677 0449 C5 .byte -59 4678 044a 10 .byte 16 4679 044b 8E .byte -114 4680 044c C1 .byte -63 4681 044d 40 .byte 64 4682 044e 75 .byte 117 4683 044f 01 .byte 1 4684 0450 42 .byte 66 4685 0451 C3 .byte -61 4686 0452 00 .byte 0 4687 0453 00 .byte 0 4688 0454 00 .byte 0 4689 0455 00 .byte 0 4690 0456 00 .byte 0 4691 0457 4B .byte 75 4692 0458 45 .byte 69 4693 0459 52 .byte 82 4694 045a 4E .byte 78 4695 045b 45 .byte 69 4696 045c 4C .byte 76 4697 045d 20 .byte 32 4698 045e 20 .byte 32 4699 045f 53 .byte 83 4700 0460 59 .byte 89 4701 0461 53 .byte 83 4702 0462 00 .byte 0 4703 0463 00 .byte 0 4704 0464 55 .byte 85 4705 0465 AA .byte -86 4706 .global fat16com 4707 .type fat16com, @object 4708 .size fat16com, 512 4709 fat16com: 4710 0466 EB .byte -21 4711 0467 3C .byte 60 4712 0468 90 .byte -112 4713 0469 00 .byte 0 4714 046a 00 .byte 0 4715 046b 00 .byte 0 4716 046c 00 .byte 0 4717 046d 00 .byte 0 4718 046e 00 .byte 0 4719 046f 00 .byte 0 4720 0470 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 97 4721 0471 00 .byte 0 4722 0472 00 .byte 0 4723 0473 00 .byte 0 4724 0474 00 .byte 0 4725 0475 00 .byte 0 4726 0476 00 .byte 0 4727 0477 00 .byte 0 4728 0478 00 .byte 0 4729 0479 00 .byte 0 4730 047a 00 .byte 0 4731 047b 00 .byte 0 4732 047c 00 .byte 0 4733 047d 00 .byte 0 4734 047e 00 .byte 0 4735 047f 00 .byte 0 4736 0480 00 .byte 0 4737 0481 00 .byte 0 4738 0482 00 .byte 0 4739 0483 00 .byte 0 4740 0484 00 .byte 0 4741 0485 00 .byte 0 4742 0486 00 .byte 0 4743 0487 00 .byte 0 4744 0488 00 .byte 0 4745 0489 00 .byte 0 4746 048a 00 .byte 0 4747 048b 00 .byte 0 4748 048c 00 .byte 0 4749 048d 00 .byte 0 4750 048e 00 .byte 0 4751 048f 00 .byte 0 4752 0490 00 .byte 0 4753 0491 00 .byte 0 4754 0492 00 .byte 0 4755 0493 00 .byte 0 4756 0494 00 .byte 0 4757 0495 00 .byte 0 4758 0496 00 .byte 0 4759 0497 00 .byte 0 4760 0498 00 .byte 0 4761 0499 00 .byte 0 4762 049a 00 .byte 0 4763 049b 00 .byte 0 4764 049c 46 .byte 70 4765 049d 41 .byte 65 4766 049e 54 .byte 84 4767 049f 31 .byte 49 4768 04a0 36 .byte 54 4769 04a1 20 .byte 32 4770 04a2 20 .byte 32 4771 04a3 20 .byte 32 4772 04a4 FA .byte -6 4773 04a5 FC .byte -4 4774 04a6 31 .byte 49 4775 04a7 C0 .byte -64 4776 04a8 8E .byte -114 4777 04a9 D8 .byte -40 GAS LISTING /tmp/ccptpGUU.s page 98 4778 04aa BD .byte -67 4779 04ab 00 .byte 0 4780 04ac 7C .byte 124 4781 04ad B8 .byte -72 4782 04ae E0 .byte -32 4783 04af 1F .byte 31 4784 04b0 8E .byte -114 4785 04b1 C0 .byte -64 4786 04b2 89 .byte -119 4787 04b3 EE .byte -18 4788 04b4 89 .byte -119 4789 04b5 EF .byte -17 4790 04b6 B9 .byte -71 4791 04b7 00 .byte 0 4792 04b8 01 .byte 1 4793 04b9 F3 .byte -13 4794 04ba A5 .byte -91 4795 04bb EA .byte -22 4796 04bc 5E .byte 94 4797 04bd 7C .byte 124 4798 04be E0 .byte -32 4799 04bf 1F .byte 31 4800 04c0 00 .byte 0 4801 04c1 00 .byte 0 4802 04c2 60 .byte 96 4803 04c3 00 .byte 0 4804 04c4 8E .byte -114 4805 04c5 D8 .byte -40 4806 04c6 8E .byte -114 4807 04c7 D0 .byte -48 4808 04c8 8D .byte -115 4809 04c9 66 .byte 102 4810 04ca A0 .byte -96 4811 04cb FB .byte -5 4812 04cc 88 .byte -120 4813 04cd 56 .byte 86 4814 04ce 24 .byte 36 4815 04cf C7 .byte -57 4816 04d0 46 .byte 70 4817 04d1 C0 .byte -64 4818 04d2 10 .byte 16 4819 04d3 00 .byte 0 4820 04d4 C7 .byte -57 4821 04d5 46 .byte 70 4822 04d6 C2 .byte -62 4823 04d7 01 .byte 1 4824 04d8 00 .byte 0 4825 04d9 8C .byte -116 4826 04da 5E .byte 94 4827 04db C6 .byte -58 4828 04dc C7 .byte -57 4829 04dd 46 .byte 70 4830 04de C4 .byte -60 4831 04df 00 .byte 0 4832 04e0 44 .byte 68 4833 04e1 8B .byte -117 4834 04e2 76 .byte 118 GAS LISTING /tmp/ccptpGUU.s page 99 4835 04e3 1C .byte 28 4836 04e4 8B .byte -117 4837 04e5 7E .byte 126 4838 04e6 1E .byte 30 4839 04e7 03 .byte 3 4840 04e8 76 .byte 118 4841 04e9 0E .byte 14 4842 04ea 83 .byte -125 4843 04eb D7 .byte -41 4844 04ec 00 .byte 0 4845 04ed 89 .byte -119 4846 04ee 76 .byte 118 4847 04ef D2 .byte -46 4848 04f0 89 .byte -119 4849 04f1 7E .byte 126 4850 04f2 D4 .byte -44 4851 04f3 8A .byte -118 4852 04f4 46 .byte 70 4853 04f5 10 .byte 16 4854 04f6 98 .byte -104 4855 04f7 F7 .byte -9 4856 04f8 66 .byte 102 4857 04f9 16 .byte 22 4858 04fa 01 .byte 1 4859 04fb C6 .byte -58 4860 04fc 11 .byte 17 4861 04fd D7 .byte -41 4862 04fe 89 .byte -119 4863 04ff 76 .byte 118 4864 0500 D6 .byte -42 4865 0501 89 .byte -119 4866 0502 7E .byte 126 4867 0503 D8 .byte -40 4868 0504 8B .byte -117 4869 0505 5E .byte 94 4870 0506 0B .byte 11 4871 0507 B1 .byte -79 4872 0508 05 .byte 5 4873 0509 D3 .byte -45 4874 050a EB .byte -21 4875 050b 8B .byte -117 4876 050c 46 .byte 70 4877 050d 11 .byte 17 4878 050e 31 .byte 49 4879 050f D2 .byte -46 4880 0510 F7 .byte -9 4881 0511 F3 .byte -13 4882 0512 50 .byte 80 4883 0513 01 .byte 1 4884 0514 C6 .byte -58 4885 0515 83 .byte -125 4886 0516 D7 .byte -41 4887 0517 00 .byte 0 4888 0518 89 .byte -119 4889 0519 76 .byte 118 4890 051a DA .byte -38 4891 051b 89 .byte -119 GAS LISTING /tmp/ccptpGUU.s page 100 4892 051c 7E .byte 126 4893 051d DC .byte -36 4894 051e 8B .byte -117 4895 051f 46 .byte 70 4896 0520 D6 .byte -42 4897 0521 8B .byte -117 4898 0522 56 .byte 86 4899 0523 D8 .byte -40 4900 0524 5F .byte 95 4901 0525 C4 .byte -60 4902 0526 5E .byte 94 4903 0527 5A .byte 90 4904 0528 E8 .byte -24 4905 0529 97 .byte -105 4906 052a 00 .byte 0 4907 052b C4 .byte -60 4908 052c 7E .byte 126 4909 052d 5A .byte 90 4910 052e B9 .byte -71 4911 052f 0B .byte 11 4912 0530 00 .byte 0 4913 0531 BE .byte -66 4914 0532 F1 .byte -15 4915 0533 7D .byte 125 4916 0534 57 .byte 87 4917 0535 F3 .byte -13 4918 0536 A6 .byte -90 4919 0537 5F .byte 95 4920 0538 26 .byte 38 4921 0539 8B .byte -117 4922 053a 45 .byte 69 4923 053b 1A .byte 26 4924 053c 74 .byte 116 4925 053d 0B .byte 11 4926 053e 83 .byte -125 4927 053f C7 .byte -57 4928 0540 20 .byte 32 4929 0541 26 .byte 38 4930 0542 80 .byte -128 4931 0543 3D .byte 61 4932 0544 00 .byte 0 4933 0545 75 .byte 117 4934 0546 E7 .byte -25 4935 0547 EB .byte -21 4936 0548 67 .byte 103 4937 0549 50 .byte 80 4938 054a C4 .byte -60 4939 054b 5E .byte 94 4940 054c 5A .byte 90 4941 054d 8B .byte -117 4942 054e 7E .byte 126 4943 054f 16 .byte 22 4944 0550 8B .byte -117 4945 0551 46 .byte 70 4946 0552 D2 .byte -46 4947 0553 8B .byte -117 4948 0554 56 .byte 86 GAS LISTING /tmp/ccptpGUU.s page 101 4949 0555 D4 .byte -44 4950 0556 E8 .byte -24 4951 0557 69 .byte 105 4952 0558 00 .byte 0 4953 0559 58 .byte 88 4954 055a 1E .byte 30 4955 055b 07 .byte 7 4956 055c 8E .byte -114 4957 055d 5E .byte 94 4958 055e 5C .byte 92 4959 055f BF .byte -65 4960 0560 00 .byte 0 4961 0561 22 .byte 34 4962 0562 AB .byte -85 4963 0563 89 .byte -119 4964 0564 C6 .byte -58 4965 0565 8B .byte -117 4966 0566 56 .byte 86 4967 0567 5C .byte 92 4968 0568 01 .byte 1 4969 0569 F6 .byte -10 4970 056a 73 .byte 115 4971 056b 03 .byte 3 4972 056c 80 .byte -128 4973 056d C6 .byte -58 4974 056e 10 .byte 16 4975 056f 8E .byte -114 4976 0570 DA .byte -38 4977 0571 AD .byte -83 4978 0572 83 .byte -125 4979 0573 F8 .byte -8 4980 0574 F8 .byte -8 4981 0575 72 .byte 114 4982 0576 EB .byte -21 4983 0577 31 .byte 49 4984 0578 C0 .byte -64 4985 0579 AB .byte -85 4986 057a 0E .byte 14 4987 057b 1F .byte 31 4988 057c C4 .byte -60 4989 057d 5E .byte 94 4990 057e 5A .byte 90 4991 057f BE .byte -66 4992 0580 00 .byte 0 4993 0581 22 .byte 34 4994 0582 AD .byte -83 4995 0583 09 .byte 9 4996 0584 C0 .byte -64 4997 0585 75 .byte 117 4998 0586 05 .byte 5 4999 0587 88 .byte -120 5000 0588 D3 .byte -45 5001 0589 FF .byte -1 5002 058a 6E .byte 110 5003 058b 5A .byte 90 5004 058c 48 .byte 72 5005 058d 48 .byte 72 GAS LISTING /tmp/ccptpGUU.s page 102 5006 058e 8B .byte -117 5007 058f 7E .byte 126 5008 0590 0D .byte 13 5009 0591 4F .byte 79 5010 0592 81 .byte -127 5011 0593 E7 .byte -25 5012 0594 FF .byte -1 5013 0595 00 .byte 0 5014 0596 47 .byte 71 5015 0597 F7 .byte -9 5016 0598 E7 .byte -25 5017 0599 03 .byte 3 5018 059a 46 .byte 70 5019 059b DA .byte -38 5020 059c 13 .byte 19 5021 059d 56 .byte 86 5022 059e DC .byte -36 5023 059f E8 .byte -24 5024 05a0 20 .byte 32 5025 05a1 00 .byte 0 5026 05a2 EB .byte -21 5027 05a3 DE .byte -34 5028 05a4 B4 .byte -76 5029 05a5 0E .byte 14 5030 05a6 CD .byte -51 5031 05a7 10 .byte 16 5032 05a8 5E .byte 94 5033 05a9 AC .byte -84 5034 05aa 56 .byte 86 5035 05ab 3C .byte 60 5036 05ac 00 .byte 0 5037 05ad 75 .byte 117 5038 05ae F5 .byte -11 5039 05af C3 .byte -61 5040 05b0 E8 .byte -24 5041 05b1 F5 .byte -11 5042 05b2 FF .byte -1 5043 05b3 45 .byte 69 5044 05b4 72 .byte 114 5045 05b5 72 .byte 114 5046 05b6 6F .byte 111 5047 05b7 72 .byte 114 5048 05b8 21 .byte 33 5049 05b9 00 .byte 0 5050 05ba 30 .byte 48 5051 05bb E4 .byte -28 5052 05bc CD .byte -51 5053 05bd 13 .byte 19 5054 05be CD .byte -51 5055 05bf 16 .byte 22 5056 05c0 CD .byte -51 5057 05c1 19 .byte 25 5058 05c2 56 .byte 86 5059 05c3 89 .byte -119 5060 05c4 46 .byte 70 5061 05c5 C8 .byte -56 5062 05c6 89 .byte -119 GAS LISTING /tmp/ccptpGUU.s page 103 5063 05c7 56 .byte 86 5064 05c8 CA .byte -54 5065 05c9 8C .byte -116 5066 05ca 86 .byte -122 5067 05cb A2 .byte -94 5068 05cc FF .byte -1 5069 05cd 89 .byte -119 5070 05ce 9E .byte -98 5071 05cf A0 .byte -96 5072 05d0 FF .byte -1 5073 05d1 E8 .byte -24 5074 05d2 D4 .byte -44 5075 05d3 FF .byte -1 5076 05d4 2E .byte 46 5077 05d5 00 .byte 0 5078 05d6 B4 .byte -76 5079 05d7 41 .byte 65 5080 05d8 BB .byte -69 5081 05d9 AA .byte -86 5082 05da 55 .byte 85 5083 05db 8A .byte -118 5084 05dc 56 .byte 86 5085 05dd 24 .byte 36 5086 05de 84 .byte -124 5087 05df D2 .byte -46 5088 05e0 74 .byte 116 5089 05e1 19 .byte 25 5090 05e2 CD .byte -51 5091 05e3 13 .byte 19 5092 05e4 72 .byte 114 5093 05e5 15 .byte 21 5094 05e6 D1 .byte -47 5095 05e7 E9 .byte -23 5096 05e8 81 .byte -127 5097 05e9 DB .byte -37 5098 05ea 54 .byte 84 5099 05eb AA .byte -86 5100 05ec 75 .byte 117 5101 05ed 0D .byte 13 5102 05ee 8D .byte -115 5103 05ef 76 .byte 118 5104 05f0 C0 .byte -64 5105 05f1 89 .byte -119 5106 05f2 5E .byte 94 5107 05f3 CC .byte -52 5108 05f4 89 .byte -119 5109 05f5 5E .byte 94 5110 05f6 CE .byte -50 5111 05f7 B4 .byte -76 5112 05f8 42 .byte 66 5113 05f9 EB .byte -21 5114 05fa 26 .byte 38 5115 05fb 8B .byte -117 5116 05fc 4E .byte 78 5117 05fd C8 .byte -56 5118 05fe 8B .byte -117 5119 05ff 56 .byte 86 GAS LISTING /tmp/ccptpGUU.s page 104 5120 0600 CA .byte -54 5121 0601 8A .byte -118 5122 0602 46 .byte 70 5123 0603 18 .byte 24 5124 0604 F6 .byte -10 5125 0605 66 .byte 102 5126 0606 1A .byte 26 5127 0607 91 .byte -111 5128 0608 F7 .byte -9 5129 0609 F1 .byte -15 5130 060a 92 .byte -110 5131 060b F6 .byte -10 5132 060c 76 .byte 118 5133 060d 18 .byte 24 5134 060e 89 .byte -119 5135 060f D1 .byte -47 5136 0610 88 .byte -120 5137 0611 C6 .byte -58 5138 0612 86 .byte -122 5139 0613 E9 .byte -23 5140 0614 D0 .byte -48 5141 0615 C9 .byte -55 5142 0616 D0 .byte -48 5143 0617 C9 .byte -55 5144 0618 08 .byte 8 5145 0619 E1 .byte -31 5146 061a 41 .byte 65 5147 061b C4 .byte -60 5148 061c 5E .byte 94 5149 061d C4 .byte -60 5150 061e B8 .byte -72 5151 061f 01 .byte 1 5152 0620 02 .byte 2 5153 0621 8A .byte -118 5154 0622 56 .byte 86 5155 0623 24 .byte 36 5156 0624 CD .byte -51 5157 0625 13 .byte 19 5158 0626 72 .byte 114 5159 0627 88 .byte -120 5160 0628 8B .byte -117 5161 0629 46 .byte 70 5162 062a 0B .byte 11 5163 062b 57 .byte 87 5164 062c BE .byte -66 5165 062d 00 .byte 0 5166 062e 44 .byte 68 5167 062f C4 .byte -60 5168 0630 BE .byte -66 5169 0631 A0 .byte -96 5170 0632 FF .byte -1 5171 0633 89 .byte -119 5172 0634 C1 .byte -63 5173 0635 F3 .byte -13 5174 0636 A4 .byte -92 5175 0637 5F .byte 95 5176 0638 B1 .byte -79 GAS LISTING /tmp/ccptpGUU.s page 105 5177 0639 04 .byte 4 5178 063a D3 .byte -45 5179 063b E8 .byte -24 5180 063c 01 .byte 1 5181 063d 86 .byte -122 5182 063e A2 .byte -94 5183 063f FF .byte -1 5184 0640 83 .byte -125 5185 0641 46 .byte 70 5186 0642 C8 .byte -56 5187 0643 01 .byte 1 5188 0644 83 .byte -125 5189 0645 56 .byte 86 5190 0646 CA .byte -54 5191 0647 00 .byte 0 5192 0648 4F .byte 79 5193 0649 75 .byte 117 5194 064a 8B .byte -117 5195 064b C4 .byte -60 5196 064c 9E .byte -98 5197 064d A0 .byte -96 5198 064e FF .byte -1 5199 064f 5E .byte 94 5200 0650 C3 .byte -61 5201 0651 00 .byte 0 5202 0652 00 .byte 0 5203 0653 00 .byte 0 5204 0654 00 .byte 0 5205 0655 00 .byte 0 5206 0656 00 .byte 0 5207 0657 4B .byte 75 5208 0658 45 .byte 69 5209 0659 52 .byte 82 5210 065a 4E .byte 78 5211 065b 45 .byte 69 5212 065c 4C .byte 76 5213 065d 20 .byte 32 5214 065e 20 .byte 32 5215 065f 53 .byte 83 5216 0660 59 .byte 89 5217 0661 53 .byte 83 5218 0662 00 .byte 0 5219 0663 00 .byte 0 5220 0664 55 .byte 85 5221 0665 AA .byte -86 5222 .global fat12com 5223 .type fat12com, @object 5224 .size fat12com, 512 5225 fat12com: 5226 0666 EB .byte -21 5227 0667 3C .byte 60 5228 0668 90 .byte -112 5229 0669 00 .byte 0 5230 066a 00 .byte 0 5231 066b 00 .byte 0 5232 066c 00 .byte 0 5233 066d 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 106 5234 066e 00 .byte 0 5235 066f 00 .byte 0 5236 0670 00 .byte 0 5237 0671 00 .byte 0 5238 0672 00 .byte 0 5239 0673 00 .byte 0 5240 0674 00 .byte 0 5241 0675 00 .byte 0 5242 0676 00 .byte 0 5243 0677 00 .byte 0 5244 0678 00 .byte 0 5245 0679 00 .byte 0 5246 067a 00 .byte 0 5247 067b 00 .byte 0 5248 067c 00 .byte 0 5249 067d 00 .byte 0 5250 067e 00 .byte 0 5251 067f 00 .byte 0 5252 0680 00 .byte 0 5253 0681 00 .byte 0 5254 0682 00 .byte 0 5255 0683 00 .byte 0 5256 0684 00 .byte 0 5257 0685 00 .byte 0 5258 0686 00 .byte 0 5259 0687 00 .byte 0 5260 0688 00 .byte 0 5261 0689 00 .byte 0 5262 068a 00 .byte 0 5263 068b 00 .byte 0 5264 068c 00 .byte 0 5265 068d 00 .byte 0 5266 068e 00 .byte 0 5267 068f 00 .byte 0 5268 0690 00 .byte 0 5269 0691 00 .byte 0 5270 0692 00 .byte 0 5271 0693 00 .byte 0 5272 0694 00 .byte 0 5273 0695 00 .byte 0 5274 0696 00 .byte 0 5275 0697 00 .byte 0 5276 0698 00 .byte 0 5277 0699 00 .byte 0 5278 069a 00 .byte 0 5279 069b 00 .byte 0 5280 069c 46 .byte 70 5281 069d 41 .byte 65 5282 069e 54 .byte 84 5283 069f 31 .byte 49 5284 06a0 32 .byte 50 5285 06a1 20 .byte 32 5286 06a2 20 .byte 32 5287 06a3 20 .byte 32 5288 06a4 FA .byte -6 5289 06a5 FC .byte -4 5290 06a6 31 .byte 49 GAS LISTING /tmp/ccptpGUU.s page 107 5291 06a7 C0 .byte -64 5292 06a8 8E .byte -114 5293 06a9 D8 .byte -40 5294 06aa BD .byte -67 5295 06ab 00 .byte 0 5296 06ac 7C .byte 124 5297 06ad B8 .byte -72 5298 06ae E0 .byte -32 5299 06af 1F .byte 31 5300 06b0 8E .byte -114 5301 06b1 C0 .byte -64 5302 06b2 89 .byte -119 5303 06b3 EE .byte -18 5304 06b4 89 .byte -119 5305 06b5 EF .byte -17 5306 06b6 B9 .byte -71 5307 06b7 00 .byte 0 5308 06b8 01 .byte 1 5309 06b9 F3 .byte -13 5310 06ba A5 .byte -91 5311 06bb EA .byte -22 5312 06bc 5E .byte 94 5313 06bd 7C .byte 124 5314 06be E0 .byte -32 5315 06bf 1F .byte 31 5316 06c0 00 .byte 0 5317 06c1 00 .byte 0 5318 06c2 60 .byte 96 5319 06c3 00 .byte 0 5320 06c4 8E .byte -114 5321 06c5 D8 .byte -40 5322 06c6 8E .byte -114 5323 06c7 D0 .byte -48 5324 06c8 8D .byte -115 5325 06c9 66 .byte 102 5326 06ca A0 .byte -96 5327 06cb FB .byte -5 5328 06cc 88 .byte -120 5329 06cd 56 .byte 86 5330 06ce 24 .byte 36 5331 06cf C7 .byte -57 5332 06d0 46 .byte 70 5333 06d1 C0 .byte -64 5334 06d2 10 .byte 16 5335 06d3 00 .byte 0 5336 06d4 C7 .byte -57 5337 06d5 46 .byte 70 5338 06d6 C2 .byte -62 5339 06d7 01 .byte 1 5340 06d8 00 .byte 0 5341 06d9 8C .byte -116 5342 06da 5E .byte 94 5343 06db C6 .byte -58 5344 06dc C7 .byte -57 5345 06dd 46 .byte 70 5346 06de C4 .byte -60 5347 06df 00 .byte 0 GAS LISTING /tmp/ccptpGUU.s page 108 5348 06e0 44 .byte 68 5349 06e1 8B .byte -117 5350 06e2 76 .byte 118 5351 06e3 1C .byte 28 5352 06e4 8B .byte -117 5353 06e5 7E .byte 126 5354 06e6 1E .byte 30 5355 06e7 03 .byte 3 5356 06e8 76 .byte 118 5357 06e9 0E .byte 14 5358 06ea 83 .byte -125 5359 06eb D7 .byte -41 5360 06ec 00 .byte 0 5361 06ed 89 .byte -119 5362 06ee 76 .byte 118 5363 06ef D2 .byte -46 5364 06f0 89 .byte -119 5365 06f1 7E .byte 126 5366 06f2 D4 .byte -44 5367 06f3 8A .byte -118 5368 06f4 46 .byte 70 5369 06f5 10 .byte 16 5370 06f6 98 .byte -104 5371 06f7 F7 .byte -9 5372 06f8 66 .byte 102 5373 06f9 16 .byte 22 5374 06fa 01 .byte 1 5375 06fb C6 .byte -58 5376 06fc 11 .byte 17 5377 06fd D7 .byte -41 5378 06fe 89 .byte -119 5379 06ff 76 .byte 118 5380 0700 D6 .byte -42 5381 0701 89 .byte -119 5382 0702 7E .byte 126 5383 0703 D8 .byte -40 5384 0704 8B .byte -117 5385 0705 5E .byte 94 5386 0706 0B .byte 11 5387 0707 B1 .byte -79 5388 0708 05 .byte 5 5389 0709 D3 .byte -45 5390 070a EB .byte -21 5391 070b 8B .byte -117 5392 070c 46 .byte 70 5393 070d 11 .byte 17 5394 070e 31 .byte 49 5395 070f D2 .byte -46 5396 0710 F7 .byte -9 5397 0711 F3 .byte -13 5398 0712 50 .byte 80 5399 0713 01 .byte 1 5400 0714 C6 .byte -58 5401 0715 83 .byte -125 5402 0716 D7 .byte -41 5403 0717 00 .byte 0 5404 0718 89 .byte -119 GAS LISTING /tmp/ccptpGUU.s page 109 5405 0719 76 .byte 118 5406 071a DA .byte -38 5407 071b 89 .byte -119 5408 071c 7E .byte 126 5409 071d DC .byte -36 5410 071e 8B .byte -117 5411 071f 46 .byte 70 5412 0720 D6 .byte -42 5413 0721 8B .byte -117 5414 0722 56 .byte 86 5415 0723 D8 .byte -40 5416 0724 5F .byte 95 5417 0725 C4 .byte -60 5418 0726 5E .byte 94 5419 0727 5A .byte 90 5420 0728 E8 .byte -24 5421 0729 9A .byte -102 5422 072a 00 .byte 0 5423 072b C4 .byte -60 5424 072c 7E .byte 126 5425 072d 5A .byte 90 5426 072e B9 .byte -71 5427 072f 0B .byte 11 5428 0730 00 .byte 0 5429 0731 BE .byte -66 5430 0732 F1 .byte -15 5431 0733 7D .byte 125 5432 0734 57 .byte 87 5433 0735 F3 .byte -13 5434 0736 A6 .byte -90 5435 0737 5F .byte 95 5436 0738 26 .byte 38 5437 0739 8B .byte -117 5438 073a 45 .byte 69 5439 073b 1A .byte 26 5440 073c 74 .byte 116 5441 073d 0B .byte 11 5442 073e 83 .byte -125 5443 073f C7 .byte -57 5444 0740 20 .byte 32 5445 0741 26 .byte 38 5446 0742 80 .byte -128 5447 0743 3D .byte 61 5448 0744 00 .byte 0 5449 0745 75 .byte 117 5450 0746 E7 .byte -25 5451 0747 EB .byte -21 5452 0748 6A .byte 106 5453 0749 50 .byte 80 5454 074a C4 .byte -60 5455 074b 5E .byte 94 5456 074c 5A .byte 90 5457 074d 8B .byte -117 5458 074e 7E .byte 126 5459 074f 16 .byte 22 5460 0750 8B .byte -117 5461 0751 46 .byte 70 GAS LISTING /tmp/ccptpGUU.s page 110 5462 0752 D2 .byte -46 5463 0753 8B .byte -117 5464 0754 56 .byte 86 5465 0755 D4 .byte -44 5466 0756 E8 .byte -24 5467 0757 6C .byte 108 5468 0758 00 .byte 0 5469 0759 58 .byte 88 5470 075a 1E .byte 30 5471 075b 07 .byte 7 5472 075c 8E .byte -114 5473 075d 5E .byte 94 5474 075e 5C .byte 92 5475 075f BF .byte -65 5476 0760 00 .byte 0 5477 0761 22 .byte 34 5478 0762 AB .byte -85 5479 0763 89 .byte -119 5480 0764 C6 .byte -58 5481 0765 01 .byte 1 5482 0766 F6 .byte -10 5483 0767 01 .byte 1 5484 0768 C6 .byte -58 5485 0769 D1 .byte -47 5486 076a EE .byte -18 5487 076b AD .byte -83 5488 076c 73 .byte 115 5489 076d 04 .byte 4 5490 076e B1 .byte -79 5491 076f 04 .byte 4 5492 0770 D3 .byte -45 5493 0771 E8 .byte -24 5494 0772 80 .byte -128 5495 0773 E4 .byte -28 5496 0774 0F .byte 15 5497 0775 3D .byte 61 5498 0776 F8 .byte -8 5499 0777 0F .byte 15 5500 0778 72 .byte 114 5501 0779 E8 .byte -24 5502 077a 31 .byte 49 5503 077b C0 .byte -64 5504 077c AB .byte -85 5505 077d 0E .byte 14 5506 077e 1F .byte 31 5507 077f C4 .byte -60 5508 0780 5E .byte 94 5509 0781 5A .byte 90 5510 0782 BE .byte -66 5511 0783 00 .byte 0 5512 0784 22 .byte 34 5513 0785 AD .byte -83 5514 0786 09 .byte 9 5515 0787 C0 .byte -64 5516 0788 75 .byte 117 5517 0789 05 .byte 5 5518 078a 88 .byte -120 GAS LISTING /tmp/ccptpGUU.s page 111 5519 078b D3 .byte -45 5520 078c FF .byte -1 5521 078d 6E .byte 110 5522 078e 5A .byte 90 5523 078f 48 .byte 72 5524 0790 48 .byte 72 5525 0791 8B .byte -117 5526 0792 7E .byte 126 5527 0793 0D .byte 13 5528 0794 4F .byte 79 5529 0795 81 .byte -127 5530 0796 E7 .byte -25 5531 0797 FF .byte -1 5532 0798 00 .byte 0 5533 0799 47 .byte 71 5534 079a F7 .byte -9 5535 079b E7 .byte -25 5536 079c 03 .byte 3 5537 079d 46 .byte 70 5538 079e DA .byte -38 5539 079f 13 .byte 19 5540 07a0 56 .byte 86 5541 07a1 DC .byte -36 5542 07a2 E8 .byte -24 5543 07a3 20 .byte 32 5544 07a4 00 .byte 0 5545 07a5 EB .byte -21 5546 07a6 DE .byte -34 5547 07a7 B4 .byte -76 5548 07a8 0E .byte 14 5549 07a9 CD .byte -51 5550 07aa 10 .byte 16 5551 07ab 5E .byte 94 5552 07ac AC .byte -84 5553 07ad 56 .byte 86 5554 07ae 3C .byte 60 5555 07af 00 .byte 0 5556 07b0 75 .byte 117 5557 07b1 F5 .byte -11 5558 07b2 C3 .byte -61 5559 07b3 E8 .byte -24 5560 07b4 F5 .byte -11 5561 07b5 FF .byte -1 5562 07b6 45 .byte 69 5563 07b7 72 .byte 114 5564 07b8 72 .byte 114 5565 07b9 6F .byte 111 5566 07ba 72 .byte 114 5567 07bb 21 .byte 33 5568 07bc 00 .byte 0 5569 07bd 30 .byte 48 5570 07be E4 .byte -28 5571 07bf CD .byte -51 5572 07c0 13 .byte 19 5573 07c1 CD .byte -51 5574 07c2 16 .byte 22 5575 07c3 CD .byte -51 GAS LISTING /tmp/ccptpGUU.s page 112 5576 07c4 19 .byte 25 5577 07c5 56 .byte 86 5578 07c6 89 .byte -119 5579 07c7 46 .byte 70 5580 07c8 C8 .byte -56 5581 07c9 89 .byte -119 5582 07ca 56 .byte 86 5583 07cb CA .byte -54 5584 07cc 8C .byte -116 5585 07cd 86 .byte -122 5586 07ce A2 .byte -94 5587 07cf FF .byte -1 5588 07d0 89 .byte -119 5589 07d1 9E .byte -98 5590 07d2 A0 .byte -96 5591 07d3 FF .byte -1 5592 07d4 E8 .byte -24 5593 07d5 D4 .byte -44 5594 07d6 FF .byte -1 5595 07d7 2E .byte 46 5596 07d8 00 .byte 0 5597 07d9 B4 .byte -76 5598 07da 41 .byte 65 5599 07db BB .byte -69 5600 07dc AA .byte -86 5601 07dd 55 .byte 85 5602 07de 8A .byte -118 5603 07df 56 .byte 86 5604 07e0 24 .byte 36 5605 07e1 84 .byte -124 5606 07e2 D2 .byte -46 5607 07e3 74 .byte 116 5608 07e4 19 .byte 25 5609 07e5 CD .byte -51 5610 07e6 13 .byte 19 5611 07e7 72 .byte 114 5612 07e8 15 .byte 21 5613 07e9 D1 .byte -47 5614 07ea E9 .byte -23 5615 07eb 81 .byte -127 5616 07ec DB .byte -37 5617 07ed 54 .byte 84 5618 07ee AA .byte -86 5619 07ef 75 .byte 117 5620 07f0 0D .byte 13 5621 07f1 8D .byte -115 5622 07f2 76 .byte 118 5623 07f3 C0 .byte -64 5624 07f4 89 .byte -119 5625 07f5 5E .byte 94 5626 07f6 CC .byte -52 5627 07f7 89 .byte -119 5628 07f8 5E .byte 94 5629 07f9 CE .byte -50 5630 07fa B4 .byte -76 5631 07fb 42 .byte 66 5632 07fc EB .byte -21 GAS LISTING /tmp/ccptpGUU.s page 113 5633 07fd 26 .byte 38 5634 07fe 8B .byte -117 5635 07ff 4E .byte 78 5636 0800 C8 .byte -56 5637 0801 8B .byte -117 5638 0802 56 .byte 86 5639 0803 CA .byte -54 5640 0804 8A .byte -118 5641 0805 46 .byte 70 5642 0806 18 .byte 24 5643 0807 F6 .byte -10 5644 0808 66 .byte 102 5645 0809 1A .byte 26 5646 080a 91 .byte -111 5647 080b F7 .byte -9 5648 080c F1 .byte -15 5649 080d 92 .byte -110 5650 080e F6 .byte -10 5651 080f 76 .byte 118 5652 0810 18 .byte 24 5653 0811 89 .byte -119 5654 0812 D1 .byte -47 5655 0813 88 .byte -120 5656 0814 C6 .byte -58 5657 0815 86 .byte -122 5658 0816 E9 .byte -23 5659 0817 D0 .byte -48 5660 0818 C9 .byte -55 5661 0819 D0 .byte -48 5662 081a C9 .byte -55 5663 081b 08 .byte 8 5664 081c E1 .byte -31 5665 081d 41 .byte 65 5666 081e C4 .byte -60 5667 081f 5E .byte 94 5668 0820 C4 .byte -60 5669 0821 B8 .byte -72 5670 0822 01 .byte 1 5671 0823 02 .byte 2 5672 0824 8A .byte -118 5673 0825 56 .byte 86 5674 0826 24 .byte 36 5675 0827 CD .byte -51 5676 0828 13 .byte 19 5677 0829 72 .byte 114 5678 082a 88 .byte -120 5679 082b 8B .byte -117 5680 082c 46 .byte 70 5681 082d 0B .byte 11 5682 082e 57 .byte 87 5683 082f BE .byte -66 5684 0830 00 .byte 0 5685 0831 44 .byte 68 5686 0832 C4 .byte -60 5687 0833 BE .byte -66 5688 0834 A0 .byte -96 5689 0835 FF .byte -1 GAS LISTING /tmp/ccptpGUU.s page 114 5690 0836 89 .byte -119 5691 0837 C1 .byte -63 5692 0838 F3 .byte -13 5693 0839 A4 .byte -92 5694 083a 5F .byte 95 5695 083b B1 .byte -79 5696 083c 04 .byte 4 5697 083d D3 .byte -45 5698 083e E8 .byte -24 5699 083f 01 .byte 1 5700 0840 86 .byte -122 5701 0841 A2 .byte -94 5702 0842 FF .byte -1 5703 0843 83 .byte -125 5704 0844 46 .byte 70 5705 0845 C8 .byte -56 5706 0846 01 .byte 1 5707 0847 83 .byte -125 5708 0848 56 .byte 86 5709 0849 CA .byte -54 5710 084a 00 .byte 0 5711 084b 4F .byte 79 5712 084c 75 .byte 117 5713 084d 8B .byte -117 5714 084e C4 .byte -60 5715 084f 9E .byte -98 5716 0850 A0 .byte -96 5717 0851 FF .byte -1 5718 0852 5E .byte 94 5719 0853 C3 .byte -61 5720 0854 00 .byte 0 5721 0855 00 .byte 0 5722 0856 00 .byte 0 5723 0857 4B .byte 75 5724 0858 45 .byte 69 5725 0859 52 .byte 82 5726 085a 4E .byte 78 5727 085b 45 .byte 69 5728 085c 4C .byte 76 5729 085d 20 .byte 32 5730 085e 20 .byte 32 5731 085f 53 .byte 83 5732 0860 59 .byte 89 5733 0861 53 .byte 83 5734 0862 00 .byte 0 5735 0863 00 .byte 0 5736 0864 55 .byte 85 5737 0865 AA .byte -86 5738 .ident "GCC: (GNU) 6.3.0" 5739 .weak __ia16_use_printf_nofloat.v1 5740 .set __ia16_use_printf_nofloat.v1,1 GAS LISTING /tmp/ccptpGUU.s page 115 DEFINED SYMBOLS /tmp/ccptpGUU.s:8 .text:0000000000000000 int86x /tmp/ccptpGUU.s:51 .text:0000000000000068 int86 /tmp/ccptpGUU.s:70 .text:000000000000008b intdos /tmp/ccptpGUU.s:84 .text:000000000000009f intdosx /tmp/ccptpGUU.s:115 .text:00000000000000d5 _dos_allocmem /tmp/ccptpGUU.s:140 .text:0000000000000104 _dos_freemem /tmp/ccptpGUU.s:160 .text:0000000000000127 _dos_getdiskfree /tmp/ccptpGUU.s:187 .text:000000000000015d filelength /tmp/ccptpGUU.s:218 .text:000000000000018d _dos_findfirst /tmp/ccptpGUU.s:260 .text:00000000000001e0 getcurdrive /tmp/ccptpGUU.s:279 .text:00000000000001ff stat /tmp/ccptpGUU.s:329 .text:0000000000000225 showHelpAndExit /tmp/ccptpGUU.s:3672 .data:0000000000000062 pgm /tmp/ccptpGUU.s:3623 .data:000000000000000e bootFiles /tmp/ccptpGUU.s:345 .text:0000000000000240 int2526readwrite /tmp/ccptpGUU.s:369 .text:0000000000000270 fat32readwrite /tmp/ccptpGUU.s:397 .text:00000000000002ac reset_drive /tmp/ccptpGUU.s:421 .text:00000000000002d5 generic_block_ioctl /tmp/ccptpGUU.s:442 .text:00000000000002fe truename /tmp/ccptpGUU.s:465 .text:000000000000032a MyAbsReadWrite /tmp/ccptpGUU.s:515 .text:0000000000000384 getextdrivespace /tmp/ccptpGUU.s:549 .text:00000000000003cd haveLBA /tmp/ccptpGUU.s:585 .text:000000000000040d correct_bpb /tmp/ccptpGUU.s:635 .text:000000000000046a readBS /tmp/ccptpGUU.s:712 .text:00000000000004e9 restoreBS /tmp/ccptpGUU.s:793 .text:0000000000000581 saveBS /tmp/ccptpGUU.s:872 .text:0000000000000605 dumpBS /tmp/ccptpGUU.s:1039 .text:000000000000069a initOptions /tmp/ccptpGUU.s:2190 .text:000000000000116d put_boot *COM*:0000000000000001 fs *COM*:0000000000000002 smallfat32 /tmp/ccptpGUU.s:3677 .data:0000000000000066 fat32lba /tmp/ccptpGUU.s:4193 .data:0000000000000266 fat32chs /tmp/ccptpGUU.s:5225 .data:0000000000000666 fat12com /tmp/ccptpGUU.s:4709 .data:0000000000000466 fat16com /tmp/ccptpGUU.s:2888 .text:0000000000001820 check_space *COM*:000000000000002c x /tmp/ccptpGUU.s:2978 .text:00000000000018d3 alloc_dos_mem /tmp/ccptpGUU.s:3031 .text:000000000000190d copy /tmp/ccptpGUU.s:3568 .bss:0000000000000104 src.3591 .bss:0000000000000000 dest.3592 *COM*:0000000000004000 copybuffer /tmp/ccptpGUU.s:3348 .text.startup:0000000000000000 main /tmp/ccptpGUU.s:3592 .data:0000000000000000 msgDOS *ABS*:0000000000000001 __ia16_use_printf_nofloat.v1 UNDEFINED SYMBOLS lseek printf exit open __errno read close write memset GAS LISTING /tmp/ccptpGUU.s page 116 __ctype_ptr__ strncasecmp strtol sprintf strncpy strlen strcat strncat getenv __udivsi3 memcpy puts strcasecmp unlink FDKrnConfigMain putchar