wok annotate syslinux/stuff/iso2exe/a20.c @ rev 23820

syslinux: merge init.exe & taziso
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu May 28 08:35:55 2020 +0000 (2020-05-28)
parents c15bb3c9e12d
children
rev   line source
pascal@16069 1 #ifndef __A20
pascal@16069 2 #define __A20
pascal@16069 3
pascal@17161 4 static void dosshutdowna20(void)
pascal@16069 5 {
pascal@16069 6 #asm
pascal@17450 7 call _dosshutdown
pascal@17450 8 xor ax, ax // 30
pascal@17450 9 cmp ax, _a20buffer
pascal@17450 10 je no_a20buffer
pascal@17160 11 pusha // more than 1Mb => 286+
pascal@16069 12 mov cx, #9 // 2E..1E
pascal@16069 13 a20z1:
pascal@17450 14 push ax
pascal@16069 15 loop a20z1
pascal@17450 16 push #0x9310
pascal@17450 17 push ax // 1A 0x100000
pascal@16069 18 push #-1 // 18
pascal@17450 19 push ax // 16
pascal@17450 20 push #0x9300+A20HOLDBUFFER/0x10000
pascal@17450 21 push ax // 12 A20HOLDBUFFER
pascal@16069 22 push #-1 // 10
pascal@16069 23 mov cl, #8 // 0E..00
pascal@16069 24 a20z2:
pascal@17450 25 push ax
pascal@16069 26 loop a20z2
pascal@16069 27 mov ch, #0x10000/512
pascal@16069 28 push ss
pascal@16069 29 pop es
pascal@16069 30 mov si, sp
pascal@17450 31 mov ah, #0x87
pascal@16069 32 int 0x15
pascal@16069 33 add sp, #0x30
pascal@16069 34 popa
pascal@17450 35 no_a20buffer:
pascal@16069 36 #endasm
pascal@16069 37 }
pascal@16069 38
pascal@17161 39 #define dosshutdown dosshutdowna20
pascal@17161 40
pascal@16069 41 #endif