home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MOUSE / LPTSWAP.ZIP / LPTSWAP.ASM next >
Encoding:
Assembly Source File  |  1986-11-05  |  1.9 KB  |  52 lines

  1. ;-----------------------------------------------------------------------------;
  2. ; Source code for lptswap.obj
  3. ; Michael K. Spray  (C) 1986  All rights Reserved.
  4. ; 2712 N Malibu Dr.  Tucson AZ 85705   (AAK014 - Source) [76525,1142]
  5. ; SUBMITTED TO NPN PUBLIC DOMAIN 19:47:38  11/5/1986
  6. ; PROVIDED THAT CODE IS DELIVERED FREE OF CHARGE AND THIS HEADING
  7. ; REMAINS INTACT.
  8. ;-----------------------------------------------------------------------------;
  9. ; ASM CODE TO SWAP LPT1: AND LPT2:
  10.  
  11.         PAGE    ,132
  12. CSEG    SEGMENT PARA PUBLIC 'CODE'
  13.         ASSUME CS:CSEG  ;ASSIGN CODE SEGMENT
  14.         PUBLIC  LPTSWAP
  15. LPTSWAP PROC    FAR     ;ENTRY POINT OF ROUTINE
  16.         PUSH    AX      ;SAVE REGISTERS
  17.         PUSH    BX
  18.         PUSH    CX
  19.         PUSH    DX
  20.         PUSH    DS
  21.         ASSUME DS:CSEG
  22.         MOV     AX,0040H
  23.         MOV     DS,AX   ;SET DATA SEGMENT
  24.         MOV     AX,DS:0008H     ;GET LPT1 ADDRESS
  25.         MOV     BX,DS:000AH     ;GET LPT2 ADDERSS
  26.         OR      AX,AX   ;SET FLAGS
  27.         JZ      NOPRINT1        ;IF NO ADDRES^C
  28.         OR      BX,BX   ;SET FLAGS
  29.         JZ      NOPRINT2        ;IF 0 GOTO LPT2 ERROR
  30.         MOV     DS:[000AH],AX   ;SWAP LPT ADDRESS
  31.         MOV     DS:[0008H],BX
  32.         JMP     AROUND  ;JUMP AROUND ERROR ROUTINE
  33. NOPRINT1:       MOV     DX,OFFSET MESS1 ;LOCATION OF MESSAGE 1
  34.         JMP     PRINTMESS       ;JUMP AROUND NOPRINT2
  35. NOPRINT2:       MOV     DX,OFFSET MESS2 ;LOCATION OF MESSAGE 2
  36. PRINTMESS:      MOV     AH,09H  ;DOS STRING PRINT
  37.         MOV     BX,CS   ;RETURN VALUE TO DATA SEGMENT
  38.         MOV     DS,BX
  39.         INT     21H     ;CALL DOS TO PRINT STRING
  40. AROUND: POP     DS      ;RETURN OLD VALUES
  41.         POP     DX
  42.         POP     CX
  43.         POP     BX
  44.         POP     AX
  45.         RET             ;RETURN TO CALLING PROGRAM
  46. MESS1   DB      '       LPT1: NOT FOUND     $'
  47. MESS2   DB      '       LPT2: NOT FOUND     $'
  48. LPTSWAP ENDP
  49. CSEG    ENDS
  50.         END
  51.  
  52.