Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- device zxspectrum128
- ; Author: Serdjuk
- ; Assembly: sjasmplus
- spAddr: equ endProgram + 200
- sSP: equ endCode
- org #8000
- begin:
- ld sp,spAddr
- call sin
- ld a,#1d
- call setBank
- ld hl,#D800
- ld de,#D801
- ld bc,767
- ld (hl),5
- push bc
- ldir
- xor #0a
- call setBank
- pop bc
- ld (hl),5
- dec de
- dec de
- lddr
- repeat:
- ei
- halt
- autoBank:
- ld a,#17
- xor #0a
- ld (autoBank+1),a
- call setBank
- call showVerticalLines
- jr repeat
- ;----------------------------------------------------
- setBank:
- ld bc,#7ffd
- out (c),a
- ret
- ;----------------------------------------------------
- sin:
- ld hl,sinTable
- exx
- LD ix,bitTable
- LD DE,#61bc ;32700
- LD HL,#FF77 ;K*SIN
- GENSIN0
- LD A,D
- ld b,a
- ld c,1
- and 7
- moveBit:
- rlc c
- dec a
- jr nz,moveBit
- LD (IX),c
- ld a,b
- exx
- ld (hl),a
- inc l
- exx
- RLA
- SBC A,A
- LD B,A,C,D
- adc HL,BC ;tweaking
- RR C
- RRCA
- RR C
- ADD HL,BC
- LD B,H,A,L
- ex DE,HL
- SRA B
- RRA
- SRA B
- RRA
- SRA B
- RRA
- LD C,A
- ;OR A
- SBC HL,BC
- ex DE,HL
- INC LX
- jr nz,GENSIN0
- ret
- showVerticalLines:
- ld hl,sinTable
- inc l
- ld (showVerticalLines+1),hl
- ld l,(hl)
- dec h
- ld (sSP),sp
- ld sp,#C000+#1800
- ld e,3
- full:
- ld a,l
- add 64-8
- ld l,a
- ld d,8
- part:
- ld a,l
- sub 63
- ld l,a
- ld a,8
- line:
- ex af,af
- ld a,l
- add 8
- ld l,a
- ex af,af
- ld b,(hl)
- ld c,b
- dup 16
- push bc
- edup
- dec a
- jr nz,line
- dec d
- jr nz,part
- dec e
- jr nz,full
- ld sp,(sSP)
- ret
- ;-----------------------------------------------------
- endCode:
- align 256
- bitTable:
- block 256,0
- sinTable:
- block 256,0
- endProgram: equ $
- display "begin address: ",/A, begin
- display "code length: ",/A, endCode-begin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement