Le 68000 et moi ...

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Le 68000 et moi ...

Message par TOUKO le Lun 9 Fév 2015 - 13:30

Ca fait 15 ans que je n'ai plus fait d'ASM 68000 (sur Amiga), mais tes lignes de code m'ont remémoré plein de souvenirs... 
Tu t'es mis toi aussi au C64 ??  Mr. Green

TOUKO
Docteur *
Docteur *

Nombre de messages : 11763
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Ninja_SCX le Lun 9 Fév 2015 - 18:08

J'aurais bien aimé faire du C64, la machine me faisait rêver à l'époque, mais trop chère pour moi .

Je m'étais du coup rabattu sur un Oric Atmos avec lequel j'avais découvert les joies de l'assembleur 6502.
avatar
Ninja_SCX
Patient contaminé

Masculin Nombre de messages : 789
Age : 49
Localisation : Paris
Date d'inscription : 04/12/2013

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par TOUKO le Lun 9 Fév 2015 - 18:11

Aujourd'hui on dirait que la scène s'éclate plus sur C64 que sur des PC pleins de gigahertz ..
La sale bête a toujours la côte  rambo

Au fait pourquoi tu t'essayes pas à la MD ??
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 11763
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Vetea le Lun 9 Fév 2015 - 18:27

@Ninja_SCX a écrit:En tout cas chapeau pour t'être mis à l'assembleur 68000 !
Le jeu en vaut la chandelle.
Ce microprocesseur est vraiment génial une fois maîtrisé.
Ca fait 15 ans que je n'ai plus fait d'ASM 68000 (sur Amiga), mais tes lignes de code m'ont remémoré plein de souvenirs... Very Happy

Merci ! :)
Les choses rentrent lentement mais surement !

Concernant la question de la gestion du son par le Z80, j'ai trouvé un listing qui permettrait de jouer du WAV !
Par contre, impossible de le lancer sur easy68K et Bex sans un un retour d'erreurs ...
Je vous laisse le listing car c'est le genre de trucs qui peut s'avérer essentiel pour le HomeBrew MD :

Code:
 ; NOTE: file is in DOS (ASCII) encoding !!! Use EDIT or change the font to
 ; TERMINAL if you're using Windows text editors, to view this file correctly
 ; NOTE: You need some 8-bit WAVs if you want this to make sound.

 ORG    $00000000

 DC.L  $00FFFFFE, CodeStart, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.L  Interrupt, Interrupt, Interrupt, Interrupt
 DC.B  'SEGA MEGA DRIVE '    ; System name
 DC.B  '(C)TmEE 2006.OCT'    ; Copyright
 DC.B  'WAV failide m„ngija - tmeeco@hot.ee        v0.2'  ; Name (local)
 DC.B  'WAV file player    - www.hot.ee/tmeeco    v0.2'  ; Name (int.)
 DC.B  'GM T-000003-02'      ; Serial
 DC.W  $0000                  ; Checksum
 DC.B  '              '    ; I/O support
 DC.L  $00000000, $003FFFFF  ; ROM start->end
 DC.L  $00FF0000, $00FFFFFF  ; RAM start->end, why ???
 DC.L  $00000000              ; External RAM info
 DC.L  $00000000, $00000000  ; External RAM start->end
 DC.B  'No modem... '        ; Modem shit
 ; DC.B  "WAV is 8-BIT MONO @ 8KHz                "          ; Whatever
 ; DC.B  "WAV is 8-BIT MONO @ 11KHz              "          ; Whatever
 ; DC.B  "WAV is 8-BIT MONO @ 16KHz              "          ; Whatever
 ; DC.B  "WAV is 8-BIT MONO @ 22KHz              "          ; Whatever
 DC.B  'WAV is 8-BIT MONO @ 32KHz              '          ; Whatever
 ; DC.B  "WAV is 8-BIT MONO @ 44KHz              "          ; Whatever
 ; DC.B  "WAV is 8-BIT MONO @ 48KHz              "          ; Whatever
 DC.B  'E  like Estonia '    ; Regions

FMPORT1  EQU $A04000
FMPORT2  EQU $A04001
FMPORT3  EQU $A04002
FMPORT4  EQU $A04003
DPORT    EQU $C00000
CPORT    EQU $C00004

Interrupt:
 RTS

CodeStart:

 MOVE.W #$2700, SR      ; Disable ints

 ; Fulfill a security measure so we can run this on the real thing
 MOVE.B $A10001, D0            ; Get MD hardware info
 MOVE.B D0, D7                ; We need some of this later
 ANDI.B #$0F, D0              ; Mask out extra info so hardware ver is left
 CMP.B  #0, D0                ; If version is 0 then
 BEQ    SkipSegaSecurity      ; skip security measure.
 MOVE.L ($000100), ($A14000)  ; write "SEGA" to a reg
