Subversion Repositories pentevo

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 21.11.2013 savelij
  3.  
  4. C_INIT          EX AF,AF'
  5.                 LD A,3
  6.                 RST 0X18
  7.                 EX AF,AF'
  8.        LD   (PAR1),A
  9.        LD   A,HIGH (INTRADR)
  10.        LD   I,A
  11.        LD   IX,IX_BASE
  12.        LD   HL,VAR1_I
  13.        LD   DE,IX_BAS
  14.        LD   BC,VAR1_S
  15.        LDIR
  16.        LD   A,1
  17.        RST  18H
  18.        LD   A,0C3H
  19.        LD   (SW_DO),A
  20. ;       LD   (OUT_SW),A
  21. ;       LD   (SW_CLR),A
  22.        LD   HL,OUT_CH
  23.        LD   (OUT_SW+1),HL
  24. ;       LD   DE,SG_ENC
  25. ;       LD   HL,SGENCI
  26. ;       LD   BC,12
  27. ;       LDIR
  28. ;       CALL MODE
  29. ;       LD   HL,PALN
  30.                 CALL MODE;       CALL SP_AUX1
  31.                 CALL SP_DEF;       CALL CUR_AC
  32.        LD   A,3
  33. ;       JP   SET_PG
  34.                 RST 0X18
  35.                 RET
  36.  
  37. M_INIT: LD      A,3
  38.         RST     18H
  39.         LD      DE,0F800H
  40.         LD      HL,MON_IMG
  41.         LD      BC,MON_SIZE
  42.         LDIR
  43.                 LD HL,BSS_START
  44.                 LD DE,BSS_START+1
  45.                 LD BC,BSS_LNG-1
  46.                 LD (HL),0
  47.                 LDIR
  48.                 RET
  49.  
  50. ;        LD      HL,CH2
  51. ;        LD      DE,23H
  52. ;        LD      B,8
  53. ;M_I_LP: LD      (HL),0
  54. ;        ADD     HL,DE
  55. ;        DJNZ    M_I_LP
  56. ;       IF ROM
  57. ;        LD      HL,0C000H
  58. ;        XOR     A
  59. ;        RST 18H
  60. ;        LD      D,(HL)
  61. ;        LD      (HL),55H
  62. ;        LD      A,8
  63. ;        RST 18H
  64. ;        LD      E,(HL)
  65. ;        LD      (HL),0AAH
  66. ;        XOR     A
  67. ;        RST 18H
  68. ;        LD      A,55H
  69. ;        CP      (HL)
  70. ;        EX      AF,AF'
  71. ;        LD      (HL),D
  72. ;        LD      A,8
  73. ;        RST 18H
  74. ;        LD      (HL),E
  75. ;        LD      A,3
  76. ;        RST     18H
  77. ;        EX      AF,AF'
  78. ;        RET     Z
  79. ;        LD      BC,CH1_5
  80. ;        LD      (CHTBL+2),BC
  81. ;       ENDIF
  82. ;        RET
  83.  
  84. SWP:    EX      (SP),HL
  85.         LD      DE,BUF+3
  86.         LD      BC,3
  87.         LDIR
  88.         EX      (SP),HL
  89.         LD      DE,-1
  90.         LD      A,3FH
  91.         CALL    __S1
  92.         LD      A,1FH
  93.         CALL    __S1
  94.         LD      A,7
  95. __S1:   RST     18H
  96.         CALL    BUF+3
  97.         INC     HL
  98.         RET
  99.  
  100. __READ: CALL    SWP
  101.             LD      A,(DE)
  102.             LD      (HL),A
  103.             RET
  104.         RET
  105. __WRITE:CALL    SWP
  106.             LD      A,(HL)
  107.             LD      (DE),A
  108.             RET
  109.         RET
  110.  
  111. MTEST:  LD      HL,BUF+6
  112.         CALL    __READ
  113.         LD      HL,__SRC
  114.         CALL    __WRITE
  115.         LD      HL,BUF
  116.         CALL    __READ
  117.         LD      HL,BUF+6
  118.         CALL    __WRITE
  119.         CALL    __TST
  120. __SRC:  DB      49H, 92H, 24H
  121.         SET     _RU5,(IX-_FLAG)
  122.         DEC     C
  123.         LD      DE,M_128
  124.         RET     Z
  125.         RES     _RU5,(IX-_FLAG)
  126.         DEC     C
  127.         LD      DE,M_512
  128.         RET     Z
  129.         LD      DE,M_1024
  130.         DEC     C
  131.         RET     Z
  132. ;/*
  133. ;        DW      M_1024
  134. ;        CALL    __TST
  135. ;        DB      92H, 92H, 24H
  136. ;        DW      M_512
  137. ;        SET     _RU5,(_FLAG+IX)
  138. ;        CALL    @@TST
  139. ;        DB      24H, 24H, 24H
  140. ;        DW      M_128
  141. ;*/
  142.         CALL    PRN
  143.         DB      "fault. (",0
  144.         LD      A,(BUF)
  145.         CALL    PHEX
  146.         LD      A,(BUF+1)
  147.         CALL    PHEX
  148.         LD      A,(BUF+2)
  149.         CALL    PHEX1
  150.         CALL    PRN
  151.         DB      ")",0DH,0AH,0
  152.         DI
  153.         HALT
  154. ;/*
  155. ;@@TST:  POP     HL
  156. ;        LD      DE,BUF
  157. ;        LD      BC,3FFH
  158. ;@@LP:   LD      A,(DE)
  159. ;        CP      (HL)
  160. ;       INC     HL
  161. ;       INC     DE
  162. ;        JR      Z,@@1
  163. ;        INC     C
  164. ;@@1:    DJNZ    @@LP
  165. ;        LD      E,(HL)
  166. ;        INC     HL
  167. ;        LD      D,(HL)
  168. ;        INC     HL
  169. ;        INC     C
  170. ;        RET    Z
  171. ;        JP      (HL)
  172. ;*/
  173.  
  174. __TST:  POP     HL
  175.         LD      DE,BUF
  176.         LD      BC,300H
  177. __LP:   LD      A,(DE)
  178.         CP      (HL)
  179.         INC     HL
  180.         INC     DE
  181.         JR      NZ,__2
  182.         INC     C
  183.         JR      __1
  184. __2:    LD      C,0
  185. __1:    DJNZ    __LP
  186.         JP      (HL)
  187.  
  188. M_128:  DB      3
  189.         DW      384
  190.         DB      "128",0
  191. M_512:  DB      1BH
  192.         DW      3456
  193.         DB      "512",0
  194. M_1024: DB      3BH
  195.         DW      7552
  196.         DB      "1024",0
  197.  
  198. MEM_SIZE:
  199.         CALL    PRN
  200.         DB      "Memory ",0
  201.         CALL    MTEST
  202.         LD      A,3
  203.         RST     18H
  204.         EX      DE,HL
  205.         LD      A,(HL)
  206.         INC     HL
  207.         LD      (CHED+_DCYLN),A
  208.         LD      (CHED+_DTRACK),A
  209.         LD      E,(HL)
  210.         INC     HL
  211.         LD      D,(HL)
  212.         INC     HL
  213.         LD      (CHED+_DBLDR),DE
  214.         CALL    PRN
  215.         DB      "size is ",0
  216.         CALL    PRN_HL
  217.         CALL    PRN
  218.         DB      "k.",0DH,0AH,0
  219.         RET
  220.  
  221. CPM_LOAD:
  222.         LD      BC,CPM_SIZE
  223. CPM_L1
  224. ;       PUSH    BC
  225. ;        CALL    TST_RT
  226. ;        CALL    _SIGN
  227. ;        DW      32EH, 101H
  228. ;       IF ROM
  229. ;        DW      0FFF4H-0FF72H
  230. ;       ELSE
  231. ;        DW      0FFF4H-0EFEFH
  232. ;       ENDIF
  233. ;                                       LD      HL,0FFF4H
  234. ;.COMMENT @
  235. ;        EX      DE,HL
  236. ;        INC     DE
  237. ;       LD      HL,0FFFEH
  238. ;       ADD     HL,DE
  239. ;       SBC     HL,HL                   ; HL=0 IF ERR, ELSE HL=FFFF
  240. ;LPL1:  LD      A,D
  241. ;       XOR     E
  242. ;       XOR     L
  243. ;       LD      (ED_BUF),A
  244. ;       LD      A,(ED_BUF+10)
  245. ;       ADD     A,D
  246. ;       DAA
  247. ;       LD      E,A
  248. ;       DEC     D
  249. ;       JR      NZ,LPL1
  250. ;       XOR     L
  251. ;       XOR     E
  252. ;       LD      L,A
  253. ;@
  254. ;       CALL    MS
  255. ;       DB 0DH,0AH,'SIGN:',0
  256. ;       LD      A,H
  257. ;       CALL    HEX2
  258. ;       LD      A,L
  259. ;       CALL    HEX1
  260. ;       CALL    MS
  261. ;       DB 0DH,0AH,'TIME:',0
  262. ;       LD      A,(RTIME+1)
  263. ;       CALL    HEX2
  264. ;       LD      A,(RTIME)
  265. ;       CALL    HEX1
  266. ;       CALL    CRLF
  267.  
  268. ;       LD      C,0
  269. ;       EXX
  270. ;       POP     BC
  271.         LD      DE,CCP
  272.         LD      HL,CPM_IMG
  273.  
  274.         LDIR
  275.         RET
  276.  
  277. ;CPMLLP: LD     A,(HL)
  278. ;       EXX
  279. ;       XOR     C
  280. ;       XOR     L
  281. ;       LD      C,A
  282. ;       ADD     HL,HL
  283. ;       JR      NC,$+3
  284. ;       INC     HL
  285. ;       EXX
  286. ;       LD      (DE),A
  287. ;       INC     DE
  288. ;       CPI
  289. ;       JP      PE,CPMLLP
  290. ;        RET
  291.  
  292. ;SUB_1:         DI
  293. ;        POP     HL
  294. ;       LD      A,3
  295. ;        RST     18H
  296. ;       PUSH    AF
  297. ;       LD      BC,(INTRADR)
  298. ;       PUSH    BC
  299. ;        LD      BC,PTST_1
  300. ;        LD      (INTRADR),BC
  301. ;        PUSH    HL
  302. ;        LD      HL,1
  303. ;       IM      2
  304. ;       RET
  305.  
  306. ;TST_RT: CALL    SUB_1      ; RET HL & RTIME
  307. ;       EI
  308. ;       HALT
  309. ;       LD B,20
  310. ;       DJNZ $
  311. ;       OR A
  312. ;       EI
  313. ;PTST_L:        INC     HL
  314. ;       JR      NC,PTST_L
  315. ;       LD      (RTIME),HL
  316. ;PTST_E:        DI
  317. ;       IM      1
  318. ;        POP     DE
  319. ;        LD      (INTRADR),DE
  320. ;       POP     AF
  321. ;        RST     18H
  322. ;       EI
  323. ;       RET
  324.  
  325. ;PTST_1: SCF
  326. ;       RET
  327.  
  328. ;SIGN:   CALL    SUB_1      ; DE - CONST, RET - HL
  329. ;        LD      HL,1
  330. ;        EI
  331. ;       HALT
  332. ;        NOP
  333. ;__L:    DEC     DE
  334. ;        LD A,D
  335. ;        OR E
  336. ;        JR      NZ,__L
  337. ;LL:     IN      A,(0FEH)
  338. ;       ADD     A,A
  339. ;       ADC     HL,HL
  340. ;        JR      NC,LL
  341. ;       JR      PTST_E
  342.  
  343.  
  344. ;_SIGN:  POP     HL        ; CALL _SIGN\DW<TUR-CONST>,<NOR-CONST>\DW<ADD-IF-TURBO>
  345. ;        LD      E,(HL)
  346. ;        INC     HL
  347. ;        LD      D,(HL)
  348. ;        INC     HL
  349. ;        PUSH    DE           ; PUSH TUR CONST
  350. ;        LD      E,(HL)
  351. ;        INC     HL
  352. ;        LD      D,(HL)
  353. ;        INC     HL           ; DE <- NOR CONST
  354. ;        LD      C,(HL)
  355. ;        INC     HL
  356. ;        LD      B,(HL)       ; BC <- ADD
  357. ;        INC     HL
  358. ;        EX      (SP),HL      ; HL <- TUR CONST
  359. ;        BIT     4,(IX-_RTIME+1) ; NZ IF TURBO
  360. ;        JR      Z,SIGN
  361. ;        EX      DE,HL
  362. ;       PUSH    BC
  363. ;        CALL    SIGN
  364. ;       POP     BC
  365. ;        ADD     HL,BC
  366. ;        RET
  367.  
  368. SET_SYS:LD      A,(SYS_P)
  369. SET_ASYS:
  370.         LD      BC,0FD77H
  371.         OUT     (C),A
  372.         RET
  373.  
  374. PTST_1: DI
  375.         SCF
  376.         RET
  377.  
  378. H_INIT
  379.         LD  BC,077H
  380.         LD  A,2
  381.         OUT (C),A
  382.         IM      1
  383.         DI
  384.         RCALL   PG_SET
  385.         LD BC,77H
  386.         LD A,6H ;!!!
  387.         OUT (C),A
  388.         RCALL    PG_SET
  389.  
  390.         LD      SP,SYS_SP
  391.         LD A,10H
  392.         OUT (C),A
  393.         LD A,6H ;!!!
  394.         LD BC,177H
  395.         OUT (C),A
  396.  
  397. PENTEVO_START
  398.           LD HL,DSK_TAB
  399.           LD DE,610H ;!!!
  400.           LD C,77H
  401.           LD  A,8
  402.           OUT (0FFH),A
  403. DSK_1:    LD  A,(HL)
  404.           INC HL
  405.           OUT (0FFH),A
  406.           LD  B,41H
  407.           OUT (C),D
  408.           OR  8
  409.           OUT (0FFH),A
  410.           LD  B,1
  411.           OUT (C),D
  412.           DEC E
  413.           JR  NZ,DSK_1
  414.  
  415.  
  416.           LD  BC,4177H
  417.           LD  A,6H ;!!!
  418.           OUT (C),A
  419.  
  420.           LD A,0FFH
  421.           OUT (0FFH),A
  422.                 JP ENTRY
  423.  
  424. ;          LD HL,0C000H
  425. ;          LD A,(HL)
  426. ;          CP 0C3H
  427. ;          JR NZ,_ENT
  428. ;          XOR A
  429. ;CH_LP:    ADD A,(HL)
  430. ;          ADC A,0
  431. ;          INC HL
  432. ;          BIT 7,H
  433. ;          JR  NZ,CH_LP
  434. ;          DEC A
  435. ;          JR  NZ,_ENT
  436. ;          LD  A,0AAH
  437. ;          DEC HL
  438. ;          CP  (HL)
  439. ;          JR  NZ,_ENT
  440. ;          CPL
  441. ;          DEC HL
  442. ;          CP  (HL)
  443. ;          JP  Z,0C000H
  444. ;_ENT:     JP  ENTRY
  445.  
  446. PG_SET:   LD HL,PAGE_D
  447.           LD DE,40H
  448. PAGE_L2:  LD BC,0FF7H
  449. PAGE_L1_  OUTI
  450.           LD A,B
  451.           ADD A,E
  452.           LD B,A
  453.           JR NC,PAGE_L1_
  454.           LD BC,7FFDH
  455.           LD A,D
  456.           XOR 10H
  457.           LD D,A
  458.           OUT (C),A
  459.           JR NZ,PAGE_L2
  460.           RET
  461.  
  462. PAGE_D          DB 0X7F,0X7B,0X7D,0X7C,0X00,0X07A,0X7D,0X60
  463.  
  464. DSK_TAB         DB 0F1H, 0E1H, 0D1H, 0C1H, 0C1H, 0B1H, 0A1H,  91H
  465.                 DB 041H, 021H, 031H, 011H, 001H, 001H, 0F1H, 0E1H
  466.