DATE
PROG
TRN
<
<
< D E F I N I T I O N S G E N E R A L E S :
<
<
XUNDEF:: VAL -1 < POUR NE DEFINIR QUE LES 'XX...' DANS LES
< FICHIERS DE DEFINITION...
CALL #SIP DEFINITION CTTE#
<
< PREPARATION DE L'APPEL DE #SIP UTILITAIRES# :
<
XXXDEF: VAL XUNDEF
XXXLOC: VAL XUNDEF
XXXTAB: VAL XUNDEF
XXXPRO: VAL XUNDEF
CALL #SIP UTILITAIRES#
<
<
< D E F I N I T I O N D E L ' I M A G E :
<
<
XXXVEC: VAL XUNDEF < AFIN DE NE DEFINIR QUE LES 'XXVEC'...
CALL #SIP VECTEUR 512#
XXXVEC: VAL XXVEC1 < DEFINITION DES CONSTANTES IMAGE/VECTEUR.
CALL #SIP VECTEUR 512#
PAGE
<
<
< O P T I O N S D ' A S S E M B L A G E :
<
<
XOPT01: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'XOPT01'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
XOPT01:: VAL EXIST < TRACE GRAPHIQUE, ET VERIFICATIONS CROI-
< SEES DES EQUATIONS CALCULEES...
XEIF%: VAL ENDIF
PAGE
<
<
< B A S D E L A M E M O I R E :
<
<
ZERO: EQU $
DZS PEPROG-D+Z
<
< POINT D'ENTREE :
<
ENTRY: EQU $
LRM A,K
WORD DEBUT < POINT D'ENTREE DU PROGRAMME,
WORD STACK-DEPILE < INITIALISATION DE LA PILE.
PSR A
RSR < ON EFFECTUE AINSI UN 'GOTO' 'DEBUT'...
PAGE
<
<
< M E S S A G E S :
<
<
TABLE
<
< BUFFER BANDE :
<
LBUFMT: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'LBUFMT'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
LBUFMT:: VAL 4096*4
XEIF%: VAL ENDIF
BUFMT: EQU $
DZS LBUFMT/NOCMO
<
<
< C O M M O N :
<
<
COMMON
COM: EQU $
<
< MOT DESTINE AU BLOC FLOTTANT :
<
COMFLO: WORD NILK < MOT "BIDON" DESTINE AU BLOC FLOTTANT
< POUR QU'IL Y FIT SES MERDES...
ATSFLO: WORD TSFLO < POUR TESTER DE TEMPS EN TEMPS 'COMFLO'...
<
< INDICATEURS DE CONTROLE :
<
ABLOC0: WORD K < ADRESSE DU PREMIER BLOC A LIRE.
LBLOC: WORD LBUFMT < LONGUEUR DES BLOCS PHYSIQUES SUR LA
< BANDE.
IERASE: WORD NEXIST < EFFACER ('EXIST'), OU NON ('NEXIST')
< L'ECRAN 512...
IVIDEO: WORD NEXIST < ECRIRE ('EXIST') L'IMAGE COURANTE SUR LE
< DISQUE VIDEO OU PAS ('NEXIST').
IQUIT: WORD NEXIST < S'ARRETER ('EXIST') OU PAS ('NEXIST')
< APRES CHAQUE IMAGE (POINT D'ARRET).
<
< CONSTANTES FLOTTANTES DE BASE :
<
F0: FLOAT <K<K<K < REMISE A ZERO FLOTTANTE...
F1: FLOAT <W<K<K < L'UNITE EN FLOTTANT...
XXXLOC: VAL YYYFLO < 'YYYFLO'.
CALL #SIP UTILITAIRES#
<
< DEMANDE DE TEMPORISATION
< APRES EFFACEMENT :
<
TEMPO: BYTE NVPSER;FONDOR
WORD NILK < INUTILE...
WORD XXXMOY < 2 PETITES SECONDES...
XXXLOC: VAL YYYGOT < 'YYYGOT'.
CALL #SIP UTILITAIRES#
XXXVEC: VAL XXVEC2 < DEFINITION DES DONNEES DU VECTEUR 512...
CALL #SIP VECTEUR 512#
APOINT: WORD POINT < SOUS-PROGRAMME DE MARQUAGE D'UN POINT
< DE COORDONNEES (X), DONT LE NIVEAU EST
< CALCULE VIA LA TABLE 'LNIVO'.
ALNIVO: WORD LNIVO,X < TABLE DE CORRESPONDANCE DES NIVEAUX POUR
< LE SOUS-PROGRAMME 'POINT'.
<
< ACCES AUX REGISTRES DE CONTROLE :
<
ACTRL1: WORD RCTRL1
ACTRL2: WORD RCTRL2
<
< GESTION DU DEROULEUR :
<
LBLOC0: WORD LBUFMT < POUR VALIDER 'LBLOC'...
NVPMT:: VAL '0B < 'NVP' D'ACCES AU DEROULEUR DE BANDES.
DEMMT: BYTE NVPMT;XFMTRA < DEMANDE DE LECTURE A ACCES DIRECT.
WORD BUFMT=FCTA*NOCMO
WORD LBUFMT
WORD NILK < ADRESSE DU BLOC COURANT.
IF Z-I,,XEIF%,
IF ATTENTION : L'INITIALISATION DE 'IBUFMT' ET
IF 'ZBUFMT' SERA MAUVAISE !!!
XEIF%: VAL ENDIF
IBUFMT: WORD LBUFMT-Z+I < INDEX COURANT DU BUFFER 'MT',
ZBUFMT: WORD LBUFMT-Z+I < ET POUR FORCER LA LECTURE DU PREMIER
< BLOC DE CHAQUE IMAGE...
ABUFMT: WORD BUFMT,X < ET RELAI D'ACCES...
<
< DEFINITION DU MODE D'ENTREE :
<
XBIN:: VAL EXIST < ENTREE BINAIRE (16 BITS PAR COORDONNEE).
XASCI:: VAL NEXIST < ENTREE ASCI (4 CARACTERES PAR COORDON-
< NEE).
IF XBIN-XASCI,XEIF%,,XEIF%
IF ATTENTION : LES 2 OPTIONS SONT INCOMPATIBLES !!!
XEIF%: VAL ENDIF
ACARA: WORD CARA < SOUS-PROGRAMME D'ACCES AU NIVEAU COURANT.
XWOR%1: VAL 126*65 < NOMBRE DE VECTEURS HORIZONTAUX,
XWOR%2: VAL 64*127 < NOMBRE DE VECTEURS VERTICAUX,
NVEC:: VAL XWOR%1+XWOR%2 < NOMBRE DE VECTEURS PAR IMAGE.
IF XASCI-EXIST,XEIF%,,XEIF%
NCAR:: VAL 4 < NOMBRE DE CARACTERES PAR COORDONNEE.
XEIF%: VAL ENDIF
IF XBIN-EXIST,XEIF%,,XEIF%
NCAR:: VAL 2 < NOMBRE DE CARACTERES PAR COORDONNEE.
IF NCAR-NOCMO,,XEIF%1,
IF ATTENTION : LE SOUS-PROGRAMME 'CARA' VA MERDER !!!
XEIF%1: VAL ENDIF
XEIF%: VAL ENDIF
ACOORD: WORD COORD < RECUPERATION D'UNE COORDONNEE 'X' OU
< 'Y' EN FORMAT "I4"...
IF XASCI-EXIST,XEIF%,,XEIF%
C10: WORD BASE10 < POUR LES CONVERSIONS DECIMALES.
XEIF%: VAL ENDIF
<
< PARAMETRES DU TRACE :
<
GVNI: WORD XXN255 < 'VECTNI',
XWOR%1: VAL NBITMO-I-BANTI
GVANT: WORD BIT>XWOR%1 < 'VECANT',
GVPOIN: WORD MMOT < 'VEPOIN',
GVDECA: WORD 9 < 'VEDECA',
GVRS: WORD 1 < 'VECTRS'.
TRANSX: WORD 0 < TRANSLATION HORIZONTALE,
TRANSY: WORD 256 < TRANSLATION VERTICALE.
<
< GESTION DU DISQUE VIDEO :
<
BUFVIW: BYTE "J";KCR
XWOR%1: VAL '0000000@@@@(MOCD
XWOR%3: VAL $-BUFVIW*NOCMO
IF XWOR%1-K,XEIF%,,XEIF%
XWOR%3: VAL XWOR%3-W
XEIF%: VAL ENDIF
LBUFVW:: VAL XWOR%3 < LONGUEUR DE LA COMMANDE AU DISQUE
< VIDEO...
XWOR%2: VAL COSBT?XASSIM=FMASK(K?NVPVDK=FCINST
DEMVIW: BYTE XWOR%2;FAVW < COMMANDE DE L'ECRITURE SUR LE DISQUE
< VIDEO...
WORD BUFVIW=FCTA*NOCMO
WORD LBUFVW
BUFVIR: DZS W < BUFFER DE LECTURE DES ACQUITTEMENTS.
LBUFVR:: VAL $-BUFVIR*NOCMO
DEMVIR: BYTE XWOR%2;FAVR < LECTURE DES ACQUITTEMENTS DU DISQUE.
WORD BUFVIR=FCTA*NOCMO
WORD LBUFVR
PAGE
<
<
< T A B L E D E T R A N S C O D A G E D E S N I V E A U X :
<
<
< ARGUMENTS D'ASSEMBLAGE :
< ND=DIVISEUR DES NIVEAUX DE 'LNIVO' (0 OU 2),
< NI=TRANSLATION DES NIVEAUX DE 'LNIVO' (0 OU 128)...
<
<
NI: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'NI'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
NI:: VAL XXNOIR < LE NIVEAU INITIAL SERA LE NIVEAU NOIR.
XEIF%: VAL ENDIF
ND: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'ND'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
ND:: VAL W < PAS DE DIVISEUR DES NIVEAUX...
XEIF%: VAL ENDIF
LNIVO: EQU $
NTRN
XWOR%1: VAL NIV256+NOCMO-E/NOCMO
XWOR%2: VAL NIV256/NOCMO(K=FCREST
TRN
XWOR%3: VAL NIV256+XWOR%2
< INCREMENT DES OCTETS GAUCHES,
XWOR%4: VAL XWOR%3+NOCMO-Z
< INCREMENT DES OCTETS DROITS.
NTRN
<*******************************************************************************
DO XWOR%1
BYTE K=FCDO)MFFFF+N-Z*NOCMO+XWOR%3/ND+NI;K=FCDO)MFFFF+N-Z*NOCMO+XWOR%4/ND+NI
XWOR%5: VAL '0000000@@@@ < RECUPERATION DU DERNIER MOT,
<*******************************************************************************
TRN
IF XWOR%2-K,,XEIF%,
XWOR%5: VAL XWOR%5(MOCG < DANS LE CAS D'UNE TABLE DE LONGUEUR
< IMPAIRE, ON EFFACE LE DERNIER OCTET
< GENERE,
$EQU $-D < ON REVIENT D'UN MOT EN ARRIERE,
WORD XWOR%5 < ET ON REGENERE LE DERNIER MOT...
XEIF%: VAL ENDIF
NLS
DO XC512
FLOAT <NILK<NILK<NILK < LIGNE PRECEDENTE.
LST
PAGE
<
<
< P I L E D E T R A V A I L :
<
<
STACK: EQU $
DZS 64
PROG
XXXVEC: VAL XXVEC3 < DEFINITION DES PROGRAMMES VECTEUR 512...
CALL #SIP VECTEUR 512#
PAGE
<
<
< M A R Q U A G E D ' U N P O I N T :
<
<
< FONCTION :
< CE SOUS-PROGRAMME MARQUE
< LE POINT ARGUMENT (X,Y) AVEC
< COMME NIVEAU, LE NIVEAU ARGU-
< MENT (A) TRANSCODE VIA LA TA-
< BLE 'LNIVO', CE QUI PERMET PAR
< EXEMPLE LA SUPERPOSITION DE
< PLUSIEURS IMAGES, EN FAISANT
< QUE LEURS TABLES 'LNIVO' SOIENT
< COMPLEMENTAIRES...
<
<
< ARGUMENTS :
< (A)=NIVEAU,
< (X,Y)=COORDONNEES DU POINT.
<
<
< RESULTAT :
< (A)=NIVEAU TRANSCODE.
<
<
POINT: EQU $
<
< TRANSCODAGE DU NIVEAU :
<
PSR X < SAUVEGARDE DE LA COORDONNEE 'X'...
LR A,X < (X)=NIVEAU ARGUMENT,
LBY &ALNIVO < (A)=NIVEAU TRANSCODE,
PLR X < RESTAURE :
< (X)=COORDONNEE 'X'.
<
< MARQUAGE DU POINT :
<
BSR ASTORP < MARQUAGE : (X,Y) <-- (A)...
<
< ET RETOUR :
<
RSR
PAGE
<
<
< T E S T P E R I O D I Q U E D E ' C O M F L O ' :
<
<
< FONCTION :
< CE SOUS-PROGRAMME EST
< APPELE DERRIERE CHAQUE
< 'FDV' EXPLICITE AINSI
< QU'APRES LES APPELS DE
< 'RAC' ET 'CRAMR'...
<
<
TSFLO: EQU $
PSR A
LA COMFLO < TEST DE 'COMFLO' PAR UN 'LA' AFIN DE NE
< PAS MODIFIER LES CODES (CARY & CO)...
JAE TSFLO1 < OK...
QUIT XXQUIT < E R R E U R P R O G R A M M E ...
< ON A :
< (A)=INDICATEURS FLOTTANTS...
< BIT 0 : UNDERFLOW,
< BIT 1 : OVERFLOW,
< BIT 2 : DIVISION PAR ZERO,
< BIT 3 : 'FIX' IMPOSSIBLE.
STZ COMFLO < PUIS RAZ, CAR CES INDICATEURS SONT
< REMANENTS...
TSFLO1: EQU $
PLR A
RSR
XXXPRO: VAL YYYGOT < 'YYYGOT'.
CALL #SIP UTILITAIRES#
XXXPRO: VAL YYYFLO < 'YYYFLO'.
CALL #SIP UTILITAIRES#
PAGE
<
<
< A C C E S A U C A R A C T E R E C O U R A N T :
<
<
< ARGUMENT :
< (A)=CUMUL DECIMAL COURANT,
< (IBUFMT)=INDEX DE L'OCTET COURANT.
<
<
< RESULTAT :
< (A)=NOUVEAU CUMUL DECIMAL.
<
<
CARA: EQU $
<
< INITIALISATIONS :
<
PSR B,X
IF XASCI-EXIST,XEIF%,,XEIF%
MP C10 < PROGRESSION DU CUMUL,
XEIF%: VAL ENDIF
IF XBIN-EXIST,XEIF%,,XEIF%
SLLS NBITOC < PROGRESSION DU CUMUL,
LR A,B
XEIF%: VAL ENDIF
PSR B < ET SAVE...
<
< TEST DE L'ETAT DU BUFFER :
<
LA IBUFMT < (A)=INDEX COURANT :
CP ZBUFMT < LE BUFFER A-T'IL ETE VIDE (OU EST-CE
< L'ETAT INITIAL) ???
JL CARA1 < NON...
<
< CAS OU LE BUFFER EST VIDE :
<
CARA2: EQU $
LAD DEMMT < (A)=ADRESSE DE LA DEMANDE,
SVC < QUE L'ON ENVOIE...
JE CARA3 < OK...
QUIT XXQUIT < E R R E U R D ' A S S I G N A T I O N..
JMP CARA2 < ET ON RE-TENTE, OU BIEN ON ARRETE S'IL
< S'AGIT D'UN 'TAPE-MARK'...
CARA3: EQU $
IC DEMMT+ARGESC < PREPARATION DE L'ADRESSE DU BLOC SUIVANT,
ACTD XXXSIZ < RECUPERATION DE LA 'BOX'...
LR B,A < (A)=NOMBRE D'OCTETS REELS DU BLOC :
CP DEMMT+COESC < LE BUFFER EST-IL BON ???
JNE CARA2 < NON, ON LIT L'ENREGISTREMENT SUIVANT...
LAI K < (A)=INDEX DU PREMIER OCTET.
<
< ACCES A L'OCTET COURANT :
<
CARA1: EQU $
LR A,X < (X)=INDEX DE L'OCTET COURANT,
LBY &ABUFMT < (A)=OCTET COURANT...
ADRI I,X < ET PREPARATION DE
STX IBUFMT < L'ACCES SUIVANT...
IF XASCI-EXIST,XEIF%,,XEIF%
CPI KSP < EST-CE LE 'SPACE' ???
JNE CARA06 < NON...
LAI K < OUI, IL VAUT "0"...
JMP CARA05 < VERS LE CUMUL...
CARA06: EQU $
ADRI -HZERO,A < CONVERSION BINAIRE,
JAL CARA04 < ERREUR...
CPI BASE10-Z < VALIDATION :
JLE CARA05 < OK...
CARA04: EQU $ < ERREUR :
QUIT XXQUIT < E R E U R D O N N E E ...
CARA05: EQU $
PLR B < (B)=CUMUL ANTERIEUR,
ADR B,A < (A)=NOUVEAU CUMUL DECIMAL...
XEIF%: VAL ENDIF
IF XBIN-EXIST,XEIF%,,XEIF%
PLR B < (B)=CUMUL ANTERIEUR,
ORR B,A < (A)=NOUVEAU CUMUL BINAIRE...
XEIF%: VAL ENDIF
<
< ET RETOUR :
<
PLR B,X
RSR
PAGE
<
<
< A C C E S C O O R D O N N E E :
<
<
< RESULTAT :
< (A)=COORDONNEE COURANTE EN FORMAT GRAPHIQUE.
<
<
COORD: EQU $
LAI K < (A)=CUMUL COURANT.
DO NCAR
BSR ACARA < CUMUL...
IF XXDEDX-XXDEDY,,XEIF%,
IF ATTENTION : CE QUI SUIT EST IDIOT !!!
XEIF%: VAL ENDIF
SLLS XXDEDX?XXDEDY < CADRAGE GRAPHIQUE...
RSR
PAGE
<
<
< P O I N T D ' E N T R E E :
<
<
DEBUT: EQU $
<
< INITIALISATION DES REGISTRES :
<
LRM C,K
WORD COM+DEPBAS < POSITIONNEMENT DE 'C',
WORD STACK-DEPILE < ET DE 'K'.
<
< CONNEXION A LA 'CDA' :
<
LAI PAGER
BSR AGPCDA < AFIN D'ATTEINDRE LA MEMOIRE DU '68000'
< ET LA MEMOIRE 'SOLAR' QUI LA PRECEDE
< AFIN D'Y METTRE 'BUF'...
<
<
< E N T R Y D E R E B O U C L A G E :
<
<
DEBUT4: EQU $
LA ABLOC0
STA DEMMT+ARGESC < MISE EN PLACE DE L'ADRESSE DU PREMIER
< BLOC A LIRE...
DEBUT9: EQU $
<
< MODIFICATION A PRIORI DU 'PRESC' :
<
LRM A
WORD DEBUT5 < POUR 'XXXPRE'...
ACTD XXXPRE < ON CHANGE ALORS SYSTEMATIQUEMENT APRES
< PASSAGE ICI LE 'PRESC' DU PROGRAMME, AFIN
< DE REVENIR SUR LA VISUALISATION APRES
< CHAQUE ALT-MODE (VIA 'DEBUT5'...).
<
<
< I N I T I A L I S A T I O N S :
<
<
INIT01: EQU $
<
< GESTION DE LA BANDE :
<
INIT10: EQU $
LA LBLOC < (A)=LONGUEUR DES BLOCS PHYSIQUES SUR
< LA BANDE :
JALE INIT11 < BERKKK...
CP LBLOC0 < VALIDATION :
JLE INIT12 < OK...
INIT11: EQU $
QUIT XXQUIT < E R R E U R P A R A M E T R E ...
JMP INIT10 < ET ON RETENTE...
INIT12: EQU $
STA DEMMT+COESC < ET ON INITIALISE LA DEMANDE DE LECTURE...
STA ZBUFMT
STA IBUFMT < POUR PROVOQUER LA LECTURE DU PREMIER
< BLOC...
<
<
< G E N E R A T I O N D E L ' I M A G E :
<
<
GEN69: EQU $
<
< INITIALISATION DES PARAMETRES DU TRACE :
<
LA GVNI
STA VECTNI
LA GVANT
STA VECANT
LA GVPOIN
STA VEPOIN
LA GVDECA
STA VEDECA
LA GVRS
STA VECTRS
<
< FAUT-IL EFFACER ???
<
CPZ IERASE < FAUT-IL EFFACER ???
JE GEN69N < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
<
< EFFACEMENT DE L'ECRAN :
<
XWOR%1: VAL NIV256=K
IF BIT>XWOR%1-NIV256,,XWOR%,
IF ATTENTION : LE CALCUL DU MASQUE SELECTANT TOUS
IF LES PLANS EST ABSURDE !!!
XWOR%: VAL ENDIF
LAI NIV256-MASK)MOCD
STA MCDAJ
LA ARPLAN < (A)=ADRESSE DU REGISTRE DE SELECTION...
BSR APWCDA < ET ON SELECTIONNE TOUS LES PLANS...
LAI ERASE
STA MCDAJ
LA ARCMD
BSR APWCDA < EFFACEMENT DE L'ECRAN, ET REINITIALISA-
< TION DE TOUS LES REGISTRES...
LAD TEMPO
SVC < ET ON FAIT UN PETIT DODO...
LAI XCTRL1
STA MCDAJ
LA ACTRL1
BSR APWCDA < INITIALISATION DE 'CTRL1'.
LAI XCTRL2
STA MCDAJ
LA ACTRL2
BSR APWCDA < INITIALISATION DE 'CTRL2'.
<
< RECUPERATION DE L'IMAGE :
<
GEN69N: EQU $
LRM X
WORD NVEC < (X)=NOMBRE DE VECTEURS A TRACER.
GEN01: EQU $
PSR X
BSR ACOORD
AD TRANSX
STA VECGX1 < 'X1',
BSR ACOORD
AD TRANSY
STA VECGY1 < 'Y1',
BSR ACOORD
AD TRANSX
STA VECGX2 < 'X2',
BSR ACOORD
AD TRANSY
STA VECGY2 < 'Y2'.
BSR AVE512 < TRACE DU VECTEUR ((X1,Y1),(X2,Y2))...
PLR X
JDX GEN01 < PASSAGE AU VECTEUR SUIVANT...
<<<<<< LA LBLOC
<<<<<< STA IBUFMT < POUR FORCER LA LECTURE DU BLOC SUIVANT...
<
< NON, TRAITEMENT DE FIN...
<
CPZ IQUIT < FAUT-IL S'ARRETER ???
JE GEN410 < NON...
IF EXIST-K,XEIF%,,XEIF%
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
QUIT XXQUIT < OUI...
GEN410: EQU $
CPZ IVIDEO < FAUT-IL ECRIRE ???
JE GEN400 < NON...
IF EXIST-K,XEIF%,,XEIF%
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
PSR X < OUI :
LAD DEMVIW
SVC < ON ECRIT L'IMAGE COURANTE...
LAD DEMVIR
SVC < ET ON ATTEND L'ACQUITTEMENT...
PLR X
GEN400: EQU $
JMP GEN69 < A L'IMAGE SUIVANTE...
<
<
< E N T R Y A L T - M O D E :
<
<
DEBUT5: EQU $
QUIT XXQUIT < A T T E N T E ...
LRM C,K < ON REINITIALISE 'C' ET 'K' AU CAS
< D'UNE RE-ENTREE PAR UN 'ALT-MODE'...
WORD COM+DEPBAS < 'C',
WORD STACK-DEPILE < 'K'.
BSR AGOTO
WORD DEBUT4 < (A)=ADRESSE D'ITERATION SUR ALT-MODE...
PAGE
<
<
< T A B L E D E S S Y M B O L E S :
<
<
IF '00000000000@,XEIF%,,XEIF%
EST
XEIF%: VAL ENDIF
DATE
END DEBUT
Copyright © Jean-François COLONNA, 2022-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2024.