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 / INIT2.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  3KB  |  134 lines

  1.  
  2.        TITLE  'INIT2'
  3.  
  4. DUMP   EQU    7200H
  5. WBLK   EQU    7442H
  6.  
  7. PRP    EQU    8006H
  8. NMBP   EQU    8028H
  9. EXC    EQU    80AAH
  10. NP     EQU    80F0H
  11. LBLK   EQU    8398H
  12.  
  13. CR00   EQU    82A6H
  14. START  EQU    83A8H
  15. SCH00  EQU    8165H
  16.  
  17. OPEN   EQU    0
  18. CLOSE  EQU    1
  19. LOAD   EQU    6
  20. ISIS   EQU    64
  21.  
  22. NMPCB  EQU    5
  23. MBPP   EQU    5
  24.  
  25. SETUP  MACRO  NUM,VALUE,ADDR,COND
  26.        MVI    A,NUM
  27.        MVI    B,VALUE
  28.        LXI    H,ADDR
  29. LOOP:  INX    H
  30.        IF     COND
  31.        INR    B
  32.        ENDIF
  33.        MOV    M,B
  34.        DCR    A
  35.        JNZ    LOOP
  36.        IF     COND
  37.        INX    H
  38.        MOV    M,A
  39.        ENDIF
  40.        ENDM
  41.  
  42. FILE   MACRO  ACT,ADDR
  43.        MVI    C,ACT
  44.        LXI    D,ADDR
  45.        CALL   ISIS
  46.        LDA    STAT
  47.        ORA    A
  48.        JNZ    ERROR
  49.        ENDM
  50.  
  51. FILL   MACRO  NUM,ADDR        ; To fill locations with FF
  52.        MVI    A,NUM
  53.        LXI    H,ADDR
  54.        MVI    B,0FFH
  55. X:     MOV    M,B
  56.        DCR    A
  57.        INX    H
  58.        JNZ    X
  59.        ENDM
  60.  
  61.  
  62.        ORG    7000H
  63.  
  64. NM1:   DB     'PROC5 '
  65.  
  66. PBA:   DW     FNAM
  67. BIAS:  DW     0
  68. RETSW: DW     0
  69.        DW     ENTRY
  70.        DW     STAT
  71. ENTRY: DS     2
  72. FNAM:  DB     'KERNL.BIN '
  73. DMP:   DB     'DUMP.BIN '
  74. MESS:  DB     'MESS.BIN '
  75.  
  76. OBLK:  DW     WBLK             ; Parameter block for OPEN
  77.        DW     OFILE            ; Pointer to filename
  78. ACC:   DW     2
  79. ECHO:  DW     0
  80.        DW     STAT
  81. OFILE: DB     'DATA '
  82.  
  83. STAT:  DS     2
  84.  
  85. ERROR: HLT
  86.  
  87.  
  88. INIT2: LXI    SP,6FF0H               ; Set the stack pointer
  89.        EI
  90.  
  91.        FILL   0FFH,8000H
  92.        FILL   4FH,80FFH
  93.        FILL   5FH,6FA0H
  94.  
  95.        FILL   5FH,3FA0H
  96.        FILL   5FH,44A0H
  97.        FILL   5FH,49A0H
  98.        FILL   5FH,4CA0H
  99.  
  100.        FILL   5FH,41A0H
  101.        FILL   5FH,42A0H
  102.        FILL   5FH,43A0H
  103.        FILL   5FH,46A0H
  104.  
  105.        FILE   LOAD,PBA               ; Load the kernel subroutines
  106.        LXI    H,DMP
  107.        SHLD   PBA
  108.        FILE   LOAD,PBA               ; Load the dump routine
  109.        LXI    H,MESS
  110.        SHLD   PBA
  111.        FILE   LOAD,PBA               ; Load the message and REMOV
  112.                                      ; routines
  113.        FILE   OPEN,OBLK              ; Open the output file DATA
  114.        LHLD   WBLK
  115.        SETUP  NMPCB*MBPP-1,1,NMBP,1  ; Message buffer links are set
  116.        SETUP  NMPCB-1,1,NP,1         ; The NP fields in the PCBs 
  117.                                      ; are set
  118.        LXI    H,NM1
  119.        SHLD   LBLK
  120.        CALL   CR00           ; Create PROC1
  121.        SETUP  1,41H,EXC,0    ; Permanent resident bit is set
  122.        SETUP  10,0,PRP-1,0   ; The PRP and NMR fields are set to 0
  123.        LXI    B,NM1
  124.        MVI    E,1
  125.        CALL   START          ; Start PROC1 with priority 1
  126.        MVI    C,1
  127.        MVI    B,0
  128.        MVI    A,1
  129.        DI
  130.        JMP    SCH00          ; Call scheduler to start PROC1
  131.  
  132.        END    INIT2
  133.  
  134.