More help please gentlemen.

Discussion about ZX80 / ZX81 Software
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: More help please gentlemen.

Post by zsolt »

Moggy,
Do you use this big buffer for something else, or just to count "1"-s?
In the latter case you don't need buffer, just this counter:

Code: Select all

	; 2 REM
	.org 16620	; 16514+106

	ld hl,16514	; 1 REM (100 bytes)
	ld bc,0		; the counter
	ld d,100	; 100 bytes to count
nxt_byte
	ld a,(hl)	; a byte
	ld e,8		; 8 bits in a byte
next_bit
	rla		; test bit 7
	jr nc,equ_zero	; skip if zero

	inc bc		; else set "1"
equ_zero
	dec e		; set bit counter
	jr nz,next_bit	; last bit in byte?

	inc hl		; set byte pointer
	dec d		; set byte counter
	jr nz,nxt_byte	; back until done

	ret		; 
.end
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: More help please gentlemen.

Post by Moggy »

ez remek.! :ugeek:


The only reason I used the big buffer is because I am not smart enough to do it any other way. :oops:


This solution is perfect so my grateful thanks to you Zsolt. :mrgreen:
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: More help please gentlemen.

Post by zsolt »

Moggy wrote: Tue Nov 10, 2020 10:30 am ez remek.!
:D
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
Post Reply