SkipSegaSecurity:

 MOVE.B #$01, ($A11200) ; Stop Z80 reset
 MOVE.B #$01, ($A11100) ; request Z80 bus

 MOVE.B #$2B, D0        ; Enable DAC
 MOVE.B #$80, D1
 BSR    WriteFMset1

 MOVE.B #$B6, D0        ; CH6 both channels
 MOVE.B #$C0, D1
 BSR    WriteFMset2

 MOVE.B #$2A, D0        ; Prepare for DAC for incoming samples
 MOVE.B #$80, D1
 BSR    WriteFMset1

PlayLoop:
 LEA    WAVfile, A0
 ADDQ.L #4, A0
 MOVE.L (A0)+, D2      ; Get size of the WAV
 ROR.W  #8, D2          ; Convert Little-Endian (Intel)
 SWAP  D2              ; to Big-Endian (Motorola)
 ROR.W  #8, D2
 ADDI.L #50, A0        ; Skip header
 SUBI.L #58, D2

PCMloop:

 MOVE.B (A0)+, D0
PCMwloop:
 BTST    #7, (FMPORT1)
 BNE    PCMwloop
 MOVE.B  D0, (FMPORT2)

 ; These values are approximate, make adjustments if you wish

 ; MOVE.W #300, D1      ; 2KHz
 ; MOVE.W #70, D1        ; 8KHz
 ; MOVE.W #60, D1        ; 11KHz
 ; MOVE.W #35, D1        ; 16KHz
 ; MOVE.W #25, D1        ; 22KHz
 MOVE.W #14, D1        ; 32KHz
 ; MOVE.W #5, D1        ; 44KHz
 ; MOVE.W #4, D1        ; 48KHz

 ; MOVE.L #$C0000000, (CPORT)
 ; MOVE.B D0, (DPORT)

Delayloop:             
 DBRA  D1, DelayLoop  ; Comment this line to get 96KHz

 SUBQ.L #1, D2
 BEQ    PlayLoop
 BRA    PCMloop


WriteFMset1:
 BTST  #7, (FMPORT1)
 BNE    WriteFMset1
 MOVE.B D0, (FMPORT1)
WriteFM1:
 BTST  #7, (FMPORT1)
 BNE    WriteFM1
 MOVE.B D1, (FMPORT2)
 RTS

WriteFMset2:
 BTST  #7, (FMPORT1)
 BNE    WriteFMset1
 MOVE.B D0, (FMPORT3)
WriteFM2:
 BTST  #7, (FMPORT1)
 BNE    WriteFM2
 MOVE.B D1, (FMPORT4)
 RTS


 DS.B    52, 0
 ; DC.B    " Here starts the WAV file (8-BIT, 8KHz) ->"
 ; DC.B    "Here starts the WAV file (8-BIT, 11KHz) ->"
 ; DC.B    "Here starts the WAV file (8-BIT, 16KHz) ->"
 ; DC.B    "Here starts the WAV file (8-BIT, 22KHz) ->"
 DC.B    'Here starts the WAV file (8-BIT, 32KHz) ->'
 ; DC.B    "Here starts the WAV file (8-BIT, 44KHz) ->"
 ; DC.B    "Here starts the WAV file (8-BIT, 48KHz) ->"
 ; DC.B    "    Here starts the WAV file (8-BIT, 96KHz) ->"
 EVEN

WAVfile:
 ; INCBIN  "PCMTEST2.WAV"  ; 2KHz  - 1.5 mins of music in 230KB
 ; INCBIN  "REACTOR.WAV"    ; 8KHz  - Tune from QB45 game FoX
 ; INCBIN  "RISTAR.WAV"    ; 11KHz - Ristar title music
 ; INCBIN  "PAINKILL.WAV"  ; 11KHz - Judas Priest - Painkiller
 ; INCBIN  "RISTAR2.WAV"    ; 16KHz - More Ristar title music
 ; INCBIN  "PCMTEST.WAV"    ; 22KHz - SA twinkle circuit MIDI made by John Weeks through my YAMAHA YMF719 sound card
 ; INCBIN  "DBSMM.WAV"      ; 32KHz - Dimmu Borgir - Satan my master, its just good song, I'm no satanist
 INCBIN  'TESTER11.WAV'  ; 32KHz - MIDI loop, feeble attempt to make metal like music
 ; INCBIN  "SONIC1SB.WAV"  ; 44KHz - Sonic1 Scrap Brain, directly recorded from my dad's SMS2
 ; INCBIN  "SONIC3.WAV"    ; 48KHz - Sonic3 Angel Island act1 drum loop
 ; INCBIN  "SONIC32.WAV"    ; 96KHz - Same as above
 EVEN


