IDP "DIAS - RELEASE 00 - 01/10/80"
IDP "P. FRANCONNET"
PROG
ZERO: EQU $
DZS '10
WORD RUN
WORD ENTRY
RUN: EQU $
LRP L
BR -1,L
M: EQU $+256
MINT: BYTE '6D;">";0
MERR: ASCI " ??"
WORD 0
MAS: ASCI "DRESSE DKU="
WORD 0
MINCR: ASCI "NCREMENT="
WORD 0
MLONG: ASCI "ONGUEUR MOTS="
WORD 0
MTMPO: ASCI "EMPORISATION="
WORD 0
PILE: DZS 20
COMMON
COM: EQU $
ACONVH: WORD CONVH
AENVOI: WORD ENVOI
AVISTN: WORD VISTN
AM: WORD M
AXTRAV: WORD ZERO,X
INCR: WORD '0017
REP: DZS 2
DMREP: WORD '0101;REP-ZERO*2;1
DM4H: WORD '0101;REP-ZERO*2;4
DMOUT: WORD '0202;0;0
DMDIR: WORD '8A04;0;'4500;0
DMTMPO: WORD '0005;0;0
PAGE
PROG
ENTRY: EQU $
<
< C O M M A N D E S :
<
< A ENTREE ADRESSE SECTEUR.
< I ENTREE INCREMENT.
< L ENTREE LONGUEUR MOTS.
< + MARCHE AVANT.
< - MARCHE ARRIERE.
< V VISUALISER IMAGE COURANTE, INCREMENTER ADRESSE COURANTE
< ET TEMPORISATION.
< G GO; FAIRE V N FOIS (INTERRUPTION PAR ALT-MODE).
< T ENTREE VALEUR DE TEMPORISATION (1 A 9).
< F FIN.
< RETURN EQUIVAUT A V.
<
LRM C,K
WORD COM+'80
WORD PILE-1
DPINT: EQU $
LAI MINT-M < INTERROGATION.
BSR AENVOI
LAD DMREP < REPONSE.
SVC 0
LBY REP < VOYONS...
CPI "A"
JE DPA
CPI "I"
JE DPI
CPI "L"
JE DPL
CPI "+"
JE DPPLUS
CPI "-"
JE DPMOIN
CPI "V"
JE DPV
CPI '0D
JE DPV
CPI "G"
JE DPGO
CPI "T"
JE DPT
CPI "F"
JE DPF
DPERR: EQU $
LAI MERR-M
BSR AENVOI
JMP DPINT
DPF: EQU $
WORD '1E16
JMP ENTRY
DPA: EQU $ < ENTREE ADRESSE SECTEUR.
LAI MAS-M
BSR AENVOI
LAD DM4H
SVC 0
LA DM4H+1
BSR ACONVH
JNE DPERR
STA DMDIR+3
JMP DPINT
DPI: EQU $ < ENTREE INCREMENT.
LAI MINCR-M
BSR AENVOI
LAD DM4H
SVC 0
LA DM4H+1
BSR ACONVH
JNE DPERR
STA INCR
JMP DPINT
DPL: EQU $ < ENTREE LONGUEUR MOTS.
LAI MLONG-M
BSR AENVOI
LAD DM4H
SVC 0
LA DM4H+1
BSR ACONVH
JNE DPERR
SLLS 1
STA DMDIR+2
JMP DPINT
DPPLUS: EQU $ < MARCHE AVANT.
LA INCR
JAGE $+2
NGR A
STA INCR
JMP DPINT
DPMOIN: EQU $ < MARCHE ARRIERE.
LA INCR
JAL $+2
NGR A
STA INCR
JMP DPINT
DPV: EQU $ < VISUALISATION, TEMPO, INCREMENTATION.
BSR AVISTN
JMP DPINT
DPGO: EQU $ < GO.
BSR AVISTN
JMP DPGO < INTERRUPTION PAR ALT-MODE!
DPT: EQU $ < ENTREE TEMPORISATION.
LAI MTMPO-M
BSR AENVOI
LAD DMREP
SVC 0
LBY REP
ADRI -"0",A
CPI 9
JG DPERR
JAL DPERR
STA DMTMPO+2
JMP DPINT
<
VISTN: EQU $
<
< S/P DE VISUALISATION, INCREMENTATION, TEMPORISATION...
<
LAD DMDIR
SVC 0
JE $+2
ACTD
<
LA INCR
AD DMDIR+3
STA DMDIR+3
<
LAD DMTMPO
CPZ DMTMPO+2
JE $+2
SVC 0
<
RSR
PAGE
<
< CONVERSION EN BINAIRE D'UN NOMBRE HEXADECIMAL SAISI
< EN ASCI (PAR EXEMPLE, NUMERO DE SECTEUR)
<
< ARGUMENTS:
< 'A' = ADRESSE OCTET DES 4 CARACTERES ASCI
<
< RESULTAT:
< 'A' = NOMBRE EN BINAIRE, A VALIDER EN FAISANT AU RETOUR:
< JE OK OU
< JNE ERREUR
<
CONVH: EQU $
PSR B,X,Y,W < SAUVEGARDES
LR A,Y < Y = ADRESSE CARACTERE EN COURS
LXI 4 < INIT COUNT
CONVH1: EQU $
LR X,W < SAUVEGARDE COUNT
LR Y,X < INDEX CARACTERE
LBY &AXTRAV < CARACTERE
CPI "0"
JL CONVH3 < ERREUR
CPI "9"
JLE CONVH2
CPI "A"
JL CONVH3 < ERREUR
CPI "F"
JG CONVH3 < ERREUR
ADRI -7,A
CONVH2: EQU $
ADRI -'30,A
SLLS 12
SCLD 4 < CHIFFRE HEXA DANS 'B'
ADRI 1,Y < CARACTERE SUIVANT
LR W,X < RESTAURATION COUNT
JDX CONVH1 < AU SUIVANT
<
SLLD 16 < CONVERSION OK
JMP CONVH9
<
CONVH3: EQU $
LBI 1 < ERREUR
CONVH9: EQU $
CPZR B < POUR TEST AU RETOUR.
PLR B,X,Y,W < RESTAURATIONS
RSR
PAGE
ENVOI: EQU $
<
< ENVOI D'UN MESSAGE SUR UL '02
<
< EN ENTREE
<
< A=DEPLACEMENT MOTS DU MESSAGE A ENVOYER PAR RAPPORT
< A M. TOUT MESSAGE EST DELIMITE PAR '00
<
<
< NOTA: ON A
< EN TABLE: M: EQU $+256
< MES1: ASCI "TEXTE..."
< WORD 0
< EN COMMON: AM: WORD M
< APPEL PAR: LAI MESI-M
< BSR AENVOI
<
PSR A,X
AD AM < @ MOT MESSAGE
ADR A,A < @ OCT MESSAGE
STA DMOUT+1
STZ DMOUT+2
LR A,X
ENV1: EQU $ < BOUCLE JUSQU'A DELIM '00
LBY &AXTRAV
JAE ENV2
IC DMOUT+2 < LONGUEUR='+1
ADRI 1,X
JMP ENV1
ENV2: EQU $
LAD DMOUT
SVC 0
PLR A,X
RSR
END