; Laad "BLOAD" plaatje in VRAM.
; 11-1993 RM-FCS
; Er wordt aangenomen dat de filenaam+drive al in FCB staat, en de schermmode
; al goed staat.

; LET OP: er moet nog wel even zelf op de schermpagina gelet worden:
PAGE:   EQU   0               ; vul hier 1 in bij screen 7 en hoger, page 1
;                             ;  en bij screen 5/6, page 2/3
; Voor screen 5/6, page 1 of 3: haal in de listing een puntkomma weg

BDOS:   EQU   0F37DH
BUFFER: EQU   8000H           ; Buffer in RAM voor "doorgeven" van file naar VRA
BUFLEN: EQU   4000H           ; lengte buffer (groter=sneller)
        ORG   0C000H

        LD    DE,BUFFER       ; OPEN FILE
        LD    C,1AH
        CALL  BDOS
        LD    DE,FCB2
        LD    C,0FH
        CALL  BDOS
        OR    A
        JP    NZ,ERROR
        LD    HL,1
        LD    (FCB2+0EH),HL
        DEC   L
        LD    (FCB2+21H),HL
        LD    (FCB2+23H),HL
        LD    L,7
        LD    DE,FCB2         ; header laden
        LD    C,27H
        CALL  BDOS
        OR    A
        JP    NZ,ERROR

        DI                    ; Zet VRAM adres
        LD    HL,(BUFFER+1)

;       SET   7,H             ; BIJ SCREEN 5/6, PAGE 1 OF 3
        LD    B,PAGE
        CALL  SETWRT

        LD    HL,(FCB2+10H)   ; Laad plaatje in VRAM
        LD    DE,-7
        ADD   HL,DE           ; lengte zonder header van 7 bytes
        JR    LAAD2
LAAD1:  PUSH  HL
        LD    HL,BUFLEN
        CALL  LAADVR
        POP   HL
LAAD2:  LD    DE,-BUFLEN
        ADD   HL,DE
        JR    C,LAAD1
        SBC   HL,DE
        CALL  NZ,LAADVR
        EI
        RET

LAADVR: PUSH  HL
        LD    DE,FCB2
        LD    C,27H
        CALL  BDOS
        POP   HL
        OR    A
        JR    NZ,ERRORP
        LD    A,L
        OR    A
        LD    B,L
        LD    A,H
        JR    Z,J21
        INC   A
J21:    LD    HL,BUFFER
        LD    C,98H
J20:    OTIR
        DEC   A
        JR    NZ,J20
        RET

SETWRT: LD    C,99H
        LD    A,H
        AND   0C0H
        OR    B
        RLCA
        RLCA
        OUT   (C),A
        LD    A,14 OR 128
        OUT   (C),A
        LD    A,H
        OUT   (C),L
        AND   3FH
        OR    40H
        OUT   (C),A
        DEC   C
        RET


ERRORP: POP   HL
ERROR:  EI
        JP    0C0H
FCB2:   DEFB  0,"MDLEVEL1SR8"
        DB    0
        DB    0
        DW    0
        DW    0,0
        DW    0,0
        DB    0,0
        DW    0,0,0
        DB    0
        DW    0,0



    0
        DW    0,0
        DW    0,0
        DB    0,0
        DW    0,0,0
        DB    0
