A simple split-raster effect in 64bytes as a quick response to the 128 bytes one (Pouët.net) by Chiourme.
» Download (DSK file).
; _____ __ ; / _ \_______| | ______ ______ ; / /_\ \_ __ \ |/ / _ \/ ___/ ; / | \ | \/ < <_> )___ \ ; \____|__ /__| |__|_ \____/____ > ; \/ \/ \/ ; 64bytes version of www.pouet.net/prod.php?which=52701 ; Hello Chiourme, you should give z80 assembly a try =) ; ; A dozen bytes could be saved by compiling the routine ; directly at the IM1 interrupt vector (&38). ; ; Grim/Arkos^Semilanceata ; WinAPE's directive to compile and run run start org &6128 start ; Lock 300Hz interrupts after the next one ld a,&C9 ld (&38),a ; wait for the next 300Hz interrupt halt ; Display BORDER only ld bc,&BC01 out (c),c ; Select CRTC Reg. 1 inc b dw &71ED ; Set R1 to zero ; *** WARNING - Stupid trick here! *** ; This is the color table data. ; We use the fact that the color codes correspond ; to "useless" cpu instructions to waste some time ; and synchronize the raster to start at the left ; of the screen. ; The &10 at the end select the BORDER color reg. ; It also produce a DJNZ instruction, B is loaded ; with &BD. So we put a &00 after the &10 to make ; the djnz jumps just after itself. colors db &4B ; ld c,e db &4A ; ld c,d db &53 ; ld d,e db &52 ; ld d,d db &4D ; ld c,l db &4C ; ld c,h db &55 ; ld d,l db &54 ; ld d,h db &10 ; djnz x db 0 ; djnz $+2 ; *** End of the Warning *** ; waste some more time push hl ; 4us push hl ; 4us push hl ; 4us pop hl ; 3us pop hl ; 3us ; Initialize loop exx ; Change the BORDER color several time per rasterline loop ; 64us loop pop ix ; <= waste 4us (and 2 bytes) to get a 64us loop ld hl,colors inc b outi inc b outi inc b outi inc b outi inc b outi inc b outi inc b outi inc b outi inc b outi ; loop forever jr loop