;Entry voor de surprise coding compo, 92 bytes, gecompileerd met tasm en
;gelinkt met tlink /t (dus als com!!!)
;Door Senjin/Shinobi (met enige hulp)

model tiny

codeseg
startupcode
org 100h
p486
        mov al,13h      ;Instellen van mode 13h
        int 10h
        mov bh,0a0h     ;Eigenlijk mov bx,0a000h 
        mov es,bx       ;Extra segment verwijst naar het video geheugen
        xor di,di       ;Start vanaf het begin van het video geheugen
        mov si,offset font ;Offset van de fontdata binnen het codesegment     
        mov dh,5h       ;Het hoogte van het font
lineloop:
        mov dl,7h       ;Het aantal groepen van 8 bits
outerloop:
        lodsb           ;Laad een byte vanuit het font
        mov ah,al       ;Even opslaan in ah voor later gebruik
        mov cx,8h       ;Het aantal bits binnen een groep
innerloop:
        shl ah,1
        sbb al,al
        and al,0fh      ;255 naar 15 converteren
        stosb           ;Schrijf pixel naar video
        loop innerloop  ;Lusje voor het aantal bits binnen een groep
        dec dl          ;Er gaat 1 groep van af
        jnz outerloop   ;Lusje voor het aantal groepen binnen een regel
        add di,108h     ;Naar de volgende regel gaan in video geheugen
        dec dh          ;\Er gaat 1 regel van af en alles wordt herhaald
        jnz lineloop    ;/tot het data-blok in het video geheugen staat.
        xor ah,ah       ;op een toets wachten
        int 16h
        mov ax,3h       ;terugspringen naar mode 03h
        int 10h
        ret             ;en weer naar dos...
font:
        db 010001010b,011101110b,000111001b,000100101b,011001001b,001011101b,011000000b
        db 001010010b,010100010b,000010010b,010101001b,000010101b,001010001b,001000000b
        db 000100000b,011100100b,000010011b,010110001b,010010101b,001011001b,011000000b
        db 001010000b,000100100b,000010010b,010101001b,000010100b,010010001b,010000000b
        db 010001000b,011100100b,000010010b,010100101b,011001000b,010011101b,001000000b
end
