home *** CD-ROM | disk | FTP | other *** search
- ;Soft Scroll Routine by Philip Graf
- #include TI-85.H
- .org 0
-
- .db "Soft Scroll by PhG",0
-
- keyloop:
- ld a,%1111110
- out (1),a
- in a,(1)
- bit 0,a
- push af
- jr z,scrolldown
- kd: pop af
- bit 1,a
- push af
- JUMP_Z(scrolleft)
- kl: pop af
- bit 2,a
- push af
- JUMP_Z(scrollright)
- kr: pop af
- bit 3,a
- jr z,scrollup
- ku: ld a,%111111
- out (1),a
- in a,(1)
- bit 5,a
- CALL_Z(invert);
- bit 6,a
- jr nz,keyloop
- quit: call GET_KEY
- ret
-
- ;copygraph: ;copys videomem to buffer
- ; ld hl,VIDEO_MEM
- ; ld de,GRAPH_MEM
- ; ld bc,1024
- ; ldir
- ; ret
-
- scrolldown:
- ld hl,VIDEO_MEM+1008
- ld de,GRAPH_MEM
- ld bc,16
- ldir
- ld hl,VIDEO_MEM+1007
- ld de,VIDEO_MEM+1023
- ld bc,1008
- lddr
- ld hl,GRAPH_MEM
- ld de,VIDEO_MEM
- ld bc,16
- ldir
- jr kd
-
- scrollup:
- ld hl,VIDEO_MEM
- ld de,GRAPH_MEM
- ld bc,16
- ldir
- ld hl,VIDEO_MEM+16
- ld de,VIDEO_MEM
- ld bc,1008
- ldir
- ld hl,GRAPH_MEM
- ld de,VIDEO_MEM+1008
- ld bc,16
- ldir
- jr ku
-
- scrolleft: ;if you know a faster routine let me know...
- ld hl,VIDEO_MEM
- ld b,64
- sl4: push bc
- ld b,15
- bit 7,(hl)
- push af
- sl2: sla (hl)
- inc hl
- bit 7,(hl)
- jr z,sl1
- dec hl
- set 0,(hl)
- inc hl
- sl1: djnz sl2
- sla (hl)
- pop af
- jr z,sl3
- set 0,(hl)
- sl3: inc hl
- pop bc
- djnz sl4
- JUMP_(kl)
-
- scrollright:
- ld hl,VIDEO_MEM+1023
- ld b,64
- sr4: push bc
- ld b,15
- bit 0,(hl)
- push af
- sr2: srl (hl)
- dec hl
- bit 0,(hl)
- jr z,sr1
- inc hl
- set 7,(hl)
- dec hl
- sr1: djnz sr2
- srl (hl)
- pop af
- jr z,sr3
- set 7,(hl)
- sr3: dec hl
- pop bc
- djnz sr4
- JUMP_(kr)
-
- invert: ;invert screen
- push af
- ld hl,$FC00 ;video memory
- ld bc,1024 ;#of bytes to invert
- loop: ld a,(hl)
- xor $FF ;invert byte
- ld (hl),a
- inc hl ;and the next byte..
- dec bc
- ld a,b ;#of bytes to invert = 0 ?
- or c
- jr nz,loop
- pop af
- ret
-
- .END
-