Zitat
Original von super_castle
screenram = $0400
lda #0
sta screenram
Hier schreibst Du eine 0 nach $0400 (dez. 1024) = @
Zitat
Hier ein "E" nach $0401 (dez. 1025)
Zitat
lda Bitte melde dich an, um diesen Link zu sehen.
ldy #0
sta screenram,y
Hier ein Pik-Zeichen nach $0400 (dez. 1024)
Zitat
an der stelle 0500 im bildschirm soll dann das zeichen 65 stehen, ich will den screenram beliebig mit der zeichenposition bestücken.
lda #65
sta $0500
oder wenn Du eine Schleife moechtest :
ldx #00 ; zaehler fuer 256 Byte
ldy #00 ; zaehler fuer 4 Durchlaeufe
l0 lda tabelle,x ; Zeichen holen
l1 sta $0400,x ; und auf den Bildschirm schreiben
inx ; +1
bne l0 ; keine 256 Zeichen, dann wiederhole an l0
iny ; 256 Zeichen erreicht , Durchlaufzaehler erhoehen
inc l0+2
inc l1+2 ; hibytes erhoehen
cpy #4 ; schon 4x , also 256+4 = 1024 Zeichen ?
bne l0 ; nein nochmal 256 Byte kopieren
rts ; zurueck in den Basic-Interpreter
tabelle:
!byte 1,2,3,4,5, ... wahlfreie 1024 Byte
Alles anzeigen
Das im Codefenster sind 2 verschachtelte (ungeteste) Schleifen. Die aeussere kopiert die innere (256 Byte) vier mal.
l0 und l1 sind Labels. Wenn nach dem ersten Durchlauf $0400+256Byte erreicht sind, muss das Hibyte erhoeht werden. Also aus $0400 wird $0500. Das geschieht hier durch sogenannten selbstmodifizierenden Code, da sich das Programm selbst veraendert.
L1 STA $0400,X steht in der Bytefolge : Opcode, LowByte, Hibyte im Speicher : $9d $00 $04 .
Bei inc (increment) L1+2 wird die $04 auf $05 erhoeht. That's all.
Alle Klarheiten beseitigt ? 
Michael
Edit: Huch, RTS vergessen ..