Subversion Repositories pentevo

Rev

Rev 691 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ; LAST UPDATE: 18.10.2023 savelij
  3.  
  4. C_INIT          EX AF,AF'
  5.                 LD A,0x7c
  6.                 ld bc,WIN_A3
  7.                 out (c),a
  8.                 EX AF,AF'
  9.        LD   (PAR1),A
  10.        LD   A,HIGH (INTRADR)
  11.        LD   I,A
  12.        LD   IX,IX_BASE
  13.        LD   HL,VAR1_I
  14.        LD   DE,IX_BAS
  15.        LD   BC,VAR1_S
  16.        LDIR
  17.        LD   A,1
  18.        RST  18H
  19.        LD   A,0C3H
  20.        LD   (SW_DO),A
  21.        LD   HL,OUT_CH
  22.        LD   (OUT_SW+1),HL
  23.                 CALL MODE;       CALL SP_AUX1
  24.                 CALL SP_DEF;       CALL CUR_AC
  25.        LD   A,3
  26.                 RST 0X18
  27.                 RET
  28.  
  29. M_INIT: LD      A,3
  30.         RST     18H
  31.         LD      DE,0F800H
  32.         LD      HL,MON_IMG
  33.         LD      BC,MON_SIZE
  34.         LDIR
  35.                 LD HL,BSS_START
  36.                 LD DE,BSS_START+1
  37.                 LD BC,BSS_LNG-1
  38.                 LD (HL),0
  39.                 LDIR
  40.                 RET
  41.  
  42. SWP:    EX      (SP),HL
  43.         LD      DE,BUF+3
  44.         LD      BC,3
  45.         LDIR
  46.         EX      (SP),HL
  47.         LD      DE,-1
  48.         LD      A,3FH
  49.         CALL    __S1
  50.         LD      A,1FH
  51.         CALL    __S1
  52.         LD      A,7
  53. __S1:   RST     18H
  54.         CALL    BUF+3
  55.         INC     HL
  56.         RET
  57.  
  58. __READ: CALL    SWP
  59.             LD      A,(DE)
  60.             LD      (HL),A
  61.             RET
  62.         RET
  63. __WRITE:CALL    SWP
  64.             LD      A,(HL)
  65.             LD      (DE),A
  66.             RET
  67.         RET
  68.  
  69. MTEST:  LD      HL,BUF+6
  70.         CALL    __READ
  71.         LD      HL,__SRC
  72.         CALL    __WRITE
  73.         LD      HL,BUF
  74.         CALL    __READ
  75.         LD      HL,BUF+6
  76.         CALL    __WRITE
  77.         CALL    __TST
  78. __SRC:  DB      49H, 92H, 24H
  79.         SET     _RU5,(IX-_FLAG)
  80.         DEC     C
  81.         LD      DE,M_128
  82.         RET     Z
  83.         RES     _RU5,(IX-_FLAG)
  84.         DEC     C
  85.         LD      DE,M_512
  86.         RET     Z
  87.         LD      DE,M_1024
  88.         DEC     C
  89.         RET     Z
  90.         CALL    PRN
  91.         DB      "fault. (",0
  92.         LD      A,(BUF)
  93.         CALL    PHEX
  94.         LD      A,(BUF+1)
  95.         CALL    PHEX
  96.         LD      A,(BUF+2)
  97.         CALL    PHEX1
  98.         CALL    PRN
  99.         DB      ")",0DH,0AH,0
  100.         DI
  101.         HALT
  102.  
  103. __TST:  POP     HL
  104.         LD      DE,BUF
  105.         LD      BC,300H
  106. __LP:   LD      A,(DE)
  107.         CP      (HL)
  108.         INC     HL
  109.         INC     DE
  110.         JR      NZ,__2
  111.         INC     C
  112.         JR      __1
  113. __2:    LD      C,0
  114. __1:    DJNZ    __LP
  115.         JP      (HL)
  116.  
  117. M_128:  DB      3
  118.         DW      384
  119.         DB      "128",0
  120. M_512:  DB      1BH
  121.         DW      3456
  122.         DB      "512",0
  123. M_1024: DB      3BH
  124.         DW      7552
  125.         DB      "4096",0
  126.  
  127. MEM_SIZE:
  128.         CALL    PRN
  129.         DB      "Memory ",0
  130.         CALL    MTEST
  131.         LD      A,3
  132.         RST     18H
  133.         EX      DE,HL
  134.         ;LD      A,(HL)
  135.         INC     HL
  136.         ;LD      (CHED+_DCYLN),A
  137.         ;LD      (CHED+_DTRACK),A
  138.         ;LD      E,(HL)
  139.         INC     HL
  140.         ;LD      D,(HL)
  141.         INC     HL
  142.         ;LD      (CHED+_DBLDR),DE
  143.                 ld a,1
  144.         LD      (CHED+_DFN),a
  145.         CALL    PRN
  146.         DB      "size is ",0
  147.         CALL    PRN_HL
  148.         CALL    PRN
  149.         DB      "k.",0DH,0AH,0
  150.                
  151.         RET
  152.  
  153. CPM_LOAD:
  154.         LD      BC,CPM_SIZE
  155. CPM_L1
  156.         LD      DE,CCP
  157.     LD      HL,CPM_IMG
  158.  
  159.         LDIR
  160.         RET
  161.  
  162.  
  163. SET_SYS:LD      A,(SYS_P)
  164. SET_ASYS:
  165.         LD      BC,0FD77H
  166.         OUT     (C),A
  167.         RET
  168.  
  169. PTST_1: DI
  170.         SCF
  171.         RET
  172.  
  173. H_INIT
  174.         LD  BC,077H
  175.         LD  A,2
  176.         OUT (C),A
  177.         IM      1
  178.         DI
  179.         RCALL   PG_SET
  180.         LD BC,77H
  181.         LD A,6H ;!!!
  182.         OUT (C),A
  183.         RCALL    PG_SET
  184.  
  185.         LD      SP,SYS_SP
  186.         LD A,10H
  187.         OUT (C),A
  188.         LD A,6H ;!!!
  189.         LD BC,177H
  190.         OUT (C),A
  191.  
  192. PENTEVO_START
  193.           LD HL,DSK_TAB
  194.           LD DE,610H ;!!!
  195.           LD C,77H
  196.           LD  A,8
  197.           OUT (0FFH),A
  198. DSK_1:    LD  A,(HL)
  199.           INC HL
  200.           OUT (0FFH),A
  201.           LD  B,41H
  202.           OUT (C),D
  203.           OR  8
  204.           OUT (0FFH),A
  205.           LD  B,1
  206.           OUT (C),D
  207.           DEC E
  208.           JR  NZ,DSK_1
  209.  
  210.  
  211.           LD  BC,4177H
  212.           LD  A,6H ;!!!
  213.           OUT (C),A
  214.  
  215.           LD A,0FFH
  216.           OUT (0FFH),A
  217.                 JP ENTRY
  218.  
  219. PG_SET:   LD HL,PAGE_D
  220.           LD DE,40H
  221. PAGE_L2:  LD BC,0FF7H
  222. PAGE_L1_  OUTI
  223.           LD A,B
  224.           ADD A,E
  225.           LD B,A
  226.           JR NC,PAGE_L1_
  227.           LD BC,7FFDH
  228.           LD A,D
  229.           XOR 10H
  230.           LD D,A
  231.           OUT (C),A
  232.           JR NZ,PAGE_L2
  233.           RET
  234.  
  235. PAGE_D          DB 0X7F,0X7B,0X7D,0X7C,0X00,0X07A,0X7D,0X60
  236.  
  237. DSK_TAB         DB 0F1H, 0E1H, 0D1H, 0C1H, 0C1H, 0B1H, 0A1H,  91H
  238.                 DB 041H, 021H, 031H, 011H, 001H, 001H, 0F1H, 0E1H
  239.