Etant donné que je ne connais pas trop les adressages et les interruptions du Z80 par la MD, un peu d'éclaircissement ne serait pas de refus ! Wink
De plus, si une personne arrive à tirer quelque chose de cette routine, merci de le signaler ici, cela pourra servir à beaucoup je pense ... Pensez, jouez du WAV sur MD !!! Mr. Green Mr. Green
Merci d'avance.
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4109
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par TOUKO le Lun 9 Fév 2015 - 19:07

tiens un bon lien sur la doc de la MD :
http://wiki.megadrive.org/index.php?title=Main_Page
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 11763
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par tfdi le Mar 10 Fév 2015 - 9:08

Vetea:Ca ne fonctionnera jamais sous Easy68k, vu que dans ce programme tu attaques des spécificités de la MD, que Easy68k ne connait pas. Easy68k est un émulateur de 68000, mais pas de l'énvironnement des différentes plateformes qui ont utilisé le 68000. Donc dès que tu attaques une plateforme spécifique, ben ca ne fonctionne pas, il n'est pas fait pour ca.

Le programme n'est pas compliqué à comprendre, le seul hic, c'est que là il faut avoir les spécificités de la MD, et il faudrait débugguer sur la MD.

Il faudrait faire un copier/coller du programme dans un assembleur pour MD, le compiler, et essayer d'executer la rom sur la MD.

Ca ne fonctionnera jamais ni sous Easy68k, et j'ai un gros doute que ca puisse fonctionner sous BEX, vu que là t'as un entête complet d'une ROM MD, et que BEX doit lui même en générer un pour s'exécuter.


Dernière édition par tfdi le Mar 10 Fév 2015 - 9:45, édité 1 fois
avatar
tfdi
Patient contaminé

Masculin Nombre de messages : 505
Age : 44
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Vetea le Mar 10 Fév 2015 - 9:27

Merci Tfdi de l'éclairage. Wink
Le code n'est pas complique à comprendre en effet, le mettre en oeuvre, un peu plus.

J'ai peut être une idée :
1/ Taper du code dans un éditeur de texte/code universel et le sauver en .asm
2/ Debugger et générer un .Bin avec Asm68k en ligne de commande Dos.
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4109
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par tfdi le Mar 10 Fév 2015 - 9:48

Je ne connais pas Asm68k, mais tu peux toujours essayer.

La difficulté risque d'être l'interpretation du ORG $00000000 par l'assembleur que tu utiliseras.
avatar
tfdi
Patient contaminé

Masculin Nombre de messages : 505
Age : 44
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par TOUKO le Mar 10 Fév 2015 - 11:13

tfdi a raison, l'intérêt d'utiliser easy68k est surtout pour tester de petites portions de code en 68000 pur .
Ca te permet de voir les cycles utilisés, l'état des registre et des flags, pour débugger ça aide pas mal .
avatar
TOUKO
Docteur *
Docteur *

Masculin Nombre de messages : 11763
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Vetea le Mar 10 Fév 2015 - 11:38

J'ai trouvé la solution :
- Notepad++ avec un plugin langage z80 - 68000
- compilation, debuggage et ROM avec asm68k

Ça fonctionne parfaitement ! Wink
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4109
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par tfdi le Mar 10 Fév 2015 - 12:57

Impeccable thumleft
avatar
tfdi
Patient contaminé

Masculin Nombre de messages : 505
Age : 44
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Vetea le Mar 10 Fév 2015 - 21:38

Rappel des sources :

- NotePad++ ( Google est votre ami ! )
- Le Plugin Langage Z80 - 68000 : https://dl.dropboxusercontent.com/u/108143465/BDD%20Sons%20%26%20Musiques%20WAV.zip
- L'exe ASM68K ( en ligne de commande ) : https://dl.dropboxusercontent.com/u/108143465/asm68k.exe

Quand vous avez votre code tout neuf réalisé sous Notepad++, passez en ligne de commande, allez dans le répertoire ou se trouve votre fichier .asm et votre asm68.exe, et tapez : Asm68K votrefichier.asm, votreRom.bin

Voila c'est tout ! Wink
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4109
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Le 68000 et moi ...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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