Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 16.08.2015 savelij
  3.  
  4.                 include ../../macros.a80
  5.                 include ../../global_vars.a80
  6.  
  7. COLOR1          EQU 0X0B
  8. COLOR2          EQU 0X22
  9.  
  10.                 ORG 0
  11. TEST_TXTMODE    DI
  12.                 LD SP,0X6000
  13.                 LD BC,0XFF77
  14.                 LD A,0XA3               ;SPECTRUM SCREEN
  15.                 OUT (C),A
  16.                 XOR A
  17.                 CALL SET_7FFD
  18.                 LD HL,0X4000
  19.                 LD DE,0X4001
  20.                 LD BC,0X1800
  21.                 LD (HL),L
  22.                 LDIR
  23.                 LD D,H
  24.                 LD E,L
  25.                 INC DE
  26.                 LD BC,0X300
  27.                 LD (HL),0X39
  28.                 LDIR
  29.                 LD A,1
  30.                 OUT (0XFE),A
  31.                 LD DE,0X4808            ;АДРЕС ПЕЧАТИ НА ЭКРАНЕ
  32.                 LD HL,TEXT_SPMODE
  33.                 CALL PRINT
  34.                 LD DE,0X48E2
  35.                 LD HL,PRESS_SPACE
  36.                 CALL PRINT
  37.                 CALL WAIT_KEYS
  38.                 LD BC,0XFF77
  39.                 LD A,0XA6               ;TEXTMODE SCREEN
  40.                 OUT (C),A
  41.                 LD A,5
  42.                 OUT (0XFE),A
  43.                 LD A,0X27
  44.                 CALL CLEAR_TXTSCR
  45.                 LD DE,0X1006
  46.                 LD HL,TEXT_TXTMODE
  47.                 LD C,COLOR1
  48.                 CALL PRTT_MSG
  49.                 LD DE,0X2010
  50.                 LD HL,PRESS_SPACE
  51.                 LD C,COLOR2
  52.                 CALL PRTT_MSG
  53.                 CALL WAIT_KEYS
  54.                 JP TEST_TXTMODE
  55.  
  56. PRTT_MSG        LD A,(HL)
  57.                 INC HL
  58.                 AND A
  59.                 RET Z
  60. ;D-X E-Y C-COLOR
  61.                 PUSH DE
  62.                 PUSH HL
  63.                 PUSH AF
  64.                 LD L,E
  65.                 LD A,D
  66.                 LD H,0
  67.                 LD D,H
  68.                 ADD HL,HL
  69.                 ADD HL,HL
  70.                 ADD HL,HL
  71.                 ADD HL,HL
  72.                 ADD HL,HL
  73.                 ADD HL,HL
  74.                 LD E,A
  75.                 SRL E
  76.                 ADD HL,DE
  77.                 AND 1
  78.                 RRCA
  79.                 RRCA
  80.                 RRCA
  81.                 OR 0XC1
  82.                 LD D,A
  83.                 LD E,0XC0
  84.                 ADD HL,DE
  85.                 POP AF
  86.                 LD (HL),A
  87.                 LD A,0X0B
  88.                 CALL SET_7FFD
  89.                 LD A,H
  90.                 XOR 0X20
  91.                 LD H,A
  92.                 LD A,D
  93.                 AND 0X20
  94.                 RLCA
  95.                 RLCA
  96.                 RLCA
  97.                 ADD A,L
  98.                 LD L,A
  99.                 LD (HL),C
  100.                 LD A,0X0F
  101.                 CALL SET_7FFD
  102.                 POP HL
  103.                 POP DE
  104.                 INC D
  105.                 JR PRTT_MSG
  106.  
  107. WAIT_KEYS       LD A,0X7F
  108.                 IN A,(0XFE)
  109.                 RRA
  110.                 JR C,WAIT_KEYS
  111. WAIT_KEY1       XOR A
  112.                 IN A,(0XFE)
  113.                 CPL
  114.                 AND 0X1F
  115.                 JR NZ,WAIT_KEY1
  116.                 RET
  117.                
  118. PRINT           LD A,(HL)
  119.                 INC HL
  120.                 AND A
  121.                 RET Z
  122.                 PUSH HL
  123.                 PUSH DE
  124.                 PUSH DE
  125.                 LD L,A
  126.                 LD H,0
  127.                 LD DE,CHARS-0X100
  128.                 ADD HL,HL
  129.                 ADD HL,HL
  130.                 ADD HL,HL
  131.                 ADD HL,DE
  132.                 POP DE
  133.                 REPT 8
  134.                 LD A,(HL)
  135.                 LD (DE),A
  136.                 INC HL
  137.                 INC D
  138.                 ENDM
  139.                 POP DE
  140.                 POP HL
  141.                 INC E
  142.                 JR PRINT
  143.  
  144. CLEAR_TXTSCR    PUSH AF
  145.                 LD A,0X0F
  146.                 CALL SET_7FFD
  147.                 LD HL,0XC1C0
  148.                 LD A," "
  149.                 CALL CLS_TXTSCR
  150.                 LD HL,0XE1C0
  151.                 CALL CLS_TXTSCR
  152.                 LD A,0X0B
  153.                 CALL SET_7FFD
  154.                 LD HL,0XC1C0
  155.                 POP AF
  156.                 CALL CLS_TXTSCR
  157.                 LD HL,0XE1C0
  158.                 CALL CLS_TXTSCR
  159.                 LD A,0X0F
  160. SET_7FFD        PUSH BC
  161.                 LD BC,0X7FFD
  162.                 OUT (C),A
  163.                 POP BC
  164.                 RET
  165.  
  166. CLS_TXTSCR      LD D,H
  167.                 LD E,L
  168.                 LD BC,0X63F
  169.                 LD (HL),A
  170.                 INC DE
  171.                 LDIR
  172.                 RET
  173.  
  174. TEXT_SPMODE     DB "SPECTRUM SCREEN MODE",0
  175. TEXT_TXTMODE    DB "TEXT SCREEN MODE",0
  176. PRESS_SPACE     DB "PRESS SPACE FOR CONTINUE",0
  177.  
  178. CHARS           binclude ../../page3/source/shr_3d00.bin
  179. TXT_CHARS       binclude ../../page5/source/8x8_ar.fnt
  180.  
  181.    ; Fill rest of rom with 0XFF
  182.                 DUPL 0X3D2F-$,0XFF
  183.                 DB 0X00,0XC9
  184.    
  185.    ; Fill rest of rom with 0XFF
  186.                 DUPL 0X4000-$,0XFF
  187.