GFA
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-47%
Le deal à ne pas rater :
SAMSUNG T7 Shield Bleu – SSD Externe 1 To à 89,99€
89.99 € 169.99 €
Voir le deal

Tramage

3 participants

Aller en bas

Tramage Empty Tramage

Message par rockyone Dim 25 Nov - 22:22

J’avais ce LST dans une archive depuis un certain temps… conversion  image base en haute résolution
Très Intéressant pour le tramage effectué.  - Je vais  m’en servir pour faire une routine assembleur -

Non compilé c’est très lent, pas optimisé, et bug vers la fin…  
J’ai rajouté des lignes que j’ai désactivées, c’était pour essayer  de comprendre ou cela boguait. Mais je laisse cela aux utilisateurs du GFA.
Code:

' The Amazing Cracking Conspiracy™️ Proudly Presents:
' Low to High Converter v2.2, released on Sunday, August 17th, 1986
'
' Rewritten for ST NEWS Volume 1, Issue 4
'
' Original Concept by Sven Krüppel, ©️1986 by Level 16
' GfA Basic version ©️1986 by The Amazing Cracking Conspiracy™️
'
' Main program
'
begin:
GOSUB screen
IF b=2 THEN
  GOTO mouson
ENDIF
DIM w(80)
ALERT 3,"Please insert|Source Disk|and select|Picture",1,"OK",b
FILESELECT "\*.*","",l$
IF l$="" THEN
  GOTO mouson
ENDIF
ALERT 3,"Please enter|Target name",1,"OK",b
FILESELECT "\*.PI3","",s$
'''PRINT "laad"
GOSUB laad
'''PRINT "convert"
GOSUB convert
'''PRINT "weg"
GOSUB weg
GOTO mouseon
OUT 2,7
a=INP(2)
IF INP(2)=255 THEN
  GOTO mouson
ENDIF
GOTO begin
'
' End of Main program
'
' Loading the picture
'
PROCEDURE laad
  sm=491520
  BLOAD l$,sm+32
  FOR i=sm TO sm+158
    POKE i,0
  NEXT i
RETURN
'
' Saving the picture
'
PROCEDURE weg
  ''''BSAVE "m:\aa.pi3",sm,32034
  RESTORE
  FOR q=0 TO 33
    READ z
    POKE (sm-34)+q,z
  NEXT q
  BSAVE s$,sm-34,32034
