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 / CPM / ZCPR2 / ZCPR2-A6.LBR / ZCPRBT.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  2KB  |  120 lines

  1. ;cold boot for Apple ][ with CPM56
  2. FALSE    EQU    0
  3. TRUE    EQU    NOT FALSE
  4. apcout    equ    0FB4Dh
  5. apcin    equ    0FB1Ah
  6. apconst    equ    0FB10h
  7. ;changer    equ    0BBBBh
  8. ndir    EQU    TRUE
  9. iobase    equ    0f780h
  10. ndbase    equ    0f680h
  11. ;W McGee 15 Feb 1983
  12. ;Version 1W1
  13.     maclib zcprhdr
  14. ;ZCPR2 is set up with a command line to execute this file on cold boot
  15. ;and by patching the ZCPR2 code to point to the command line
  16. ;The purpose of this code is to initialize the buffers needed for ZCPR2
  17. ;in the Apple ][ screen area. Thus, this will not work with the
  18. ;40-column screen!!!
  19. $-macro
  20. @GENDD    MACRO    ?DD
  21.     IF (?DD GT 7FH) AND (?DD LT 0FF80H)
  22.     DB    100H
  23.     ELSE
  24.     DB    ?DD
  25.     ENDIF
  26.     ENDM
  27.  
  28. jr    MACRO    ?N
  29.     DB    18H
  30.     @GENDD    ?N-$-1
  31.     ENDM
  32.     org    100h
  33. ;Initialize Multiple command line
  34.     if multcmd
  35. ;     lxi    h,clbase
  36. ;    shld    changer
  37.     lxi    d,cmdset
  38.     lxi    h,clbase
  39.     call    mover
  40.     endif
  41. ;Initialize named directory
  42.     if ndir
  43.     lxi    d,ndvals
  44.     lxi    h,ndbase
  45.     call mover
  46.     endif
  47. ;Initialize Default Command Search Path
  48.     lxi    d,path
  49.     lxi    h,pathbase
  50.     mvi    b,9
  51.     call    movlop
  52. ;go back
  53.  
  54. ;initialize IOBYTE and redirectable I/O drivers
  55.     lxi    d,iodrivers
  56.     lxi    h,iobase
  57.     call    mover
  58.     jmp    0000h
  59. ;mover arbitrary 119 bytes from de to hl
  60. mover:
  61.     mvi    b,119
  62. movlop:
  63.     ldax    d
  64.     mov    m,a
  65.     inx    h
  66.     inx    d
  67.     dcr    b
  68.     jnz    movlop
  69.     ret
  70. ;
  71. ;initial external path
  72. pathbase equ 40h
  73. path:
  74.     db    '$$'
  75.     db    '$',0
  76.     db    1,'$'
  77.     db    1,0
  78.     db    0
  79. ;initialize command line
  80.     if multcmd
  81. buflen equ 119
  82. cmdset:
  83.     dw    clbase+4
  84.     db    buflen
  85.     db    0
  86.     db    0
  87.     endif
  88. iodrivers:
  89.     jr    ioerror
  90.     db    0
  91.     jr    ioerror
  92.     db    0
  93.     jr    ioerror
  94.     db    0
  95.  
  96.     ret
  97.     db    0,0
  98.     jmp    APCONST
  99.     jmp    apcin
  100.     jmp    apcout
  101.     jmp    apcout
  102.     jmp    apcin
  103.     mvi    a,0ffh
  104.     ora    a
  105.     ret
  106.  
  107. ioerror:
  108.     xra    a
  109.     ret
  110.     if    ndir
  111. ndvals:
  112.     db    50
  113.     db    0
  114.     db    0
  115.     db    0
  116.     db    0
  117.     endif    
  118.     end
  119.  
  120.