Temat: Adresowanie pośrednie na stronie zerowej

Nie jestem programistą... to na wstępie.

Chciałbym przykładowo wykorzystać prockę:

adr .ds 2

COLOR = 1  ;kolor z zakresu 0,1

;Y = y, X = <x, C = >x
plot:
  lda lnadl,y
  sta adr
  lda lnadh,y
  sta adr+1

  ldy byteoff,x
  scc
  ldy byteoff+$100,x

  lda (adr),y
  and bytemask,x
  ora bytepxl,x
  sta (adr),y
  rts

lnadl:
:64 .byte <(screen+40*#)
lnadh:
:64 .byte >(screen+40*#)
byteoff:
:162 .byte #/8
bytemask:
:162 .byte ~(1 << (7 - (# & %111)))
bytepxl:
:162 .byte COLOR << (7 - (# & %111))

I tu problem z adresowaniem na stronie zerowej... no bo nie mam gdzie tego upchać.
Tu pytanie do hakerów kodu... jak zastąpić konstrukcję lda (adr),x tak by procka mogła rezydowac w pamięci poza zero page?

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."

2

Odp: Adresowanie pośrednie na stronie zerowej

Sama procedura może rezydować w dowolnym miejscu pamięci, tylko słowo adr powinno być ulokowane na ZPG.

hex, code and ror'n'rol!
"mężczyzna wydoił wielbłąda żoną"
"wcześniej miał na imię Heidi i był niemiecką kulomiotką"

3

Odp: Adresowanie pośrednie na stronie zerowej

i to się nazywa szybka pomoc :-) Dzięki.

te 2 bajty to jakoś  wygospodaruje.... btw, jak w obecności DOS-a n.p 2.5 sprawdzić które kom. są wolne?

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."

4

Odp: Adresowanie pośrednie na stronie zerowej

Jeśli nie używasz BASICa, to wolne są od adresu $80.

5

Odp: Adresowanie pośrednie na stronie zerowej

Podziękował Panowie. Pozwolę sobie jeszcze pomęczyć gdy coś mi nie fungnie :-)

A co oznacza taka konstrukcja w MADasm-ie?:

:64 .byte <(screen+40*#)

Ostatnio edytowany przez pancio.net (2019-08-11 07:56:04)

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."

6

Odp: Adresowanie pośrednie na stronie zerowej

Wygeneruj 64 bajty wg wzoru: młodszy bajt z screen+40*#, gdzie # przyjmuje kolejno wartości 0,1,2,...,63 dla poszczegôlnych bajtów. Czyli jest to tablica młodszych bajtów adresów linii ekranu o szerokości 40 bajtów.

https://www.youtube.com/watch?v=jofNR_WkoCE

7

Odp: Adresowanie pośrednie na stronie zerowej

Czyli

:320 .byte #/8

spowoduje utworzenie tablicy 320 bajtow odpowiednio: 0,0,0,0,0,0,0,0,1,1,1,1....,40,40,40,40,40,40,40,40?

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."

8

Odp: Adresowanie pośrednie na stronie zerowej

Prawie smile Wydaje mi się, że wyjdzie 320 bajtów w zakresie 0..39

0,0,0,0,0,0,0,0,1,1,1,1....,39,39,39,39,39,39,39,39.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

9

Odp: Adresowanie pośrednie na stronie zerowej

A tak... często miewam problem z określeniem wartości na brzegach zakresów :-)

Swoją drogą - pomysł z tablicami masek i kolorów jest świetny a przede wszystkim bardzo szybki... :-)

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."