Derniers sujets
» Annonces insolites
Aujourd'hui à 11:12 par Dbug

» Bus d'extension - accès à la RAM
Hier à 20:48 par fred72

» Oric High Score Challenge 2019 : c'est parti
Hier à 11:29 par Dom50

» L'ile oubliée
Jeu 21 Mar 2019 - 20:36 par Symoon

» Des propositions graphiques pour Oricutron
Jeu 21 Mar 2019 - 20:31 par laurentd75

» opération compliquée
Lun 18 Mar 2019 - 22:58 par laurentd75

» Novalight
Dim 17 Mar 2019 - 21:33 par Symoon

» Route en effet 3d
Dim 17 Mar 2019 - 18:37 par Dbug

» musique en c
Ven 15 Mar 2019 - 14:54 par laurentd75

»  Oric Atmos problème de sortie vidéo
Ven 15 Mar 2019 - 14:48 par kenneth

» 65c816 et dédicace à Fabrice F :)
Jeu 14 Mar 2019 - 11:20 par Jede

» cherche quelqu'un(e)(s) avec qui retravailler la rom basic 16 kos
Jeu 14 Mar 2019 - 10:45 par Jede

» Aux couleurs de l'Atmos
Jeu 14 Mar 2019 - 3:04 par Voyageur

» ORIC-1 sur LE BON COIN
Lun 11 Mar 2019 - 23:20 par kenneth

» Cumulus
Lun 11 Mar 2019 - 17:01 par Jede

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 176 membres enregistrés
L'utilisateur enregistré le plus récent est didier7854

Nos membres ont posté un total de 6923 messages dans 594 sujets
Portail ORIC




Bugs de la librairie C OSDK

Poster un nouveau sujet   Répondre au sujet

Aller en bas

Bugs de la librairie C OSDK

Message par drpsy le Mar 25 Déc 2018 - 20:51

Hello,
je créée ce topic pour recenser divers bugs de la Lib OSDK.

J'ai voulu essayer la fonction memset pour initialiser une zone mémoire.
Dans mon programme, je l'appelle à répétition, ce qui m'a fait je pense trouver un bug potentiel de dépassement de la pile :
je n'ai pas tout testé, mais si le CPU passe bien dans la branche du programme qui ne fait pas le PLA suite au PHA, ben... CQFD.


_memset
ldy #0          ; get buffer pointer
lda (sp),y
sta op1
sta patch_memsetret_x+1 ; keep return value for later
iny
lda (sp),y
sta op1+1
sta patch_memsetret_a+1 ; keep return value for later

iny             ; get character to fill buffer with
lda (sp),y
pha            ; stack it -- we'll be needing it later

ldy #4          ; get the count of bytes to set
sec
lda #0
sbc (sp),y
sta tmp
tax
iny
cmp #1
lda (sp),y
adc #0
tay
beq memsetret  ; I don't have a clue what just happened here!
Note de Drpsy : c'est là qu'on saute la portion de code suivante où il y a le PLA
| sec             ; adjust the self-modifying part of the routine.
| lda op1
| sbc tmp
| sta memsetloop+1
| lda op1+1
| sbc #0
| sta memsetloop+2
|
| pla             ; recover the byte value from the stack
|
| memsetloop              ; main loop
|    sta $2211,x     ; set a byte
|    inx
|    bne memsetloop
|    inc memsetloop+2
| dey
|    bne memsetloop
|
->memsetret
patch_memsetret_x
   ldx #1          ; return buffer
patch_memsetret_a
lda #3
rts

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
drpsy
drpsy

Messages : 195
Date d'inscription : 20/07/2014
Age : 47
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Re: Bugs de la librairie C OSDK

Message par didierv le Mer 26 Déc 2018 - 7:29

jamais testée ... bien vu.

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 668
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum