a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync bits 16
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync org 100h
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync jmp start
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncshuffle_start:
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync push 0xB800
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync pop es
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov cx, 80*24*2
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov ax, 'AA'
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync xor di, di
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync rep stosw
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync.lbl: jmp .lbl
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncshuffle_end:
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync nop
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncshuffle_len equ (shuffle_end - shuffle_start + 1)
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncstart:
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync ; calculate physical address of shuffled part
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync xor eax, eax
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync push ds
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync pop ax
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync shl eax, 4
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync add ax, shuffle_start
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov dword [source], eax
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov ax, 0012h
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov di, shuffle_descriptors
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov cx, num_shuffle_descriptors
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync mov ebp, 0x7c00
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync int 22h
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync int3
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncshuffle_descriptors:
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync dd 0x7C00
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncsource: dd 0
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync dd shuffle_len
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncnum_shuffle_descriptors equ 1
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync