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 / CPMUG042.ARK / NBIOS.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  7KB  |  208 lines

  1. ;THIS SOFTWARE APPLIES TO TEI COMPUTERS WITH TEI VERS. OF CP/M ONLY
  2. ;AND TEI 3P+3S I/O BOARD
  3. ;
  4. ;CLOCK PORTION ADDED BY HARRY KAEMMERER (201) 221-2297    12/28/1979
  5. ;CLOCK BOARD USED WAS COPU/TIME T-102A
  6. ;
  7. ;USE OF NBIOS REQUIRES A HARDWARE MODIFICATION FOR THE PRINTER PORT:
  8. ;
  9. ;1. CONNECT THE DB25 PIN NORMALLY FEEDING DATA TO THE COMPUTER TO IO BOARD
  10. ;        J3-32
  11. ;2. CONNECT J3-34 TO J3-26. (THIS FEEDS THE TTL USART SERIAL INPUT TO THE
  12. ;        USART'S DSR PIN ALSO).
  13. ;3. CONNECT J3-25 TO J3-30. (THIS GROUNDS THE CTS INPUT).
  14. ;
  15. ;     THE INTERFACE WITH THE PRINTER MUST BRING ITS 'BUSY' SIGNAL TO THE DB-25
  16. ;PIN WHICH IS THE USART SERIAL INPUT AND DSR (WHERE NBIOS READS DSR FOR PRINTER
  17. ;BUSY).  THIS WIRING WILL ALLOW THE USART TO BE USED AS A BI-DIRECTIONAL PORT
  18. ;AS WELL AS A PRINTER PORT (EVEN THOUGH CP/M WILL ONLY SUPPORT THE PRINTER
  19. ;FUNCTION).
  20. ;
  21. ;THIS MODIFICATION HAS BEEN TESTED WITH AN NEC PRINTER AND IT WORKS WELL.
  22. ;
  23. ;***************
  24. ;*             *
  25. ;*  CAUTION!   *
  26. ;*             *
  27. ;***************
  28. ;
  29. ;IF HARDWARE IS MODIFIED FOR NBIOS, NBIOS MUST BOOT ON ALL DISKS TO OPERATE
  30. ;THE PRINTER.  IF CP/M DIFFERS IN SIZE, NEW NBIOS FILES MUST BE MADE FOR 
  31. ;EACH DIFFERENT SIZE.
  32. ;
  33. ;**********************************************************************
  34. ;*                                                                    *
  35. ;*              NBIOS (NEW BIOS) PROGRAM                              *
  36. ;*                                                                    *
  37. ;*      CREATES A NEW BIOS FOR TERMINALS, PRINTERS, AND               *
  38. ;*      OTHER PERIPHERALS WITHOUT AFFECTING DISKS.                    *
  39. ;*                                                                    *
  40. ;*      THIS BIOS IMPLEMENTS CONIN/CONOUT AT PORTS 0,1                *
  41. ;*                           LIST AT PORTS 2,3                        *
  42. ;*                           RDR/PUNCH AT PORTS 8,9                   *
  43. ;*      IO BYTE IS NOT IMPLEMENTED, AND DOES NOT HAVE TO              *
  44. ;*      BE PRESET.                                                    *
  45. ;*                                                                    *
  46. ;*      BOTH LIST(PRINTER) AND PUNCH HAVE A SAFETY RELEASE            *
  47. ;*      IF THEY AREN'T CONNECTED OR LOCK-UP THE SYSTEM                *
  48. ;*      FOR ANY REASON. ANY KEYSTROKE WILL RETURN TO                  *
  49. ;*      OPERATING SYSTEM.                                             *
  50. ;*                                                                    *
  51. ;*      HOW TO IMPLEMENT:                                             *
  52. ;*                                                                    *
  53. ;*      1. EDIT "SIZE" TO MATCH YOUR SYSTEM                           *
  54. ;*      2. ASSEMBLE THIS PROGRAM                                      *
  55. ;*      3. PUT MOVCPM UNDER DDT                                       *
  56. ;*      4. OVERLAY THIS PROGRAM                                       *
  57. ;*              A. -INBIOS.HEX                                        *
  58. ;*                 -R<OFFSET>                                         *
  59. ;*              B. OFFSET=12100H-SIZE(HEX)                            *
  60. ;*                 EXAMPLES, 60K, OFFSET=3100H                        *
  61. ;*                           56K, OFFSET=4100H                        *
  62. ;*      5. SAVE 35 MOVCPMX.COM                                        *
  63. ;*      6. MOVCPMX  * *                                               *
  64. ;*      7. SYSGEN (USE RETURN FOR SYSTEM FROM MEMORY)                 *
  65. ;*                                                                    *
  66. ;*      VIDEO SPECIALTIES (714) 481-0073                              *
  67. ;*      DOES NOT RESTRICT THE USE OF THIS PROGRAM                     *
  68. ;*      PREPARED NOVEMBER 16th 1979                                   *
  69. ;*                                                                    *
  70. ;**********************************************************************
  71.  
  72. SIZE    EQU     56              ; SYSTEM SIZE IN KILOBYTES
  73. GOCPM   EQU     0F003H
  74. WBOOT   EQU     0F006H
  75. HOME    EQU     0F009H
  76. SELDSK  EQU     0F00CH
  77. SETTRK  EQU     0F00FH
  78. SETSEC  EQU     0F012H
  79. SETDMA  EQU     0F015H
  80. READ    EQU     0F018H
  81. WRITE   EQU     0F01BH
  82. MESS1   EQU     0F7EBH
  83. CR      EQU     0DH
  84. LF      EQU     0AH
  85. ;        
  86.         ORG     SIZE*1024-512
  87. ;
  88.         JMP     GOCPM
  89.         JMP     LABEL
  90.         JMP     CONST
  91.         JMP     CONIN
  92.         JMP     CONOUT
  93.         JMP     LIST
  94.         JMP     PUNCH
  95.         JMP     READER
  96.         JMP     HOME
  97.         JMP     SELDSK
  98.         JMP     SETTRK
  99.         JMP     SETSEC
  100.         JMP     SETDMA
  101.         JMP     READ
  102.         JMP     WRITE
  103. CONST   IN      00H
  104.         ANI     01H
  105.         JNZ     CT2
  106.         CMA
  107.         ORA     A
  108.         RET
  109. CT2     XRA     A
  110.         RET
  111. CONIN   CALL    CONST
  112.         JZ      CONIN
  113.         IN      01H
  114.         ANI     7FH
  115.         RET
  116. CONOUT  IN      00H
  117.         ANI     80H
  118.         JNZ     CONOUT
  119.         MOV     A,C
  120.         OUT     01H
  121.         LDA     03H
  122.         ANI     03H
  123.         CPI     02H
  124.         RNZ
  125. LIST    IN      03H
  126.         ANI     84H
  127.         CPI     84H
  128.         JNZ     TEST
  129.         MOV     A,C
  130.         OUT     02H
  131.         RET
  132. TEST    CALL    CONST
  133.         JZ      LIST
  134.         RET
  135. READER  IN      08H
  136.         ANI     01H
  137.         JNZ     TEST1
  138.         IN      09H
  139.         RET
  140. TEST1   CALL    CONST
  141.         JZ      READER
  142.         RET
  143. PUNCH   IN      08H
  144.         ANI     80H
  145.         JNZ     PUNCH
  146.         MOV     A,C
  147.         OUT     09H
  148.         RET
  149. ;
  150. LABEL   LXI     H,LABEL1+7      ;*** CLOCK STARTS HERE *** 
  151.         MVI     A,0
  152.         CALL    GETDIG
  153.         MVI     A,1
  154.         CALL    GETDIG
  155.         INX     H
  156.         MVI     A,2
  157.         CALL    GETDIG
  158.         MVI     A,3
  159.         CALL    GETDIG
  160.         INX     H
  161.         MVI     A,4
  162.         CALL    GETDIG
  163.         MVI     A,5
  164.         CALL    GETDIG
  165.         LXI     H,LABEL1+22
  166.         MVI     A,8
  167.         OUT     0C0H
  168.         CALL    DELAY
  169.         IN      0C0H
  170.         ANI     0FH
  171.         ADI     48
  172.         CPI     63
  173.         CZ      SET1
  174.         MOV     M,A
  175.         MVI     A,9
  176.         CALL    GETDIG
  177.         INX     H
  178.         MVI     A,10
  179.         CALL    GETDIG
  180.         MVI     A,11
  181.         CALL    GETDIG
  182.         LXI     H,LABEL1
  183.         CALL    MESS1
  184.         JMP     WBOOT
  185. SET1    MVI     A,20H
  186.         RET      
  187. GETDIG  OUT     0C0H
  188.         CALL    DELAY
  189.         IN      0C0H
  190.         ANI     0FH
  191.         ADI     48
  192.         INX     H
  193.         MOV     M,A
  194.         RET
  195. DELAY   PUSH    D
  196.         LXI     D,01FFH
  197. WAIT1   DCR     E
  198.         JNZ     WAIT1
  199.         DCR     D
  200.         JNZ     WAIT1
  201.         POP     D
  202.         RET
  203. LABEL1  DB      CR,LF,LF
  204.         DB      'TIME HH:MM:SS DATE MM/DD/1980'
  205.         DB      CR,LF,LF
  206.         DB      '56K CP/MX',CR,LF              
  207.  
  208.