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 / MBUG / MBUG114.ARC / INIT.Z80 < prev    next >
Text File  |  1979-12-31  |  2KB  |  130 lines

  1.  
  2. ; ===========================================================
  3. ;INIT.Z80
  4. ;    initialization for E-Prolog
  5. ;    August 1, 1985
  6.  
  7.     .Z80
  8. FALSE    EQU    0
  9. TRUE    EQU    1
  10. EMPTY    EQU    -1
  11. UNDEF    EQU    -2
  12.  
  13. DEBUG    EQU    FALSE
  14.  
  15. HT    EQU    9
  16. LF    EQU    10
  17. CR    EQU    13
  18. CTLZ    EQU    26
  19.  
  20. CPM    EQU        0000H
  21. BDOS    EQU    CPM+0005H
  22. BDBOT    EQU    CPM+0006H
  23. CDMA    EQU    CPM+0080H
  24. TPA    EQU    CPM+0100H
  25.  
  26.     CSEG
  27.  
  28. INIT::
  29. ;  infile = stdin;
  30.     XOR    A
  31.     LD    (INF##),A
  32. ;  outfile = stdout;
  33.     LD    (OUTF##),A
  34. ;  alldb = (PAIR)empty;
  35.     LD    HL,EMPTY
  36.     LD    (ALLDB##),HL
  37. ;  alldbe = &alldb;
  38.     LD    HL,ALLDB##
  39.     LD    (ALLDBE##),HL
  40. ;  inptr = strcpy(indma,cdma+1);
  41.     LD    HL,CDMA
  42.     LD    DE,RDBUFF##+1
  43.     LD    (INP##),DE
  44.     LD    BC,127
  45.     LDIR
  46.     CALL    INIX##
  47. ;  msg(SIGNON);
  48.     LD    HL,SIGNON##
  49.     CALL    MSG##
  50. ;  stop = settop(0);
  51.     LD    HL,0
  52.     CALL    SETTOP##
  53. ;  stop = settop((bdosbot-stop)-stacks);
  54.     EX    DE,HL
  55.     LD    HL,(BDBOT)
  56.     SBC    HL,DE
  57.     LD    DE,(STACKS##)
  58.     SBC    HL,DE
  59.     CALL    SETTOP##
  60. ;  if (stop == NULL)
  61. ;    fatal("\nCannot allocate space.");
  62.     LD    A,H
  63.     OR    L
  64.     JR    NZ,INI1
  65.     LD    HL,MSG1
  66.     JP    FATAL##
  67.     DSEG
  68. MSG1:    DB    CR,LF,"Cannot allocate space.",0
  69.     CSEG
  70. INI1:
  71. ;  stop = sbot+symbs;
  72.     LD    HL,(SBOT##)
  73.     LD    DE,(SYMBS##)
  74.     ADD    HL,DE
  75.     LD    (STOP##),HL
  76. ;  htop = bdosbot-stacks;
  77.     LD    HL,(BDBOT)
  78.     LD    DE,(STACKS##)
  79.     SBC    HL,DE
  80.     LD    (HTOP##),HL
  81. ;  hfree = hbot;
  82.     LD    HL,(STOP##)
  83.     LD    (HFREE##),HL
  84.  
  85. IF    DEBUG
  86. ;  msg("code:");
  87.     LD    HL,MSG2
  88.     CALL    MSG##
  89. ;  prdec(sbot-0x100);
  90.     LD    HL,(SBOT##)
  91.     LD    DE,100H
  92.     SBC    HL,DE
  93.     CALL    PRDEC##
  94. ;  msg("  symb:");
  95.     LD    HL,MSG3
  96.     CALL    MSG##
  97. ;  prdec(stop-sbot);
  98.     LD    HL,(STOP##)
  99.     LD    DE,(SBOT##)
  100.     SBC    HL,DE
  101.     CALL    PRDEC##
  102. ;  msg("  heap:");
  103.     LD    HL,MSG4
  104.     CALL    MSG##
  105. ;  prdec(htop-hbot);
  106.     LD    HL,(HTOP##)
  107.     LD    DE,(STOP##)
  108.     SBC    HL,DE
  109.     CALL    PRDEC##
  110. ;  msg("  stack:");
  111.     LD    HL,MSG5
  112.     CALL    MSG##
  113. ;  prdec(bdosbot-htop);
  114.     LD    HL,(BDBOT)
  115.     LD    DE,(HTOP##)
  116.     SBC    HL,DE
  117.     CALL    PRDEC##
  118. ;  chrout('\n');
  119.     CALL    CRLF##
  120.  
  121.     DSEG
  122. MSG2:    DB    "code:",0
  123. MSG3:    DB    "  symb:",0
  124. MSG4:    DB    "  heap:",0
  125. MSG5:    DB    "  stack:",0
  126.     CSEG
  127. ENDIF
  128.     RET
  129.     END
  130.