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 / SIMTEL / CPMUG / CPMUG008.ARK / BPNF.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  1KB  |  120 lines

  1. ;PROGRAM TO PUT A STANDARD BPNF ROM TAPE TO THE
  2. ;CP/M PUN: DEVICE OF THE 100H AREA IN RAM STARTING
  3. ;AT 200H
  4. ;
  5. .
  6. ;
  7. ;PROGRAM EXITS TO RST7 - I.E. RETURN TO DDT. CHANGE
  8. ;TO RST0 IF A STAND ALONE PROGRAM
  9. ;
  10. IFDOS    EQU    1    ;PUT OUTPUT TO CP/M PUN:
  11. ;
  12. ;    PUNCH BPNF TAPE FOR PROM PROGRAMMING
  13. ;
  14. SPC    EQU    20H
  15. CR    EQU    13
  16. LF    EQU    10
  17. RUBOUT    EQU    00FFH
  18. LLEN    EQU    4    ; BYTES PER LINE
  19. BDOS    EQU    5
  20. ;
  21.     ORG    100H
  22.     JMP    START
  23. SIZE:    DW    256    ; SIZE OF PROM IN BYTES
  24. ;
  25.     IF    IFDOS
  26. PUN:    PUSH    B
  27.     PUSH    D
  28.     PUSH    H
  29.     MOV    E,C
  30.     MVI    C,4
  31.     CALL    BDOS
  32.     POP    H
  33.     POP    D
  34.     POP    B
  35.     RET
  36.     ENDIF
  37. ;
  38.     IF    NOT IFDOS
  39. PUN:    IN    10H
  40.     ANI    10H
  41.     JZ    PUN
  42.     MOV    A,C
  43.     OUT    12H
  44.     RET
  45.     ENDIF
  46. ;
  47. LDR:    MVI    B,30
  48.     MVI    C,RUBOUT
  49. ;
  50. PLDR:    CALL    PUN
  51.     DCR    B
  52.     JNZ    PLDR
  53. ;
  54.     RET
  55. ;
  56. BPNF:            ; ONE BYTE IN BPNF FORM  IN 'E' 
  57.     MVI    D,8
  58.     MVI    C,'B'
  59.     CALL    PUN
  60. BPLP:    MOV    A,E
  61.     RLC
  62.     MOV    E,A
  63.     ANI    1
  64.     MVI    C,'P'
  65.     JNZ    BPNN
  66.     MVI    C,'N'
  67. BPNN:    CALL    PUN
  68.     DCR    D
  69.     JNZ    BPLP
  70.     MVI    C,'F'
  71.     CALL    PUN
  72.     MVI    C,SPC
  73.     CALL    PUN
  74.     RET
  75. ;
  76. ;
  77. START:    LXI    SP,STACK
  78.     CALL    LDR
  79.     LXI    D,BUFF
  80.     LHLD    SIZE
  81.     XCHG
  82.     XRA    A    ; ZERO LIN CNTR
  83.     STA    LCNT
  84. ;
  85. BYLP:            ; PUNCH ONE BYTE
  86.     PUSH    D
  87.     PUSH    H
  88.     MOV    E,M
  89.     CALL    BPNF
  90. ;
  91.     LDA    LCNT
  92.     INR    A
  93.     STA    LCNT
  94.     CPI    LLEN
  95.     JM    BYLN
  96. ;
  97.     MVI    C,CR
  98.     CALL    PUN
  99.     MVI    C,LF
  100.     CALL    PUN
  101.     XRA    A
  102.     STA    LCNT
  103. ;
  104. BYLN:    POP    H
  105.     POP    D
  106.     INX    H
  107.     DCX    D
  108.     MOV    A,D
  109.     ORA    E
  110.     JNZ    BYLP
  111.     CALL    LDR
  112. ;
  113.     RST    7    ; DONE  RETURN TO DDT
  114.     DS    20H
  115. STACK:    DS    0
  116. LCNT:    DS    1
  117.     ORG    200H    ;  INPUT BUFFER
  118. BUFF:    DS    0
  119.     END    100H
  120.