
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
; DATA
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
; CODE
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
p10:
        call posrout
        jc setnext
        imul edx,100
        sub ebx,63
        mov eax,ebx
        and ebx,3
        sar eax,2
        lea ebp,[edx+eax-100*51]
        movzx eax,_pagehibyte
        xchg al,ah
        add ebp,eax
        mov dx,3ceh
        @outb 4
        xor ecx,ecx
        mov eax,offset l2p1tbl
        mov es,_vidsel
        call p10r0
        mov es,_seldata
        ret

;-----------------------------------------------------------------------------
@next           macro
        mov edi,ebp
        mov dl,0c5h
        mov al,vidbittbl2[ebx]
        out dx,al
        mov dl,0cfh
        mov al,bl
        out dx,al
        inc ebx
        and bl,3
        jnz short $+3
        inc ebp
endm
@ww             macro
        mov dword ptr es:[di],ecx
        add edi,4
endm
@w              macro
        mov word ptr es:[di],cx
        add edi,2
endm
@b              macro
        mov byte ptr es:[di],cl
        inc edi
endm
@m              macro   num
  rept &num
        mov al,byte ptr es:[di]
        mov al,[eax]
        stos byte ptr es:[di]
  endm
endm
@d              macro   num
        add edi,100-(&num)
endm
;-----------------------------------------------------------------------------
p10r0:
        @next
        add edi,7

        @w      ; 0
        @b
        @d 4

        @b
        @m 3
        @b
        @d 6

        @b
        @m 5
        @b
        @d 8

        @b
        @m 7
        @d 8

        @m 8    ; 4
        @b
        @d 10

        @b
        @m 9
        @d 10

        @m 10
        @d 10

        @m 10
        @b
        @d 12

        @b      ; 8
        @m 11
        @d 12

        @m 12
        @d 12

        @m 12
        @b
        @d 13

        @m 13
        @d 13

        @m 13   ; 12
        @d 14

        @b
        @m 13
        @d 14

        @m 14
        @d 14

        @m 14
        @d 14

        @m 14   ; 16
        @b
        @d 15

        @m 14
        @b
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 20
        @d 16

        @b
        @m 15
        @d 16

        @b
        @m 15
        @d 16

        @b
        @m 15
        @d 16

        @b      ; 24
        @m 15
        @d 16

        @b
        @m 15
        @d 16

        @b
        @m 15
        @d 16

        @b
        @m 15
        @d 16

        @b      ; 28
        @m 15
        @d 16

        @b
        @m 15
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 32
        @d 15

        @m 14
        @b
        @d 15

        @m 14
        @b
        @d 15

        @m 14
        @d 14

        @m 14   ; 36
        @d 14

        @b
        @m 13
        @d 13

        @m 13
        @d 13

        @m 13
        @d 13

        @m 12   ; 40
        @b
        @d 13

        @m 12
        @d 12

        @b
        @m 11
        @d 11

        @m 10
        @b
        @d 11

        @m 10   ; 44
        @d 10

        @b
        @m 9
        @d 9

        @m 8
        @b
        @d 9

        @b
        @m 7
        @d 7

        @b      ; 48
        @m 5
        @b
        @d 6

        @b
        @m 3
        @b
        @d 4

        @w
        @b

        @next
        add edi,6

        @ww     ; 0
        @d 5

        @b
        @m 4
        @b
        @d 6

        @m 6
        @d 7

        @b
        @m 6
        @b
        @d 8

        @m 8    ; 4
        @d 9

        @b
        @m 8
        @b
        @d 10

        @m 10
        @d 11

        @b
        @m 10
        @b
        @d 12

        @m 12   ; 8
        @d 12

        @m 12
        @d 12

        @m 12
        @d 13

        @b
        @m 12
        @b
        @d 14

        @b      ; 12
        @m 12
        @b
        @d 14

        @m 14
        @d 14

        @m 14
        @d 14

        @m 14
        @d 14

        @m 14   ; 16
        @d 14

        @m 14
        @d 15

        @b
        @m 14
        @b
        @d 16

        @b
        @m 14
        @b
        @d 16

        @b      ; 20
        @m 14
        @b
        @d 16

        @m 16
        @d 16

        @m 16
        @d 16

        @m 16
        @d 16

        @m 16   ; 24
        @d 16

        @m 16
        @d 16

        @m 16
        @d 16

        @m 16
        @d 16

        @m 16   ; 28
        @d 16

        @m 16
        @d 16

        @b
        @m 14
        @b
        @d 16

        @b
        @m 14
        @b
        @d 16

        @b      ; 32
        @m 14
        @b
        @d 15

        @m 14
        @d 14

        @m 14
        @d 14

        @m 14
        @d 14

        @m 14   ; 36
        @d 14

        @m 14
        @d 14

        @b
        @m 12
        @b
        @d 14

        @b
        @m 12
        @b
        @d 13

        @m 12   ; 40
        @d 12

        @m 12
        @d 12

        @m 12
        @d 12

        @b
        @m 10
        @b
        @d 11

        @m 10   ; 44
        @d 10

        @b
        @m 8
        @b
        @d 9

        @m 8
        @d 8

        @b
        @m 6
        @b
        @d 7

        @m 6    ; 48
        @d 6

        @b
        @m 4
        @b
        @d 5

        @ww

        @next
        add edi,6

        @w      ; 0
        @b
        @d 4

        @b
        @m 3
        @b
        @d 6

        @b
        @m 5
        @b
        @d 7

        @m 7
        @b
        @d 9

        @b      ; 4
        @m 8
        @d 9

        @m 9
        @b
        @d 10

        @m 10
        @d 11

        @b
        @m 10
        @d 11

        @m 11   ; 8
        @b
        @d 12

        @m 12
        @d 13

        @b
        @m 12
        @d 13

        @m 13
        @d 13

        @m 13   ; 12
        @d 13

        @m 13
        @b
        @d 14

        @m 14
        @d 14

        @m 14
        @d 15

        @b      ; 16
        @m 14
        @d 15

        @b
        @m 14
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 20
        @d 15

        @m 15
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15   ; 24
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15   ; 28
        @b
        @d 16

        @m 15
        @b
        @d 16

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 32
        @d 15

        @b
        @m 14
        @d 15

        @b
        @m 14
        @d 14

        @m 14
        @d 14

        @m 14   ; 36
        @d 14

        @m 13
        @b
        @d 14

        @m 13
        @d 13

        @m 13
        @d 13

        @b      ; 40
        @m 12
        @d 12

        @m 12
        @d 12

        @m 11
        @b
        @d 12

        @b
        @m 10
        @d 10

        @m 10   ; 44
        @d 10

        @m 9
        @b
        @d 10

        @b
        @m 8
        @d 8

        @m 7
        @b
        @d 8

        @b      ; 48
        @m 5
        @b
        @d 6

        @b
        @m 3
        @b
        @d 4

        @w
        @b

        @next
        add edi,6

        @w      ; 0
        @b
        @d 4

        @b
        @m 3
        @b
        @d 6

        @b
        @m 5
        @b
        @d 7

        @m 7
        @d 8

        @b      ; 4
        @m 7
        @b
        @d 9

        @m 9
        @d 10

        @b
        @m 9
        @b
        @d 11

        @m 11
        @d 11

        @m 11   ; 8
        @d 12

        @b
        @m 11
        @b
        @d 13

        @m 13
        @d 13

        @m 13
        @d 13

        @m 13   ; 12
        @d 13

        @m 13
        @d 14

        @b
        @m 13
        @b
        @d 15

        @b
        @m 13
        @b
        @d 15

        @m 15   ; 16
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 20
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 24
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 28
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @m 15   ; 32
        @d 15

        @m 15
        @d 15

        @m 15
        @d 15

        @b
        @m 13
        @b
        @d 15

        @b      ; 36
        @m 13
        @b
        @d 14

        @m 13
        @d 13

        @m 13
        @d 13

        @m 13
        @d 13

        @m 13   ; 40
        @d 13

        @b
        @m 11
        @b
        @d 12

        @m 11
        @d 11

        @m 11
        @d 11

        @b      ; 44
        @m 9
        @b
        @d 10

        @m 9
        @d 9

        @b
        @m 7
        @b
        @d 8

        @m 7
        @d 7

        @b      ; 48
        @m 5
        @b
        @d 6

        @b
        @m 3
        @b
        @d 4

        @w
        @b

        ret

