Цитата Сообщение от MM Посмотреть сообщение
262 т. рег-рег ( т.е. скорость выборки из памяти ) - быстродействие БК11/М.
А команды ветвления вообще отрабатываюся за 2 процессорных цикла ( 2 шт. микрокоманды ).

А 6502 небось 1 лимон рег-рег ?
не надо рассматривать скорость так
это тупо

вот вам процедура рисования линии
на других процах она будет смотреться и работать не так
я не говорю про математику с их 3 мя регистрами по 8 бит

Код:
	.LOIN	\ -> &16C4
84 85                   STY &85	 \ YSAV	\ will be restored at the end
A9 80                   LDA #&80	\ set bit7
85 83                   STA &83		\ S
0A                      ASL A		\ = 0
85 90                   STA &90		\ SWAP
A5 36                   LDA &36		\ X2
E5 34                   SBC &34		\ X1
B0 05                   BCS LI1 	\ deltaX
49 FF                   EOR #&FF	\ else negate
69 01                   ADC #1
38                      SEC 
	.LI1	\ deltaX
85 1B                   STA &1B	 \ P	\ delta-X
A5 37                   LDA &37		\ Y2
E5 35                   SBC &35		\ Y1
B0 04                   BCS LI2		\ deltaY
49 FF                   EOR #&FF	\ else negate
69 01                   ADC #1
	.LI2	\ deltaY
85 81                   STA &81	 \ Q	\ delta-Y
C5 1B                   CMP &1B	 \ P 	\ is Q < P ?
90 03                   BCC STPX  	\ if yes will Step along x
4C 97 17                JMP &1797 \ STPY \ else will step along y
	.STPX	\ Step along x for line
A6 34                   LDX &34		\ X1
E4 36                   CPX &36		\ X2
90 11                   BCC LI3		\ is X1 < X2 ? hop down, order correct
C6 90                   DEC &90	\ SWAP	\ set flag
A5 36                   LDA &36		\ X2
85 34                   STA &34		\ X1
86 36                   STX &36		\ X2
AA                      TAX 
A5 37                   LDA &37		\ Y2
A4 35                   LDY &35		\ Y1
85 35                   STA &35		\ Y2
84 37                   STY &37		\ Y1
	.LI3	\ order correct    Xreg = X1
A5 35                   LDA &35		\ Y1
4A                      LSR A		\ build screen index
4A                      LSR A
4A                      LSR A
09 60                   ORA #&60	\ high byte of screen memory set to page &60+ Y1/8
85 08                   STA &08		\ SC+1
A5 35                   LDA &35		\ Y1
29 07                   AND #7		\ build lo
A8                      TAY 		\ row in char
8A                      TXA 		\ X1
29 F8                   AND #&F8	\ keep upper 5 bits
85 07                   STA &07	  \ SC  \ screen lo
8A                      TXA 		\ X1
29 07                   AND #7		\ keep lower 3 bits
AA                      TAX 		\ index mask
BD AF 16                LDA &16AF,X \ TWOS,X \ Mode 4 single pixel
85 82                   STA &82	   \ R	\ mask byte
A5 81                   LDA &81	   \ Q	\ delta-Y
A2 FE                   LDX #&FE	\ roll counter
86 81                   STX &81		\ Q
	.LIL1	\ roll Q
0A                      ASL A		\ highest bit of delta-Y
B0 04                   BCS LI4		\ steep
C5 1B                   CMP &1B	   \ P	\ delta-X
90 03                   BCC LI5		\ shallow
	.LI4	\ steep
E5 1B                   SBC &1B		\ P
38                      SEC 
	.LI5	\ shallow
26 81                   ROL &81	   \ Q	\ #&FE
B0 F2                   BCS LIL1 	\ loop Q, end with some low bits in Q
A6 1B                   LDX &1B		\ P
E8                      INX 		\ Xreg is width
A5 37                   LDA &37		\ Y2
E5 35                   SBC &35		\ Y1
B0 2C                   BCS DOWN	\ draw line to the right and down
A5 90                   LDA &90		\ SWAP
D0 07                   BNE LI6		\ else Xreg was correct after all, no need to update R
CA                      DEX 
	.LIL2	\ counter X width
A5 82                   LDA &82	   \ R	\ mask byte
51 07                   EOR (&07),Y	\ (SC),Y
91 07                   STA (&07),Y	\ (SC),Y
	.LI6	\ Xreg correct
46 82                   LSR &82	   \ R	\ mask byte
90 08                   BCC LI7   	\ else moving to next column to right. Bring carry in back
66 82                   ROR &82		\ R
A5 07                   LDA &07		\ SC
69 08                   ADC #8		\ next column
85 07                   STA &07		\ SC
	.LI7	\ S += Q. this is like an overflow monitor to update Y
A5 83                   LDA &83		\ S
65 81                   ADC &81	   \ Q	\ some low bits
85 83                   STA &83		\ S
90 07                   BCC LIC2	\ skip Y adjustment
88                      DEY 
10 04                   BPL LIC2	\ skip Y adjustment
C6 08                   DEC &08		\ SC+1
A0 07                   LDY #7
	.LIC2	\ skip Y adjustment
CA                      DEX 
D0 DC                   BNE LIL2	\ loop X width
A4 85                   LDY &85	 \ YSAV \ restore Yreg
60                      RTS