Derniers sujets
» musique en c
Aujourd'hui à 15:03 par laurentd75

» CEO-MAG 345 et VISU HIVERNALE
Aujourd'hui à 14:46 par laurentd75

» Moment musical....
Aujourd'hui à 7:34 par Ladywasky

» Comment mettre le son de l'oric atmos sur un TV ?
Hier à 13:33 par romu3

» The quest of the Holly Grail
Lun 14 Jan 2019 - 21:46 par didierv

» **NEW** EDGE for ORIC !!!!
Lun 14 Jan 2019 - 19:28 par Symoon

» Codage d'une carte déroulante en BASIC, C et Assembleur
Dim 13 Jan 2019 - 21:40 par laurentd75

» Combien de jeux d'aventure sur oric ?
Dim 13 Jan 2019 - 20:29 par romu3

» Nemausus: RPG du CEO
Dim 13 Jan 2019 - 8:01 par Voyageur

» Archives du site Oric Games
Ven 11 Jan 2019 - 23:01 par kenneth

» ~High Score Challenge ~
Ven 11 Jan 2019 - 20:46 par Dom50

» BASIC - Tirage au sort aléatoire - fonction RND()
Ven 11 Jan 2019 - 13:57 par maximus

» Tyrann I
Ven 11 Jan 2019 - 2:22 par Ladywasky

» passage d'une variable du C à l'assembleur à l'aide de la fonction asm();
Jeu 10 Jan 2019 - 16:37 par drpsy

» Projet Doctor WHO
Mer 9 Jan 2019 - 10:34 par goyo

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

laurentd75, TotoShampoin

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 165 membres enregistrés
L'utilisateur enregistré le plus récent est retroric

Nos membres ont posté un total de 7890 messages dans 590 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

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

Messages : 168
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
avatar
didierv

Messages : 634
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