.TITLE Envoi d'une chaine de caracteres au terminal .MCALL .TTYOUT .ENABL LC ; ; Fichier OUTSTR.MAC ; ; Appel par CALL OUTSTR(BUF[,NCHAR]) ; ; Fonction: ; Ce sous-programme envoie au terminal les caracteres conte- ; nus dans le tableau d'octets 'BUF'. ; Le transfert se termine soit lorsque l'on a atteint le nom- ; bre de caracteres specifies, soit lorsque l'on rencontre ; le caractere 'NUL' (0). ; Arguments: ; BUF est le tableau d'octets contenant la chaine ; NCHAR est un argument optionnel indiquant le nombre de ; caracteres a transmettre (s'il est omis, le transfert s'ar- ; rete lorsque l'on rencontre le caractere 'NUL'). ; OUTSTR::CMP #1,(R5)+ ;Un seul argument ? BNE TWO ;Si non, on suppose qu'il y en a deux ; ; Cas d'un seul argument ; MOV (R5),R1 ;Si oui, adresse du tableau 1$: TSTB (R1) ;Caractere = NUL ? BEQ EXIT ;Si oui, termine MOVB (R1)+,R0 ;Si non, .TTYOUT ; le transmettre BR 1$ ; puis recommencer ; ; Cas de deux arguments ; TWO: MOV (R5)+,R3 ;R3 contient l'adresse du tableau MOV @(R5),R1 ;R1 contient le nombre de caracteres 2$: MOVB (R3)+,R0 ;Transmettre .TTYOUT ; le caractere SOB R1,2$ ;Recommencer jusqu'au dernier EXIT: RETURN .END