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 / ZCPR33 / S-Z / SHELLINI.LBR / SHELLINI.Z80 < prev   
Text File  |  2000-06-30  |  1KB  |  52 lines

  1. ;
  2. ;Program to initialize the entire 128 bytes of the shell stack 
  3. ;This is necessary for Wordstar CPM Version 4 only
  4. ;November, 1987--Biff Bueffel
  5. ;
  6. Z3ENV    equ    0fe00h        ;for debugging purposes only
  7. shsize    equ    128        ;usual size of shell stack
  8. ;
  9.     org    100h
  10.     jp    start
  11.     db    'Z3ENV'
  12.     db    1
  13. z3eadr    dw    Z3ENV        ;Z3ENV address
  14. start:
  15.     ld    hl,0        ;save CPM stack
  16.     add    hl,sp        ;
  17.     ld    (cpmstk),hl    ;    
  18.     call    shloc        ;get address of z3shell stack
  19.     call    inshl        ;initialize shell stack
  20.     ld    hl,(cpmstk)    ;get CPM stack
  21.     ld    sp,hl        ;
  22.     ret            ;back to CPM
  23. ;
  24. ;    Find and save shell stack address
  25. ;
  26. shloc:    ld    hl,(z3eadr)    ;get z3env address
  27.     ld    a,30        ;offset to find shell stack address
  28.     add    a,l        ;add offset to l
  29.     ld    l,a        ;place result in l
  30.     xor    a        ;zero a
  31.     adc    a,h        ;add any carry to h
  32.     ld    h,a        ;place result in h
  33.     ld    a,(hl)        ;get low byte shell stack address
  34.     ld    (shladr),a    ;store it
  35.     inc    hl        ;bump pointer
  36.     ld    a,(hl)        ;get high byte shell stack address
  37.     ld    (shladr+1),a    ;store it
  38.     ret
  39. ;
  40. ;    Initialize the shell stack
  41. ;
  42. inshl:    ld    hl,(shladr)    ;get shell stack address into hl register
  43.     ld    b,(shsize)    ;128 bytes
  44. zerom:    ld    (hl),0        ;0 memory
  45.     inc    hl        ;point to next byte
  46.     djnz    zerom        ;
  47.     ret
  48. ;
  49. shladr    ds    2        ;storage for shell stack address
  50. cpmstk    equ    $
  51. end    start
  52.