Adaptation sur Thomson TO des jeux d'Inufuto

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par __sam__ »

Mon code python est vieux et pas testé des masses. Par contre il est facilement bricolable s'il faut ajouter des pauses.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par Daniel »

OlivierP a écrit : 06 juin 2023 08:20 Pour résumer, est-ce que les wav produits par les outils de Daniel et Sam sont corrects ?
Tous les fichiers .wav (44 fichiers) et .lep (59 fichiers) pour TO du site dcmoto ont été produits avec DCTOK7.
Ils ont tous été testés et fonctionnent. Ce n'est pas une preuve suffisante du bon fonctionnement de DCTOK7, d'accord, mais j'étudie toujours les bugs qui me sont soumis et j'applique immédiatement les corrections nécessaires. N'hésitez pas.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Daniel a écrit : 05 juin 2023 17:16 J'ai souvent ce problème quand je convertis des cassettes en disquettes : avec le DOS il n'y a plus assez de RAM. La solution est simple : Il ne faut pas utiliser le DOS et pour charger le programme. Il suffit d'écrire un chargeur pour lire directement les secteurs physiques de la disquette.
Petite question à propos du chargement sur disquette : est-ce que le TO7 est limité à 40 pistes même avec le contrôleur 3"1/2 ? J'ai une erreur $10 "lecteur non prêt" quand je lis un secteur de la disquette sur TO7. Est-ce que les 80 pistes fonctionnent sur TO7 avec le SDDISK/SDRIVE ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par Daniel »

Le nombre de pistes est fixé par le contrôleur. Avec un contrôleur 3"1/2 (interne, ou externe, ou SDDRIVE) c'est 80 pistes, quel que soit l'ordinateur.
Comment lis-tu le secteur ? Si tu le lis en BASIC en utilisant le DOS, et que le DOS n'est pas chargé en mémoire, l'erreur est normale.
Il faut lire le secteur avec la fonction DKCONT du contrôleur de disquette : EXEC &HE004
Les paramètres sont l'unité, la piste, le secteur, l'adresse du buffer de 256 octets et le code opération $02 pour la lecture d'un secteur.

Voici un exemple de chargeur pour MO5, facile à adapter au TO7 :

Code : Tout sélectionner

;**************************************************;
;           D I S K L O A D E R   M O 5            ; 
;           (c) 2022 - Daniel Coulom               ;  
;           http://dcmoto.free.fr/                 ;
;           http://forum.system-cfg.com/           ;
;--------------------------------------------------;
; Ce code est distribue gratuitement dans l'espoir ;
; qu'il sera utile, mais sans aucune  garantie  et ;
; sans  engager  la  responsabilité  de  l'auteur. ;
; Vous  pouvez  l' utiliser,  le  modifier  et  le ;
; diffuser librement, en conservant cette  licence ;
; et les références de l'auteur dans   toutes  les ;
; copies. L'exploitation commerciale est interdite.;
;**************************************************;

; Chargement en memoire d'un programme contenu
; dans les secteurs physiques d'une disquette.
; Lancement de l'execution a l'adresse indiquee.
    
;**************************************************;
;                Version 2022.10.17                ;
;**************************************************;
; Historique
; 2022.10.12 Chargement et execution en $1F40
; 2022.10.17 Version initiale


;------------------------------------------------------
; PARAMETRES POUR L'ASSEMBLEUR LWASM.EXE
;------------------------------------------------------
 PRAGMA 6809,operandsizewarning
 OPT c

;------------------------------------------------------
; PARAMETRES DU CHARGEMENT
;------------------------------------------------------
DISKDEB EQU $0301      ; piste-secteur de debut 
DISKFIN EQU $0910      ; piste-secteur de fin
RAMADDR EQU $3000      ; adresse de chargement en RAM
EXEADDR EQU $3000      ; adresse d'execution
PILADDR EQU $3000      ; haut de la pile systeme

;------------------------------------------------------
; Initialisations
;------------------------------------------------------
  ORG   $1F40 
  LDS   #PILADDR       ; initialisation pointeur de pile
  LDA   #$20           ; valeur initialisation DP
  TFR   A,DP           ; initialisation DP
  LDA   #$01           ; code initialisation controleur
  STA   <$48           ; definit le code operation
  JSR   $A004          ; initialisation controleur
  LDA   #$02           ; code lecture secteur
  STA   <$48           ; definit le code operation
  LDD   #RAMADDR       
  STD   <$4F           ; initialise adresse buffer
  CLRA
  CLRB
  STD   <$49           ; initialise unite
  LDD   #DISKDEB       

;------------------------------------------------------
; Boucle de lecture
;------------------------------------------------------
READSECT
  STD   <$4B           ; initialise piste-secteur
  JSR   $A004          ; lecture secteur
  CMPD  #DISKFIN       ; test de fin de lecture
  BEQ   EXECUTE        ; execution  
  INC   <$4F           ; adresse buffer suivant
  INCB                 ; secteur suivant  
  CMPB  #$11           ; test secteur 17 
  BNE   READSECT       ; lecture secteur suivant
  INCA                 ; piste suivante
  LDB   #$01           ; secteur 1
  BRA   READSECT       ; lecture secteur suivant

