1行掲示板です。情報提供などありましたらよろしくお願いします。
特に、記事の誤り訂正などは「ほかの方も読める記録が残る」ので、掲示板を推奨します。
長い内容など、メールで連絡を取りたい方は以下のアドレスへ。

各ページの下にも1行掲示板がついていますが、このページではそれら全てを集めて表示しています。
特定ページへの内容への意見は、そちらのページで書いていただけるとありがたいです。
また、日付にリンクがある場合は、そのリンクを辿ることで元ページを見ることが出来ます。
(日付にリンクがないものは、このページで書き込まれた意見です)
作者が怠惰なので、反応は遅いかもしれません。
申し訳ありませんが、現在意見投稿をできない状態にしています。
【名無し】 そういえば6502のBCDモードはファミコンでは使えませんが、そこはどうしますか? (2014-08-29 23:55:38)
【m.ukai】 テーブル参照+BCD命令を駆使したほうが短いっぽいです。LD BC,8086;LD DE,NTABLE;LD HL,DECIWK;DIV2LOOP:SRL B;RR C;JR NC,SKIP;LD A,(DE);ADD A,(HL);DAA;LD (HL),A;INC DE;INC HL;LD A,(DE);ADC A,(HL);DAA;LD (HL),A;INC DE;INC HL;LD A,(DE);ADC A,(HL);LD (HL),A;INC E;DEC L;DEC L;JP DIV2LOOP;SKIP:INC E;INC E;INC E;LD A,B;OR C;JP NZ DIV2LOOP;PACK2ZONE:LD DE,DECIMAL;INC L;INC L;LD B,30H;LD A,(HL);OR A;JR NZ,ST5;DEC L;RLD;JR NZ,ST4;RLD;JR NZ,ST3;DEC L;RLD;JR NZ,ST2;RLD;OR B;JP ST1;ST5:OR B;LD (DE),A;INC E;DEC L;RLD;ST4:OR B;LD (DE),A;INC E;RLD;ST3:OR B;LD (DE),A;INC E;DEC L;RLD;ST2:OR B;LD (DE),A;INC E;RLD;ST1:LD (DE),A;INC E;XOR A;LD (DE),A;NTABLE: DB 01H,00H,00H,02H,00H,00H,04H,00H,00H,08H,00H,00H,16H,00H,00H,32H,00H,00H,64H,00H,00H,28H,01H,00H,56H,02H,00H,12H,05H,00H,24H,10H,00H,48H,20H,00H,96H,40H,00H,92H,81H,00H,84H,63H,01H,68H,27H,03H;DECIWK; DB 00H,00H,00H;DECIMAL: DB 00H,00H,00H,00H,00H,00H; (2014-08-29 19:25:25)
【名無し】 「変数共用」に引き放し法を追加して、(25+22*8+23*8-1+5=)389クロック48バイト。LDA #>12345 ;2 ASL A ;2 STA >0 ;3 LDA #<12345 ;2 ROL A ;2 STA >1 ;3 LDX #10 ;2 DEX ;2 STX >2 ;3 LDA #0 ;2 LDX #16 ;2 PLUS: ROL A ;2 SBC >2 ;3 BCC MINUS_AFTER ;3/2 PLUS_AFTER: ROL >0 ;5 ROL >1 ;5 DEX ;2 BNE PLUS ;3/2 BEQ END ;3 MINUS: ROL A ;2 ADC >2 ;3 BCS PLUS_AFTER ;3/2 MINUS_AFTER: ROL >0 ;5 ROL >1 ;5 DEX ;2 BNE MINUS ;3/2 SEC ;2 ADC >2 ;3 END: (2014-08-28 21:49:03)
【名無し】 「分岐改良」の筆算1段目をさらに前処理にまとめて146クロック39バイト。前処理を以下に変更します 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 (ここからADD:) (2014-08-28 21:29:31)
【あきよし】 高速化できそうであれば、メモリ配置などの工夫は有りだと思います。実際、プログラムを高速化したい時はデータ構造から見直すこと多いですし。 (2014-08-28 16:16:53)
【あきよし】 ありがとうございます。内容更新しました。 (2014-08-28 16:14:24)
【m.ukai】 変数の格納アドレスを都合よくできれば(たとえばMX,MY は隣接するとか) 短くなりそうです。 (2014-08-27 18:11:27)
【m.ukai】 Z80、間接アドレス指定はレジスタ間接のほうが速いです。あとデータを 256B align させると、LD HL,GAMEPAD; LD B,(HL); DEC L;LD A,(HL);LD (HL),B;DEC L;LD (HL),A; XOR B; AND B; JR Z,END;DEC L;LD D,H;LD E,(HL);INC E; RES 4,E; LD (HL),E; ORG 100H PADHIST: DS 16; BUFPTR: DB 0; PAD_NEW: DB 0; PAD_OLD: DB 0; GAMEPAD: DB 0 で 120 clk かな。自己書き換えを許せばもう少し縮むかも。 (2014-08-27 17:59:56)
【あきよし】 高速化・バグ指摘ありがとうございます。ページ追記・修正しました。 (2014-08-24 10:45:13)
【あきよし】 美しいプログラムありがとうございます。記事を更新しました。 (2014-08-23 06:18:31)←最近 24 25 26 27 28 29 30 31 32 33 34 過去→