home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-03-16 | 32.6 KB | 1,739 lines |
-
- OPT O+
-
- POUCE_X EQU (8*360)
- POUCE_Y EQU (11*360)+48
-
- SECTION TEXT
-
- *******************************************************************************
-
- * RECUPERATION DE LA LIGNE DE COMMANDE
- LEA 4(SP),A5
- MOVE.L (A5),A5
- MOVE.B $80(A5),D0
- AND.L #$FF,D0
- LEA $81(A5),A5 * DEBUT DU NOM DU PROGRAMME
- CLR.B (A5,D0.W)
-
- MOVE.L A7,A6
- MOVE.L 4(A6),A6
- MOVE.L $C(A6),D0
- ADD.L $14(A6),D0
- ADD.L $1C(A6),D0
- ADD.L #$100,D0
- MOVE.L D0,-(SP)
- MOVE.L A6,-(SP)
- CLR.W -(SP)
- MOVE.W #$4A,-(SP)
- TRAP #1
- LEA 12(SP),SP
- TST.W D0
- BNE INIT_ERROR
-
- CLR.L -(SP)
- MOVE.W #32,-(SP)
- TRAP #1
- ADDQ.L #6,SP
- MOVE.L D0,-(SP)
-
- LEA PRESENTATION_TXT,A0
- BSR PRINTF
-
- * ON AFFICHE LE NOM DU FICHIER
- LEA FICHIER_TXT,A0
- BSR PRINTF
- MOVE.L A5,A0
- BSR PRINTF
- BSR FCR
-
- * ON L'OUVRE
- MOVE.L A5,FNAME
- MOVE.L A5,A0
- LEA HANDLE1,A1
- BSR FOPEN
-
- * ON LIT L'ENTETE
- LEA TGA,A0
- LEA HANDLE1,A1
- MOVEQ.L #18,D0
- BSR FREAD
-
- * ON POMPE LES DIMENSIONS
- BSR GET_TGA_INFO
-
- * ON RESERVE TGA_X*3 OCTETS POUR CHARGER CHAQUE LIGNE DE L'IMAGE
- CLR.L D0
- MOVE.W TGA_X,D0
- MOVE.W D0,D1 * MULU.W #3,D0
- ADD.W D0,D0
- ADD.W D1,D0
- MOVE.L D0,TAILLE_BUFFER
- LEA ADR_BUFFER,A1
- BSR MALLOC
-
-
- * ON LES AFFICHE AINSI QUE LA TAILLE CALCULEE DU FICHIER
- LEA TAILLE_IMG_TXT,A0
- BSR PRINTF
- CLR.L D0
- MOVE.W TGA_X,D0
- BSR FNUMBER
- LEA X_TXT,A0
- BSR PRINTF
- CLR.L D0
- MOVE.W TGA_Y,D0
- BSR FNUMBER
- LEA SOIT_TXT,A0
- BSR PRINTF
-
- * ON CALCULE LA TAILLE
- CLR.L D0
- MOVE.W TGA_X,D0
- MULU.W TGA_Y,D0
- MOVE.L D0,D1
- ADD.L D0,D1
- ADD.L D1,D0
- ADD.L #18,D0
- BSR FNUMBER
- LEA OCTETS_TXT,A0
- BSR PRINTF
-
-
- * ON DEMANDE LE POSITIONEMENT DE L'IMAGE SUR LE PAPIER
- BSR KEY_POS
-
- * ON DEMANDE LA TAILLE DE L'IMAGE SUR LE PAPIER
- BSR KEY_TAILLE
-
- * ON CALCULE LES DIMENSIONS FINALES
- BSR DIMENSIONS_RASTER
-
- * ON AFFICHE LES COORDONNEES RASTERS PURES
- LEA TAILLE_RAS_TXT,A0
- BSR PRINTF
- CLR.L D0
- MOVE.W RASTER_X,D0
- BSR FNUMBER
- LEA X_TXT,A0
- BSR PRINTF
- CLR.L D0
- MOVE.W RASTER_Y,D0
- BSR FNUMBER
- LEA TAILLE_PAP_TXT,A0
- BSR PRINTF
-
- * ON DEMANDE LA COURBE DE CONSTRASTE/LUMIERE
- BSR KEY_CURVE
-
- * ON DEMANDE LA METHODE A UTILISER
- BSR KEY_RENDU
-
- * ON FERME LE FICHIER IMAGE
- LEA HANDLE1,A1
- BSR FCLOSE
-
- * ON IMPRIME
- LEA WAIT2_TXT,A0
- BSR PRINTF
- BSR IMPRIME_ALL
-
- * ON QUITTE
- MOVE.W #32,-(SP)
- TRAP #1
- ADDQ.L #6,SP
- INIT_ERROR:
-
- CLR.W -(SP)
- TRAP #1
-
- *******************************************************************************
-
- GET_TGA_INFO: LEA TGA,A0
- CLR.W D0
- MOVE.B 13(A0),D0
- LSL.W #8,D0
- MOVE.B 12(A0),D0 *D0=TAILLE X
- MOVE.W D0,TGA_X
- SUBQ.W #1,D0
- MOVE.W D0,TGA_X1
-
-
- CLR.W D1
- MOVE.B 15(A0),D1
- LSL.W #8,D1
- MOVE.B 14(A0),D1 *D1=TAILLE Y
- MOVE.W D1,TGA_Y
- SUBQ.W #1,D1
- MOVE.W D1,TGA_Y1
-
- RTS
-
- *******************************************************************************
-
- FOPEN: CLR.W -(SP)
- MOVE.L A5,-(SP)
- MOVE.W #$3D,-(SP)
- TRAP #1
- ADDQ.L #8,SP
- MOVE.W D0,(A1)
- TST.W D0
- BMI.S INIT_ERROR
- RTS
-
- *******************************************************************************
-
- FREAD: MOVE.L A0,-(SP)
- MOVE.L D0,-(SP)
- MOVE.W (A1),-(SP)
- MOVE.W #$3F,-(SP)
- TRAP #1
- LEA 12(SP),SP
- TST.W D0
- BMI.S INIT_ERROR
- RTS
-
- *******************************************************************************
-
- FCLOSE: MOVE.W (A1),-(SP)
- MOVE.W #$3E,-(SP)
- TRAP #1
- ADDQ.L #4,SP
- RTS
-
- *******************************************************************************
-
- MALLOC: MOVE.L D0,-(SP)
- MOVE.W #$48,-(SP)
- TRAP #1
- ADDQ.L #6,SP
- MOVE.L D0,(A1)
- TST.L D0
- BEQ INIT_ERROR
- BMI INIT_ERROR
- RTS
-
- *******************************************************************************
-
- PRINTF: MOVE.L A0,-(SP)
- MOVE.W #9,-(SP)
- TRAP #1
- ADDQ.L #6,SP
- RTS
-
- *******************************************************************************
-
- WAIT_KEY: MOVE.W #7,-(SP)
- TRAP #1
- ADDQ.L #2,SP
- RTS
-
- *******************************************************************************
-
- FNUMBER: LEA NUMBER+15,A0
- LEA CONVERT,A1
- .RETRY: CLR.L D1
- DIVU.L #10,D1:D0
- MOVE.B (A1,D1.L),-(A0)
- TST.L D0
- BNE.S .RETRY
- BSR.S PRINTF
- RTS
-
- *******************************************************************************
-
- FCR: LEA CR_TXT,A0
- BSR.S PRINTF
- RTS
-
- *******************************************************************************
-
- * ON DEMANDE LE POSITIONEMENT DE L'IMAGE SUR LE PAPIER
- KEY_POS: LEA POSITION_TXT,A0
- BSR.S PRINTF
- .KEY: BSR.S WAIT_KEY
- .KEY_1: CMPI.B #"1",D0
- BNE.S .KEY_2
- CLR.W POS_FLAG
- RTS
- .KEY_2: CMPI.B #"2",D0
- BNE.S .KEY
- NOT.W POS_FLAG
- RTS
-
- *******************************************************************************
-
- * ON DEMANDE LA TAILLE DE L'IMAGE SUR LE PAPIER
- KEY_TAILLE: LEA TAILLE_TXT,A0
- BSR.S PRINTF
- .KEY: BSR.S WAIT_KEY
- SUB.B #"0",D0
- BMI.S .KEY
- CMPI.B #10,D0
- BPL.S .KEY
- AND.W #$FF,D0
- MOVE.W D0,TAILLE_FLAG
- RTS
-
- *******************************************************************************
-
- * ON DEMANDE LA TAILLE DE L'IMAGE SUR LE PAPIER
- KEY_RENDU: LEA METHODE_TXT,A0
- BSR PRINTF
- .KEY: BSR WAIT_KEY
- .KEY_1: CMPI.B #"3",D0
- BNE.S .KEY_2
- BSR.S KEY_MOTIF
- BSR RENDU1
- RTS
- .KEY_2: CMPI.B #"1",D0
- BNE.S .KEY_3
- BSR.S KEY_MOTIF
- BSR RENDU2
- RTS
- .KEY_3: CMPI.B #"2",D0
- BNE.S .KEY
- BSR RENDU3
- RTS
-
- *******************************************************************************
-
- KEY_MOTIF: LEA MOTIF_TXT,A0
- BSR PRINTF
- .KEY: BSR WAIT_KEY
- .KEY_1: CMPI.B #"1",D0
- BNE.S .KEY_2
- MOVE.L #COURBE,ADR_MOTIF
- RTS
- .KEY_2: CMPI.B #"2",D0
- BNE.S .KEY_3
- MOVE.L #POINT,ADR_MOTIF
- RTS
- .KEY_3: CMPI.B #"3",D0
- BNE.S .KEY_4
- MOVE.L #CERCLE,ADR_MOTIF
- RTS
- .KEY_4: CMPI.B #"4",D0
- BNE.S .KEY
-
- MOVE.L #ALEATOIRE,ADR_MOTIF
-
-
- MOVE.W #254,D2
-
- MOVE.W #17,-(SP)
- TRAP #14
- ADDQ.L #2,SP
- MOVE.B D0,ALEATOIRE
-
- .BCL0:
- MOVE.W #17,-(SP)
- TRAP #14
- ADDQ.L #2,SP
-
- LEA ALEATOIRE,A0
- MOVE.W #254,D1
- SUB.W D2,D1
- .BCL1: CMP.B (A0)+,D0
- BEQ.S .BCL0
- DBRA.W D1,.BCL1
- .CT2: MOVE.B D0,(A0)
- DBRA.W D2,.BCL0
- RTS
- *******************************************************************************
-
- * ON CALCULE LES DIMENSIONS FINALES
- DIMENSIONS_RASTER:
- DBG:
- TST.W POS_FLAG
- BNE.S .VER
-
- .HOR: BSR.S .HORIZONTALE1
- BSR .RATIO1
- CLR.L D0
- MOVE.W RASTER_Y,D0
- DIVU.W #48,D0
- MULU.W #48,D0
- MOVE.W D0,RASTER_Y
- BSR .RATIO2
- RTS
-
- .VER: BSR.S .VERTICALE1
- BSR .RATIO1
- MOVE.W RASTER_X,D0
- DIVU.W #48,D0
- MULU.W #48,D0
- MOVE.W D0,RASTER_X
- BSR .RATIO2
- RTS
-
- .HORIZONTALE1: MOVE.W #POUCE_X,RASTER_X
- .H1: CLR.L D0
- MOVE.W TGA_Y,D0
- MULU.W RASTER_X,D0
- DIVU.W TGA_X,D0
- MOVE.W D0,RASTER_Y
- CMPI.W #POUCE_Y,RASTER_Y
- BHI.S .H2
- RTS
- .H2: MOVE.W #POUCE_Y,RASTER_Y
- CLR.L D0
- MOVE.W TGA_X,D0
- MULU.W RASTER_Y,D0
- DIVU.W TGA_Y,D0
- MOVE.W D0,RASTER_X
- RTS
-
- .VERTICALE1: MOVE.W #POUCE_Y,RASTER_X
- .V1: CLR.L D0
- MOVE.W TGA_Y,D0
- MULU.W RASTER_X,D0
- DIVU.W TGA_X,D0
- MOVE.W D0,RASTER_Y
- CMPI.W #POUCE_X,RASTER_Y
- BHI.S .V2
- RTS
- .V2: MOVE.W #POUCE_X,RASTER_Y
- CLR.L D0
- MOVE.W TGA_X,D0
- MULU.W RASTER_Y,D0
- DIVU.W TGA_Y,D0
- MOVE.W D0,RASTER_X
- RTS
-
- .RATIO1: CLR.L D0
- MOVE.W RASTER_X,D0
- DIVU.W TAILLE_FLAG,D0
- MOVE.W D0,RASTER_X
- CLR.L D0
- MOVE.W RASTER_Y,D0
- DIVU.W TAILLE_FLAG,D0
- MOVE.W D0,RASTER_Y
- RTS
-
- .RATIO2: AND.W #$FFF0,RASTER_X
- AND.W #$FFF0,RASTER_Y
- RTS
-
- *******************************************************************************
-
- RENDU1:
- LEA CALCUL_TXT,A0
- BSR PRINTF
-
- BSR ALL_MALLOC
-
- * ON RESERVE RASTER_X*4 OCTETS POUR LES ERREURS
- CLR.L D0
- MOVE.W RASTER_X,D0
- ADDQ.W #1,D0
- LSL.W #2,D0 * MULU.W #4,D0
- MOVE.L D0,TAILLE_ERREUR
- LEA ADR_ERREUR,A1
- BSR MALLOC
-
-
- * ON RESERVE TGA_X*32 OCTETS POUR LA CONVERTION
- CLR.L D0
- MOVE.W TGA_X,D0
- LSL.L #5,D0 * MULU.W #32,D0
- MOVE.L D0,TAILLE_CONVERT
- LEA ADR_CONVERT,A1
- BSR MALLOC
-
- * ON RESERVE TGA_X*32 OCTETS POUR LES PRE-CALCULS
- CLR.L D0
- MOVE.W TGA_X,D0
- LSL.W #5,D0 * MULU.W #32,D0
- MOVE.L D0,TAILLE_TAB_X
- LEA ADR_TAB_X,A1
- BSR MALLOC
-
- MOVE.L TAILLE_ERREUR,D0
- MOVE.L ADR_ERREUR,A0
- .BCL0: CLR.L (A0)+
- SUBQ.L #4,D0
- BNE.S .BCL0
-
- MOVE.L ADR_TAB_X,A0
- CLR.W D3
- MOVE.W TGA_X1,D0
- MOVE.W TGA_X,D4
- MOVE.W RASTER_X,D5
- LSL.W #4,D4
- .X0: MOVE.W #15,D1
- .X1: CLR.L D2
- MOVE.W D3,D2
- MULU.W D5,D2
- DIVU.W D4,D2
- LSL.W #2,D2
-
- MOVE.W D2,(A0)+
-
- ADDQ.W #1,D3
- DBRA.W D1,.X1
- DBRA.W D0,.X0
-
-
- MOVE.W TGA_Y1,D0
- .Y: BSR AFF_NUMERO_LIGNE
- BSR LOAD_A_LINE
- BSR M1_CONVERT_A_LINE
- BSR M1_COMPRESS_A_LINE
- DBRA.W D0,.Y
-
- BSR M1_VIDE_BUFFER
-
- RTS
-
- *******************************************************************************
-
- RENDU2: LEA CALCUL_TXT,A0
- BSR PRINTF
-
- BSR ALL_MALLOC
-
- * ON RESERVE (RASTER_X/16)*4 OCTETS POUR LES ERREURS
- CLR.L D0
- MOVE.W RASTER_X,D0
- ADDQ.W #1,D0
- LSL.W #2,D0 * MULU.W #16,D0
- MOVE.L D0,TAILLE_ERREUR
- LEA ADR_ERREUR,A1
- BSR MALLOC
-
- * ON RESERVE TGA_X*2 OCTETS POUR LES PRE-CALCULS
- CLR.L D0
- MOVE.W TGA_X,D0
- LSL.W #1,D0 * MULU.W #2,D0
- MOVE.L D0,TAILLE_TAB_X
- LEA ADR_TAB_X,A1
- BSR MALLOC
-
- MOVE.L TAILLE_ERREUR,D0
- MOVE.L ADR_ERREUR,A0
- .BCL0: CLR.L (A0)+
- SUBQ.L #4,D0
- BNE.S .BCL0
-
- MOVE.L ADR_TAB_X,A0
- CLR.W D3
- MOVE.W TGA_X1,D0
- MOVE.W RASTER_X,D4
- MOVE.W TGA_X,D5
- LSR.W #4,D4
- .X0: CLR.L D2
- MOVE.W D3,D2
- MULU.W D4,D2
- DIVU.W D5,D2
- LSL.W #2,D2
- MOVE.W D2,(A0)+
- ADDQ.W #1,D3
- DBRA.W D0,.X0
-
- MOVE.W TGA_Y1,D0
- .Y: BSR AFF_NUMERO_LIGNE
- BSR LOAD_A_LINE
- BSR M2_COMPRESS_A_LINE
- DBRA.W D0,.Y
-
- BSR M2_VIDE_BUFFER
-
- RTS
-
- *******************************************************************************
-
- RENDU3: LEA CALCUL_TXT,A0
- BSR PRINTF
-
- BSR ALL_MALLOC
-
- * ON RESERVE RASTER_X*4 OCTETS POUR LES ERREURS
- CLR.L D0
- MOVE.W RASTER_X,D0
- ADDQ.W #1,D0
- LSL.L #2,D0
- MOVE.L D0,TAILLE_ERREUR
- LEA ADR_ERREUR,A1
- BSR MALLOC
-
- * ON RESERVE TGA_X*2 OCTETS POUR LES PRE-CALCULS
- CLR.L D0
- MOVE.W TGA_X,D0
- LSL.W #1,D0 * MULU.W #2,D0
- MOVE.L D0,TAILLE_TAB_X
- LEA ADR_TAB_X,A1
- BSR MALLOC
-
- MOVE.L TAILLE_ERREUR,D0
- MOVE.L ADR_ERREUR,A0
- .BCL0: CLR.L (A0)+
- SUBQ.L #4,D0
- BNE.S .BCL0
-
- MOVE.L ADR_TAB_X,A0
- CLR.W D3
- MOVE.W RASTER_X,D0
- SUBQ.W #1,D0
- MOVE.W TGA_X,D4
- MOVE.W RASTER_X,D5
-
- .X0: CLR.L D2
- MOVE.W D3,D2
- MULU.W D4,D2
- DIVU.W D5,D2
- MULU.W #3,D2
- MOVE.W D2,(A0)+
- ADDQ.W #1,D3
- DBRA.W D0,.X0
-
- MOVE.W TGA_Y1,D0
- .Y:
- BSR.S AFF_NUMERO_LIGNE
- BSR.S LOAD_A_LINE
- BSR M3_EXPAND_A_LINE
- DBRA.W D0,.Y
-
- RTS
-
- *******************************************************************************
-
- AFF_NUMERO_LIGNE:
-
- MOVE.L D0,-(SP)
-
- MOVE.W D0,D7
-
- LEA PROGRESSION_TXT,A0
- BSR PRINTF
-
- CLR.L D0
- MOVE.W D7,D0
- BSR FNUMBER
-
- LEA SUR_TXT,A0
- BSR PRINTF
-
- CLR.L D0
- MOVE.W TGA_Y1,D0
- BSR FNUMBER
-
-
- MOVE.L (SP)+,D0
-
- RTS
-
- *******************************************************************************
-
- ALL_MALLOC:
-
-
- * ON RESERVE RASTER_X*RASTER_Y*256 BITS POUR CALCULER L'IMAGE RASTER
- CLR.L D0
- MOVE.W RASTER_X,D0
- MULU.W RASTER_Y,D0
- LSR.L #3,D0
- MOVE.L D0,TAILLE_RASTER
- LEA ADR_RASTER,A1
- BSR MALLOC
-
-
- * MOVE.L $44E.W,ADR_RASTER
- * MOVE.W #640,RASTER_X
- * MOVE.W #480,RASTER_Y
-
- MOVE.L ADR_RASTER,PTR_RASTER
- RTS
-
- *******************************************************************************
-
- LOAD_A_LINE: MOVE.L D0,-(SP)
- MOVE.L ADR_BUFFER,A0
- LEA HANDLE1,A1
- MOVE.L TAILLE_BUFFER,D0
- BSR FREAD
- MOVE.L (SP)+,D0
- RTS
-
- *******************************************************************************
-
- M1_CONVERT_A_LINE:
- MOVE.L D0,-(SP)
-
- MOVE.L ADR_BUFFER,A0
- MOVE.L ADR_CONVERT,A1
- LEA COURBE_NG3,A3
-
- CLR.L D0
- MOVE.W TGA_X,D0
- LSL.W #1,D0
- MOVE.L D0,-(SP)
-
- MOVE.L ADR_MOTIF,A5
-
- MOVE.W TGA_X1,D0
- CLR.L D6
- CLR.W D5
- .X:
- LEA 2(A1),A6
-
- MOVE.B (A0)+,D6
-
- *CLR.W D5
- MOVE.B (A0)+,D5
- ADD.W D5,D6
-
- *CLR.W D5
- MOVE.B (A0)+,D5
- ADD.W D5,D6
-
- MOVE.W 2(A3,D6.W*4),D5
- MOVE.W (A3,D6.W*4),D6
-
- *DIVU.W #3,D6
-
- *MOVE.W D6,D5
- *CLR.W D6
- *SWAP D6
-
- *MOVE.L ADR_MOTIF,A2
- MOVE.L A5,A2
-
- MOVE.W #15,D1
- .YY: CLR.W D3
- MOVE.W #$8000,D4
- MOVE.W #15,D2
- .XX: MOVE.B (A2)+,D7
- CMP.B D7,D5
- BHI.S .CT
- OR.W D4,D3
- .CT: LSR.W #1,D4
- DBRA.W D2,.XX
- MOVE.W D3,(A1)
- *ADD.W TGA_X,A1
- *ADD.W TGA_X,A1
- ADD.L (SP),A1
- DBRA.W D1,.YY
- MOVE.L A6,A1
- DBRA.W D0,.X
-
- CLR.L (SP)+
- MOVE.L (SP)+,D0
- RTS
-
-
- *******************************************************************************
-
- M1_COMPRESS_A_LINE:
-
- MOVE.L D0,-(SP)
-
- MOVE.L ADR_CONVERT,A0
-
- CLR.L D1
- MOVE.W TGA_Y1,D1
- SUB.W D0,D1
- LSL.W #4,D1
-
- MOVE.W #15,D0
- .YY:
- MOVE.L D1,D2
- MULU.W RASTER_Y,D2
- MOVE.W TGA_Y,D5
- LSL.W #4,D5
- DIVU.W D5,D2
-
- CMP.W LIGNE_BUF_ACTUELLE,D2
- BEQ.S .CT1
-
- *BUFFER ERREUR A VIDER SUR IMAGE FINALE
- MOVE.W D2,LIGNE_BUF_ACTUELLE
-
- BSR.S M1_VIDE_BUFFER
-
- MOVE.L A2,PTR_RASTER
-
- .CT1:
- *BALANCER DANS ERREUR LA LIGNE RASTER
- MOVE.W TGA_X1,D7
- MOVE.L ADR_ERREUR,A1
- MOVE.L ADR_TAB_X,A6
- .XX2: MOVE.W #$8000,D5
- MOVE.W #15,D6
- .ZZ2: MOVE.W (A6)+,D2
-
- MOVE.W (A0),D4
- AND.W D5,D4
- BEQ.S .NO_POINT
- ADDQ.W #1,2(A1,D2.W)
- .NO_POINT:
- ADDQ.W #1,(A1,D2.W)
- LSR.W #1,D5
- DBRA.W D6,.ZZ2
- ADDQ.L #2,A0
- DBRA.W D7,.XX2
-
- ADDQ.W #1,D1
- DBRA.W D0,.YY
-
- MOVE.L (SP)+,D0
- RTS
-
-
-
- M1_VIDE_BUFFER:
- MOVE.L PTR_RASTER,A2
-
- MOVE.W RASTER_X,D7
- LSR.W #4,D7
- SUBQ.W #1,D7
- MOVE.L ADR_ERREUR,A1
- .XX1: MOVE.W #15,D3
- MOVE.W #$8000,D2
- CLR.W (A2)
- .ZZ1:
- MOVE.W (A1),D5
- * BNE.S .FILL
- *POINT NON REMPLI
- * MOVE.W #1,D5
- *
- * illegal
-
- .FILL: CLR.L D6
- MOVE.W 2(A1),D6
- DIVU.W D5,D6
-
- CMPI.W #1,D6
- BNE.S .0
- OR.W D2,(A2)
-
- .0: SWAP D6
-
- *REPARTITION DE L'ERREUR
- LSR.W #1,D6
- CLR.W (A1)+
- MOVE.W D6,(A1)+
- ADD.W D6,2(A1)
-
- LSR.W #1,D2
- DBRA.W D3,.ZZ1
- ADDQ.L #2,A2
- DBRA.W D7,.XX1
-
- RTS
-
- *******************************************************************************
-
- M2_COMPRESS_A_LINE:
- MOVE.L D0,-(SP)
-
- MOVE.W TGA_Y1,D2
- SUB.W D0,D2
- MOVE.W RASTER_Y,D4
- LSR.W #4,D4
- MULU.W D4,D2
- DIVU.W TGA_Y,D2
-
- CMP.W LIGNE_BUF_ACTUELLE,D2
- BEQ.S .CT1
- MOVE.W D2,LIGNE_BUF_ACTUELLE
- BSR.S M2_VIDE_BUFFER
-
- .CT1: MOVE.L ADR_BUFFER,A0
- MOVE.L ADR_ERREUR,A1
- MOVE.L ADR_TAB_X,A6
- LEA COURBE_NG1,A3
-
- MOVE.W TGA_X1,D0
- .X: MOVE.W (A6)+,D2
- CLR.W D1
- ADDQ.W #3,(A1,D2.W)
- MOVE.B (A0)+,D1
- MOVE.B (A3,D1.W),D1
- ADD.W D1,2(A1,D2.W)
- MOVE.B (A0)+,D1
- MOVE.B (A3,D1.W),D1
- ADD.W D1,2(A1,D2.W)
- MOVE.B (A0)+,D1
- MOVE.B (A3,D1.W),D1
- ADD.W D1,2(A1,D2.W)
- DBRA.W D0,.X
-
- MOVE.L (SP)+,D0
- RTS
-
- M2_VIDE_BUFFER:
- MOVE.L D0,-(SP)
-
- MOVE.L ADR_ERREUR,A0
- MOVE.L PTR_RASTER,A1
-
- MOVE.W RASTER_X,D0
- LSR.W #4,D0
- SUBQ.W #1,D0
-
- MOVE.W RASTER_X,D7
- LSR.W #3,D7
- MOVE.W D7,-(SP)
- .X:
- LEA 2(A1),A6
-
- CLR.L D6
- MOVE.W 2(A0),D6
- DIVU.W (A0),D6
-
- CLR.W (A0)+
- MOVE.W D6,D5
- SWAP D6
- MOVE.W D6,(A0)+
-
- MOVE.L ADR_MOTIF,A2
- MOVE.W #15,D1
- .YY: CLR.W D3
- MOVE.W #$8000,D4
- MOVE.W #15,D2
- .XX: MOVE.B (A2)+,D7
- CMP.B D7,D5
- BHI.S .CT
- OR.W D4,D3
- .CT: LSR.W #1,D4
- DBRA.W D2,.XX
- MOVE.W D3,(A1)
- *MOVE.W RASTER_X,D7
- *LSR.W #3,D7
- *ADD.W D7,A1
- ADD.W (SP),A1
- DBRA.W D1,.YY
-
- MOVE.L A6,A1
- DBRA.W D0,.X
-
-
- *MOVE.W RASTER_X,D7
- *LSR.W #3,D7
- MOVE.W (SP)+,D7
- MULU.W #15,D7
- ADD.W D7,A1
- MOVE.L A1,PTR_RASTER
-
- MOVE.L (SP)+,D0
-
- RTS
-
- *******************************************************************************
-
- M3_EXPAND_A_LINE:
-
- .RETRY: MOVE.L D0,-(SP)
-
- MOVE.L PTR_RASTER,A1
-
- MOVE.L ADR_ERREUR,A0
- MOVE.L ADR_BUFFER,A2
- MOVE.L ADR_TAB_X,A3
- LEA COURBE_NG1,A4
-
- CLR.W D3
- CLR.W D6
-
- MOVE.W RASTER_X,D0
- LSR.W #4,D0
- SUBQ.W #1,D0
- .X: MOVE.W #15,D1
- MOVE.W #$8000,D2
- MOVE.W #-1,(A1)
- .XX:
- MOVE.W (A3)+,D7
- CLR.W D4 * SOMME NUANCE
- MOVE.B (A2,D7.W),D4 * NUANCE 1
- MOVE.B (A4,D4.W),D4
- MOVE.B 1(A2,D7.W),D6 * NUANCE 2
- MOVE.B (A4,D6.W),D6
- ADD.W D6,D4
- MOVE.B 2(A2,D7.W),D6 * NUANCE 3
- MOVE.B (A4,D6.W),D6
- ADD.W D6,D4
-
- MOVE.W (A0),D5 * ERREUR LIGNE PRECEDENTE
-
- ADD.W D4,D3
- ADD.W D5,D3
- CMPI.W #382,D3
- BMI.S .CONT
- SUB.W #765,D3 * ERREUR RESTANT
- EOR.W D2,(A1)
-
- .CONT: ASR.W #1,D3
- LSR.W #1,D2
- MOVE.W D3,(A0)+
-
- DBRA.W D1,.XX
- ADDQ.L #2,A1
- DBRA.W D0,.X
-
- MOVE.L A1,PTR_RASTER
-
- MOVE.L (SP)+,D0
-
- ADDQ.W #1,LIGNE_BUF_ACTUELLE
- MOVE.W LIGNE_BUF_ACTUELLE,D3
- CMP.W RASTER_Y,D3
- BEQ.S .FIN
- CLR.L D2
- MOVE.W RASTER_Y,D2
- SUB.W D3,D2
- MULU.W TGA_Y,D2
- DIVU.W RASTER_Y,D2
- CMP.W D2,D0
- BEQ .RETRY
-
-
- .FIN: RTS
-
- ********************************************************************************
-
- IMPRIME_ALL:
- CLR.L D0
- MOVE.L ADR_RASTER,PTR_RASTER
- MOVE.W RASTER_Y,D0
- TST.W POS_FLAG
- BEQ.S .CT0
-
- MOVE.W RASTER_X,D0
- CLR.L D7
- MOVE.W RASTER_X,D7
- LSR.W #3,D7
- MULU.W RASTER_Y,D7
- ADD.L D7,PTR_RASTER
-
- .CT0: DIVU.W #48,D0
- SUBQ.W #1,D0
- .Y:
- MOVE.W D0,-(SP)
-
- LEA NB_POINT+2,A0
- MOVE.L PTR_RASTER,A1
-
- TST.W POS_FLAG
- BNE.S .VERTICALE
-
- .HORIZONTALE:
- CLR.L D6
- MOVE.W RASTER_X,D6
- LSR.W #3,D6
- MOVE.W D6,D0
- LSR.W #1,D0
- SUBQ.W #1,D0
-
- .NEXT_WORD: MOVE.W #15,D1
- MOVE.W #$8000,D7
- .BCL0: MOVE.L A1,A2
- MOVE.W #5,D2
- .BCL1: CLR.B D5
- MOVE.W #7,D3
- .BCL2:
- LSL.B #1,D5
- MOVE.W (A2),D4
- AND.W D7,D4
- BEQ.S .CT
- BSET #0,D5
- .CT:
- ADD.W D6,A2
- DBRA.W D3,.BCL2
- MOVE.B D5,(A0)+
- DBRA.W D2,.BCL1
- LSR.W #1,D7
- DBRA.W D1,.BCL0
-
- ADDQ.W #2,A1
- DBRA.W D0,.NEXT_WORD
-
- MULU.W #48,D6
- ADD.L D6,PTR_RASTER
-
- BRA.S .SUITE
- .VERTICALE:
- MOVE.W RASTER_Y,D6
- CLR.L D7
- MOVE.W RASTER_X,D7
- LSR.W #3,D7
- SUBQ.W #1,D6
- .BCL:
- SUB.L D7,A1
- MOVE.L (A1),(A0)+
- MOVE.W 4(A1),(A0)+
- DBRA.W D6,.BCL
-
- ADDQ.L #6,PTR_RASTER
-
- .SUITE:
- MOVE.L A0,D1
- MOVE.L A0,D0
- LEA NB_POINT,A0
- SUB.L A0,D1
- SUBQ.W #2,D1
- DIVU.W #6,D1
- MOVE.B D1,(A0)+
- LSR.W #8,D1
- MOVE.B D1,(A0)+
-
- LEA PRINT_LIGNE,A0
- SUB.L #PRINT_LIGNE,D0
- BSR.S IMPRIME
-
- LEA SAUT_DE_LIGNE,A0
- MOVEQ.L #5,D0
- BSR.S IMPRIME
-
- MOVE.W (SP)+,D0
- DBRA.W D0,.Y
-
- .WT_FIN: TST.W INT_PRINTER
- BNE.S .WT_FIN
-
- RTS
-
- ********************************************************************************
-
- IMPRIME: TST.W INT_PRINTER
- BNE.S IMPRIME
- MOVE.L A0,POS_BUFFER
- MOVE.L D0,RES_BUFFER
- BSR.S SET_INT
- BSR WAIT_PRINTER
- BSR.S ENVOIE_UN_CHAR
- RTS
-
- **********************
- *** REGLAGE DES IT ***
- **********************
-
- SET_INT: MOVE.W SR,-(SP)
- BSR PRN_INIT
- MOVE.W #$2700,SR
- MOVE.L $100.W,EX_TIMER
- MOVE.L #PRINTER,$100.W
- BSET #0,$FFFFFA09.W
- BSET #0,$FFFFFA15.W
- MOVE.W #-1,INT_PRINTER
- MOVE.W (SP)+,SR
- *NOT.L $FFFF9800.W
- RTS
-
- CLR_INT: MOVE.W SR,-(SP)
- BSR PRN_END
- MOVE.W #$2700,SR
- BCLR #0,$FFFFFA09.W
- BCLR #0,$FFFFFA15.W
- MOVE.L EX_TIMER,$100.W
- CLR.W INT_PRINTER
- MOVE.W (SP)+,SR
- *NOT.L $FFFF9800.W
- RTS
- ***********************
- *** ROUTINE SOUS IT ***
- ***********************
-
- PRINTER: *NOT.L $FFFF9800.W
- BSR.S ENVOIE_UN_CHAR
- BCLR #0,$FFFFFA11.W
- *NOT.L $FFFF9800.W
- RTE
-
- *********************************************************
- *** ON EXPEDIE UN CARACTERE DE LA FILE A L'IMPRIMANTE ***
- *********************************************************
-
- ENVOIE_UN_CHAR: MOVE.L A0,-(SP)
- MOVE.L D0,-(SP)
- MOVE.L POS_BUFFER,A0
- MOVE.B (A0)+,D0
- MOVE.L A0,POS_BUFFER
- SUBQ.L #1,RES_BUFFER
- BNE.S .CONT
- BSR.S CLR_INT
- .CONT: BSR.S PRN_RUN
- MOVE.L (SP)+,D0
- MOVE.L (SP)+,A0
- RTS
-
-
- **************************************
- *** INITIALISATION DE L'IMPRIMANTE ***
- **************************************
- PRN_INIT: MOVE.L A0,-(SP)
- MOVE.L D0,-(SP)
- LEA $FFFF8800.W,A0
- * ON PREND L'ETAT DU REG 14
- MOVE.B #14,(A0)
- MOVE.B (A0),EX_REG14
- * ON PREND L'ETAT DU REG 7
- MOVE.B #7,(A0)
- MOVE.B (A0),D0
- MOVE.B D0,EX_REG7
- * CENTRONIC EN SORTIE
- OR.B #128,D0
- * ON BALANCE LE NOUVEAU REGISTRE 7
- MOVE.B D0,2(A0)
- MOVE.L (SP)+,D0
- MOVE.L (SP)+,A0
- RTS
-
- ***************************************
- *** ON ENVOIE UNE SÉRIE DE DONNÉES ***
- ***************************************
- PRN_RUN: LEA $FFFF8800.W,A0
- * ON BALANCE LA DONNÉE SUR LE PORT: REGISTRE 15
- MOVE.B #15,(A0)
- MOVE.B D0,2(A0)
- * ON PREND L'ETAT DU REG 14
- MOVE.B #14,(A0)
- MOVE.B (A0),D0
- * CENTRONIC EN SORTIE
- AND.B #223,D0
- * ON BALANCE LE NOUVEAU REGISTRE 14
- REPT 2
- MOVE.B D0,2(A0)
- ENDR
- * CENTRONIC EN SORTIE
- OR.B #32,D0
- * ON BALANCE LE NOUVEAU REGISTRE 14
- MOVE.B D0,2(A0)
- RTS
-
- ********************************
- *** ON RETABLIT L'IMPRIMANTE ***
- ********************************
- PRN_END: MOVE.L A0,-(SP)
- LEA $FFFF8800.W,A0
- * ON BALANCE L'ANCIEN REGISTRE 7
- MOVE.B #7,(A0)
- MOVE.B EX_REG7,2(A0)
- * ON BALANCE L'ANCIEN REGISTRE 14
- MOVE.B #14,(A0)
- MOVE.B EX_REG14,2(A0)
- MOVE.L (SP)+,A0
- RTS
-
- **************************
- *** IMPRIMANTE PRETE ? ***
- **************************
- WAIT_PRINTER: BTST #0,$FFFFFA01.W
- BNE.S WAIT_PRINTER
- RTS
- ********************************************************************************
- KEY_CURVE:
- LEA CURVE_TXT,A0
- BSR PRINTF
- .RETRY: BSR WAIT_KEY
-
- .KEY_1: CMPI.B #"1",D0
- BNE.S .KEY_2
- BSR AUTO_CURVE
- RTS
-
- .KEY_2: CMPI.B #"2",D0
- BNE.S .KEY_3
- MOVE.W #0,P000
- MOVE.W #85,P085
- MOVE.W #170,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_3: CMPI.B #"3",D0
- BNE.S .KEY_4
- MOVE.W #0,P000
- MOVE.W #115,P085
- MOVE.W #190,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
-
- .KEY_4: CMPI.B #"4",D0
- BNE.S .KEY_5
- MOVE.W #0,P000
- MOVE.W #115,P085
- MOVE.W #140,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_5: CMPI.B #"5",D0
- BNE.S .KEY_6
- MOVE.W #0,P000
- MOVE.W #100,P085
- MOVE.W #155,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_6: CMPI.B #"6",D0
- BNE.S .KEY_7
- MOVE.W #0,P000
- MOVE.W #70,P085
- MOVE.W #185,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_7: CMPI.B #"7",D0
- BNE.S .KEY_8
- MOVE.W #0,P000
- MOVE.W #55,P085
- MOVE.W #200,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_8: CMPI.B #"8",D0
- BNE.S .KEY_9
- MOVE.W #0,P000
- MOVE.W #0,P085
- MOVE.W #255,P170
- MOVE.W #255,P255
- BSR CURVE_64BIT
- RTS
-
- .KEY_9: CMPI.B #"9",D0
- BNE .RETRY
- MOVE.W #255,P000
- MOVE.W #170,P085
- MOVE.W #85,P170
- MOVE.W #0,P255
- BSR CURVE_64BIT
- RTS
-
- AUTO_CURVE:
- LEA WAIT1_TXT,A0
- BSR PRINTF
-
- MOVE.L FNAME,A0
- LEA HANDLE2,A1
- BSR FOPEN
- * ON LIT L'ENTETE
- LEA TGA,A0
- LEA HANDLE2,A1
- MOVEQ.L #18,D0
- BSR FREAD
-
- MOVE.W TGA_Y1,D0
- CLR.L D5
- CLR.L D6
- CLR.L D7
- .Y: MOVE.L D0,-(SP)
- MOVE.L ADR_BUFFER,A0
- LEA HANDLE2,A1
- MOVE.L TAILLE_BUFFER,D0
- BSR FREAD
- MOVE.L (SP)+,D0
- MOVE.L ADR_BUFFER,A0
- MOVE.W TGA_X1,D1
- .X: CLR.W D2
- CLR.W D3
- MOVE.B (A0)+,D2
- MOVE.B (A0)+,D3
- ADD.W D3,D2
- MOVE.B (A0)+,D3
- ADD.W D3,D2
- .F0TO85: CMPI.W #256,D2
- BPL.S .F85TO170
- ADDQ.L #1,D5
- BRA.S .CT
- .F85TO170: CMPI.W #512,D2
- BPL.S .F170TO255
- ADDQ.L #1,D6
- BRA.S .CT
- .F170TO255: ADDQ.L #1,D7
- .CT: DBRA.W D1,.X
- DBRA.W D0,.Y
-
- * ON FERME LE FICHIER IMAGE
- LEA HANDLE2,A1
- BSR FCLOSE
-
- MOVE.L D5,D4
- ADD.L D6,D4
- ADD.L D7,D4
-
- CLR.L D3
- MULU.L #255,D5
- DIVU.L D4,D3:D5
-
- CLR.L D3
- MULU.L #255,D6
- DIVU.L D4,D3:D6
-
- * CLR.L D3
- * MULU.L #255,D7
- * DIVU.L D4,D3:D7
-
- MOVE.W #0,P000
-
- MOVE.W D5,P085
-
- MOVE.W D5,P170
- ADD.W D6,P170
-
- MOVE.W #255,P255
-
- BSR.S CURVE_64BIT
- RTS
- ********************************************************************************
- * COURBE Y=AX^3+BX^2+CX+D
- * EN FONCTION DE Y(000) Y(085) Y(170) Y(255)
- CURVE_64BIT:
- * COEFFICIENT D
- CLR.L D0
- MOVE.W P000,D0
- MOVE.L D0,COEF_D
- * COEFFICIENT C
- MOVE.W P000,D0
- EXT.L D0
- MULS.W #-11,D0
-
- MOVE.W P085,D1
- EXT.L D1
- MULS.W #18,D1
-
- MOVE.W P170,D2
- EXT.L D2
- MULS.W #-9,D2
-
- MOVE.W P255,D3
- EXT.L D3
- ASL.L #1,D3
-
- MOVE.L D0,D4
- ADD.L D1,D4
- ADD.L D2,D4
- ADD.L D3,D4
- MOVE.L D4,COEF_C
-
- * COEFFICIENT B
- MOVE.W P000,D0
- EXT.L D0
- MULS.W #-7,D0
-
- MOVE.W P085,D1
- EXT.L D1
- MULS.W #8,D1
-
- MOVE.W P170,D2
- EXT.L D2
- NEG.L D2
-
- MOVE.L COEF_C,D3
- NEG.L D3
-
- MOVE.L D0,D4
- ADD.L D1,D4
- ADD.L D2,D4
- ADD.L D3,D4
- MOVE.L D4,COEF_B
-
- * COEFFICIENT A
- MOVE.W P000,D0
- EXT.L D0
- MULS.L #-24,D0
-
- MOVE.W P085,D1
- EXT.L D1
- MULS.L #24,D1
-
- MOVE.L COEF_B,D2
- MULS.L #-6,D2
-
- MOVE.L COEF_C,D3
- MULS.L #-4,D3
-
- MOVE.L D0,D4
- ADD.L D1,D4
- ADD.L D2,D4
- ADD.L D3,D4
- MOVE.L D4,COEF_A
-
- MOVE.L COEF_A,D0
- ASR.L #3,D0
- MOVE.L D0,COEF_A
-
- MOVE.L COEF_B,D0
- MULS.L #510,D0
- ASR.L #3,D0
- MOVE.L D0,COEF_B
-
- MOVE.L COEF_C,D0
- MULS.L #28900,D0
- ASR.L #3,D0
- MOVE.L D0,COEF_C
-
- MOVE.L COEF_D,D0
- MULS.L #14739000/8,D0
- MOVE.L D0,COEF_D
-
- MOVE.L #14739000/8,DENOMINATEUR
-
- LEA COURBE_NG3,A0
- LEA COURBE_NG1,A1
- CLR.L D1
- MOVE.W #255,D0
- .BCL:
- MOVE.L D1,D2
-
- MOVE.L D1,D3
- MULS.L D1,D3
-
- MOVE.L D3,D4
- MULS.L D1,D4
-
- MULS.L COEF_A,D4
- MULS.L COEF_B,D3
- MULS.L COEF_C,D2
-
- MOVE.L COEF_D,D5
- ADD.L D4,D5
- ADD.L D3,D5
- ADD.L D2,D5
- ADD.L #14739000/16,D5
- TST.L D5
- BPL.S .T1
- CLR.W D5
- BRA.S .CT
- .T1: CLR.L D6
- DIVS.L DENOMINATEUR,D6:D5
-
- CMPI.W #256,D5
- BMI.S .T2
- MOVE.W #255,D5
- BRA.S .CT
-
- .T2: AND.W #$00FF,D5
-
- .CT: CLR.W (A0)+
- MOVE.W D5,(A0)+
- MOVE.W #1,(A0)+
- MOVE.W D5,(A0)+
- MOVE.W #2,(A0)+
- MOVE.W D5,(A0)+
-
- MOVE.B D5,(A1)+
-
- * MOVEM.L D0-A6,-(SP)
- * MOVE.L D1,D0
- * BSR FNUMBER
- * LSR.W #2,D5
- *.BC: MOVE.W #"*",-(SP)
- * MOVE.W #2,-(SP)
- * TRAP #1
- * ADDQ.L #4,SP
- * DBRA.W D5,.BC
- * BSR FCR
- * MOVEM.L (SP)+,D0-A6
-
- ADDQ.L #1,D1
- DBRA.W D0,.BCL
- RTS
- ********************************************************************************
- SECTION DATA
- *******************************************************************************
- CONVERT: DC.B "0123456789"
- EVEN
- NUMBER: DC.B "***************",0
- EVEN
- PRESENTATION_TXT:
- DC.B 27,"E"
- DC.B "*************************************",13,10
- DC.B "*** TARGA FILES FOR BJ-10 PRINTER *** PAR Simon VOLANT (C)1995",13,10
- DC.B "*************************************",13,10,10,0
- EVEN
- FICHIER_TXT: DC.B "FICHIER TGA: ",9,0
- EVEN
- TAILLE_IMG_TXT: DC.B "TAILLE IMAGE: ",9,0
- EVEN
- TAILLE_RAS_TXT: DC.B 10,"TAILLE RASTER: ",9,0
- EVEN
- TAILLE_PAP_TXT: DC.B " (MAXIMUM 2880*3960).",13,10,0
- EVEN
- X_TXT: DC.B "x",0
- EVEN
- SOIT_TXT: DC.B " SOIT ",0
- EVEN
- OCTETS_TXT: DC.B " OCTETS.",13,10,0
- EVEN
- POSITION_TXT: DC.B 10,"POSITIONNEMENT DU DESSIN:",13,10
- DC.B " 1) PORTRAIT",13,10
- DC.B " 2) PAYSAGE",13,10,0
- EVEN
- TAILLE_TXT: DC.B 10,"TAILLE DU DESSIN:",13,10
- DC.B " 1) 1/1 (MAXIMALE) 4) 1/4 (1/16 DU MAXIMUM) 7) 1/7 (1/49 DU MAXIMUM)",13,10
- DC.B " 2) 1/2 (1/4 DU MAXIMUM) 5) 1/5 (1/25 DU MAXIMUM) 8) 1/8 (1/64 DU MAXIMUM)",13,10
- DC.B " 3) 1/3 (1/9 DU MAXIMUM) 6) 1/6 (1/36 DU MAXIMUM) 9) 1/9 (1/81 DU MAXIMUM)",13,10,0
- EVEN
- WAIT1_TXT: DC.B 10,"ANALYSE DE LA LUMINOSITE DE L'IMAGE ...",13,10,0
- EVEN
- WAIT2_TXT: DC.B 13,10,10,"IMPRESSION EN COURS ...",13,10,0
- EVEN
- CURVE_TXT: DC.B 10,"CONTRASTE:",13,10
- DC.B " 1) ADAPTE A L'IMAGE (POUR LES IMAGES SOMBRES)",13,10
- DC.B " 2) PAS DE MODIFICATION",13,10
- DC.B " 3) COMPENSATION DEFAUT IMPRIMANTE",13,10
- DC.B " 4) CONTRASTE TRES FAIBLE",13,10
- DC.B " 5) CONTRASTE FAIBLE",13,10
- DC.B " 6) CONTRASTE FORT",13,10
- DC.B " 7) CONTRASTE TRES FORT",13,10
- DC.B " 8) IMAGE BINAIRE (NOIR OU BLANC)",13,10
- DC.B " 9) INVERSE (NEGATIF)",13,10,0
- EVEN
- METHODE_TXT: DC.B 10,"PREFERENCE DE RENDU:",13,10
- DC.B " 1) MISE A L'ECHELLE PUIS QUANTIFICATION (QUALITE BASSE / RAPIDE)",13,10
- DC.B " 2) QUANTIFICATION TYPE FLOYD/STEINBERG (QUALITE MOYENNE / MOYEN )",13,10
- DC.B " 3) QUANTIFICATION PUIS MISE A L'ECHELLE (QUALITE BONNE / LENT )",13,10,0
- EVEN
- MOTIF_TXT: DC.B 10,"MOTIF DE REMPLISSAGE:",13,10
- DC.B " 1) COURBE FRACTALE",13,10
- DC.B " 2) CARRE",13,10
- DC.B " 3) DISQUE",13,10
- DC.B " 4) ALEATOIRE",13,10,0
- EVEN
- CALCUL_TXT: DC.B 10,"CALCULS EN COURS:",13,10,0
- EVEN
- PROGRESSION_TXT:
- DC.B " ",13,"LIGNE: ",0
- EVEN
- SUR_TXT: DC.B "/",0
- EVEN
- CR_TXT: DC.B 13,10,0
- EVEN
-
- *******************************************************************************
-
- COURBE: DC.B 085,086,089,090, 101,102,105,106, 149,150,153,154, 165,166,169,170
- DC.B 084,087,088,091, 100,103,104,107, 148,151,152,155, 164,167,168,171
- DC.B 083,082,093,092, 099,098,109,108, 147,146,157,156, 163,162,173,172
- DC.B 080,081,094,095, 096,097,110,111, 144,145,158,159, 160,161,174,175
-
- DC.B 079,076,075,074, 117,116,115,112, 143,140,139,138, 181,180,179,176
- DC.B 078,077,072,073, 118,119,114,113, 142,141,136,137, 182,183,178,177
- DC.B 065,066,071,070, 121,120,125,126, 129,130,135,134, 185,184,189,190
- DC.B 064,067,068,069, 122,123,124,127, 128,131,132,133, 186,187,188,191
-
- DC.B 063,062,049,048, 047,044,043,042, 213,212,211,208, 207,206,193,192
- DC.B 060,061,050,051, 046,045,040,041, 214,215,210,209, 204,205,194,195
- DC.B 059,056,055,052, 033,034,039,038, 217,216,221,222, 203,200,199,196
- DC.B 058,057,054,053, 032,035,036,037, 218,219,220,223, 202,201,198,197
-
- DC.B 005,006,009,010, 031,028,027,026, 229,228,227,224, 245,246,249,250
- DC.B 004,007,008,011, 030,029,024,025, 230,231,226,225, 244,247,248,251
- DC.B 003,002,013,012, 017,018,023,022, 233,232,237,238, 243,242,253,252
- DC.B 000,001,014,015, 016,019,020,021, 234,235,236,239, 240,241,254,255
-
- *******************************************************************************
-
- POINT: DC.B 255,196,197,198, 199,200,201,202, 203,204,205,206, 207,208,209,210
- DC.B 254,195,144,145, 146,147,148,149, 150,151,152,153, 154,155,156,211
- DC.B 253,194,143,100, 101,102,103,104, 105,106,107,108, 109,110,157,212
- DC.B 252,193,142,099, 064,065,066,067, 068,069,070,071, 072,111,158,213
-
- DC.B 251,192,141,098, 063,036,037,038, 039,040,041,042, 073,112,159,214
- DC.B 250,191,140,097, 062,035,016,017, 018,019,020,043, 074,113,160,215
- DC.B 249,190,139,096, 061,034,015,004, 005,006,021,044, 075,114,161,216
- DC.B 248,189,138,095, 060,033,014,003, 000,007,022,045, 076,115,162,217
-
- DC.B 247,188,137,094, 059,032,013,002, 001,008,023,046, 077,116,163,218
- DC.B 246,187,136,093, 058,031,012,011, 010,009,024,047, 078,117,164,219
- DC.B 245,186,135,092, 057,030,029,028, 027,026,025,048, 079,118,165,220
- DC.B 244,185,134,091, 056,055,054,053, 052,051,050,049, 080,119,166,221
-
- DC.B 243,184,133,090, 089,088,087,086, 085,084,083,082, 081,120,167,222
- DC.B 242,183,132,131, 130,129,128,127, 126,125,124,123, 122,121,168,223
- DC.B 241,182,181,180, 179,178,177,176, 175,174,173,172, 171,170,169,224
- DC.B 240,239,238,237, 236,235,234,233, 232,231,230,229, 228,227,226,225
-
- *******************************************************************************
-
- CERCLE: DC.B 254,246,238,230, 222,214,206,198, 196,204,212,220, 228,236,244,252
- DC.B 250,194,186,178, 170,162,154,146, 144,152,160,168, 176,184,192,248
- DC.B 242,190,142,134, 126,118,110,102, 100,108,116,124, 132,140,188,240
- DC.B 234,182,138,098, 090,082,074,066, 064,072,080,088, 096,136,180,232
-
- DC.B 226,174,130,094, 062,054,046,038, 036,044,052,060, 092,128,172,224
- DC.B 218,166,122,086, 058,034,026,018, 016,024,032,056, 084,120,164,216
- DC.B 210,158,114,078, 050,030,014,006, 004,012,028,048, 076,112,156,208
- DC.B 202,150,106,070, 042,022,010,002, 000,008,020,040, 068,104,148,200
-
- DC.B 201,149,105,069, 041,021,009,001, 003,011,023,043, 071,107,151,203
- DC.B 206,157,113,077, 049,029,013,005, 007,015,031,051, 079,115,159,211
- DC.B 217,165,121,085, 057,033,025,017, 019,027,035,059, 087,123,167,219
- DC.B 225,173,129,093, 061,053,045,037, 039,047,055,063, 095,131,175,227
-
- DC.B 233,181,137,097, 089,081,073,065, 067,075,083,091, 099,139,183,235
- DC.B 241,189,141,133, 125,117,109,101, 103,111,119,127, 135,143,191,243
- DC.B 249,193,185,177, 169,161,153,145, 147,155,163,171, 179,187,195,251
- DC.B 253,245,237,229, 221,213,205,197, 199,207,215,223, 231,239,247,255
-
- *******************************************************************************
- SAUT_DE_LIGNE: DC.B $1C,$43,$4A,$04,48
- PRINT_LIGNE: DC.B $0D,$1C,$43,$42,04,04
- NB_POINT: DS.B 2
- *******************************************************************************
- SECTION BSS
- *******************************************************************************
- DS.B (POUCE_X*48)/8 *(67*256)+128=17280
- *******************************************************************************
- ALEATOIRE: DS.B 256
- *******************************************************************************
- TGA: DS.B 18
- TGA_X: DS.W 1
- TGA_Y: DS.W 1
- TGA_X1: DS.W 1
- TGA_Y1: DS.W 1
- RASTER_X: DS.W 1
- RASTER_Y: DS.W 1
- FNAME: DS.L 1
- HANDLE1: DS.W 1
- HANDLE2: DS.W 1
- POS_FLAG: DS.W 1
- TAILLE_FLAG: DS.W 1
- LIGNE_BUF_ACTUELLE:
- DS.W 1
- TAILLE_BUFFER: DS.L 1
- ADR_BUFFER: DS.L 1
- TAILLE_ERREUR: DS.L 1
- ADR_ERREUR: DS.L 1
- TAILLE_RASTER: DS.L 1
- ADR_RASTER: DS.L 1
- PTR_RASTER: DS.L 1
- TAILLE_CONVERT: DS.L 1
- ADR_CONVERT: DS.L 1
- TAILLE_TAB_X: DS.L 1
- ADR_TAB_X: DS.L 1
- ADR_MOTIF: DS.L 1
- *******************************************************************************
- P000: DS.W 1
- P085: DS.W 1
- P170: DS.W 1
- P255: DS.W 1
- COEF_A: DS.L 1
- COEF_B: DS.L 1
- COEF_C: DS.L 1
- COEF_D: DS.L 1
- DENOMINATEUR: DS.L 1
- COURBE_NG3: DS.B 256*3*4
- COURBE_NG1: DS.B 256
- *******************************************************************************
- ***************
- *** PRINTER ***
- ***************
- * SAUVEGARDE DES REGISTRE
- EX_REG7: DS.B 1
- EX_REG14: DS.B 1
- EX_TIMER: DS.L 1
- * L'INTERRUPTION EST-ELLE VALIDE
- INT_PRINTER: DS.W 1
- POS_BUFFER: DS.L 1
- RES_BUFFER; DS.L 1
-
- *******************************************************************************
-
- END