樫樹の広場



1行掲示板です。情報提供などありましたらよろしくお願いします。

特に、記事の誤り訂正などは「ほかの方も読める記録が残る」ので、掲示板を推奨します。


長い内容など、メールで連絡を取りたい方は以下のアドレスへ。


各ページの下にも1行掲示板がついていますが、このページではそれら全てを集めて表示しています。

特定ページへの内容への意見は、そちらのページで書いていただけるとありがたいです。


また、日付にリンクがある場合は、そのリンクを辿ることで元ページを見ることが出来ます。

(日付にリンクがないものは、このページで書き込まれた意見です)


作者が怠惰なので、反応は遅いかもしれません。


申し訳ありませんが、現在意見投稿をできない状態にしています

【名無し】 Z80のひたすら引き算版ですが少しの書き換えで速度が改善します。LD HL, 8086 ; 10 (11) LD DE, DECIMAL ; 10 (11) LD A, 30h ; 7 (8) LD BC, -10000 ; 10 (11) ADD HL, BC ; 11 (12) JP C, L10000 ; 10 (11) SBC HL, BC ; 15 (17) LD BC, -1000 ; 10 (11) ADD HL, BC ; 11 (12) JR C, L1000 ; 10 (11) SBC HL, BC ; 15 (17) LD BC, -100 ; 10 (11) ADD HL, BC ; 11 (12) JR C, L100 ; 10 (11) SBC HL, BC ; 15 (17) LD A, L ; 4 (5) CP 10 ; 7 (8) JR NC, L10 ; 12 / 7 (13 / 8) ADD A, 30h ; 7 (8) EX DE, HL ; 4 (5) JR LAST ; 10 (11) SUB16: INC A ; 4 (5) ADD HL, BC ; 11 (12) JP C, SUB16 ; 10 (11) SBC HL, BC ; 15 (17) LD (DE), A ; 7 (8) INC DE ; 6 (7) RET ; 10 (11) L10000: CALL SUB16 ; 17 (18) LD A, 30h-1 ; 7 (8) LD BC, -1000 ; 10 (11) L1000: CALL SUB16 ; 17 (18) LD A, 30h-1 ; 7 (8) LD BC, -100 ; 10 (11) L100: CALL SUB16 ; 17 (18) LD A, L ; 4 (5) L10: EX DE, HL ; 4 (5) LD BC, (30h-1)*256 + 10 ; 10 (11) LOOP: INC B ; 4 (5) SUB C ; 4 (5) JP NC, LOOP ; 10 (11) ADD A, 10 + 30h ; 7 (8) LD (HL), B ; 7 (8) INC HL ; 6 (7) LAST: LD (HL), A ; 7 (8) INC HL ; 6 (7) LD (HL), 00h ; 10 (11) で718クロックになると思います。 (2014-11-30 19:29:16)

【名無し】 Z80のひたすら引き算版について、JP LAST ; 10 (11) の前に EX DE, HL ; 4 (5) が必要な筈です。 (2014-11-30 13:36:53)

【名無し】 PADHISTへの「記録方式は自由」ということを利用して108クロックになりました。 LD HL,(PAD_OLD) ; 16 (17) LD A,L ; 4 (5) XOR H ; 4 (5) AND H ; 4 (5) LD L,A ; 4 (5) LD (PAD_NEW),HL ; 16 (17) JR Z,END ; 12 / 7 (13 / 8) LD HL,PADHIST ; 10 (11) BUFPTREQU *-2 LD (HL),A ; 7 (8) LD A,L ; 4 (5) ADD A,16 ; 7 (8) LD (BUFPTR),A ; 13 (14) END: PADHIST:DS 256 PAD_NEW:DB 0 PAD_OLD:DB 0 GAMEPAD:DB 0  (2014-11-29 23:36:03)

【名無し】 Z80の変数共用版について、nとn+1のどちらかは偶数であり、偶数の側は予め/2しても計算結果に影響はないことを利用して LD HL,100 /2*256 とすると最後の2命令が削れるので20クロック減らせます。 (2014-11-28 16:02:32)

【名無し】 2014-11-28 06:48:40 の投稿取り消し。理解しました。常にキャリーは発生しないのですね。 (2014-11-28 06:58:44)

【名無し】 「最初の処理を展開」の変更部分は LDA #100 ;2 STA >3 ;3 ASL A ;2 STA >0 ;3 LDX #7 ;2 LDA #0 ;2 BCC LOOP ;3/2 ADC >3 ;3 BCC LOOP ;3 INC >0 ; 5 BCS LOOP ;3 ADD: では? (2014-11-28 06:48:40)

【名無し】 Z80変数共用とさらに引き放し法版です。LD HL,12345 ; 10 (11);LD C,10 ; 7 (8);LD B,16 ; 7 (8);XOR A ; 4 (5);ADD HL,HL ; 11 (12);PLUS:;RLA ; 4 (5);SUB C ; 4 (5);JR C,MINUS_AFTER ; 12 / 7 (13 / 8);PLUS_AFTER:;ADD HL,HL ; 11 (12);INC L ; 4 (5);DJNZ PLUS ; 13 / 8 (14 / 9);JP END ; 10 (11);MINUS:;RLA ; 4 (5);ADD A,C ; 4 (5);JR C,PLUS_AFTER ; 12 / 7 (13 / 8);MINUS_AFTER:;ADD HL,HL ; 11 (12);DJNZ MINUS ; 13 / 8 (14 / 9);ADD A,C ; 4 (5);END: (11+8+8+5+12)+(5+5+8+12+14)*11+(5+5+8+12+5+14)*5+8*5-5+5=813クロックになると思います。 (2014-11-26 21:20:03)

【名無し】 あとZ80と6502の両方についてですが、除数が引けるかの判定を8bitで行うアルゴリズムでは除数が129を超えると正しい答えを出さない場合があります。例) 256/129 (2014-11-26 20:48:39)

【名無し】 Z80の変数共用版のクロック数は (11+8+8+5)+(12+5+5+13+14)*11+(12+5+5+8+5+5+14)*5-5=836 では? (2014-11-26 20:37:15)

【名無し】 2箇所ある繰り返しのジャンプ命令を絶対ジャンプにするだけでいくらか高速化されます (2014-11-26 14:00:13)

←最近 21 22 23 24 25 26 27 28 29 30 31 過去→

戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -