home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PROGRAMS / LIST / SWAP.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  923b  |  34 lines

  1. ;        SWAP.ASM ver. 1.0
  2. ;        by Keith Petersen, W8SDZ
  3. ;          Oct. 3, 1982
  4. ;
  5. ;The purpose of this program is to temporarily swap
  6. ;CP/M's CONSOLE and LIST outputs so that programs
  7. ;which normally cannot output to the list device may
  8. ;be made to do so.  The function is a "flip-flop" so
  9. ;to "un-do" the swap simply execute SWAP.COM again.
  10. ;
  11.     ORG    100H
  12. ;
  13.     LHLD    1    ;GET POINTER TO CBIOS JMP TABLE
  14.     LXI    D,10    ;READY TO ADD 10
  15.     DAD    D    ;HL=ADRS OF LSB OF JMP ADRS
  16.     PUSH    H    ;SAVE ADRS
  17.     MOV    E,M    ;SAVE LSB OF JMP IN E
  18.     INX    H    ;HL=ADRS OF MSB OF JMP ADRS
  19.     MOV    D,M    ;SAVE MSB IN D
  20.     INX    H    ;SKIP OVER JMP INSTRUCTION
  21.     INX    H    ;HL=ADRS OF LSB OF JMP ADRS
  22.     MOV    C,M    ;SAVE LSB IN C
  23.     MOV    M,E    ;PUT NEW LSB THERE
  24.     INX    H    ;HL=ADRS OF MSB OF JMP ADRS
  25.     MOV    B,M    ;SAVE MSB IN B
  26.     MOV    M,D    ;PUT NEW MSB THERE
  27.     POP    H    ;HL=ADRS OF LSB OF CONOUT JMP
  28.     MOV    M,C    ;PUT NEW LSB THERE
  29.     INX    H    ;HL=ADRS OF MSB OF CONOUT JMP
  30.     MOV    M,B    ;PUT NEW MSB THERE
  31.     RET        ;RETURN TO CCP
  32. ;
  33.     END
  34.