Scroll for SCR1 or SCR2 with character set repeated ====================================================== buf [768] = buffer in RAM of 768 bytes aux [ 32] = buffer with new 32(vert) or 24(hor) chars ; *** FIRST PART (MOVING) *** UP: hl = buf[ 32] de = buf[ 0] bc = 736 ldir DN: hl = buf[735] de = buf[767] bc = 736 lddr LT: hl = buf[ 1] de = buf[ 0] bc = 767 ldir RT: hl = buf[766] de = buf[767] bc = 767 lddr ; *** SECOND PART (FILLING) *** UP: hl = aux de = buf[736] bc = 32 ldir DN: hl = aux de = buf[ 0] bc = 32 ldir LT: hl = aux de = buf[ 31] bc = 24 loop: ldi RT: hl = aux de = buf[ 0] bc = 24 loop: ldi LT/RT: ; Extra code por LT or RT loop: ldi ld a,e add a,31 ld e,a jp nc,de_ok inc d de_ok: ld a,c or a jp nz,loop ; *** THIRD PART (SHOWING) *** in a,(99h) ; clear F flag waitf: in a,(99h) and 080h jr z,waitf ; wait scan end xor a out (99h),a ld a,18h + 40h out (99h),a hl = buf bc = 098h 3*otir ; *** FOR DIAGONAL SCROLL *** Execute 1st/2nd parts for first direction Execute 1st/2nd parts for second direction Execute 3rd part