wok annotate linld/stuff/src/JUMP.ASM @ rev 20427

linld: remove dead code
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Aug 14 22:18:05 2018 +0200 (2018-08-14)
parents 04feaffdc0d9
children 2e46d946d7a8
rev   line source
pascal@19515 1 ;***************************************************************
pascal@19515 2 ;****** This file is distributed under GPL
pascal@19515 3 ;***************************************************************
pascal@19515 4 ideal
pascal@19515 5 %crefref
pascal@19515 6 %noincl
pascal@19515 7 %nomacs
pascal@19636 8 ifdef NO386
pascal@19636 9 p8086
pascal@19636 10 else
pascal@19515 11 p386
pascal@19636 12 endif
pascal@19515 13
pascal@19903 14 group DGROUP _TEXT,_DATA,_BSS
pascal@19515 15 assume cs:DGROUP,ds:DGROUP
pascal@19515 16
pascal@19903 17 segment _DATA byte public use16 'DATA'
pascal@19903 18
pascal@19903 19 overflow db "Loaded too close to 9000:0",0
pascal@19903 20
pascal@19903 21 ends _DATA
pascal@19903 22
pascal@19515 23 segment _BSS byte public use16 'BSS'
pascal@19515 24
pascal@19899 25 global _imgs:dword
pascal@19515 26
pascal@19515 27 ends _BSS
pascal@19515 28
pascal@19515 29
pascal@19515 30 segment _TEXT byte public use16 'CODE'
pascal@19515 31
pascal@19905 32 ;***************************************************************
pascal@19905 33 ;void boot_kernel();
pascal@19905 34 ;****** Never returns
pascal@19905 35 ;***************************************************************
pascal@19903 36 global _boot_kernel:near
pascal@19905 37 proc _boot_kernel near
pascal@19905 38
pascal@20142 39 p8086
pascal@19903 40 ; Shrink stack: we won't need much of it now and have no malloc() plans
pascal@19903 41 extrn _heap_top:word
pascal@19903 42 mov ax,[_heap_top]
pascal@19903 43 inc ah
pascal@19903 44 cmp ax,sp
pascal@19905 45 ja @@samesp
pascal@19903 46 xchg ax,sp
pascal@19905 47 @@samesp:
pascal@19903 48 ifdef NO386
pascal@19903 49 extrn _topseg:near
pascal@19903 50 call near _topseg
pascal@19903 51 mov es,ax
pascal@19903 52 xchg ax,bx
pascal@19903 53 mov cl,4
pascal@19903 54 mov ax,sp
pascal@19903 55 shr ax,cl
pascal@19903 56 else
pascal@20142 57 p386
pascal@19903 58 mov bx,9000h
pascal@19903 59 mov es,bx
pascal@19903 60 mov ax,sp
pascal@19903 61 shr ax,4
pascal@19903 62 endif
pascal@19903 63 mov dx,cs
pascal@19903 64 add ax,dx
pascal@19903 65 cmp ax,bx
pascal@19905 66 jb @@nooverflow
pascal@19903 67 ; Oops! We can stomp on our toes... better stop now
pascal@19903 68 mov bx,offset overflow
pascal@19903 69 extrn die:near
pascal@20427 70 call near die
pascal@19905 71 @@nooverflow:
pascal@19636 72 cli ; we start doing destructive things to DOS
pascal@19571 73 push es
pascal@19571 74 pop ss
pascal@19571 75 mov sp,0A000h
pascal@19900 76 extrn _csip:dword
pascal@19900 77 push [dword _csip]
pascal@19636 78 extrn _rm_size:word
pascal@19636 79 mov si,offset _rm_size ; _rm_size, _pm_high, _rm_buf
pascal@19636 80 lodsw
pascal@19636 81 xchg ax,cx ; _rm_size
pascal@19636 82 lodsb ; _pm_high
pascal@19636 83 mov si,[si] ; _rm_buf
pascal@19571 84 xor di,di
pascal@19571 85 ;cld
pascal@19571 86 rep
pascal@19571 87 movsb
pascal@19571 88 extrn _cmdline:word
pascal@19571 89 mov si,[_cmdline]
pascal@19571 90 mov di,8000h
pascal@19571 91 mov ch,10h ; 4k
pascal@19571 92 rep
pascal@19571 93 movsb
pascal@19636 94 cmp al,cl ; load high ?
pascal@19905 95 jne @@isbzimage
pascal@19637 96 ifdef NO386
pascal@19637 97 add bh,9
pascal@19637 98 push bx ; topseg()+0x0900
pascal@19637 99 else
pascal@19905 100 push 9800h+(4096/16) ; 4096 bytes for cmdline
pascal@19637 101 endif
pascal@19515 102 ; finish loading
pascal@19515 103 extrn @last_ditch$qv:near
pascal@19515 104 push cs
pascal@19515 105 call @last_ditch$qv
pascal@19899 106 mov ax,[word _imgs+2+2] ; get pm->fallback high word
pascal@19515 107 ; self move
pascal@19571 108 ;cld
pascal@19538 109 pop es ; min 2048 bytes for stack
pascal@19538 110 xor si,si ; A000 -9000 -0800(>movedend)
pascal@19515 111 xor di,di ; set ZF
pascal@19538 112 mov cx,offset movedend
pascal@19515 113 rep
pascal@19515 114 movsb
pascal@19515 115 push es
pascal@19905 116 call near @@doretf ; mov cs,es
pascal@19571 117 push ss
pascal@19571 118 pop es
pascal@19515 119 push cs
pascal@19515 120 pop ds
pascal@19571 121 push ax
pascal@19905 122 extrn dos_shutdown:near
pascal@19515 123 call near dos_shutdown
pascal@19538 124 ;in al,70h
pascal@19538 125 ;or al,80h ; disable NMI
pascal@19538 126 ;out 70h,al
pascal@19538 127 pop bx
pascal@19515 128 ; move zImage pm
pascal@19515 129 mov ax,8
pascal@19900 130 cwd ; clear dx
pascal@19515 131 cmp bx,ax
pascal@19905 132 ja @@bufhigh
pascal@19515 133 sub ax,bx
pascal@19515 134 inc ax
pascal@19905 135 @@bufhigh:
pascal@19515 136 push ax
pascal@19515 137 push dx ; size=up to 512k
pascal@19515 138 push bx ; src ofs= pm.fallback
pascal@19515 139 push dx
pascal@19515 140 push dx ; srcseg=0
pascal@19636 141 ifdef NO386
pascal@19636 142 inc dx
pascal@19636 143 push dx ; dst
pascal@19636 144 dec dx
pascal@19636 145 else
pascal@19636 146 push 1 ; dst
pascal@19636 147 endif
pascal@19515 148 push dx ; ofs=64k
pascal@19515 149 extrn _memcpy32:near
pascal@19515 150 call _memcpy32
pascal@19538 151 add sp,14
pascal@19515 152
pascal@19515 153 ifndef noelks
pascal@19515 154 push ss
pascal@19515 155 pop ds
pascal@19515 156 ifndef NO386
pascal@19515 157 cmp [dword 1E6h],'SKLE'
pascal@19515 158 else
pascal@19515 159 cmp [word 1E6h],'LE'
pascal@19905 160 jne @@notelks
pascal@19515 161 cmp [word 1E8h],'SK'
pascal@19515 162 endif
pascal@19905 163 jne @@notelks
pascal@19636 164 ifdef NO386
pascal@19636 165 mov cx,120h
pascal@19636 166 push cx
pascal@19636 167 mov cl,0h
pascal@19636 168 push cx
pascal@19636 169 else
pascal@19636 170 push 120h
pascal@19515 171 push 100h
pascal@19636 172 endif
pascal@19515 173 pop es
pascal@19515 174 xor si,si
pascal@19515 175 xor di,di
pascal@19515 176 mov ch,05h
pascal@19515 177 rep
pascal@19515 178 movsw
pascal@19515 179 push es
pascal@19515 180 pop ss
pascal@19636 181 push cx
pascal@19905 182 @@notelks:
pascal@19515 183 endif
pascal@19905 184 @@isbzimage:
pascal@19515 185 push ss
pascal@19515 186 pop ds
pascal@19571 187 ;push ss
pascal@19571 188 ;pop es
pascal@19636 189 ifndef NO386
pascal@19515 190 push ss
pascal@19515 191 pop fs
pascal@19515 192 push ss
pascal@19515 193 pop gs
pascal@19636 194 endif
pascal@19515 195 assume nothing
pascal@19515 196 assume cs:DGROUP
pascal@19905 197 @@doretf:
pascal@19515 198 retf
pascal@19515 199
pascal@19515 200 movedend:
pascal@19905 201 endp _boot_kernel
pascal@19515 202
pascal@19515 203 ends _TEXT
pascal@19515 204
pascal@19515 205 end
pascal@19515 206
pascal@19515 207 ;###### END OF FILE ############################################