From f9d30512b115fdb11349d7e25a6e13b27d9bf0e5 Mon Sep 17 00:00:00 2001 From: ketmar Date: Mon, 29 Jun 2020 19:00:48 +0000 Subject: [PATCH] winsys: arrow cosmetix FossilOrigin-Name: 0c7dc5800474edd05025f20350802040957ec06e4beb95e0b331cfc1662021a4 --- libs/winsys/winarrow.zas | 290 ++++++++++++++++++++++++----------------------- 1 file changed, 148 insertions(+), 142 deletions(-) diff --git a/libs/winsys/winarrow.zas b/libs/winsys/winarrow.zas index 403b0b7..a28e93d 100644 --- a/libs/winsys/winarrow.zas +++ b/libs/winsys/winarrow.zas @@ -50,49 +50,53 @@ saveBufAddr: ;; out: ;; hl: dead Init: - ld hl,(saveBufAddr) - ld (hl),0 + ld hl,(saveBufAddr) + ld (hl),0 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ×ÏÓÓÔÁÎÏ×ÉÍ ÜËÒÁÎ, ÚÁÇÁÖÅÎÙÊ ÓÔÒÅÌËÏÊ +;; ÜÔÁ ÆÉÇÎÑ ÍÏÖÅÔ ÚÁÐÉÓÁÔØ Ä×Á ÌÉÛÎÉÈ ÂÁÊÔÁ × ÁÔÒÉÂÕÔÙ +;; ÎÅ ÓÔÒÁÛÎÏ, ÎÏ ÓÔÏÉÔ ÐÏÍÎÉÔØ ;; out: ;; af,bc,de,hl: ÇÁÄÏÓÔØ Rest: -@restVDestVar: equ $+1 - ld de,#0000 - ld a,d - or a - ret z - ld hl,0 - ld (restVDestVar),hl - ld hl,(saveBufAddr) - ld a,(hl) ; ÜÔÏ ×ÙÓÏÔÁ - or a - ret z - ld b,a - inc hl - ld c,#FF + ld de,#0000 +@restVDestVar: equ $-2 + ld a,d + or a + ret z + ld hl,0 + ld (restVDestVar),hl + ld hl,(saveBufAddr) + ld a,(hl) ; ÜÔÏ ×ÙÓÏÔÁ + or a + ret z + ld b,a + inc hl + ld c,#FF .loop: - ldi:ldi:ldi - dec de:dec de:dec de + dup 3 + ldi + edup + dec de,de,de ; ÏÄÎÁ ÐÉËÓÅÌ-ÓÔÒÏËÁ ×ÎÉÚ (de) - inc d - ld a,d - and #07 - jp nz,.downDEok - ld a,e - sub #E0 - ld e,a - sbc a,a - and #F8 - add a,d - cp #58 - ret nc ; ÚÁ ÜËÒÁÎ ÎÅ ÍÕÓÏÒÉÍ - ld d,a + inc d + ld a,d + and #07 + jp nz,.downDEok + ld a,e + sub #E0 + ld e,a + sbc a,a + and #F8 + add a,d + cp #58 + ret nc ; ÚÁ ÜËÒÁÎ ÎÅ ÍÕÓÏÒÉÍ + ld d,a .downDEok: - djnz .loop + djnz .loop ret @@ -102,159 +106,161 @@ Rest: ;; af,af',bc,de,hl,bc',de': ÇÁÄÏÓÔØ Draw: ; ÓÎÁÞÁÌÁ ÓÏÈÒÁÎÑÅÍ ÜËÒÁÎ -@sprAddr: equ $+1 - ld hl,arrow_spr_0 ; ÔÉÐÁ ÓÐÒÁÊÔ ÓÔÒÅÌËÉ - ld b,(hl) ; ×ÙÓÏÔÁ ÓÐÒÁÊÔÁ - inc hl - ld de,(curX) ; ËÏÏÒÄÉÎÁÔÙ + ld hl,arrow_spr_0 ; ÔÉÐÁ ÓÐÒÁÊÔ ÓÔÒÅÌËÉ +@sprAddr: equ $-2 + ld b,(hl) ; ×ÙÓÏÔÁ ÓÐÒÁÊÔÁ + inc hl + ld de,(curX) ; ËÏÏÒÄÉÎÁÔÙ ;call WinMisc.ScrAddrDEH - ld a,d - cp 192 - jp nc,.badycoord - and a + ld a,d + cp 192 + jp nc,.badycoord + and a rra scf rra - and a + and a rra - xor d - and #F8 - xor d - ld h,a - ld a,e + xor d + and #F8 + xor d + ld h,a + ld a,e rlca rlca rlca - xor d - and #C7 - xor d + xor d + and #C7 + xor d rlca rlca - ld l,a - ld a,e - and #07 + ld l,a + ld a,e + and #07 ; - ld (restVDestVar),hl - ld (.drawVShiftVar),a - ex de,hl - ld hl,(saveBufAddr) - ld (hl),b - inc hl - ex de,hl - ld c,#ff + ld (restVDestVar),hl + ld (.drawVShiftVar),a + ex de,hl + ld hl,(saveBufAddr) + ld (hl),b + inc hl + ex de,hl + ld c,#ff .saveLoop: - ldi:ldi:ldi - dec hl:dec hl:dec hl + dup 3 + ldi + edup + dec hl,hl,hl ;call WinMisc.DownHL - inc h - ld a,h - and #07 - jp nz,.downHLok - ld a,l - sub #E0 - ld l,a - sbc a,a - and #F8 - add a,h - ld h,a + inc h + ld a,h + and #07 + jp nz,.downHLok + ld a,l + sub #E0 + ld l,a + sbc a,a + and #F8 + add a,h + ld h,a .downHLok: ; - djnz .saveLoop + djnz .saveLoop ; ×Ó£, ÓÏÈÒÁÎÉÌÉ - ld hl,(sprAddr) ; ÔÉÐÁ ÓÐÒÁÊÔ ÓÔÒÅÌËÉ - ld b,(hl) ; ×ÙÓÏÔÁ ÓÐÒÁÊÔÁ - inc hl + ld hl,(sprAddr) ; ÔÉÐÁ ÓÐÒÁÊÔ ÓÔÒÅÌËÉ + ld b,(hl) ; ×ÙÓÏÔÁ ÓÐÒÁÊÔÁ + inc hl ; ÇÏÔÏ×ÉÍ É ÒÉÓÕÅÍ ÓÔÒÅÌËÕ ; ÉÓÐÏÌØÚÕÅÍ ÓÔÜË ÄÌÑ ÓËÏÒÏÓÔÉ, ÔÁË ÞÔÏ ÌÕÞÛÅ ÂÙÔØ ; Õ×ÅÒÅÎÎÙÍ, ÞÔÏ ÐÒÅÒÙ×ÁÎÉÊ ÎÅ ÂÕÄÅÔ - ld (.oldSPVar),sp - ld sp,hl - ld hl,(restVDestVar) - ld a,b + ld (.oldSPVar),sp + ld sp,hl + ld hl,(restVDestVar) + ld a,b .lineLoop: - ex af,af' - pop de - ld b,#00 + ex af,af' + pop de + ld b,#00 exx - pop de - ld b,#ff + pop de + ld b,#ff exx -.drawVShiftVar: equ $+1 - ld a,#07 - or a - jp z,.skipShift + ld a,#07 +.drawVShiftVar: equ $-1 + or a + jp z,.skipShift ; ÓÄ×ÉÇÁÅÍ ÓÔÒÏËÕ ÓÐÒÁÊÔÁ É ÍÁÓËÉ .shiftLoop: - srl e - rr d - rr b + srl e + rr d + rr b exx scf - rr e - rr d - rr b + rr e + rr d + rr b exx - dec a - jp nz,.shiftLoop + dec a + jp nz,.shiftLoop ; ÆÉÇÁÞÉÍ ÎÁ ÜËÒÁÎ .skipShift: - ld a,l - ld (.drawVXVar),a - or #E0 - ld c,a - ld a,(hl) + ld a,l + ld (.drawVXVar),a + or #E0 + ld c,a + ld a,(hl) exx - and e + and e exx - xor e - ld (hl),a - inc l - inc c - jp z,.skipX - ld a,(hl) + xor e + ld (hl),a + inc l + inc c + jp z,.skipX + ld a,(hl) exx - and d + and d exx - xor d - ld (hl),a - inc l - inc c - jp z,.skipX - ld a,(hl) + xor d + ld (hl),a + inc l + inc c + jp z,.skipX + ld a,(hl) exx - and b + and b exx - xor b - ld (hl),a + xor b + ld (hl),a .skipX: -.drawVXVar: equ $+1 ld l,#2C +.drawVXVar: equ $-1 ;call WinMisc.DownHL - inc h - ld a,h - and #07 - jp nz,.downHLok1 - ld a,l - sub #E0 - ld l,a - sbc a,a - and #F8 - add a,h - cp #58 - jp nc,.done - ld h,a + inc h + ld a,h + and #07 + jp nz,.downHLok1 + ld a,l + sub #E0 + ld l,a + sbc a,a + and #F8 + add a,h + cp #58 + jp nc,.done ; ÚÁ ÜËÒÁÎ ÎÅ ÍÕÓÏÒÉÍ + ld h,a .downHLok1: - ex af,af' - dec a - jp nz,.lineLoop + ex af,af' + dec a + jp nz,.lineLoop ; ÏÔÓÔÒÅÌÑÌÉÓØ! .done: -.oldSPVar: equ $+1 - ld sp,0 + ld sp,0 +.oldSPVar: equ $-2 ret .badycoord: - ld hl,0 - ld (restVDestVar),hl + ld hl,0 + ld (restVDestVar),hl ret -- 2.11.4.GIT