Karoshi MSX Community

Desarrollo MSX => Rutinas - Snipets => Mensaje iniciado por: jltursan en 02 de Octubre de 2006, 07:24:38 pm



Título: Image presentation using "blinds"
Publicado por: jltursan en 02 de Octubre de 2006, 07:24:38 pm
Mensaje original por Robsy

Hi! This is a very simple example of presenting a full screen image using blinds (like the homonymous presentation style in M$ PowerPoint).

Código:
    FORCLR equ 0F3E9h
    BLINDS:
    ; Presents a full screen image
    ; Parameters:
    ; HL- address of CHR image data
    ; DE- address of CLR image data
    ;-----------------------------------
    ; Store pointers
    push de
    push hl
    ; Set COLOR 15,0,0 (adjust to your own needs)
    ld hl,FORCLR
    ld [hl],15
    inc hl
    ld [hl],0
    inc hl
    ld [hl],0
    ; Set SCREEN 2
    call INIGRP
    ; Disable screen
    call DISSCR
    ; Copy CHR to screen
    pop hl
    ld de,CHRTBL
    ld bc,1800h
    call LDIRVM
    ; Enable screen
    call ENASCR
    ; Prepare pointers
    pop de
    ld hl,CLRTBL
    ld b,8
    ; Big loop
    @@LOOP1:
    push bc
    push de
    push hl
    ld b,3
    @@LOOP2:
    push bc
    ld b,32
    halt ; Include more HALTs to reduce speed
    @@LOOP3:
    push bc
    ld a,[de]
    call WRTVRM
    ld bc,8
    add hl,bc
    ex de,hl
    add hl,bc
    ex de,hl
    pop bc
    djnz @@LOOP3
    pop bc
    djnz @@LOOP2
    pop hl
    pop de
    pop bc
    inc hl
    inc de
    djnz @@LOOP1
    ret

Hope that it will work fine! And remember to use compressed images!