TITLE HIGHREZ ; Ge programmet titeln HIGHREZ (ASS kommando) OBJ 2 ; Ge KODEN i komprimerat format " " ORG 56000 ; Startadress OUTSTR: EQU 000BH ; Adress BIOS f|r STINGOUT START: JP GO ; LET'S GO ; LABELS samt DATA TEXT1: DEFM "I THINK I BELIVE IN JESUS!!",0 TEXT2: DEFM "PRESS TO QUIT",0 CLS: DEFB 12 SGRAF: DEFM " " ; - DEFM "!!!!!" ; ! DEFM "!!!!!" ; ! DEFM "+++++" ; ! DEFM "jjjjj" ; > H\GUPPL\SNINGS BILD, fem kors irad DEFM "jjjjj" ; ! DEFM "jjjjj" ; ! DEFM "jjjjj" ; ! DEFM " " ; ! DEFM " " ; - GO: LD HL,CLS ; Pekar p} adressen som ska skrivas ut LD BC,1 ; Antal teken som ska skrivas ut CALL OUTSTR ; K|r BIOS i BASICen f|r att skriva ut en str{ng LD HL,TEXT1 ; Pekar p} TEXT1 LD DE,32512+9; Plats p} sk{rmen dvs RAD: 6 KOL: 9 CALL TINV ; Skriver ut TEXT1 med invers dvs blink LD HL,TEXT2 ; Pekar p} TEXT2 LD DE,32552+11 ; Plats p} sk{rmen dvs RAD:14 KOL:11 CALL TINV ; Skriver ut TEXT2 med invers dvs blink ; SVB: DI ; Sl}r av Interuthanteringen HALT ; V{nta p} VertikalBlank LD B,218 ; - WAITVB: NOP ; ! NOP ; ! Timeing av raster start. NOP ; ! Fr}n nedre h|grah|rnet NOP ; > till det |vrev{nstrah|ret. NOP ; ! Dvs tiden det tar f|r rastret NOP ; ! att avsluta och b|rja med en NOP ; ! ny frame. DJNZ WAITVB ; - LD DE,31744 ; Bildminnes Adress f|r RAD:0 CALL LOUT ; Kallar p} h|guppl|snings rutinen LD DE,31872 ; o.s.v RAD:1 CALL LOUT ; o.s.v LD DE,32000 CALL LOUT LD DE,32128 CALL LOUT LD DE,32256 CALL LOUT LD DE,32384 CALL LOUT LD DE,32512 CALL LOUT LD DE,32640 CALL LOUT LD DE,31784 CALL LOUT LD DE,31912 CALL LOUT LD DE,32040 CALL LOUT LD DE,32168 CALL LOUT LD DE,32296 CALL LOUT LD DE,32424 CALL LOUT LD DE,32552 CALL LOUT LD DE,32680 CALL LOUT LD DE,31824 CALL LOUT LD DE,31952 ; RAD:17 CALL LOUT EI ; Sl}r p} interupthanteringen IN A,(56) ; L{ser fr}n PORT:56 dvs tangentbortet CP 160 ; G{mf|r med 160 dvs RET Z ; Om skilnaden {r = 0. ]ter till BASICen. JP SVB ; Tja, vi k|r v{ll en g}ng till va' ; SUBRUTINER LOUT: LD HL,SGRAF ; Pekar p} H|guppl|sning minnet. PUSH DE ; Lagrar undan sk{rmpostionen i STACKEN. LD B,10 ; Laddar B med. D{rf|r det g}r 10 raster rader per tkn. LOUTL1: POP DE ; Lyfter upp sk{rmpostionen ur STACKEN. PUSH DE ; Lagrar undad sk{rmpostionen i STACKEN. PUSH BC ; Lagrar BC i STACKEN dvs raster r{nknan. LD BC,5 ; Laddar BC med 5. Dvs ett block om 5tkn ska flyttas. LDIR ; Z80ns lilla "blitter"-funktion flyttar blockett. NOP ; - NOP ; ! NOP ; > [nnu mera timeing. NOP ; ! NOP ; - POP BC ; Lyfter BC ur STACKEN dvs raster r{knan. DJNZ LOUTL1 ; Minskar B om inte Noll hoppa till LOUTL1 POP DE ; St{dar upp efter sig i stacken RET ; ]ter TINV: LD A,(HL) ; Laddar A med v{rdet p} adressen HL CP 0 ; G{mf|r med Noll RET Z ; ]ter om skilanden blev Noll ADD 128 ; Addera A med 128 dvs s{tt den 7 BITEN dvs BLINKA LD (DE),A ; Ladda adressen DE med A INC DE ; \ka DE INC HL ; \ka HL JR TINV ; N{st TKN. END START ; ASS Kommando f|r Auto-start av programmet.