ALWAYS 31JAN4 TRANSFER .MCALL DIR$,CALLR ;************************************************************************ ;* * ;* MODULE: TRANSFER - ASSIGN A VALUE TO TRNSFR * ;* * ;* AUTHOR: KEVIN ANGLEY * ;* * ;* DATE: 27-JUL-82 * ;* * ;* INPUT PARAMETERS: * ;* * ;* R0 POINTS TO THE COMMAND LINE IN PROCESS * ;* * ;* ALTERNATIVELY, ENTRY TRANS CAN BE CALLED FOR A * ;* PROGRAM INITIATED TRANSFER SETUP WITH R1/R2 HAVING THE * ;* TRANSFER ADDRESS. * ;* * ;* OUTPUT PARAMETERS: * ;* * ;* FOR COMMAND INITIATED TRANSFER, * ;* R0 POINTS JUST BEYOND THE LAST CHAR OF THE TRANSFER * ;* * ;* DESTROYS: R1,R2,R3,R4 * ;* * ;* IF NO VALUE IS SPECIFIED, THE TRANSFER VALUE IS DISPLAYED. * ;* * ;* * ;* REVISED BY: CHRIS DORAN, SIRA LTD. * ;* * ;* DATE: JAN-84 * ;* * ;* MODIFICATIONS: * ;* Put local CSIFLG into this module, for overlaid code. * ;* Comment out currently unused TRANS entry code. (May * ;* need to revise the position of the QUIET test if * ;* returning it). * ;* * ;************************************************************************ .ENABL LSB TRANSFER:: ;; CLR CSIFLG ; INDICATE COMMAND INITIATED SETUP TSTB (R0) ; VALUE SPECIFIED? BEQ 10$ ; NO - JUST OUTPUT THE VALUE CALL GETHXL ; GET A HEX VALUE FROM COMMAND LINE BCS 250$ ; CS: ERROR ;; BR 5$ ; JOIN COMMON CODE ;;TRANS:: ;; SETNZ CSIFLG ; INDICATE PROGRAM INITIATED ;;5$: MOV R1,TRNSFR ; ESTABLISH NEW TRANSFER VALUE MOV R2,TRNSFR+2 TST QUIET ; Echo suppressed? BEQ 250$ ; Yes, don't confirm 10$: PUSH R0 ; SAVE COMMAND STRING POINTER MOV TRNSFR,R1 ; PREPARE FOR CONVERSION MOV TRNSFR+2,R2 MOV #RDT+RDTLEN-8.,R0 ; PUT INTO MESSAGE CALL PUTHXJ ; CONVERT TO HEX - PUT IN MESSAGE OUTPUT RDT POP R0 ; RESTORE COMMAND STRING POINTER ; BR 250$ ; EXIT 250$: ; Success, TST will clear carry ;; TST CSIFLG ; COMMAND OR PROGRAM GENERATED? ;; BNE 255$ ; NE: PROGRAM GENERATED - SKIP EXTRA CALLR EXTRA ; PURGE COMMAND LINE OF SUPERFLUOUS JUNK ;;255$: ;; RETURN ; AND RETURN .DSABL LSB ;; .PSECT DATA D,RW ;; ;;CSIFLG: .BLKW ; Entry flag. 0 = TRANSFER, <>0 = TRANS .END