Autore Topic: Librerie In Assembly  (Letto 3524 volte)

mssmsoft

  • Utente
  • **
  • Post: 71
  • Gioco Preferito: microprose soccer
Librerie In Assembly
« il: 24 Novembre 2010, 11:48:50 »
 Premetto che "cerca" l'ho usato ma non ho trovato corrispondenze...

Comunque,
visto l'interesse suscitato dalla programmazione assembly sul C64, mi chiedevo se qualcuno dei nostri programmatori piu` esperti non potesse/volesse mettere a disposizione macro o funzioni assembly.
Mi spiego meglio: chi si avvicina all'assembly e` quasi sicuramente passato per il BASIC del C64.
Perche` non mettere a disposizione routine assembly che eseguono lo stesso compito dei comandi basic (mi vengono in mente ad esempio PRINT, LOAD, SAVE)?
Oppure routine/macro per la manipolazione dei numeri (interi e a virgola mobile) in assembly (le 4 operazioni, l'elevamento a potenza, la radice, etc)?

La richiesta e`anche (soprattutto) a titolo personale: stavo pensando di riscrivere in assembly il programma Shark (scritto in C) e ammetto che la cosa che mi risulta piu` complessa da "tradurre" e` la gestione dei numeri...

Cosa ne pensate?

 

MaD-][

  • Redazione
  • Neo-iscritto
  • ****
  • Post: 17
    • CSDb
  • Gioco Preferito: Neuromancer
Librerie In Assembly
« Risposta #1 il: 30 Novembre 2010, 23:06:23 »
 consiglio rapido
http://codebase64.org

i problemi sono sempre i soliti:
1) gli sviluppatori più "esperti" spesso sono restii a divulgare il loro codice
2) gli sviluppatori più "esperti" spesso non commentano il loro codice
3)  gli sviluppatori più "esperti" scrivono il loro codice in modo piuttosto "sporco" e difficilmente comprensibile ai neofiti
4) gli sviluppatori più "esperti" non vogliono perdere tempo a spiegare il loro codice ed il motivo per cui si utilizzano certe funzioni piuttosto che altre o opcode non documentati pittosto che altri documentati
5) ogni "sviluppatore esperto" utilizza i suoi tool e i suoi compilatori/assemblatori preferiti e non vuole perdere tempo a rispondere alle solite domande/pressioni per fare il porting per questo o quell'altro compilatore/assemblatore

per chi si avvicina una scelta vale l'altra:
- DASM
- CC65
- ACME
- TASS
- KICK ASSEMBLER
- oppure tool nativi (TASM, CBM-ASM... o cose più hardcore tipo l'utilizzo di un monitor fornito di serie con una cartuccia); ogni scelta comporta pro e contro, non esiste una vera soluzione definitiva.

ci sono un certo numero di esempi sparpagliati qui in giro per il forum... bisogna solo perdere un po' di tempo  :doh:  e mettere insieme quello che interessa magari integrandolo con altro recuperato su csdb o codebase64.

La parte più "complicata" forse è di riuscire a convertire tra le varie sintassi dei molti compilatori/assemblatori disponibili.

 :specchio:  
K.I.S.S. Keep It Simple... Stupid!

MaD-][

  • Redazione
  • Neo-iscritto
  • ****
  • Post: 17
    • CSDb
  • Gioco Preferito: Neuromancer
Librerie In Assembly
« Risposta #2 il: 01 Dicembre 2010, 01:23:25 »
 
Citazione da: "mssmsoft"
Perche` non mettere a disposizione routine assembly che eseguono lo stesso compito dei comandi basic (mi vengono in mente ad esempio PRINT, LOAD, SAVE)?
... dimenticavo... per queste funzionalità basta avere una mappa delle routine del kernel del C64 che basta semplicemente richiamare:

alcune risorse sono le onnipresenti
http://ready64.org/libri/scheda_libro.php?id_libro=119
http://unusedino.de/ec64/technical/aay/c64/
http://project64.c64.org/hw/c64prg10.zip
http://www.ffd2.com/fridge/docs/c64-diss.html
http://www.ffd2.com/fridge/docs/1541dis.html

se ti senti in vena di mettere insieme una libreria (completa e completamente documentata) accomodati!

...anche se qualcuno potrebbe "storcere il naso" forse ti converrebbe prendere confidenza con il KICK-ASSEMBLER che permette di eseguire le tediose operazioni ripetitive dell'ASM tramite il linguaggio di scripting integrato.

Se invece te la cavi con il C... beh.... http://www.cc65.org/ ti permette di avere un completo ambiente di cross-dev

;)

l8er!
K.I.S.S. Keep It Simple... Stupid!

Carcharodon

  • Neo-iscritto
  • *
  • Post: 12
  • Gioco Preferito: The last ninja
Librerie In Assembly
« Risposta #3 il: 06 Dicembre 2010, 15:06:01 »
 Mi permetto un piccolo suggerimento, visto che accennavi ai numeri in virgola mibile e la riscrittura di un videogioco: quando la velocità è fondamentale non si fanno mai 'veri' calcoli ma dove possibile si usano tabelle di look-up (valori precalcolati e arrotondati, rigorosamente interi) da recuperare dalla memoria con un semplice offset del registro (tipico esempio le funzioni periodiche)  :P  

"There are only 10 types of people in the world: Those who understand binary, and those who don't"