.TITLE ASKL2 X01 ; ; .IDENT /X01.00/ ; ; ; .ENABL LC ; ; ; Copyright (C) Shell Research Ltd. 1980 ; ; ; The copyright in this computer program and associated user ; instructions contained in this document is the property of ; Shell Research Ltd.. No guarantee is given or may be implied ; as to the adequacy of the program or its suitability for any ; particular purpose and no liability is accepted for any loss ; or damage arising out of its use. ; ; ; ; Version: X01 ; ; ; Original author:R J Carpenter 11-APR-80 ; ; ; This version: J P Lamargot 10-Sep-82 ; ;+++ ; Traduction des messages en francais ; Gestion du curseur sur VT 100 pour ; - Ecriture des messages sur la 24eme ligne ; - Saisie de la nouvelle reponse au meme endroit ; que celle qui etait erronee,apres effacement de celle-ci ;--- ; ; .PAGE .SBTTL MACROS AND DEFINITIONS ;+++ ; Definitions des macros utilisees dans le logiciel ; ; .PAGE .SBTTL MACROS AND DEFINITIONS ; ; .MCALL .PRINT,.TTYIN,.TTYOUT ; ; .GLOBL ASKERM ; ; .PAGE .SBTTL $SET,$CLR,$TST,$BRT,$BRF .NLIST ; ; ;+ ; These macros may be used for single word or byte flags. ; The assumption made is that testing is restricted to zero or non zero. ; $BRT = branch if .TRUE. , and $BRF = branch if .FALSE. ; There no errors returned. ;- ; ; .MACRO $SET ARG ; ; MOVB #1,ARG ;SET IT NON-ZERO ; .ENDM ; ; .MACRO $CLR ARG ; ; CLRB ARG ;SET IT TO ZERO ; .ENDM ; ; .MACRO $TST ARG ; ; TSTB ARG ;SET THE CONDITION CODES ; .ENDM ; ; ; These 2 macros allow logical test and branch for byte flags ; .MACRO $BRT ARG1 ARG2 ; ; $TST ARG1 ; BNE ARG2 ; .ENDM ; ; .MACRO $BRF ARG1 ARG2 ; ; $TST ARG1 ; BEQ ARG2 ; .ENDM ; ; ; ; ; .PAGE .SBTTL CODE .LIST ; ; .PSECT ASK ; ; ASKQ:: .PRINT #MSG0 ;PRINT THE TRAILER ;+++ .PRINT #ASKSAV ;Save cursor ;--- AQ1: .TTYIN ;GET FIRST CHAR MOV R0,R1 ;SAVE IT FOR LATER 1$: .TTYIN ;GET ANOTHER CHAR CMPB R0,#12 ;IS IT BNE 1$ ;BR IF NOT CMPB R1,#'O ;IS IT YES ? BNE AQ2 ;BR IF NOT $SET @2(R5) ;SET USERS BYTE (=TRUE) BR AQEND ;TAKE EXIT AQ2: CMPB R1,#'N ;IS IT NO ? BNE AQ3 ;BR IF NOT $CLR @2(R5) ;CLEAR THE USERS BYTE (=FALSE) BR AQEND ;TAKE EXIT AQ3: MOV #1,R0 ;STATE THE ERROR CODE CALL ASKERM ;CALL THE MACRO ENTRY POINT OF ASKERR BR AQ1 ;TRY AGAIN ; ; AQEND: RETURN ;RETURN TO CALLER ; ; .PAGE .SBTTL MESSAGES AND BUFFERS ; ; MSG0: .ASCII + [O/N] ?+<200> ; ;+++ .PSECT ASKINI,D,GBL,REL,OVR IAM: .BLKW 7 ASKSAV: .ASCII <33>/7/<200> ; <33>7 ;Save cursor ;--- ; .END