home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug167.arc / ZMP-BEE.LBR / BDOS.DZF / BDOS.DEF
Text File  |  1979-12-31  |  4KB  |  127 lines

  1. ; Definition of CPM 2.2.  "set" vars can be modified if needed.
  2. ;
  3. ; Set your BDOS version here: set one and only one TRUE
  4. cpm22    equ    true    ; Standard CP/M 2.2
  5. z80dos    equ    false    ; Z80DOS v2.0
  6. zrdos12    equ    false    ; ZRDOS 12
  7. zrdos17    equ    false    ; ZRDOS 17
  8. zrdos19    equ    false    ; ZRDOS 19
  9.  
  10. ; BDOS Functions:
  11. @SYS    equ    0;    reinitialize
  12. @KEY    equ    1;    input console char, echo
  13. @CON    equ    2;    output console char
  14. @RDR    equ    3;    input RDR char.
  15. @PUN    equ    4;    output PUN char
  16. @LST    equ    5;    output LST char
  17. @DIO    equ    6;    Direct console i/o & status
  18. @RIO    equ    7;    Get IO byte (2.2). Rdr status (3.0)
  19. @SIO    equ    8;    Set IO byte (2.2). Pun status (3.0)
  20. @MSG    equ    9;    String to console
  21. @INP    equ    10;    Input string from console
  22. @RDY    equ    11;    Console input ready
  23. @VER    equ    12;    CPM version
  24. @LOG    equ    13;    Reset disk system (^C)
  25. @DSK    equ    14;    Select drive
  26. @OPN    equ    15;    Open file
  27. @CLS    equ    16;    Close file
  28. @DIR    equ    17;    Search 1st Dir. entry
  29. @NXT    equ    18;    Search next Dir. entry
  30. @DEL    equ    19;    Delete file
  31. @FRD    equ    20;    File read (sequential)
  32. @FWR    equ    21;    File write (sequential)
  33. @MAK    equ    22;    Make file
  34. @REN    equ    23;    Rename file
  35. @LGV    equ    24;    Log-in vector
  36. @CUR    equ    25;    Get current disk
  37. @DMA    equ    26;    Set DMA address
  38. @ALO    equ    27;    Get disk allocation vector
  39. @WPT    equ    28;    Write protect drive
  40. @GRO    equ    29;    Get read/only vector (drives)
  41. @CHG    equ    30;    Change file attributes
  42. @GPM    equ    31;    Get disk parameter table pointer
  43. @USR    equ    32;    Get/set current user
  44. @RRD    equ    33;    Random record read
  45. @RWR    equ    34;    Random record write
  46. @SIZ    equ    35;    Get file size
  47. @REC    equ    36;    Set random record to current sequential
  48. @RDV    equ    37;    Reset (selected) drive(s)
  49. ;            38 and 39 are MPM functions
  50. @WRZ    equ    40;    Random write w/zero fill
  51. ;
  52. ; some CPM 3.0 functions, for reference.  Match function if
  53. ; possible when a 2.2 RSX is created.
  54. ; 41 thru 50 are used
  55. @CHN    equ    47;    Chain to command line in (dmaadr)
  56. @OVL    equ    59;    Load overlay
  57. ;@RSX    equ    60;    Call RSX.  Different usage than here
  58. ; 98 thru 112 are used.  115 is CPM86 GSX graphics.
  59. @PFN    equ    152;    parse filename
  60. ;
  61. ; System equates:
  62. CPMBASE    set    0
  63. boot    set    CPMBASE
  64. iobyte    set    boot+3
  65. drvusr    set    boot+4
  66. bdos    set    boot+5
  67. tfcb    set    boot+5CH
  68. tfcb1    set    tfcb
  69. tfcb2    set    tfcb+16
  70. tbuff    set    boot+80H
  71. TPA    set    boot+100H
  72. fcblen    equ    36;        Length of input FCB, incl. random rcd
  73. ;
  74. ; Known CPM 2.2 definitions, for validation. Modify for other systems
  75.  
  76. ;Entry point jumps to this, relative to the first page of BDOS proper
  77. ;Set by equates at the beginning of this file. If your BDOS is not in
  78. ;the list, the value of BDOSARG can be found by looking where the jump
  79. ;at 0005h goes. This will usually be another jump to a location within
  80. ;BDOS. Subtract the BDOS base from this target address to give a value for
  81. ;BDOSARG.
  82.  
  83.      if cpm22
  84. BDOSARG        set    0011h    ;standard cp/m 2.2 BDOS
  85.      endif
  86.  
  87.      if z80dos
  88. BDOSARG        set    0014h    ; Z80DOS has 14h here
  89.      endif
  90.  
  91.      if zrdos12
  92. BDOSARG        set    009eh    ; ZRDOS12
  93.      endif
  94.  
  95.      if zrdos17
  96. BDOSARG        set    0090h    ; ZRDOS17
  97.      endif
  98.  
  99.      if zrdos19
  100. BDOSARG        set    0090h    ; ZRDOS19
  101.      endif
  102.  
  103. BDOSLGH    set    0eh;        BDOS is this many 256 byte pages long
  104. CCPLGH    set    0800h;        CCP is this long. If this is not 800h
  105. ;                then the standard versions of RELOCCP
  106. ;                (.SYS & .OVR) must be revised.
  107. ;
  108. ; nvects is larger than the CPM 2.2 standard to allow for:
  109. ;   1. CPM 3 bios system
  110. ;   2. Other systems with extended bios calls and/or use
  111. ;      e.g. Kaypro has a key table, which some applications
  112. ;      alter (via the pointer at 1).  If the space is not
  113. ;      reserved system crashes will result.
  114. nvects    set    29;        Number of BIOS vectors
  115. n22vec    set    16;        Number of CPM 2.2 vectors
  116. ;
  117. ; Some control chars.
  118. CTRL    equ    ' '-1;        CTRL CHAR MASK
  119. CTRLC    equ    CTRL AND 'C'
  120. BEL    equ    CTRL AND 'G'
  121. BS    equ    CTRL AND 'H'
  122. TAB    equ    CTRL AND 'I'
  123. LF    equ    CTRL AND 'J'
  124. FF    equ    CTRL AND 'L'
  125. CR    equ    CTRL AND 'M'
  126. eof    equ    CTRL AND 'Z'
  127.