;------------------------------------------------------
; Execution
;------------------------------------------------------
EXECUTE
  JMP   EXEADDR
  
  END
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Je lis le secteur en assembleur, avec la fonction DKCONT.
J'ai testé uniquement sur dcmoto via wine. Ça marche sur TO9 et TO8, mais avec le TO7 ou TO7-70 + CD90-351 j'ai systématiquement l'erreur : l'initialisation est OK, j'y bien un lecteur double densité ($44), mais dès que j'appelle DKOPC avec $40 j'ai l'erreur ($10 dans DKSTA).
Avec l’émulation de SDDRIVE ça marche.
Mon chargeur est quasiment terminé, et fonctionne en lisant les blocks de la FAT, en gère les binaires Thomson non RAW (entête et fin de 5 octets). Il me reste à le lancer via le secteur de boot pour que cela fonctionne en BASIC1.
Voici mon code qui lit un secteur :

Code : Tout sélectionner

        ; A=track, B=sector
        tfr d,x

        ; drive 0
        lda #$00
        sta DKDRV

        ; init controller
        lda #$01
        sta DKOPC

        ; call ROM
        jsr DKCONT
        if cs
            ; error
            lda DKSTA
        else
            ; restore parameters in A and B
            tfr x,d

            ; track in A
            sta DKTRK

            ; sector in B
            stb DKSEC

            ; search for track DKTRK
            lda #$40
            sta DKOPC

            ; call ROM
            jsr DKCONT
            if cs
                ; error
                lda DKSTA
            else
                ; buffer address
                ldx ReadSector_@Param2
                stx DKBUF

                ; read sector
                lda #$02
                sta DKOPC

                ; call ROM
                jsr DKCONT
                if cs
                    ; error
                    lda DKSTA
                else
                    lda #0
                endif
            endif
        endif
EDIT : J'utilisais la ROM BASIC128 lors du test, car le bootloader n'est pas encore prêt.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par __sam__ »

C'est quoi ces if/else/endif ?

Et pourquoi est-ce qu'on passe par l'init du contrôleur à chaque lecture de secteur (si la routine indiquée est bien celle pour charger un secteur et pas un peu plus)
Dernière modification par __sam__ le 07 juin 2023 23:20, modifié 2 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Voici des captures écran dcmoto_20230208.exe, avec cartouche BASIC128 :
Capture d’écran_2023-06-07_23-13-17.png
Capture d’écran_2023-06-07_23-13-17.png (96 Kio) Consulté 2311 fois
Capture d’écran_2023-06-07_23-13-49.png
Capture d’écran_2023-06-07_23-13-49.png (24.7 Kio) Consulté 2311 fois
Avec la disquette convertie en SD par fd2sd_2014.exe
Capture d’écran_2023-06-07_23-14-54.png
Capture d’écran_2023-06-07_23-14-54.png (96 Kio) Consulté 2311 fois
Capture d’écran_2023-06-07_23-15-28.png
Capture d’écran_2023-06-07_23-15-28.png (26.96 Kio) Consulté 2311 fois
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

__sam__ a écrit : 07 juin 2023 23:19 c'est quoi ces if/else/endif ?
C'est des fonctionnalités de l'asm d'Inufuto.
J'ai fait une partie du loader en pseudo-C d'inufuto également (qui est très limité au final).
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

__sam__ a écrit : 07 juin 2023 23:19 Et pourquoi est-ce qu'on passe par l'init du contrôleur à chaque lecture de secteur (si la routine indiquée est bien celle pour charger un secteur et pas un peu plus)
Tu as raison, je vais optimiser cela.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par Daniel »

Dans la boîte de dialogue "Supports amovibles" la case "Lecteurs de disquettes" est-elle cochée ?
Avec le contrôleur SDDRIVE, dcmoto sélectionne automatiquement la disquette (sur carte SD), il n'est pas nécessaire de le faire manuellement.
Par contre avec un contrôleur de disquette Thomson on peut connecter ou pas les lecteurs, ce n'est pas automatique.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Oui, elle est cochée
Capture d’écran_2023-06-08_10-18-47.png
Capture d’écran_2023-06-08_10-18-47.png (48.64 Kio) Consulté 2233 fois
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Voici une nouvelle version utilisable depuis disquette sous BASIC 1.0 : https://transfert.free.fr/4o7UFOT
J'ai changé les adresses pour avoir les mêmes binaires en FD et K7, avec un TO7 + 16K en cible.
Je n'ai pas réussi à le faire fonctionner sous dcmoto avec le contrôleur de disquette 3,5".
Brochiman
Messages : 3405
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par Brochiman »

As-tu toujours besoin de tester les MEMO7 sur TO7 sans extension mémoire?
Avatar de l’utilisateur
OlivierP
Messages : 703
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par OlivierP »

Oui ! Elles n'ont pas été testées. As-tu également accès à un TO9 ?
Tout ce joue au joystick + bouton action. Les touches fléchées + espace sont également supportées sur TO7/TO7-70.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Adaptation sur Thomson TO des jeux d'Inufuto

Message par __sam__ »

Les touches fléchées + espace sont également supportées sur TO7/TO7-70.
Dommage que ce ne soit pas partout. J'ai pas de joystick sur mon TO8 :|
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre