|
|
1.1 ! root 1: .file "init/main.c" ! 2: gcc_compiled.: ! 3: .text ! 4: LC0: ! 5: .ascii "out of memory\12\15\0" ! 6: .align 2 ! 7: _sprintf: ! 8: movl 4(%esp),%edx ! 9: leal 12(%esp),%eax ! 10: pushl %eax ! 11: pushl 12(%esp) ! 12: pushl %edx ! 13: call _vsprintf ! 14: addl $12,%esp ! 15: ret ! 16: .align 2 ! 17: _time_init: ! 18: pushl %ebp ! 19: movl %esp,%ebp ! 20: subl $44,%esp ! 21: L65: ! 22: movl $128,%eax ! 23: movl $112,%edx ! 24: /APP ! 25: outb %al,%dx ! 26: jmp 1f ! 27: 1: jmp 1f ! 28: 1: ! 29: /NO_APP ! 30: movl $113,%edx ! 31: /APP ! 32: inb %dx,%al ! 33: jmp 1f ! 34: 1: jmp 1f ! 35: 1: ! 36: /NO_APP ! 37: movb %al,-40(%ebp) ! 38: movzbl -40(%ebp),%eax ! 39: movl %eax,-36(%ebp) ! 40: movl $130,%eax ! 41: movl $112,%edx ! 42: /APP ! 43: outb %al,%dx ! 44: jmp 1f ! 45: 1: jmp 1f ! 46: 1: ! 47: /NO_APP ! 48: movl $113,%edx ! 49: /APP ! 50: inb %dx,%al ! 51: jmp 1f ! 52: 1: jmp 1f ! 53: 1: ! 54: /NO_APP ! 55: movb %al,-40(%ebp) ! 56: movzbl -40(%ebp),%eax ! 57: movl %eax,-32(%ebp) ! 58: movl $132,%eax ! 59: movl $112,%edx ! 60: /APP ! 61: outb %al,%dx ! 62: jmp 1f ! 63: 1: jmp 1f ! 64: 1: ! 65: /NO_APP ! 66: movl $113,%edx ! 67: /APP ! 68: inb %dx,%al ! 69: jmp 1f ! 70: 1: jmp 1f ! 71: 1: ! 72: /NO_APP ! 73: movb %al,-40(%ebp) ! 74: movzbl -40(%ebp),%eax ! 75: movl %eax,-28(%ebp) ! 76: movl $135,%eax ! 77: movl $112,%edx ! 78: /APP ! 79: outb %al,%dx ! 80: jmp 1f ! 81: 1: jmp 1f ! 82: 1: ! 83: /NO_APP ! 84: movl $113,%edx ! 85: /APP ! 86: inb %dx,%al ! 87: jmp 1f ! 88: 1: jmp 1f ! 89: 1: ! 90: /NO_APP ! 91: movb %al,-40(%ebp) ! 92: movzbl -40(%ebp),%eax ! 93: movl %eax,-24(%ebp) ! 94: movl $136,%eax ! 95: movl $112,%edx ! 96: /APP ! 97: outb %al,%dx ! 98: jmp 1f ! 99: 1: jmp 1f ! 100: 1: ! 101: /NO_APP ! 102: movl $113,%edx ! 103: /APP ! 104: inb %dx,%al ! 105: jmp 1f ! 106: 1: jmp 1f ! 107: 1: ! 108: /NO_APP ! 109: movb %al,-40(%ebp) ! 110: movzbl -40(%ebp),%eax ! 111: movl %eax,-20(%ebp) ! 112: movl $137,%eax ! 113: movl $112,%edx ! 114: /APP ! 115: outb %al,%dx ! 116: jmp 1f ! 117: 1: jmp 1f ! 118: 1: ! 119: /NO_APP ! 120: movl $113,%edx ! 121: /APP ! 122: inb %dx,%al ! 123: jmp 1f ! 124: 1: jmp 1f ! 125: 1: ! 126: /NO_APP ! 127: movb %al,-40(%ebp) ! 128: movzbl -40(%ebp),%eax ! 129: movl %eax,-16(%ebp) ! 130: movl $128,%eax ! 131: movl $112,%edx ! 132: /APP ! 133: outb %al,%dx ! 134: jmp 1f ! 135: 1: jmp 1f ! 136: 1: ! 137: /NO_APP ! 138: movl $113,%edx ! 139: /APP ! 140: inb %dx,%al ! 141: jmp 1f ! 142: 1: jmp 1f ! 143: 1: ! 144: /NO_APP ! 145: movb %al,-40(%ebp) ! 146: movzbl -40(%ebp),%eax ! 147: cmpl -36(%ebp),%eax ! 148: jne L65 ! 149: movl -36(%ebp),%eax ! 150: andl $15,%eax ! 151: movl -36(%ebp),%edx ! 152: sarl $4,%edx ! 153: leal (%edx,%edx,4),%edx ! 154: leal (%eax,%edx,2),%eax ! 155: movl %eax,-36(%ebp) ! 156: movl -32(%ebp),%eax ! 157: andl $15,%eax ! 158: movl -32(%ebp),%edx ! 159: sarl $4,%edx ! 160: leal (%edx,%edx,4),%edx ! 161: leal (%eax,%edx,2),%eax ! 162: movl %eax,-32(%ebp) ! 163: movl -28(%ebp),%eax ! 164: andl $15,%eax ! 165: movl -28(%ebp),%edx ! 166: sarl $4,%edx ! 167: leal (%edx,%edx,4),%edx ! 168: leal (%eax,%edx,2),%eax ! 169: movl %eax,-28(%ebp) ! 170: movl -24(%ebp),%eax ! 171: andl $15,%eax ! 172: movl -24(%ebp),%edx ! 173: sarl $4,%edx ! 174: leal (%edx,%edx,4),%edx ! 175: leal (%eax,%edx,2),%eax ! 176: movl %eax,-24(%ebp) ! 177: movl -20(%ebp),%eax ! 178: andl $15,%eax ! 179: movl -20(%ebp),%edx ! 180: sarl $4,%edx ! 181: leal (%edx,%edx,4),%edx ! 182: leal (%eax,%edx,2),%eax ! 183: movl %eax,-20(%ebp) ! 184: movl -16(%ebp),%eax ! 185: andl $15,%eax ! 186: movl -16(%ebp),%edx ! 187: sarl $4,%edx ! 188: leal (%edx,%edx,4),%edx ! 189: leal (%eax,%edx,2),%eax ! 190: movl %eax,-16(%ebp) ! 191: decl -20(%ebp) ! 192: leal -36(%ebp),%eax ! 193: pushl %eax ! 194: call _kernel_mktime ! 195: movl %eax,_startup_time ! 196: leave ! 197: ret ! 198: .data ! 199: .align 2 ! 200: _memory_end: ! 201: .long 0 ! 202: .align 2 ! 203: _buffer_memory_end: ! 204: .long 0 ! 205: .align 2 ! 206: _main_memory_start: ! 207: .long 0 ! 208: .text ! 209: LC1: ! 210: .ascii "/bin/sh\0" ! 211: .data ! 212: .align 2 ! 213: _argv_rc: ! 214: .long LC1 ! 215: .long 0 ! 216: .text ! 217: LC2: ! 218: .ascii "HOME=/\0" ! 219: .data ! 220: .align 2 ! 221: _envp_rc: ! 222: .long LC2 ! 223: .long 0 ! 224: .long 0 ! 225: .text ! 226: LC3: ! 227: .ascii "-/bin/sh\0" ! 228: .data ! 229: .align 2 ! 230: _argv: ! 231: .long LC3 ! 232: .long 0 ! 233: .text ! 234: LC4: ! 235: .ascii "HOME=/usr/root\0" ! 236: .data ! 237: .align 2 ! 238: _envp: ! 239: .long LC4 ! 240: .long 0 ! 241: .long 0 ! 242: .text ! 243: LC5: ! 244: .ascii "TERM=con%dx%d\0" ! 245: .align 2 ! 246: .globl _main ! 247: _main: ! 248: pushl %ebp ! 249: movl %esp,%ebp ! 250: subl $8,%esp ! 251: pushl %edi ! 252: pushl %esi ! 253: movzwl 590332,%eax ! 254: movl %eax,_ROOT_DEV ! 255: movzwl 590330,%eax ! 256: movl %eax,_SWAP_DEV ! 257: movw 589838,%dx ! 258: andl $255,%edx ! 259: pushl %edx ! 260: movw 589838,%ax ! 261: andw $65280,%ax ! 262: shrw $8,%ax ! 263: movw %ax,-4(%ebp) ! 264: movzwl -4(%ebp),%eax ! 265: pushl %eax ! 266: pushl $LC5 ! 267: pushl $_term ! 268: call _sprintf ! 269: movl $_term,_envp+4 ! 270: movl $_term,_envp_rc+4 ! 271: movl $_drive_info,%edi ! 272: movl $589952,%esi ! 273: movl $8,%ecx ! 274: cld ! 275: rep ! 276: movsl ! 277: movzwl 589826,%eax ! 278: sall $10,%eax ! 279: addl $1048576,%eax ! 280: movl %eax,_memory_end ! 281: andl $-4096,_memory_end ! 282: addl $16,%esp ! 283: cmpl $16777216,_memory_end ! 284: jle L69 ! 285: movl $16777216,_memory_end ! 286: L69: ! 287: cmpl $12582912,_memory_end ! 288: jle L70 ! 289: movl $4194304,_buffer_memory_end ! 290: jmp L71 ! 291: .align 2 ! 292: L70: ! 293: cmpl $6291456,_memory_end ! 294: jle L72 ! 295: movl $2097152,_buffer_memory_end ! 296: jmp L71 ! 297: .align 2 ! 298: L72: ! 299: movl $1048576,_buffer_memory_end ! 300: L71: ! 301: movl _buffer_memory_end,%eax ! 302: movl %eax,_main_memory_start ! 303: pushl _memory_end ! 304: pushl _buffer_memory_end ! 305: call _mem_init ! 306: call _trap_init ! 307: call _blk_dev_init ! 308: call _chr_dev_init ! 309: call _tty_init ! 310: call _time_init ! 311: call _sched_init ! 312: pushl _buffer_memory_end ! 313: call _buffer_init ! 314: call _hd_init ! 315: call _floppy_init ! 316: /APP ! 317: sti ! 318: movl %esp,%eax ! 319: pushl $0x17 ! 320: pushl %eax ! 321: pushfl ! 322: pushl $0x0f ! 323: pushl $1f ! 324: iret ! 325: 1: movl $0x17,%eax ! 326: movw %ax,%ds ! 327: movw %ax,%es ! 328: movw %ax,%fs ! 329: movw %ax,%gs ! 330: /NO_APP ! 331: addl $12,%esp ! 332: movl $2,%eax ! 333: /APP ! 334: int $0x80 ! 335: /NO_APP ! 336: movl %eax,%edx ! 337: testl %edx,%edx ! 338: jge L75 ! 339: negl %edx ! 340: movl %edx,_errno ! 341: movl $-1,%edx ! 342: L75: ! 343: testl %edx,%edx ! 344: jne L74 ! 345: call _init ! 346: L74: ! 347: L77: ! 348: movl $29,%eax ! 349: /APP ! 350: int $0x80 ! 351: /NO_APP ! 352: jmp L77 ! 353: .align 2 ! 354: leal -16(%ebp),%esp ! 355: popl %esi ! 356: popl %edi ! 357: leave ! 358: ret ! 359: .align 2 ! 360: _printf: ! 361: pushl %ebx ! 362: leal 12(%esp),%eax ! 363: pushl %eax ! 364: pushl 12(%esp) ! 365: pushl $_printbuf ! 366: call _vsprintf ! 367: movl %eax,%ebx ! 368: pushl %ebx ! 369: pushl $_printbuf ! 370: pushl $1 ! 371: call _write ! 372: movl %ebx,%eax ! 373: addl $24,%esp ! 374: popl %ebx ! 375: ret ! 376: LC6: ! 377: .ascii "/dev/tty1\0" ! 378: LC7: ! 379: .ascii "%d buffers = %d bytes buffer space\12\15\0" ! 380: LC8: ! 381: .ascii "Free mem: %d bytes\12\15\0" ! 382: LC9: ! 383: .ascii "/etc/rc\0" ! 384: LC10: ! 385: .ascii "Fork failed in init\15\12\0" ! 386: LC11: ! 387: .ascii "\12\15child %d died with code %04x\12\15\0" ! 388: .align 2 ! 389: .globl _init ! 390: _init: ! 391: pushl %ebp ! 392: movl %esp,%ebp ! 393: subl $4,%esp ! 394: pushl %edi ! 395: pushl %esi ! 396: pushl %ebx ! 397: xorl %eax,%eax ! 398: movl $_drive_info,%ebx ! 399: /APP ! 400: int $0x80 ! 401: /NO_APP ! 402: testl %eax,%eax ! 403: jge L82 ! 404: negl %eax ! 405: movl %eax,_errno ! 406: L82: ! 407: pushl $0 ! 408: pushl $2 ! 409: pushl $LC6 ! 410: call _open ! 411: pushl $0 ! 412: call _dup ! 413: pushl $0 ! 414: call _dup ! 415: movl _nr_buffers,%eax ! 416: sall $10,%eax ! 417: pushl %eax ! 418: pushl _nr_buffers ! 419: pushl $LC7 ! 420: call _printf ! 421: addl $32,%esp ! 422: movl _memory_end,%eax ! 423: subl _main_memory_start,%eax ! 424: pushl %eax ! 425: pushl $LC8 ! 426: call _printf ! 427: addl $8,%esp ! 428: movl $2,%eax ! 429: /APP ! 430: int $0x80 ! 431: /NO_APP ! 432: testl %eax,%eax ! 433: jl L86 ! 434: movl %eax,%edi ! 435: jmp L85 ! 436: .align 2 ! 437: L86: ! 438: negl %eax ! 439: movl %eax,_errno ! 440: movl $-1,%edi ! 441: L85: ! 442: testl %edi,%edi ! 443: jne L84 ! 444: pushl $0 ! 445: call _close ! 446: pushl $0 ! 447: pushl $0 ! 448: pushl $LC9 ! 449: call _open ! 450: addl $16,%esp ! 451: testl %eax,%eax ! 452: je L87 ! 453: pushl $1 ! 454: call __exit ! 455: .align 2 ! 456: L87: ! 457: pushl $_envp_rc ! 458: pushl $_argv_rc ! 459: pushl $LC1 ! 460: call _execve ! 461: pushl $2 ! 462: call __exit ! 463: .align 2 ! 464: L84: ! 465: testl %edi,%edi ! 466: jle L88 ! 467: leal -4(%ebp),%esi ! 468: L89: ! 469: pushl %esi ! 470: call _wait ! 471: addl $4,%esp ! 472: cmpl %edi,%eax ! 473: jne L89 ! 474: L88: ! 475: leal -4(%ebp),%esi ! 476: L91: ! 477: movl $2,%eax ! 478: /APP ! 479: int $0x80 ! 480: /NO_APP ! 481: testl %eax,%eax ! 482: jge L94 ! 483: negl %eax ! 484: movl %eax,_errno ! 485: movl $-1,%eax ! 486: L94: ! 487: movl %eax,%edi ! 488: testl %edi,%edi ! 489: jge L93 ! 490: pushl $LC10 ! 491: call _printf ! 492: addl $4,%esp ! 493: jmp L91 ! 494: .align 2 ! 495: L93: ! 496: testl %edi,%edi ! 497: jne L96 ! 498: pushl $0 ! 499: call _close ! 500: pushl $1 ! 501: call _close ! 502: pushl $2 ! 503: call _close ! 504: call _setsid ! 505: pushl $0 ! 506: pushl $2 ! 507: pushl $LC6 ! 508: call _open ! 509: pushl $0 ! 510: call _dup ! 511: pushl $0 ! 512: call _dup ! 513: addl $32,%esp ! 514: pushl $_envp ! 515: pushl $_argv ! 516: pushl $LC1 ! 517: call _execve ! 518: pushl %eax ! 519: call __exit ! 520: .align 2 ! 521: L96: ! 522: L97: ! 523: pushl %esi ! 524: call _wait ! 525: addl $4,%esp ! 526: cmpl %edi,%eax ! 527: jne L97 ! 528: pushl -4(%ebp) ! 529: pushl %edi ! 530: pushl $LC11 ! 531: call _printf ! 532: addl $12,%esp ! 533: movl $36,%eax ! 534: /APP ! 535: int $0x80 ! 536: /NO_APP ! 537: testl %eax,%eax ! 538: jge L91 ! 539: negl %eax ! 540: movl %eax,_errno ! 541: jmp L91 ! 542: .align 2 ! 543: leal -16(%ebp),%esp ! 544: popl %ebx ! 545: popl %esi ! 546: popl %edi ! 547: leave ! 548: ret ! 549: .comm _drive_info,32 ! 550: .lcomm _term,32 ! 551: .lcomm _printbuf,1024
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.