Su comp.sys.cbm c'e' il solito Rick Balkins (Wildstar) che sbrocca sul progetto CSDoom, dice di essere un programmatore quando non sa manco cosa servono LDA STA e i ";" nei sorgenti asm. L'hanno sfidato a scrivere un programma in asm, senza copiarlo - come ha gia' fatto dal sito di Richard Bayliss. :D
Ad ogni modo, si tratta di scrivere un prg che riordini un array di 256 bytes.
Questo e' quello che sono riuscito a fare.
; sort a 256 byte array at $c100
; challenge set up by MagerValp to Wildstar on COMP.SYS.CBM :D
; Message-ID: <p14hdo4fak2.fsf@panini.cling.gu.se>
; thread "wildstar.hollosite.com - request to be shutdown."
; iAN CooG/HokutoForce
org $c000
array = $c100
FIRST = $fb
SECOND = $fd
ldy #1
sty SECOND ; $C101
dey
sty FIRST ; $C100
lda #>array
sta FIRST+1
sta SECOND+1
loop
lda (SECOND),y
cmp (FIRST),y
bcs noswap ; 2nd less than 1st , swap them
pha ;A = (SECOND)
lda (FIRST),y
sta (SECOND),y
pla
sta (FIRST),y
noswap
inc SECOND
bne loop ; checked all 2nd elements? 1st is the lower now
ldx FIRST ; now set next ptrs: $C101 and $C102
inx
stx FIRST
inx
beq exit ; if 2nd = $ff we can exit
stx SECOND
bne loop
exit
rts
Si puo' ottimizzare, o al limite ridurre?