⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldlinux.lst

📁 Windows上的精简Linux系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
   379                                  ; The following structure is used for "virtual kernels"; i.e. LILO-style   380                                  ; option labels.  The options we permit here are `kernel' and `append   381                                  ; Since there is no room in the bottom 64K for all of these, we   382                                  ; stick them at vk_seg:0000 and copy them down before we need them.   383                                  ;   384                                  ; Note: this structure can be added to, but it must    385                                  ;   386                                  %define vk_power	7		; log2(max number of vkernels)   387                                  %define	max_vk		(1 << vk_power)	; Maximum number of vkernels   388                                  %define vk_shift	(16-vk_power)	; Number of bits to shift   389                                  %define vk_size		(1 << vk_shift)	; Size of a vkernel buffer   390                                     391                                  		struc vkernel   392 00000000 <res 0000000B>          vk_vname:	resb FILENAME_MAX	; Virtual name **MUST BE FIRST!**   393 0000000B <res 0000000B>          vk_rname:	resb FILENAME_MAX	; Real name   394 00000016 <res 00000002>          vk_appendlen:	resw 1   395                                  		alignb 4   396 00000018 <res 00000100>          vk_append:	resb max_cmd_len+1	; Command line   397                                  		alignb 4   398                                  vk_end:		equ $			; Should be <= vk_size   399                                  		endstruc   400                                     401                                  %ifndef DEPEND   402                                  %if (vk_end > vk_size) || (vk_size*max_vk > 65536)   403                                  %error "Too many vkernels defined, reduce vk_power"   404                                  %endif   405                                  %endif   406                                     407                                  ;   408                                  ; Segment assignments in the bottom 640K   409                                  ; Stick to the low 512K in case we're using something like M-systems flash   410                                  ; which load a driver into low RAM (evil!!)   411                                  ;   412                                  ; 0000h - main code/data segment (and BIOS segment)   413                                  ;   414                                  real_mode_seg	equ 5000h   415                                  fat_seg		equ 3000h		; 128K area for FAT (2x64K)   416                                  vk_seg          equ 2000h		; Virtual kernels   417                                  xfer_buf_seg	equ 1000h		; Bounce buffer for I/O to high mem   418                                  comboot_seg	equ real_mode_seg	; COMBOOT image loading zone   419                                     420                                  ; ---------------------------------------------------------------------------   421                                  ;   BEGIN CODE   422                                  ; ---------------------------------------------------------------------------   423                                     424                                  ;   425                                  ; Memory below this point is reserved for the BIOS and the MBR   426                                  ;   427                                   		absolute 1000h   428                                  trackbuf	equ $			; Track buffer goes here   429                                  trackbufsize	equ 16384		; Safe size of track buffer   430                                  ;		trackbuf ends at 5000h   431                                     432                                     433                                  ;   434                                  ; Constants for the xfer_buf_seg   435                                  ;   436                                  ; The xfer_buf_seg is also used to store message file buffers.  We   437                                  ; need two trackbuffers (text and graphics), plus a work buffer   438                                  ; for the graphics decompressor.   439                                  ;   440                                  xbs_textbuf	equ 0			; Also hard-coded, do not change   441                                  xbs_vgabuf	equ trackbufsize   442                                  xbs_vgatmpbuf	equ 2*trackbufsize   443                                     444                                     445                                                  absolute 5000h          ; Here we keep our BSS stuff   446 00005000 <res 00000200>          VKernelBuf:	resb vk_size		; "Current" vkernel   447                                  		alignb 4   448 00005200 <res 00000100>          AppendBuf       resb max_cmd_len+1	; append=   449 00005300 <res 00000100>          Ontimeout	resb max_cmd_len+1	; ontimeout   450 00005400 <res 00000100>          Onerror		resb max_cmd_len+1	; onerror   451 00005500 <res 00000100>          KbdMap		resb 256		; Keyboard map   452 00005600 <res 000000A0>          FKeyName	resb 10*16		; File names for F-key help   453 000056A0 <res 0000000F>          NumBuf		resb 15			; Buffer to load number   454 000056AF <res 00000001>          NumBufEnd	resb 1			; Last byte in NumBuf   455                                  		alignb 8   456                                     457                                  		; Expanded superblock   458                                  SuperInfo	equ $   459 000056B0 <res 00000080>          		resq 16			; The first 16 bytes expanded 8 times   460                                  		;   461                                  		; These need to follow SuperInfo   462                                  		;   463 00005730 <res 00000004>          RootDir		resd 1			; Location of root directory   464 00005734 <res 00000004>          DataArea	resd 1			; Location of data area   465 00005738 <res 00000002>          RootDirSize	resw 1			; Root dir size in sectors   466 0000573A <res 00000002>          DirScanCtr	resw 1			; Used while searching directory   467 0000573C <res 00000002>          EndofDirSec	resw 1			; = trackbuf+bsBytesPerSec-31   468                                     469 0000573E <res 00000001>-         		alignb 4   470 0000573E <rept>                471 00005740 <res 00000014>          E820Buf		resd 5			; INT 15:E820 data buffer   472 00005754 <res 00000004>          E820Mem		resd 1			; Memory detected by E820   473 00005758 <res 00000004>          E820Max		resd 1			; Is E820 memory capped?   474 0000575C <res 00000004>          HiLoadAddr      resd 1			; Address pointer for high load loop   475 00005760 <res 00000004>          HighMemSize	resd 1			; End of memory pointer (bytes)   476 00005764 <res 00000004>          RamdiskMax	resd 1			; Highest address for a ramdisk   477 00005768 <res 00000004>          KernelSize	resd 1			; Size of kernel (bytes)   478 0000576C <res 00000004>          SavedSSSP	resd 1			; Our SS:SP while running a COMBOOT image   479 00005770 <res 00000004>          PMESP		resd 1			; Protected-mode ESP   480 00005774 <res 00000004>          ClustPerMoby	resd 1			; Clusters per 64K   481 00005778 <res 00000004>          ClustSize	resd 1			; Bytes/cluster   482 0000577C <res 0000000C>          KernelName      resb 12		        ; Mangled name for kernel   483                                  					; (note the spare byte after!)   484 00005788 <res 00000004>          OrigKernelExt	resd 1			; Original kernel extension   485                                  FBytes		equ $			; Used by open/getc   486 0000578C <res 00000002>          FBytes1		resw 1   487 0000578E <res 00000002>          FBytes2		resw 1   488 00005790 <res 00000002>          DirBlocksLeft	resw 1			; Ditto   489 00005792 <res 00000002>          RunLinClust	resw 1			; Cluster # for LDLINUX.SYS   490 00005794 <res 00000002>          BufSafe		resw 1			; Clusters we can load into trackbuf   491 00005796 <res 00000002>          BufSafeSec	resw 1			; = how many sectors?   492 00005798 <res 00000002>          BufSafeBytes	resw 1			; = how many bytes?   493 0000579A <res 00000002>          EndOfGetCBuf	resw 1			; = getcbuf+BufSafeBytes   494 0000579C <res 00000002>          KernelClust	resw 1			; Kernel size in clusters   495 0000579E <res 00000002>          FClust		resw 1			; Number of clusters in open/getc file   496 000057A0 <res 00000002>          FNextClust	resw 1			; Pointer to next cluster in d:o   497 000057A2 <res 00000002>          FPtr		resw 1			; Pointer to next char in buffer   498 000057A4 <res 00000002>          CmdOptPtr       resw 1			; Pointer to first option on cmd line   499 000057A6 <res 00000002>          KernelCNameLen  resw 1			; Length of unmangled kernel name   500 000057A8 <res 00000002>          InitRDCNameLen  resw 1			; Length of unmangled initrd name   501 000057AA <res 00000002>          NextCharJump    resw 1			; Routine to interpret next print char   502 000057AC <res 00000002>          SetupSecs	resw 1			; Number of setup sectors   503 000057AE <res 00000002>          A20Test		resw 1			; Counter for testing status of A20   504 000057B0 <res 00000002>          A20Type		resw 1			; A20 type   505 000057B2 <res 00000002>          CmdLineLen	resw 1			; Length of command line including null   506 000057B4 <res 00000002>          GraphXSize	resw 1			; Width of splash screen file   507 000057B6 <res 00000002>          VGAPos		resw 1			; Pointer into VGA memory   508 000057B8 <res 00000002>          VGACluster	resw 1			; Cluster pointer for VGA image file   509 000057BA <res 00000002>          VGAFilePtr	resw 1			; Pointer into VGAFileBuf   510 000057BC <res 00000002>          Com32SysSP	resw 1			; SP saved during COM32 syscall   511                                  CursorDX        equ $   512 000057BE <res 00000001>          CursorCol       resb 1			; Cursor column for message file   513 000057BF <res 00000001>          CursorRow       resb 1			; Cursor row for message file   514                                  ScreenSize      equ $   515 000057C0 <res 00000001>          VidCols         resb 1			; Columns on screen-1   516 000057C1 <res 00000001>          VidRows         resb 1			; Rows on screen-1   517 000057C2 <res 00000002>          BaudDivisor	resw 1			; Baud rate divisor   518                                  FlowControl	equ $   519 000057C4 <res 00000001>          FlowOutput	resb 1			; Outputs to assert for serial flow   520 000057C5 <res 00000001>          FlowInput	resb 1			; Input bits for serial flow   521 000057C6 <res 00000001>          FlowIgnore	resb 1			; Ignore input unless these bits set   522 000057C7 <res 00000001>          TextAttribute   resb 1			; Text attribute for message file   523 000057C8 <res 00000001>          RetryCount      resb 1			; Used for disk access retries   524 000057C9 <res 00000001>          KbdFlags	resb 1			; Check for keyboard escapes   525 000057CA <res 00000001>          LoadFlags	resb 1			; Loadflags from kernel   526 000057CB <res 00000001>          A20Tries	resb 1			; Times until giving up on A20   527 000057CC <res 00000001>          FuncFlag	resb 1			; Escape sequences received from keyboard   528 000057CD <res 00000001>          DisplayMask	resb 1			; Display modes mask   529 000057CE <res 00000001>          CopySuper	resb 1			; Distinguish .bs versus .bss   530 000057CF <res 0000000B>          MNameBuf        resb 11            	; Generic mangled file name buffer   531 000057DA <res 0000000B>          InitRD          resb 11                 ; initrd= mangled name   532 000057E5 <res 0000000D>          KernelCName     resb 13                 ; Unmangled kernel name   533 000057F2 <res 0000000D>          InitRDCName     resb 13            	; Unmangled initrd name   534 000057FF <res 00000011>          TextColorReg	resb 17			; VGA color registers for text mode   535 00005810 <res 0000000D>          VGAFileBuf	resb 13			; Unmangled VGA image name   536                                  VGAFileBufEnd	equ $   537 0000581D <res 0000000B>          VGAFileMBuf	resb 11			; Mangled VGA image name   538                                                  alignb 4		; For the good of REP MOVSD   539 00005828 <res 00000101>          command_line	resb max_cmd_len+2	; Command line buffer   540 00005929 <res 00000100>          default_cmd	resb max_cmd_len+1	; "default" command line   541                                  kern_cmd_len	equ $-command_line   542                                     543                                  		section .text   544                                                  org 7C00h   545                                  ;   546                                  ; Some of the things that have to be saved very early are saved   547                                  ; "close" to the initial stack pointer offset, in order to   548                                  ; reduce the code size...   549                                  ;   550                                  StackBuf	equ $-44-32		; Start the stack here (grow down - 4K)   551                                  PartInfo	equ StackBuf		; Saved partition table entry   552                                  FloppyTable	equ PartInfo+16		; Floppy info table (must follow PartInfo)   553                                  OrigFDCTabPtr	equ StackBuf-4		; The high dword on the stack   554                                     555                                  ;   556                                  ; Primary entry point.  Tempting as though it may be, we can't put the   557                                  ; initial "cli" here; the jmp opcode in the first byte is part of the   558                                  ; "magic number" (using the term very loosely) for the DOS superblock.   559                                  ;   560                                  bootsec		equ $   561 00000000 EB3C                    		jmp short start		; 2 bytes   562 00000002 90                      		nop			; 1 byte   563                                  ;   564                                  ; "Superblock" follows -- it's in the boot sector, so it's already   565                                  ; loaded and ready for us   566                                  ;   567 00000003 5359534C494E5558        bsOemName	db 'SYSLINUX'		; The SYS command sets this, so...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -