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 / CPMUG015.ARK / INIT.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  94 lines

  1.  
  2.        TITLE  'INIT2'
  3.  
  4. PRP    EQU    8006H
  5. NMBP   EQU    8028H
  6. EXC    EQU    80AAH
  7. NP     EQU    80F0H
  8. LBLK   EQU    8398H
  9.  
  10. CR00   EQU    82A6H
  11. START  EQU    83A8H
  12. SCH00  EQU    8165H
  13.  
  14. LOAD   EQU    6
  15. ISIS   EQU    64
  16.  
  17. NMPCB  EQU    5
  18. MBPP   EQU    5
  19.  
  20. SETUP  MACRO  NUM,VALUE,ADDR,COND
  21.        MVI    A,NUM
  22.        MVI    B,VALUE
  23.        LXI    H,ADDR
  24. LOOP:  INX    H
  25.        IF     COND
  26.        INR    B
  27.        ENDIF
  28.        MOV    M,B
  29.        DCR    A
  30.        JNZ    LOOP
  31.        IF     COND
  32.        INX    H
  33.        MOV    M,A
  34.        ENDIF
  35.        ENDM
  36.  
  37. FILE   MACRO  ACT,ADDR
  38.        MVI    C,ACT
  39.        LXI    D,ADDR
  40.        CALL   ISIS
  41.        LDA    STAT
  42.        ORA    A
  43.        JNZ    ERROR
  44.        ENDM
  45.  
  46.  
  47.        ORG    7000H
  48.  
  49. NM1:   DB     'PROC1 '
  50.  
  51. PBA:   DW     FNAM
  52. BIAS:  DW     0
  53. RETSW: DW     0
  54.        DW     ENTRY
  55.        DW     STAT
  56. ENTRY: DS     2
  57. FNAM:  DB     'KERNL.BIN '
  58. DMP:   DB     'DUMP.BIN '
  59. MESS:  DB     'MESS.BIN '
  60.  
  61. STAT:  DS     2
  62.  
  63. ERROR: HLT
  64.  
  65.  
  66. INIT2: LXI    SP,6FF0H               ; Set the stack pointer
  67.        EI
  68.        FILE   LOAD,PBA               ; Load the kernel subroutines
  69.        LXI    H,DMP
  70.        SHLD   PBA
  71.        FILE   LOAD,PBA               ; Load the dump routine
  72.        LXI    H,MESS
  73.        SHLD   PBA
  74.        FILE   LOAD,PBA               ; Load the message and REMOV
  75.                                      ; routines
  76.        SETUP  NMPCB*MBPP-1,1,NMBP,1  ; Message buffer links are set
  77.        SETUP  NMPCB-1,1,NP,1         ; The NP fields in the PCBs 
  78.                                      ; are set
  79.        LXI    H,NM1
  80.        SHLD   LBLK
  81.        CALL   CR00           ; Create PROC1
  82.        SETUP  1,41H,EXC,0    ; Permanent resident bit is set
  83.        SETUP  10,0,PRP-1,0   ; The PRP and NMR fields are set to 0
  84.        LXI    B,NM1
  85.        MVI    E,1
  86.        CALL   START          ; Start PROC1 with priority 1
  87.        MVI    C,1
  88.        MVI    B,0
  89.        MVI    A,1
  90.        DI
  91.        JMP    SCH00          ; Call scheduler to start PROC1
  92.  
  93.        END    INIT2
  94.