CPC Rulez
https://cpcrulez.fr/forum/

lecture d'un secteur
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=5657
Page 1 sur 1

Auteur :  velus [ 19 Jan 2016, 18:40 ]
Sujet du message :  lecture d'un secteur

J'aimerai bien faire ceci mais ca va pas pourquoi ?
org &8000
ld bc,&df07 ;; avec ceci ca va beaucoup mieux ld c,7
out (c),c ;; call &b90f
ld bc,&7f86 ;; mais c'est pas ce que je veux !
out (c),c
ld hl,&4000
ld de,&0000
ld c,&c1
call &c666
ret

Auteur :  hERMOL [ 19 Jan 2016, 20:52 ]
Sujet du message :  Re: lecture d'un secteur

sous cette forme ca work (cpc old only):
Code :
org &8000

        ld hl,&4000
        ld de,&0000
        ld c,&c1

        rst      &18

_cmd_firmware:   dw _cmd_read

                 jr $      ; retour du "rst &18"

_cmd_read:       dw   &0C666
                 db    &7

Auteur :  velus [ 19 Jan 2016, 21:07 ]
Sujet du message :  Re: lecture d'un secteur

C'est pas ce que je veux. :(

Auteur :  Gerald [ 19 Jan 2016, 22:38 ]
Sujet du message :  Re: lecture d'un secteur

velus a écrit :
C'est pas ce que je veux. :(

Tu veux utiliser une routine en ROM sans passer par les vecteur système ?

Auteur :  velus [ 20 Jan 2016, 03:41 ]
Sujet du message :  Re: lecture d'un secteur

Exactement

Est-il possible de passer par la rom avec le out &DF00,7 qui est ROM disc
et les routines en C666

1.entrer dans la rom
2 call C666
sans faire call B900 ni RST 18 etc
ni call &44
ni call BE80

Auteur :  Gerald [ 20 Jan 2016, 08:46 ]
Sujet du message :  Re: lecture d'un secteur

velus a écrit :
Exactement

Est-il possible de passer par la rom avec le out &DF00,7 qui est ROM disc
et les routines en C666

1.entrer dans la rom
2 call C666
sans faire call B900 ni RST 18 etc
ni call &44
ni call BE80

Le problème des routines de l'AMSDOS est
- elles font appel à des variables en RAM, initialisée par le système lors du scan des ROM d'extension. Ces variables sont soit a des adresses absolue ou indexée par IX. C666 utilise des adresses absolue pour sauvegarder des parametres.
- elles utilise des fonctionnalité du FW : dans le cas de C666, la première chose faite est motor ON, qui fait usage des EVENT du FW.

Donc il n'est pas possible d'utiliser ces fonction sans passer par le FW.

Auteur :  velus [ 20 Jan 2016, 17:32 ]
Sujet du message :  Re: lecture d'un secteur

OK,
Désolé pour ces questions mais j'essaye de comprendre...

C'est quoi la différence entre ?

ld bc,&df07
out (c),c

et

ld c,7
call &b90f

Auteur :  Gerald [ 20 Jan 2016, 18:02 ]
Sujet du message :  Re: lecture d'un secteur

velus a écrit :
ld bc,&df07
out (c),c

Tu commute directement sur la ROM 7

velus a écrit :
ld c,7
call &b90f

Tu demandes au FW de commuter sur la ROM 7, qui fera entre autre ld bc,&df07 out (c),c

La différence : quand tu demandes au FW de le faire, il sait que la ROM courante est la 7, et peut y revenir si, par exemple tu appelle une fonction dans une autre ROM (RST18 et autres)

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/