<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 03 Oct 1982 03:22:00-EDT
From   : Keith Petersen <W8SDZ@Mit-Mc>
Subject: SWAP.ASM

I don't normally send .ASM files via netmail, but this one is very
short and many people have asked for the function it provides.

;              SWAP.ASM ver. 1.0
;          by Keith Petersen, W8SDZ
;                Oct. 3, 1982
;
;The purpose of this program is to temporarily swap
;CP/M's CONSOLE and LIST outputs so that programs
;which normally cannot output to the list device may
;be made to do so.  The function is a "flip-flop" so
;to "un-do" the swap simply execute SWAP.COM again.
;
       ORG     100H
;
       LHLD    1       ;GET POINTER TO CBIOS JMP TABLE
       LXI     D,10    ;READY TO ADD 10
       DAD     D       ;HL=ADRS OF LSB OF JMP ADRS
       PUSH    H       ;SAVE ADRS
       MOV     E,M     ;SAVE LSB OF JMP IN E
       INX     H       ;HL=ADRS OF MSB OF JMP ADRS
       MOV     D,M     ;SAVE MSB IN D
       INX     H       ;SKIP OVER JMP INSTRUCTION
       INX     H       ;HL=ADRS OF LSB OF JMP ADRS
       MOV     C,M     ;SAVE LSB IN C
       MOV     M,E     ;PUT NEW LSB THERE
       INX     H       ;HL=ADRS OF MSB OF JMP ADRS
       MOV     B,M     ;SAVE MSB IN B
       MOV     M,D     ;PUT NEW MSB THERE
       POP     H       ;HL=ADRS OF LSB OF CONOUT JMP
       MOV     M,C     ;PUT NEW LSB THERE
       INX     H       ;HL=ADRS OF MSB OF CONOUT JMP
       MOV     M,B     ;PUT NEW MSB THERE
       RET             ;RETURN TO CCP
;
       END
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>