RETURN
'
' The actual Conversion routine
'
PROCEDURE convert
  FOR y=sm+160 TO sm+31840 STEP 160
    ''''PRINT AT(10,10),y;"    " !  Pour le "AT" j'ai du regarder la doc GFa - j'suis nul !  -
    FOR x=0 TO 79
      w(x)=DPEEK(y+x*2)
      IF SGN(w(x))=-1 THEN
        w(x)=65536+w(x)
      ENDIF
    NEXT x
    x1=0
    FOR x=0 TO 76 STEP 4
      k=32768
      j=1
    label1:
      h1=32768
      h2=h1
      p1=0
      p2=0
    label2:
      IF w(x)>=k THEN
        p1=p1+h1
        w(x)=w(x)-k
      ENDIF
      h1=h1/2
      IF w(x+1)>=k THEN
        p1=p1+h1
        w(x+1)=w(x+1)-k
      ENDIF
      h1=h1/2
      IF w(x+2)>=k THEN
        p2=p2+h2
        w(x+2)=w(x+2)-k
      ENDIF
      h2=h2/2
      IF w(x+3)>=k THEN
        p2=p2+h2
        w(x+3)=w(x+3)-k
      ENDIF
      h2=h2/2
      k=k/2
      IF j=8 THEN
        DPOKE y+x1*2,p1
        DPOKE y+x1*2+80,p2
        j=1
        x1=x1+1
        GOTO label1
      ENDIF
      j=j+1
      IF k>=1 THEN
        GOTO label2
      ENDIF
    NEXT x
  NEXT y
RETURN
'
' End routine
'
mouson:
CLS
SPOKE 16745024,-1
END
'
' Data for first 34 bytes of monochrome inverted DEGAS picture
'
DATA 0,2,0,0,7,&h77,0,&h70,0,0,7,&h77
DATA 7,0,0,&h70,7,&h70,0,7,7,7,0,&h77,5,&h55
DATA 0,&h33,7,&h33,3,&h73,7,&h73
'
' Screen initialization & Text printing
'
PROCEDURE screen
  CLS
  SPOKE 16745024,0
  DEFTEXT ,16,500,6
  TEXT 10,398,"THE AMAZING CRACKING CONSPIRACY PRESENTS"
  DEFTEXT ,1,0,26
  TEXT 50,26,"LOW-HIGH CONVERTER VERSION 2.2"
  DEFTEXT ,0,0,6
  TEXT 50,389,"This program converts a neo-format picture to High Res Degas format"
RETURN



Dernière édition par rockyone le Mer 28 Nov - 11:38, édité 1 fois

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Shadow272 Lun 26 Nov - 11:00

Merci pour la routine.
Shadow272
Shadow272
Admin

Messages : 329
Date d'inscription : 28/12/2017
Age : 66
Localisation : Hainaut Belgique

http://toutatari.blog4ever.xyz/

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Atlantis Mar 27 Nov - 18:08

Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof. Smile
Atlantis
Atlantis

Messages : 98
Date d'inscription : 20/02/2018
Localisation : Seine et Marne

http://www.safargames.fr

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par rockyone Mer 28 Nov - 12:45

Atlantis a écrit:Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof. Smile
J'ai manqué d'R, me revoilà !

Les gotos ce n'est pas le pire, "h2" est inutile, les divisions "/",  la sauvegarde des Words à "sm+160" ...

Donc, j'ai fait rapidement un test en Omikron avant de continuer. - Avec les gotos  Twisted Evil  -
La  conversion des images n'est pas trop mauvaise, mais pas du niveau de PicSwich7.

[Vous devez être inscrit et connecté pour voir ce lien],[Vous devez être inscrit et connecté pour voir ce lien],[Vous devez être inscrit et connecté pour voir ce lien]

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Atlantis Mer 28 Nov - 15:58

Je te taquinais Smile

Le listing à gauche et Picswich7 à droite ?
Atlantis
Atlantis

Messages : 98
Date d'inscription : 20/02/2018
Localisation : Seine et Marne

http://www.safargames.fr

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par rockyone Mer 28 Nov - 16:03

Bien vu ! Laughing

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Atlantis Mer 28 Nov - 16:07

Alors pas de doute, PicSwich7 s'en sort vraiment mieux.
Atlantis
Atlantis

Messages : 98
Date d'inscription : 20/02/2018
Localisation : Seine et Marne

http://www.safargames.fr

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par rockyone Mer 28 Nov - 18:23

Pour obtenir un tel résultat, penses tu que PicSwich utilise une table de tramage dans son algorithme ?

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Atlantis Jeu 29 Nov - 19:02

Hummm, difficile à dire comme ça.
Mais j'ai l'impression qu'il y a un bug dans le .lst, une histoire de valeur signée ? (Je ne sais pas trop)
Mais quelque-chose cloche.
Tu t’intéresses à cette conversion pour une raison précise ?
Atlantis
Atlantis

Messages : 98
Date d'inscription : 20/02/2018
Localisation : Seine et Marne

http://www.safargames.fr

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par rockyone Jeu 29 Nov - 19:49

Le Lst  a bien un bug .  Comme je voulais voir le résultat sur plusieurs images, je l’ai refait en Omikron.

Si tu veux tester la conversion, je  le mais ici provisoirement.. [Vous devez être inscrit et connecté pour voir ce lien]
Fonctionne en haute résolution. La conversion est affichée  sur  l’écran. (Il n’y a pas  de sauvegarde)

En fait, je commence  à regarder comment faire du tramage  lors de la conversion de format d’image.
Et  ce n’est pas évident d’obtenir un bon résultat !

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par rockyone Jeu 28 Mar - 14:18

Atlantis a écrit:Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof. Smile
Plus  le tableau W(80) inutile, un bouclage en trop....

Donc après plusieurs mois d'inactivité... j'ai quand même fait la routine en ASM, puis en basic  Omikron  tongue mais sans améliorer le tramage.
C'est beaucoup plus rapide dans les deux cas.
Code:

     IPL 4:Ti!= TIMER
     A1%L=Ecran%L' - lpeek($44e) -
     A0%L=Buf_Pi1%L+34
     A6%L=A0%L+32000

     -All_Line
        A5%L=A0%L+160

        -Convert_Line
           D0%L= WPEEK(A0%L) AND $FFFF
           D1%L= WPEEK(A0%L+2) AND $FFFF
           D2%L= WPEEK(A0%L+4) AND $FFFF
           D3%L= WPEEK(A0%L+6) AND $FFFF
           A0%L=A0%L+8

           D4%L=$8000

          -Label1:D5%L=0:D6%L=0:D7%=15

           FOR T%=0 TO 7
             IF D0%L>=D4%L THEN BIT (D7%,D5%L)=-1:D0%L=D0%L-D4%L ENDIF
             IF D2%L>=D4%L THEN BIT (D7%,D6%L)=-1:D2%L=D2%L-D4%L ENDIF
             D7%=D7%-1'                                         14.....0
             IF D1%L>=D4%L THEN BIT (D7%,D5%L)=-1:D1%L=D1%L-D4%L ENDIF
             IF D3%L>=D4%L THEN BIT (D7%,D6%L)=-1:D3%L=D3%L-D4%L ENDIF
             D4%L=D4%L SHR 1
             D7%=D7%-1'                                         13.....-1
           NEXT T%

           WPOKE A1%L,D5%L: WPOKE A2%L,D6%L:A1%L=A1%L+2:A2%L=A2%L+2

           IF D4%L>0 THEN GOTO Label1 ENDIF'        d4%=$80
          
          IF A0%L<A5%L THEN GOTO Convert_Line ENDIF' fin de la ligne ?
          A1%L=A2%L:A2%L=A2%L+80
     IF A0%L<A6%L THEN GOTO All_Line ENDIF' fin de l'image ?
     T2!=( TIMER -Ti!)/200

Dans le PRG, La palette de couleur est parfois inversé, mais c'est un autre problème.

Tous les fichiers dans ce dossier: [Vous devez être inscrit et connecté pour voir ce lien]

Je recherche d'autres exemples de conversion d'image avec tramage, quelque soit le langage.

rockyone

Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives

Revenir en haut Aller en bas

Tramage Empty Re: Tramage

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


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