home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol074 / pcpatch.asm < prev    next >
Assembly Source File  |  1984-04-29  |  1KB  |  96 lines

  1. TRUE    EQU    0FFFFH
  2. FALSE    EQU    NOT TRUE
  3. ;
  4. WBOOT    EQU    0    ;WARM BOOT ENTRY
  5. BDOS    EQU    0005H    ;BDOS ENTRY LOCATION
  6. ACR    EQU    0DH    ;ASCII CARRIAGE RETURN
  7. ALF    EQU    0AH    ;ASCII LINE FEED
  8. AFF    EQU    0CH    ;ASCII FORM FEED
  9. ;
  10. PIP20    EQU    FALSE
  11. ;
  12.       ORG  0167H
  13. ;    
  14. PATCH$1:
  15.     CALL 0894H
  16.     CALL MOVE$NAME
  17.     RET  
  18. ;
  19. PATCH$2:
  20.     MVI  E,0FFH    ;DIRECT CONSOLE INPUT FLAG
  21.     MVI  C,06H    ;DIRECT CONSOLE I/O
  22.     CALL BDOS    ;GET CONSOLE KEY
  23.     CPI  ACR    ;QUIT ?
  24.     JZ   WBOOT
  25.     CALL MOVE$NAME
  26.  
  27.     IF    PIP20
  28.  
  29.     JMP  1B5FH
  30.  
  31.     ELSE    
  32.  
  33.     JMP  1B5AH
  34.  
  35.     ENDIF
  36. ;
  37. MOVE$NAME:
  38.     PUSH PSW  
  39.     LXI  H,005DH    ;POINT TO FILE NAME IN FCB
  40.     LXI  D,DUMMY    ;TEMP NAME STORE
  41.     MVI  B,11    ;LENGTH OF NAME
  42. NAME$LOOP:
  43.            LDAX D        ;GET A BYTE FROM STORE
  44.     MOV  C,A    ;HOLD IT IN C
  45.     MOV  A,M    ;GET BYTE FROM FCB
  46.     MOV  M,C    ;PUT STORE BYTE INTO FCB
  47.     STAX D        ;PUT FCB BYTE INTO STORE
  48.     INX  H        ;POINT TO NEXT BYTES
  49.     INX  D
  50.     DCR  B        ;ADJUST COUNT
  51.     JNZ  NAME$LOOP
  52.     POP  PSW  
  53.     RET  
  54. ;    
  55. DUMMY    DB    '???????????'    ;TEMPORARY FILE NAME STORE
  56. ;
  57.     ORG    5A8H
  58. ;
  59.     NOP
  60.     NOP
  61.     NOP
  62. ;
  63.     IF    NOT PIP20
  64.  
  65.     ORG    1AEFH
  66.  
  67.     DB    0FAH
  68.  
  69.     ENDIF
  70. ;
  71.     IF    PIP20
  72.  
  73.     ORG    1B95H
  74.  
  75.     ELSE
  76.  
  77.     ORG    1B6EH
  78.  
  79.     ENDIF
  80. ;
  81.     DW    PATCH1
  82. ;
  83.     IF    PIP20
  84.  
  85.     ORG    1C46H
  86.  
  87.     ELSE
  88.  
  89.     ORG    1C0CH
  90.  
  91.     ENDIF
  92. ;
  93.     DW    PATCH2
  94. ;
  95.     END
  96.