apple IIe: assembleur aussi lent en double hires !

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

cyril3d
Messages : 82
Inscription : 06 janv. 2013 15:25
Localisation : Lamorlaye, Oise
Contact :

apple IIe: assembleur aussi lent en double hires !

Message par cyril3d »

SAlut

je viens juste d'essayer de coder en assembleur l'équivalent de quelques lignes en double haute resolution pour Apple IIe avec la librairie ARLEQUIN (chat mauve)
Ce programme bascule en DHR et ecrit 15 lettres "X" en bas de l'ecran. J'ai attaché un JPG afin que vous voyez le resultat.
dhr.JPG
dhr.JPG (17.13 Kio) Consulté 2207 fois
LA grande surprise est que le programme ASM (ecrit et compilé avec MErlin8) est AUSSI LENT que sa version basic !!

Si vous n'avez pas le manuel ou le soft Arlequin , je vous le déposerai quelque part.

Mais avez vous une idée du pourquoi de cette lenteur?

merci

cyril



LE CODE BASIC EST:

10 & WINDOW(0,19,0,191,1): & BACK(4): & MODE(2)
15 & COL(0): & DISPLAY(2)
20 FOR B = 1 TO 15: & BACK(B): & WRITE("X"): NEXT
30 GET A$: & DISPLAY(0): END

ET LE CODE REDIGE SOUS MERLIN8 est:

* programme DHR
ORG $8000

WINDOW JSR $1FF0
DFB #$24
DW PCOORD
BACK JSR $1FF0
DFB #$0C
DW PBACK
MODE JSR $1FF0
DFB #$3C
DW PMODE
COL JSR $1FF0
DFB #$08
DW PCOL
DISPLAY JSR $1FF0
DFB #$6C
DW PDISP


LDX #$0F
BOUCLE STX PBACKX
BACKX JSR $1FF0
DFB #$0C
DW PBACKX
WRITEX JSR $1FF0
DFB $40
DW WRITELIST

DEX
BNE BOUCLE


RTS

PCOORD DW $00
DW $13
DW $00
DW $BF
DW $01
PBACK DW $04
PMODE DW $02
PCOL DW $00
PDISP DW $02
PBACKX DW $0F
WRITELIST DW ADPATH
ADPATH DB 1
ASC "X"
Daniel
Messages : 17403
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: apple IIe: assembleur aussi lent en double hires !

Message par Daniel »

cyril3d a écrit :Mais avez vous une idée du pourquoi de cette lenteur?
C'est quoi le JSR $1FF0 ?
Si c'est, comme je le pense, l'appel d'une fonction du BASIC (ou de n'importe quelle bibliothèque), cette fonction va toujours à la même vitesse. Qu'elle soit appelée en Basic ou en assembleur ne change rien.

Pour aller plus vite, ce n'est pas le programme appelant qu'il faut réécrire, c'est la routine en $1FF0.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: apple IIe: assembleur aussi lent en double hires !

Message par 6502man »

Si il est possible de télécharger le soft et la doc, ca serait très sympa :D


Pour afficher du text tu peut toujours écrire directement en RAM en assembleur ca seras très rapide !!!
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
cyril3d
Messages : 82
Inscription : 06 janv. 2013 15:25
Localisation : Lamorlaye, Oise
Contact :

Re: apple IIe: assembleur aussi lent en double hires !

Message par cyril3d »

Salut

$1ff0 est l'adresse de la routine ASM pour toutes les fonctions de la librairie ARLEQUIN.

la societe chat mauve avait developpé cette librairie en basic et asm ainsi la DHR devenait accessible facilement, mais en basic c'etait leeeeeeeeeeeeeeennnnnnnnnnnnt.

ma grande surprise est qu'écrire le programme en asm ne change rien comme vous le dites tous.

j'ai scanné le manuel arlequin en un PDF (16 Mo). dites moi ou je pourrais le mettre en libre telechargement.
le soft se telecharge sur ASIMOV sous le nom Chat Mauve.

merci

cyril
Répondre