Re: A86: can anyone tell me what this does?


[Prev][Next][Index][Thread]

Re: A86: can anyone tell me what this does?




 ld b,8                  ;times to loop
loop1:
 push bc              ; push bc (times to loop)
 ld hl,$FC00         ;point to video mem
 ld b,255               ;times to go through next loop
loop11:
 srl (hl)
 inc hl                   ;hl+1->hl
 djnz loop11        ;if b is not 0, decrement b and jump to loop11
 ld b,255               ;times to go through next loop
loop12:
 srl (hl)
 inc hl                    ; hl+1->hl
 djnz loop12         ; if b is not 0, decrement b and jump to loop12
 ld b,255                ;times to go through next loop
loop13:
 srl (hl)
 inc hl                     ; hl+1->hl
 djnz loop13          ; if b is not 0, decrement b and jump to loop13
 ld b,255                ;times to go through loop
loop14:
 srl (hl)
 inc hl                     ; hl+1->hl
 djnz loop14           ; if b is not 0, decrement b and jump to loop14
 ei                            ; enable interrupts
 ld b,6                     ; times to run through "del_loop"
del_loop:
 halt                        ; wait for interrupt to occur
 djnz del_loop       ; if b is not 0, decrement b and jump to del_loop (runs
6 times)
 di                            ; disable interrupts
 pop bc                   ;get number of times to loop (8 on first loop)
 djnz loop1             ;if b is not 0, decrement b and jump to loop1
(beginning)

This code is 44 bytes/247 cc's
This code really needs to be optimized... like this: =)

 ld b,8
 ld c,5
Start:
 push bc
 ld hl, $fc00
loop:
 ld b,255
 dec c
shift_loop:
 srl (hl)
 inc l
 djnz shift_loop
 ld b,c
 djnz loop
 ld b,6
 ld c,5
 ei
del_loop:
 halt
 djnz del_loop
 di
 pop bc
 djnz Start

I wrote this pretty fast, but I think it will probably work... 29 bytes/ 150
cc's
_________
JBrett
tbarwick@esn.net
ICQ UIN: 20607010
AIM: BarwickBJ
http://ww2.esn.net/~tbarwick
Plexus Publishing member
ACZ member