наваждение

 


В преддверии 1 мая на многих что-то нашло - начали кодить. Занимался кодом и я - готовил некоторый проект. Например, хотелось нарисовать фигуру для демоэффекта:

device zxspectrum48
        ORG #6000
begin
 ld bc,#8000
gens:
; push bc
 ld a,c:or a:jp p,noneg1
 neg
noneg1:
 sub 64
 jr nc,noneg2
 neg
noneg2:
; ld c,a
; ld b,a
 
  ld hl,0,d,h,e,a
mul:
 add hl,de
 dec a:jr nz,mul;djnz mul
 
; pop bc
 add hl,hl
; sub hl,de
 ld a,h
 sub 32:neg
 bit 7,c:jr z,noneg3
 neg
noneg3:
 ld (bc),a
 inc c:jr nz,gens
;-test plot
; ld bc,#8000
;tp:
; ld a,(bc)
; push bc
; add a,40
; ld b,a
; CALL  8933;plot C=X,B=Y,5C7D=COORDS
; pop bc
; inc c:jr nz,tp
; jr $
ld b,0
ylp:
ld c,0
xlp:
ld h,$80
ld l,c
ld a,(hl)
add a,32
ld e,a
ld a,c
add a,64
ld l,a
ld a,(hl)
add a,32
ld d,a
;test
ld a,d
cp e
jr c,noswap;E<D cy=0
ld a,d
ld d,e
ld e,a
noswap:
;; ld a,c
;; cp 160
;; jr nc,nxtp
ld a,b
cp d
jr c,nxtp
cp e
jr nc,nxtp
push bc
ld a,b
add a,64
ld b,a
CALL  8933;plot C=X,B=Y,5C7D=COORDS
pop bc
nxtp:
inc c
jr nz,xlp
inc b
bit 6,b
jr z,ylp
ld hl,$5800,de,$5803,bc,765:set 6,(hl):ldir
 jr $
end
display /d,end-begin
savesna "!void.sna",begin


А разминкой до этого была печать шестнадцатиричного числа

device zxspectrum48
        ORG #6000
begin
; jr $
ld a,$9F
call prhex
jr $
prhex: call pr
pr:
rrca
rrca
rrca
rrca
push af
and 15
cp 10
;2
ld c,a
sbc a,a
and $F9
;1
; jr nc,letter
; add a,$F9 ;Cy=1
;letter:
add a,55
add a,c
rst 16
pop af
ret
end
display /d,end-begin
savesna "!void.sna",begin

А потом я вспомнил, что есть папка "Этюды" для ассемблера

;8 bytes
cp 9+1
jr c,no7
add a,7
no7:
add a,"0"
;8 bytes
 and     0Fh
 add     a, 90h
 daa
 adc     a, 40h
 daa
;7 bytes
 and $0F
 cp 10
 sbc a,$69
 daa

Короче, заняться есть чем(:


Комментарии