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

Générer ASM avec WINAPE ailleurs que dans les 64Ko de base?
https://cpcrulez.fr/forum/viewtopic.php?f=7&t=6414
Page 1 sur 1

Auteur :  Nemo59 [ 02 Nov 2020, 17:35 ]
Sujet du message :  Générer ASM avec WINAPE ailleurs que dans les 64Ko de base?

Bonsoir.

Est-il possible avec l'assembleur WINAPE de pousser le code ASM généré vers d'autres banques mémoires que les 64ko de base ? Je souhaite mettre le code dans ce qui est décrit comme le block 7 au dessus de #c000 dans le guide Firmware d'Amstrad qu'on trouve ici https://archive.org/details/SOFT968TheAmstrad6128FirmwareManual/mode/1up (P 23).

Ca correspond aux organisations mémoire C1,C2,C3 utilisées par le CPM. Je ne vois pas d'option dans WinApe pour pousser le code ailleurs que dans les 64ko de base... (en plus l'aide ne fonctionne plus en w10)

Auteur :  hERMOL [ 02 Nov 2020, 17:55 ]
Sujet du message :  Re: Générer ASM avec WINAPE ailleurs que dans les 64Ko de ba

Salut, c'est possible ...

.hlp de winape:

Citer :
write direct [lower_rom[, upper_rom[, ram_bank]]] Allows direct output to emulator memory. The current emulator write memory is used by default but the optional parameters allow ROMs to be enabled or RAM banks to be selected. lower_rom should be -1 to disable or 0 to enable the Lower ROM, upper_rom should be -1 to disable, or an upper ROM number, and ram_bank can be an expansion bank number #C0 to #FF (or #8C0 to #EFF for Yarek 4MB style bank mapping).


Code :
run &4000

nolist
write direct -1 , -1 ,&c7
;compile en &C7
org &4000
ld a,7
call &bb5A
jr $


Pour mieux comprendre la disposition des banques supplémentaires, voici quelques explications :
https://cpcrulez.fr/codingBOOK_bible6128_1-05-1.htm
https://cpcrulez.fr/coding_asm34b.htm
https://cpcrulez.fr/coding_logon40-gerer_vos_banks.htm
https://cpcrulez.fr/coding_amslive05-CP ... rtie_1.htm
https://cpcrulez.fr/coding_menu-RAM.htm

Auteur :  Nemo59 [ 02 Nov 2020, 20:04 ]
Sujet du message :  Re: Générer ASM avec WINAPE ailleurs que dans les 64Ko de ba

Super! Merci je vais tester ça. J’aurai sans doute d’autres questions ;D si tout fonctionne cela permettra d’accéder à la ram vidéo en Turbo Pascal sans passer par le firmware.

Auteur :  Nemo59 [ 02 Nov 2020, 21:37 ]
Sujet du message :  Re: Générer ASM avec WINAPE ailleurs que dans les 64Ko de ba

Ca marche... Donc coté Turbo Pascal, il faut spécifier la mémoire haute maxi pour le compilateur (option E pour End Adress) pour ne pas écraser le code assembleur puis :

Code :
Program RamVideo
 Procedure WrtVid; External $cd00
Begin
 WrtVid;
 Repeat Until KeyPressed;
End.


Coté ASM :

Code :
WRITE DIRECT -1 , -1 ,&C1
ORG &cd00
DI
LD BC,&7FC1
OUT (C),C
LD A,&FF
LD (&4000),A
LD BC,&7FC2
OUT (C),C
EI
RET


;D Après ça va être plus subtil car la pile du Z80 ne semble pas au même endroit suivant la configuration mémoire C1 et C2 ... Les "external" en pascal permettant de pousser et recevoir des valeurs de tout type en retour tout devient possible.

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