...
This commit is contained in:
parent
b3de0bb07b
commit
5791d4e591
@ -1 +1 @@
|
|||||||
Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1
|
Subproject commit b541d4221846090878c1de0138977e28139f7d14
|
||||||
@ -912,7 +912,6 @@ init_rom_address EQU #8200 ;!HARDCODE
|
|||||||
;**************************************
|
;**************************************
|
||||||
;
|
;
|
||||||
MODULE Prepare_For_Setup
|
MODULE Prepare_For_Setup
|
||||||
|
|
||||||
Set_ALL_Mode: LD A,#FF
|
Set_ALL_Mode: LD A,#FF
|
||||||
LD BC,Port_All_Mode
|
LD BC,Port_All_Mode
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
@ -929,6 +928,9 @@ Setup_to_RAM: LD HL,Setup_Starter.Start
|
|||||||
LDIR
|
LDIR
|
||||||
; á⥪ ª« ¤ñâáï ¤à¥á ¢®§¢à â ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï § ¤
|
; á⥪ ª« ¤ñâáï ¤à¥á ¢®§¢à â ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï § ¤
|
||||||
CALL Setup_Starter.Exec ; #C000
|
CALL Setup_Starter.Exec ; #C000
|
||||||
|
;JP PrepareToZX
|
||||||
|
ENDMODULE
|
||||||
|
;
|
||||||
PrepareToZX: ;CALL init_zx_roms
|
PrepareToZX: ;CALL init_zx_roms
|
||||||
; Setup HDD drives for ZX Spectrum mode
|
; Setup HDD drives for ZX Spectrum mode
|
||||||
DI
|
DI
|
||||||
@ -960,8 +962,7 @@ PrepareToZX: ;CALL init_zx_roms
|
|||||||
CP #10
|
CP #10
|
||||||
JR C,.loop
|
JR C,.loop
|
||||||
; ¢ë室 ¢ ०¨¬ zx spectrum
|
; ¢ë室 ¢ ०¨¬ zx spectrum
|
||||||
.start_zx: JP ZX_SPECTRUM_MODE
|
.start_zx: JP GOTO_SPEC.ZX_MODE
|
||||||
ENDMODULE
|
|
||||||
;***********************************
|
;***********************************
|
||||||
; ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢
|
; ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢
|
||||||
PORTS_INIT:
|
PORTS_INIT:
|
||||||
@ -1118,15 +1119,14 @@ PORTS_INIT:
|
|||||||
INCLUDE 'FUNC_CMOS.ASM'
|
INCLUDE 'FUNC_CMOS.ASM'
|
||||||
INCLUDE 'BIOS_FUNC.ASM'
|
INCLUDE 'BIOS_FUNC.ASM'
|
||||||
INCLUDE 'FUNC_SERVICE.asm'
|
INCLUDE 'FUNC_SERVICE.asm'
|
||||||
|
; INCLUDE 'EXP_SCR.ASZ' LP_SCR_MNU
|
||||||
INCLUDE 'FLEX.asm'
|
INCLUDE 'FUNC_SCREEN.ASM'
|
||||||
; INCLUDE 'EXP_SCR.ASZ'
|
|
||||||
INCLUDE 'FUNC_PIC.ASM'
|
|
||||||
INCLUDE 'FUNC_RAM_ROM_DRV.ASM'
|
INCLUDE 'FUNC_RAM_ROM_DRV.ASM'
|
||||||
INCLUDE 'FUNC_SYS.ASM'
|
INCLUDE 'FUNC_SYS.ASM'
|
||||||
INCLUDE 'FUNC_FOR_TRDOS.ASM'
|
INCLUDE 'FUNC_FOR_TRDOS.ASM'
|
||||||
INCLUDE 'FUNC_5x.asm'
|
INCLUDE 'FUNC_5x.asm'
|
||||||
INCLUDE 'FUNC_LOW_PRINT.ASM'
|
INCLUDE 'FUNC_LOW_PRINT.ASM'
|
||||||
|
INCLUDE 'FUNC_ZX.ASM'
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
@ -1152,225 +1152,9 @@ ZG_ADDRESS: INCLUDE 'FONT.ASM'
|
|||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;
|
|
||||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
|
||||||
|
|
||||||
/*
|
|
||||||
;
|
|
||||||
;------------------------[copy zx-roms to zx-pages]---------------------;
|
|
||||||
; SLOT0 - ROM 8, sys_port - on.
|
|
||||||
; RAM SLOT0 - page 0
|
|
||||||
; ¤«ï ०¨¬ zx spectrum
|
|
||||||
; ‚›<E2809A>Ž‹<C5BD>Ÿ…’‘Ÿ ˆ‡ އ“
|
|
||||||
; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
|
||||||
init_zx_roms:
|
|
||||||
DISP Reset_Handler.init_rom_address
|
|
||||||
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
|
|
||||||
DI
|
|
||||||
LD A,SYS_PORT.EXTENSION
|
|
||||||
OUT (SYS_PORT.ROM),A
|
|
||||||
INC A ;!HARDCODE LD A,2
|
|
||||||
LD B,3 ; zx-rom number of pages
|
|
||||||
;
|
|
||||||
.loop: EXX
|
|
||||||
;
|
|
||||||
out (ROM.SLOT0),a
|
|
||||||
or %0100'0000 ; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
|
||||||
out (SLOT3),a
|
|
||||||
and %1011'1111 ; !HARDCODE ®¬¥à áâà ¨æ ¤«ï í¬ã«ïâ®à <20>‡“
|
|
||||||
|
|
||||||
LD HL,0
|
|
||||||
LD DE,#C000
|
|
||||||
LD BC,#4000
|
|
||||||
LDIR
|
|
||||||
|
|
||||||
INC A
|
|
||||||
EXX
|
|
||||||
DJNZ .loop
|
|
||||||
|
|
||||||
xor a
|
|
||||||
out (ROM.SLOT0),a
|
|
||||||
OUT (SYS_PORT.ROM),A
|
|
||||||
EX AF,AF'
|
|
||||||
out (SLOT3),a
|
|
||||||
|
|
||||||
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
|
|
||||||
LD A,ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
|
|
||||||
LD B,#42 ;!HARDCODE page
|
|
||||||
CALL SET_PORTS
|
|
||||||
;
|
|
||||||
|
|
||||||
LD A,ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
|
|
||||||
LD B,#43 ;!HARDCODE page
|
|
||||||
CALL SET_PORTS
|
|
||||||
;
|
|
||||||
|
|
||||||
LD A,ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
|
|
||||||
LD B,#44 ;!HARDCODE page
|
|
||||||
CALL SET_PORTS
|
|
||||||
;
|
|
||||||
|
|
||||||
; í⨠áâà ¨æë ¯®ª ¥ ¨á¯®«ì§ãîâáï
|
|
||||||
LD A,ACEX.vROM.BIOS ; ROM-ID - BIOS
|
|
||||||
;LD B,#45 ;!HARDCODE page
|
|
||||||
LD B,#41
|
|
||||||
CALL SET_PORTS
|
|
||||||
;
|
|
||||||
LD A,ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
|
|
||||||
;LD B,#46 ;!HARDCODE page
|
|
||||||
LD B,#41
|
|
||||||
CALL SET_PORTS
|
|
||||||
;
|
|
||||||
LD A,ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
|
|
||||||
;LD B,#47 ;!HARDCODE page
|
|
||||||
LD B,#41
|
|
||||||
JP SET_PORTS
|
|
||||||
; ¬®¦® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ¨æë ¯®àâë #E4..#E7
|
|
||||||
|
|
||||||
ENT
|
|
||||||
.length EQU $-init_zx_roms
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
;*/
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
;!TODO § ¤¥©á⢮¢ âì
|
|
||||||
GOTO_SPEC:
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,B
|
|
||||||
LD (SYS_PAGE.CONFIG_DE+1),A
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
;NO_SETUP_2:
|
|
||||||
; CP #FC
|
|
||||||
; JR Z,SPECTRUM_0 ; Ю䍣ãà æ¨ï AY
|
|
||||||
|
|
||||||
;NO_SETUP_1:
|
|
||||||
;!TODO ᤥ« âì ªâ¨¢ æ¨î ¢¨â ¤«ï ¯ à ¬¥âà ¨§ Setup
|
|
||||||
ZX_SPECTRUM_MODE:
|
|
||||||
LD A,#FE ; !HARDCODE ᤥ« âì ç¥à¥§ ¬¥âªã ACC-off Spectrum-MODE
|
|
||||||
LD BC,Port_All_Mode
|
|
||||||
OUT (C),A
|
|
||||||
|
|
||||||
;SND_TEST_RET:
|
|
||||||
LD SP,#BFFF
|
|
||||||
|
|
||||||
CALL FN_SYNC.INT_PENT
|
|
||||||
CALL SET_PAL_ZX
|
|
||||||
|
|
||||||
LD E,0
|
|
||||||
CALL LP_SET_32
|
|
||||||
;
|
|
||||||
LD E,0
|
|
||||||
LD HL,#5104
|
|
||||||
CALL LP_SET_32.X
|
|
||||||
|
|
||||||
; ????? ¬®¦® ¨á¯®«ì§®¢ âì ª®£¤ -¨¡ã¤ì ª ª-¨¡ã¤ì
|
|
||||||
; LD D,#35
|
|
||||||
; CALL CMOS_RD
|
|
||||||
; BIT 0,A
|
|
||||||
; PUSH AF
|
|
||||||
; CALL Z,SPRINTER_1
|
|
||||||
; POP AF
|
|
||||||
; PUSH AF
|
|
||||||
; CALL NZ,AY8910
|
|
||||||
; POP AF
|
|
||||||
|
|
||||||
SPECTRUM_0:
|
|
||||||
XOR A ; § ¤ ç 0, ०¨¬ 256 ª¨«®¡ ©â
|
|
||||||
SPECTRUM_TASK:
|
|
||||||
LD IX,BASIC_128
|
|
||||||
JP INIT_PAGES ; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬ ᯥªâàã¬
|
|
||||||
|
|
||||||
;start_basic:
|
|
||||||
BASIC_128:
|
|
||||||
LD SP,#C000
|
|
||||||
LD HL,RES128_PROG
|
|
||||||
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
|
||||||
LD BC,LEN_RES128
|
|
||||||
LDIR
|
|
||||||
DI
|
|
||||||
JP ZX_VARS.PRINTER_BUFFER
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
;>$< >$< >$< >$< >$< >$< [ <20>…<EFBFBD>…Œ…™€…Œ›… ‚ އ“ ] >$< >$< >$< >$< >$< >$< ;
|
;>$< >$< >$< >$< >$< >$< [ <20>…<EFBFBD>…Œ…™€…Œ›… ‚ އ“ ] >$< >$< >$< >$< >$< >$< ;
|
||||||
|
|
||||||
;--------[ <20>à®£à ¬¬ , à §¬¥é ¥¬ ï á #5B00 ¤«ï § ¯ã᪠Spectrum ]--------;
|
|
||||||
RES128_PROG:
|
|
||||||
DISP ZX_VARS.PRINTER_BUFFER ;#5B00
|
|
||||||
LD A,ROM.BIOS
|
|
||||||
OUT (SYS_PORT.RAM),A ; ‚®§¢à â ¢ 128k ROM
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD DE,(SYS_PAGE.CONFIG_DE)
|
|
||||||
XOR A
|
|
||||||
LD (SYS_PAGE.CONFIG_DE+1),A
|
|
||||||
OUT (C),B
|
|
||||||
|
|
||||||
LD BC,#1FFD
|
|
||||||
OUT (C),A ; Scorp ¯®àâ
|
|
||||||
LD B,#7F
|
|
||||||
OUT (C),A ; 128 ¯®àâ
|
|
||||||
|
|
||||||
LD A,E ; ãáâ ®¢ª ª®ä¨£ãà æ¨¨ ¨ ०¨¬ TURBO
|
|
||||||
OUT (SYS_PORT.RAM),A ; CONFIG_SET
|
|
||||||
|
|
||||||
INC D
|
|
||||||
DEC D
|
|
||||||
; 0 ‚•Ž„ ‚ BASIC-128
|
|
||||||
JP Z,0
|
|
||||||
; 1 ‚•Ž„ ‚ BASIC-48
|
|
||||||
LD A,#10
|
|
||||||
OUT (C),A
|
|
||||||
DEC D
|
|
||||||
JP Z,0
|
|
||||||
; 2 ‚•Ž„ ‚ TR-DOS
|
|
||||||
LD HL,0
|
|
||||||
PUSH HL
|
|
||||||
DEC D
|
|
||||||
JP Z,#3D29
|
|
||||||
; 3 ‚•Ž„ ‚ EXPANSION
|
|
||||||
;!TODO ¯®ª ¥ à ¡®â ¥â. Page #45, BIOS (ZX_EXP) #E0
|
|
||||||
XOR A
|
|
||||||
OUT (C),A
|
|
||||||
LD A,#02
|
|
||||||
LD B,#1F
|
|
||||||
OUT (C),A
|
|
||||||
DEC D
|
|
||||||
JP Z,0
|
|
||||||
;
|
|
||||||
XOR A
|
|
||||||
OUT (C),A
|
|
||||||
LD A,#30
|
|
||||||
LD B,#7F
|
|
||||||
OUT (C),A
|
|
||||||
;!TEST
|
|
||||||
LD A,CNF_PORT.PENT_RESET + CNF_PORT.SCORP_RESET
|
|
||||||
OUT (CNF_PORT.OFF),A
|
|
||||||
;
|
|
||||||
DEC D
|
|
||||||
; 4 ‚•Ž„ ‚ TR-DOS á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
|
||||||
JP Z,#3D29
|
|
||||||
; 5 ‚•Ž„ ‚ BASIC-48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
|
||||||
JP 0
|
|
||||||
ENT
|
|
||||||
LEN_RES128 EQU $-RES128_PROG
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
|
|
||||||
;-------------------------------[ #FFE0 ]-------------------------------;
|
;-------------------------------[ #FFE0 ]-------------------------------;
|
||||||
; ¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥®© ¢ #40 áâà ¨æ¥,
|
; ¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥®© ¢ #40 áâà ¨æ¥,
|
||||||
; á ¤à¥á RESTARTS, ¯¥à¥å¢ âë¢ ¥â RESET
|
; á ¤à¥á RESTARTS, ¯¥à¥å¢ âë¢ ¥â RESET
|
||||||
@ -1435,66 +1219,6 @@ Exec:
|
|||||||
Length EQU $-Setup_Starter.Start
|
Length EQU $-Setup_Starter.Start
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
;---------------------[ ‡€ƒ‹“˜Šˆ „‹Ÿ #41 ‘’<E28098>€<EFBFBD>ˆ–›]----------------------;
|
|
||||||
;-------------[RST 08]
|
|
||||||
RAM_BIOS_PROG: ; for CALL BIOS in #41 page
|
|
||||||
DISP Spec_Page.to_bios
|
|
||||||
PUSH AF
|
|
||||||
LD A,ROM.BIOS
|
|
||||||
OUT (SYS_PORT.ROM),A
|
|
||||||
POP AF
|
|
||||||
RET
|
|
||||||
ENT
|
|
||||||
.Length EQU $-RAM_BIOS_PROG
|
|
||||||
;-------------------[]
|
|
||||||
;
|
|
||||||
;-------------[RST 38]
|
|
||||||
PROG_NO_ROM:
|
|
||||||
DISP Spec_Page.no_zx_rom
|
|
||||||
DI
|
|
||||||
;
|
|
||||||
LD A,#FF
|
|
||||||
OUT (SLOT3),A
|
|
||||||
OUT (SLOT2),A
|
|
||||||
OUT (SLOT1),A
|
|
||||||
;
|
|
||||||
LD SP,#BF00
|
|
||||||
;
|
|
||||||
LD E,0
|
|
||||||
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
|
|
||||||
RST ToBIOS
|
|
||||||
;
|
|
||||||
LD DE,0
|
|
||||||
LD HL,#2050
|
|
||||||
LD C,BIOS.LP_CLS_WIN
|
|
||||||
RST ToBIOS
|
|
||||||
; set scr-2
|
|
||||||
LD A,1
|
|
||||||
OUT (SCREEN_SWITCH),A
|
|
||||||
;
|
|
||||||
LD HL,MESSAGE_NR
|
|
||||||
LD DE,#A000
|
|
||||||
LD BC,MESSAGE_NR.size
|
|
||||||
LD A,C
|
|
||||||
LDIR
|
|
||||||
;
|
|
||||||
LD HL,#A000
|
|
||||||
LD D,0 ; delimiter
|
|
||||||
LD E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED
|
|
||||||
LD B,A
|
|
||||||
LD C,BIOS.LP_PRINT_LINE3
|
|
||||||
RST ToBIOS
|
|
||||||
;
|
|
||||||
.loop: DI
|
|
||||||
HALT
|
|
||||||
JR .loop
|
|
||||||
;
|
|
||||||
MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET"
|
|
||||||
.size EQU $-MESSAGE_NR
|
|
||||||
ENT
|
|
||||||
PROG_NO_ROM.size EQU $-PROG_NO_ROM
|
|
||||||
;-------------------[]
|
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
|
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1,787 +0,0 @@
|
|||||||
|
|
||||||
SYCLES EQU 0
|
|
||||||
;START EQU 1
|
|
||||||
ST1 EQU 2
|
|
||||||
DPAL1 EQU 3
|
|
||||||
ST2 EQU 4
|
|
||||||
DPAL2 EQU 5
|
|
||||||
|
|
||||||
MACRO NEXT_LIN_H
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (RGADR),A
|
|
||||||
EX AF,AF'
|
|
||||||
ENDM
|
|
||||||
|
|
||||||
MACRO NEXT_LIN_HP
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (RGADR),A
|
|
||||||
JR NZ,.MD_NO_INC_H
|
|
||||||
inc l
|
|
||||||
.MD_NO_INC_H:
|
|
||||||
EX AF,AF'
|
|
||||||
ENDM
|
|
||||||
|
|
||||||
|
|
||||||
;*****************************************
|
|
||||||
;
|
|
||||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï
|
|
||||||
; ᯥªâà㬮¢áª®£® ०¨¬ ¨
|
|
||||||
; ¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£®
|
|
||||||
; íªà
|
|
||||||
;
|
|
||||||
; ‚®§¢à â ¯® IX
|
|
||||||
;
|
|
||||||
; !!! NO USE STACK !!!
|
|
||||||
;
|
|
||||||
;*****************************************
|
|
||||||
;!TODO
|
|
||||||
; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum
|
|
||||||
INIT_PAGES:
|
|
||||||
AND A
|
|
||||||
LD E,A
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,E
|
|
||||||
|
|
||||||
; BIT 7,A
|
|
||||||
; JR Z,SCORPION_256_MODE
|
|
||||||
; BIT 6,A
|
|
||||||
; JR Z,PENTAGON_128_MODE
|
|
||||||
;
|
|
||||||
;PENTAGON_48_MODE:
|
|
||||||
; AND 03CH
|
|
||||||
; OUT (SLOT0),A
|
|
||||||
; INC A
|
|
||||||
; OUT (SLOT1),A
|
|
||||||
; INC A
|
|
||||||
; OUT (SLOT2),A
|
|
||||||
; INC A
|
|
||||||
; LD D,A
|
|
||||||
; LD BC,1FFDH
|
|
||||||
; XOR A
|
|
||||||
; OUT (C),A
|
|
||||||
; LD B,7FH
|
|
||||||
; OUT (C),A
|
|
||||||
; LD A,D
|
|
||||||
; OUT (SLOT3),A
|
|
||||||
; JR INIT_VIDEO_REG
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; PENTAGON_128_MODE:
|
|
||||||
; LD D,8
|
|
||||||
; AND #38
|
|
||||||
; JR ALL_MODE
|
|
||||||
|
|
||||||
SCORPION_256_MODE:
|
|
||||||
LD D,16
|
|
||||||
AND #30 ; ¤® 4-å ᯥªâà㬮¢
|
|
||||||
|
|
||||||
ALL_MODE:
|
|
||||||
OUT (SLOT0),A
|
|
||||||
XOR 5
|
|
||||||
OUT (SLOT1),A
|
|
||||||
XOR 7
|
|
||||||
OUT (SLOT2),A
|
|
||||||
OR #0F
|
|
||||||
LD E,A
|
|
||||||
|
|
||||||
.loop: DEC D
|
|
||||||
|
|
||||||
LD A,D
|
|
||||||
RLCA
|
|
||||||
AND #10
|
|
||||||
LD BC,#1FFD
|
|
||||||
OUT (C),A
|
|
||||||
|
|
||||||
LD A,D
|
|
||||||
AND 7
|
|
||||||
OR #40
|
|
||||||
LD B,#7F
|
|
||||||
OUT (C),A
|
|
||||||
|
|
||||||
LD A,E
|
|
||||||
OUT (SLOT3),A
|
|
||||||
DEC E
|
|
||||||
|
|
||||||
DEC D
|
|
||||||
INC D
|
|
||||||
JR NZ,.loop
|
|
||||||
|
|
||||||
INIT_VIDEO_REG:
|
|
||||||
XOR A
|
|
||||||
OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥® ¤à¥á
|
|
||||||
; OUT (RGSCR),A ; ॣ¨áâà íªà
|
|
||||||
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
|
|
||||||
|
|
||||||
;!TEST
|
|
||||||
; Restore old Spectrum Screen
|
|
||||||
;; LD HL,#4000
|
|
||||||
;; LD DE,#4000
|
|
||||||
;; LD BC,#1B00
|
|
||||||
;; LDIR
|
|
||||||
|
|
||||||
; EX AF,AF'
|
|
||||||
; BIT 6,A
|
|
||||||
; JR NZ,NO_SCREEN_ALT
|
|
||||||
|
|
||||||
; EX AF,AF'
|
|
||||||
|
|
||||||
; LD A,7 ; á¥¤ì¬ ï íªà ï áâà ¨æ
|
|
||||||
; LD BC,#7FFD
|
|
||||||
; OUT (C),A
|
|
||||||
|
|
||||||
; Restore old Spectrum Screen 2
|
|
||||||
;; LD HL,#C000
|
|
||||||
;; LD DE,#C000
|
|
||||||
;; LD BC,#1B00
|
|
||||||
;; LDIR
|
|
||||||
|
|
||||||
; XOR A
|
|
||||||
; LD BC,#7FFD
|
|
||||||
; OUT (C),A
|
|
||||||
;
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
NO_SCREEN_ALT:
|
|
||||||
AND A
|
|
||||||
JP (IX)
|
|
||||||
|
|
||||||
;****************************************
|
|
||||||
; ‡ £à㧪 ०¨¬ íªà .
|
|
||||||
;****************************************
|
|
||||||
|
|
||||||
; CALL SINC_DEF
|
|
||||||
; CALL SET_PAL_ZX
|
|
||||||
; RET
|
|
||||||
|
|
||||||
;****************************************
|
|
||||||
|
|
||||||
;!TODO âãâ äãªæ¨ï
|
|
||||||
CL0 EQU 200
|
|
||||||
CL1 EQU 240
|
|
||||||
|
|
||||||
SET_PAL_IBM:
|
|
||||||
LD DE,#8000
|
|
||||||
JR SET_PAL_TXT
|
|
||||||
SET_PAL_ZX:
|
|
||||||
LD DE,0
|
|
||||||
SET_PAL_TXT:
|
|
||||||
PUSH IX
|
|
||||||
IN A,(RGADR)
|
|
||||||
PUSH AF
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
LD IX,#C3F0 ; !HARDCODE ¤à¥á ¯ «¨âàë?
|
|
||||||
.generate_loop:
|
|
||||||
CALL GENERATE_PAL1
|
|
||||||
LD A,E
|
|
||||||
OUT (RGADR),A
|
|
||||||
LD (IX),L ; R
|
|
||||||
LD (IX+1),B ; G
|
|
||||||
LD (IX+2),C ; B
|
|
||||||
LD (IX+3),H ; i ?
|
|
||||||
INC E
|
|
||||||
JR NZ,.generate_loop
|
|
||||||
;
|
|
||||||
LD BC,4
|
|
||||||
ADD IX,BC
|
|
||||||
INC D
|
|
||||||
LD A,D
|
|
||||||
AND 3
|
|
||||||
JR NZ,.generate_loop
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
|
||||||
POP AF
|
|
||||||
OUT (RGADR),A
|
|
||||||
POP IX
|
|
||||||
RET
|
|
||||||
|
|
||||||
; £¥¥à æ¨ï ᯥªâà㬮¢áª®© ¯ «¨âàë.
|
|
||||||
; ‚室: E - âਡãâ, D - ®¬¥à ¯ «¨âàë
|
|
||||||
; ‚›•Ž„: L - red, B - green, C - blue, H - intensity
|
|
||||||
GENERATE_PAL1: XOR A
|
|
||||||
LD C,A
|
|
||||||
LD B,A
|
|
||||||
LD L,A
|
|
||||||
BIT 7,D
|
|
||||||
JR NZ,GENERATE_IBM
|
|
||||||
BIT 1,D
|
|
||||||
JR NZ,.FLH
|
|
||||||
.NOF: BIT 0,D
|
|
||||||
JR Z,.PAPER
|
|
||||||
.INK: LD A,CL0
|
|
||||||
BIT 6,E
|
|
||||||
JR Z,.NOI1
|
|
||||||
LD A,CL1
|
|
||||||
.NOI1: BIT 0,E ; BLUE
|
|
||||||
JR Z,.NO1
|
|
||||||
LD C,A
|
|
||||||
.NO1: BIT 1,E ; RED
|
|
||||||
JR Z,.PP_NO2
|
|
||||||
LD L,A
|
|
||||||
.PP_NO2: BIT 2,E ; GREEN
|
|
||||||
JR Z,.PP_NO3
|
|
||||||
LD B,A
|
|
||||||
.PP_NO3: JR .PP_NO6
|
|
||||||
;
|
|
||||||
.FLH: BIT 7,E
|
|
||||||
JR Z,.NOF
|
|
||||||
BIT 0,D
|
|
||||||
JR Z,.INK
|
|
||||||
.PAPER: LD A,CL0
|
|
||||||
BIT 6,E
|
|
||||||
JR Z,.NOI2
|
|
||||||
LD A,CL1
|
|
||||||
.NOI2: BIT 3,E ; BLUE
|
|
||||||
JR Z,.PP_NO4
|
|
||||||
LD C,A
|
|
||||||
.PP_NO4: BIT 4,E ; RED
|
|
||||||
JR Z,.PP_NO5
|
|
||||||
LD L,A
|
|
||||||
.PP_NO5: BIT 5,E ; GREEN
|
|
||||||
JR Z,.PP_NO6
|
|
||||||
LD B,A
|
|
||||||
.PP_NO6: LD A,C
|
|
||||||
AND A
|
|
||||||
RRA
|
|
||||||
ADD A,L
|
|
||||||
RRA
|
|
||||||
ADD A,B
|
|
||||||
RRA
|
|
||||||
LD H,A ; B/W mode
|
|
||||||
RET
|
|
||||||
;****************************************
|
|
||||||
|
|
||||||
GENERATE_IBM:
|
|
||||||
BIT 7,E
|
|
||||||
JR Z,.NO_FLH
|
|
||||||
BIT 1,D
|
|
||||||
JR Z,.PAPER
|
|
||||||
.NO_FLH:
|
|
||||||
BIT 0,D
|
|
||||||
JR Z,.PAPER
|
|
||||||
.INK:
|
|
||||||
.NO_INTENS:
|
|
||||||
LD A,#A8
|
|
||||||
.INTENS:
|
|
||||||
BIT 0,E ; BLUE
|
|
||||||
JR Z,.PPI_NO4
|
|
||||||
LD C,A
|
|
||||||
.PPI_NO4:
|
|
||||||
BIT 2,E ; RED
|
|
||||||
JR Z,.PPI_NO5
|
|
||||||
LD L,A
|
|
||||||
.PPI_NO5:
|
|
||||||
BIT 1,E ; GREEN
|
|
||||||
JR Z,.PPI_NO6
|
|
||||||
LD B,A
|
|
||||||
.PPI_NO6:
|
|
||||||
LD A,E
|
|
||||||
AND #0F
|
|
||||||
CP 6
|
|
||||||
JR NZ,.no_correct
|
|
||||||
LD B,#54
|
|
||||||
.no_correct:
|
|
||||||
BIT 3,E
|
|
||||||
JR Z,GENERATE_PAL1.PP_NO6
|
|
||||||
|
|
||||||
LD A,#54
|
|
||||||
ADD A,C
|
|
||||||
LD C,A
|
|
||||||
LD A,#54
|
|
||||||
ADD A,B
|
|
||||||
LD B,A
|
|
||||||
LD A,#54
|
|
||||||
ADD A,L
|
|
||||||
LD L,A
|
|
||||||
JR GENERATE_PAL1.PP_NO6
|
|
||||||
.PAPER:
|
|
||||||
LD A,#A8
|
|
||||||
BIT 4,E ; BLUE
|
|
||||||
JR Z,.PPI_NO4X
|
|
||||||
LD C,A
|
|
||||||
.PPI_NO4X:
|
|
||||||
BIT 6,E ; RED
|
|
||||||
JR Z,.PPI_NO5X
|
|
||||||
LD L,A
|
|
||||||
.PPI_NO5X:
|
|
||||||
BIT 5,E ; GREEN
|
|
||||||
JR Z,.PPI_NO6X
|
|
||||||
LD B,A
|
|
||||||
.PPI_NO6X:
|
|
||||||
LD A,E
|
|
||||||
AND #70
|
|
||||||
CP #60
|
|
||||||
JR NZ,GENERATE_PAL1.PP_NO6
|
|
||||||
LD B,#54
|
|
||||||
JR GENERATE_PAL1.PP_NO6
|
|
||||||
;****************************************
|
|
||||||
|
|
||||||
;****************************************
|
|
||||||
;****************************************
|
|
||||||
|
|
||||||
; D - ®¬¥à £à ä¨ç¥áª®© ¯ «¨âàë
|
|
||||||
SET_PAL_GRAF:
|
|
||||||
PUSH IX
|
|
||||||
IN A,(RGADR)
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
|
|
||||||
LD IX,#C3E0
|
|
||||||
LD A,D
|
|
||||||
AND 3
|
|
||||||
ADD A,A
|
|
||||||
ADD A,A
|
|
||||||
LD E,A
|
|
||||||
LD D,0
|
|
||||||
ADD IX,DE
|
|
||||||
|
|
||||||
LD E,0
|
|
||||||
|
|
||||||
XOR A
|
|
||||||
LD B,A
|
|
||||||
LD C,A
|
|
||||||
LD L,A
|
|
||||||
LD H,A
|
|
||||||
|
|
||||||
SET_PAL_GR1:
|
|
||||||
LD A,E
|
|
||||||
OUT (RGADR),A
|
|
||||||
|
|
||||||
LD (IX),L
|
|
||||||
LD (IX+1),B
|
|
||||||
LD (IX+2),C
|
|
||||||
LD (IX+3),H
|
|
||||||
|
|
||||||
CALL GENERATE_PAL3
|
|
||||||
|
|
||||||
INC E
|
|
||||||
LD A,E
|
|
||||||
CP 40
|
|
||||||
JR NZ,SET_PAL_GR1
|
|
||||||
|
|
||||||
XOR A
|
|
||||||
LD B,A
|
|
||||||
LD C,A
|
|
||||||
LD L,A
|
|
||||||
LD H,A
|
|
||||||
|
|
||||||
SET_PAL_GR2:
|
|
||||||
LD A,E
|
|
||||||
OUT (RGADR),A
|
|
||||||
|
|
||||||
LD (IX),L
|
|
||||||
LD (IX+1),B
|
|
||||||
LD (IX+2),C
|
|
||||||
LD (IX+3),H
|
|
||||||
|
|
||||||
CALL GENERATE_PAL2
|
|
||||||
|
|
||||||
INC E
|
|
||||||
JR NZ,SET_PAL_GR2
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
|
||||||
POP AF
|
|
||||||
OUT (RGADR),A
|
|
||||||
POP IX
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
;;*********************************
|
|
||||||
;
|
|
||||||
|
|
||||||
GENERATE_PAL3: ; gray-scale
|
|
||||||
LD A,B
|
|
||||||
ADD A,6
|
|
||||||
LD B,A
|
|
||||||
LD C,A
|
|
||||||
LD L,A
|
|
||||||
|
|
||||||
LD A,C
|
|
||||||
AND A
|
|
||||||
RRA
|
|
||||||
ADD A,L
|
|
||||||
RRA
|
|
||||||
ADD A,B
|
|
||||||
RRA
|
|
||||||
LD H,A
|
|
||||||
|
|
||||||
RET
|
|
||||||
|
|
||||||
GENERATE_PAL2: ; C - BLUE; L - RED; B - GREEN; H - INTENSITY
|
|
||||||
LD A,C
|
|
||||||
ADD A,50
|
|
||||||
LD C,A
|
|
||||||
JR NC,GEN_PAL2_L1
|
|
||||||
LD C,0
|
|
||||||
LD A,L
|
|
||||||
ADD A,50
|
|
||||||
LD L,A
|
|
||||||
JR NC,GEN_PAL2_L1
|
|
||||||
LD L,0
|
|
||||||
LD A,B
|
|
||||||
ADD A,50
|
|
||||||
LD B,A
|
|
||||||
JR NC,GEN_PAL2_L1
|
|
||||||
LD B,0
|
|
||||||
|
|
||||||
GEN_PAL2_L1:
|
|
||||||
LD A,C
|
|
||||||
AND A
|
|
||||||
RR A
|
|
||||||
ADD A,L
|
|
||||||
RR A
|
|
||||||
ADD A,B
|
|
||||||
RR A
|
|
||||||
LD H,A
|
|
||||||
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
;;*****************************************
|
|
||||||
|
|
||||||
FN_SYNC:
|
|
||||||
BIT 7,a
|
|
||||||
JR Z,.old_mode
|
|
||||||
|
|
||||||
ld h,a
|
|
||||||
and #60 ; check reserved bits
|
|
||||||
jr nz,.error
|
|
||||||
|
|
||||||
bit 2,h ; Set V-Sinc?
|
|
||||||
jr nz,.set_v_sinc
|
|
||||||
|
|
||||||
bit 4,h ; Set Waits?
|
|
||||||
jr z,.error ; Error - no parameters
|
|
||||||
|
|
||||||
.set_waits:
|
|
||||||
ld a,h
|
|
||||||
and 8 ; check waits. Z - no waits, NZ - waits
|
|
||||||
ld h,#FF
|
|
||||||
jr z,1F
|
|
||||||
ld h,#FB
|
|
||||||
1:
|
|
||||||
ld bc,(Port_All_Mode)
|
|
||||||
in a,(C)
|
|
||||||
and h
|
|
||||||
out (C),a
|
|
||||||
RET
|
|
||||||
|
|
||||||
.set_v_sinc:
|
|
||||||
ld a,h
|
|
||||||
and 3
|
|
||||||
jr z,.SetDefLines
|
|
||||||
dec a
|
|
||||||
jr z,.SetCmosLines
|
|
||||||
dec a
|
|
||||||
jr z,.Set320Lines
|
|
||||||
; jr Set312Lines
|
|
||||||
|
|
||||||
.set312lines:
|
|
||||||
ld a,Port_VSYNC.SET_312L
|
|
||||||
out (Port_VSYNC),a
|
|
||||||
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
ld a,(SYS_PAGE.VSyncAndWaits)
|
|
||||||
and 2
|
|
||||||
ld (SYS_PAGE.VSyncAndWaits),a
|
|
||||||
OUT (C),B
|
|
||||||
|
|
||||||
.end_set_v_sinc:
|
|
||||||
bit 4,h
|
|
||||||
ret z
|
|
||||||
jr .set_waits
|
|
||||||
|
|
||||||
|
|
||||||
.Set320Lines:
|
|
||||||
ld a,Port_VSYNC.SET_320L
|
|
||||||
out (Port_VSYNC),a
|
|
||||||
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
ld a,(SYS_PAGE.VSyncAndWaits)
|
|
||||||
or 1
|
|
||||||
ld (SYS_PAGE.VSyncAndWaits),a
|
|
||||||
OUT (C),B
|
|
||||||
|
|
||||||
jr .end_set_v_sinc
|
|
||||||
|
|
||||||
.SetCmosLines:
|
|
||||||
LD D,CMOS_CELL.ScreenSET
|
|
||||||
CALL CMOS_RD
|
|
||||||
|
|
||||||
AND high CMOS_CELL.ScreenSET.Mask.Sinc ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
|
||||||
jr z,.SetDefLines
|
|
||||||
|
|
||||||
bit 6,a
|
|
||||||
jr z,.set312lines
|
|
||||||
|
|
||||||
jr .Set320Lines
|
|
||||||
|
|
||||||
.old_mode:
|
|
||||||
AND A
|
|
||||||
JR Z,.INT_DEF
|
|
||||||
DEC A
|
|
||||||
JR Z,.INT_SCORP
|
|
||||||
DEC A
|
|
||||||
JR Z,.INT_PENT
|
|
||||||
DEC A
|
|
||||||
JR Z,.INT_ORIG
|
|
||||||
DEC A
|
|
||||||
JR Z,.INT_CMOS_SINC
|
|
||||||
; [x] ª áâ®¬ë© íªà ¯® â ¡«¨æ¥ ¯®«ì§®¢ ⥫ï
|
|
||||||
DEC A
|
|
||||||
JR Z,.PROG_SCR
|
|
||||||
;
|
|
||||||
.error: SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
.SetDefLines:
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
ld a,(SYS_PAGE.VSyncAndWaits)
|
|
||||||
OUT (C),B
|
|
||||||
and 1
|
|
||||||
jr z,.set312lines
|
|
||||||
jr .Set320Lines
|
|
||||||
|
|
||||||
.INT_DEF:
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
LD DE,(SYS_PAGE.CONFIG_ALL)
|
|
||||||
OUT (C),B
|
|
||||||
|
|
||||||
CALL Test_CONFIG_ALL
|
|
||||||
jr nz,.INT_CMOS_SINC
|
|
||||||
jp (IX)
|
|
||||||
|
|
||||||
.INT_CMOS_SINC:
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
LD DE,(SYS_PAGE.CONFIG_ALL)
|
|
||||||
OUT (C),B
|
|
||||||
|
|
||||||
LD D,CMOS_CELL.ScreenSET
|
|
||||||
CALL CMOS_RD
|
|
||||||
|
|
||||||
AND high CMOS_CELL.ScreenSET.Mask.Int ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
|
||||||
JR NZ,.skiptest
|
|
||||||
|
|
||||||
CALL Test_CONFIG_ALL
|
|
||||||
JP (IX) ; default int (non CMOS)
|
|
||||||
|
|
||||||
.skiptest:
|
|
||||||
cp #10
|
|
||||||
jr z,.INT_SCORP ; scorpion int
|
|
||||||
|
|
||||||
cp #20
|
|
||||||
jr z,.INT_PENT ; pentagon int
|
|
||||||
|
|
||||||
; jr ORIG_SINC ; original int
|
|
||||||
|
|
||||||
.INT_ORIG:
|
|
||||||
LD IX,SCREEN_TABLES.ORIGINAL
|
|
||||||
JR .PROG_SCR
|
|
||||||
.INT_SCORP:
|
|
||||||
LD IX,SCREEN_TABLES.SCORPION
|
|
||||||
JR .PROG_SCR
|
|
||||||
.INT_PENT:
|
|
||||||
LD IX,SCREEN_TABLES.PENTAGON
|
|
||||||
; JR PROG_SCR
|
|
||||||
.PROG_SCR:
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (SYS_PAGE.COPY_SLOT3),A
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
LD (SYS_PAGE.COPY_RGADR),A
|
|
||||||
|
|
||||||
LD (SYS_PAGE.CONFIG_ALL),IX
|
|
||||||
XOR A
|
|
||||||
|
|
||||||
;----[START]-----------------------[? 1]
|
|
||||||
.loop_1:
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
LD HL,#C300
|
|
||||||
|
|
||||||
;----[START]------------------[v 2]-----
|
|
||||||
.loop_2:
|
|
||||||
LD C,(IX)
|
|
||||||
;----[START]-------------[v 3]----------
|
|
||||||
.loop_3:
|
|
||||||
; ¢§ïâì ¤à¥á ¤ ëå ¤«ï § ¯¨á¨ ¢ á«ã¦¥¡ãî ®¡« áâì íªà
|
|
||||||
LD E,(IX+1) ; take adress of line X
|
|
||||||
LD D,(IX+2)
|
|
||||||
;----[START]--------[v 4]---------------
|
|
||||||
.loop_4:
|
|
||||||
LD A,(DE) ; take counter in table 1, line X, column Y
|
|
||||||
INC DE
|
|
||||||
AND A
|
|
||||||
JR Z,.loop_4_exit ; exit if zero-counter
|
|
||||||
LD B,A
|
|
||||||
LD A,(DE)
|
|
||||||
INC DE
|
|
||||||
;----[START]---[v 5]--------------------
|
|
||||||
.loop_5:
|
|
||||||
LD (HL),A
|
|
||||||
INC L
|
|
||||||
LD (HL),0
|
|
||||||
INC L
|
|
||||||
LD (HL),0
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
|
|
||||||
LD (HL),0
|
|
||||||
DEC L
|
|
||||||
LD (HL),0
|
|
||||||
DEC L
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
|
|
||||||
DJNZ .loop_5
|
|
||||||
;--------------[^ 5]--------------------
|
|
||||||
JR .loop_4
|
|
||||||
;-------------------[^ 4]---------------
|
|
||||||
.loop_4_exit:
|
|
||||||
INC HL ; next line
|
|
||||||
INC HL
|
|
||||||
INC HL
|
|
||||||
INC HL
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
AND #80
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
DEC C
|
|
||||||
JR NZ,.loop_3
|
|
||||||
;------------------------[^ 3]----------
|
|
||||||
INC IX ; next counter
|
|
||||||
INC IX
|
|
||||||
INC IX
|
|
||||||
LD A,(IX)
|
|
||||||
AND A
|
|
||||||
JR NZ,.loop_2
|
|
||||||
;-----------------------------[^ 2]-----
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD IX,(SYS_PAGE.CONFIG_ALL)
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
ADD A,#80
|
|
||||||
JR NC,.loop_1
|
|
||||||
;----------------------------------[^ 1]
|
|
||||||
|
|
||||||
; Exit
|
|
||||||
LD A,(SYS_PAGE.COPY_RGADR)
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
LD A,(SYS_PAGE.COPY_SLOT3)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
.exit: OR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
;DE - ᮤ¥à¦¨¬®¥ CONFIG_ALL
|
|
||||||
Test_CONFIG_ALL:
|
|
||||||
LD HL,SCREEN_TABLES.SCORPION
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
ld IX,FN_SYNC.INT_SCORP
|
|
||||||
RET Z
|
|
||||||
|
|
||||||
LD HL,SCREEN_TABLES.ORIGINAL
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
ld IX,FN_SYNC.INT_ORIG
|
|
||||||
RET Z
|
|
||||||
|
|
||||||
LD HL,SCREEN_TABLES.PENTAGON
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
ld IX,FN_SYNC.INT_PENT
|
|
||||||
RET Z
|
|
||||||
and a
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
;--- Screen data table 1: counter1, data1 .. counterX, dataX
|
|
||||||
SCREEN_TABLES:
|
|
||||||
;
|
|
||||||
; | ç¨á«® | § 票ï |
|
|
||||||
; | áâப | ¢ |
|
|
||||||
; | /2 | áâப å |
|
|
||||||
.SCR: DB 41 , #F8
|
|
||||||
DB 3 , #FC
|
|
||||||
DB 4 , #FC
|
|
||||||
DB 7 , #FC
|
|
||||||
DB 9 , #F8
|
|
||||||
DB 0
|
|
||||||
|
|
||||||
;.SCR: DB 41,#F8, 3,#FC, 4,#FC, 7,#FC, 9,#F8, 0
|
|
||||||
.INT: DB 40,#FC, 2,#FD, 6,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.INT_SC: DB 41,#F8, 1,#FD, 6,#FC, 7,#FC, 9,#F8, 0
|
|
||||||
.BLN: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.SNC: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.RES: DB 41,#F8, 3,#FE, 4,#FE, 7,#FE, 9,#F8, 0
|
|
||||||
;---------------------------------------
|
|
||||||
|
|
||||||
;--- Screen data tables 2: counter1, data address1 .. counterX, data addressX
|
|
||||||
;
|
|
||||||
; | ª®«-¢® | § 票ï |
|
|
||||||
; | áâப | ¢ |
|
|
||||||
; | | áâப¥ |
|
|
||||||
.PENTAGON: DB 33 : DW .SCR
|
|
||||||
DB 1 : DW .INT ; DW .BLN
|
|
||||||
DB 3 : DW .SNC
|
|
||||||
DB 1 : DW .BLN
|
|
||||||
DB 1 : DW .SCR
|
|
||||||
DB 1 : DW .RES
|
|
||||||
DB 0 ; end
|
|
||||||
.SCORPION: DB 31 : DW .SCR
|
|
||||||
DB 1 : DW .INT_SC
|
|
||||||
DB 1 : DW .SCR
|
|
||||||
DB 1 : DW .SNC
|
|
||||||
DB 3 : DW .SNC
|
|
||||||
DB 1 : DW .BLN
|
|
||||||
DB 2 : DW .RES
|
|
||||||
DB 0 ; end
|
|
||||||
.ORIGINAL: DB 33 : DW .SCR
|
|
||||||
DB 1 : DW .SNC
|
|
||||||
DB 1 : DW .INT
|
|
||||||
DB 2 : DW .SNC
|
|
||||||
DB 1 : DW .BLN
|
|
||||||
DB 1 : DW .SCR
|
|
||||||
DB 1 : DW .RES
|
|
||||||
DB 0 ; end
|
|
||||||
;---------------------------------------
|
|
||||||
FLEX_END:
|
|
||||||
@ -819,46 +819,45 @@ LP_INI_40:
|
|||||||
;********************************************************
|
;********************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
;------------------------------------------------------------------[#80]
|
;------------------------------------------------------------------[#80]
|
||||||
LP_OPEN_S:
|
LP_OPEN_S: LD A,B
|
||||||
LD A,B
|
|
||||||
ADD A,A
|
ADD A,A
|
||||||
CP LP_SC_TAB.SIZE
|
CP LP_SC_TAB.SIZE
|
||||||
CCF
|
CCF
|
||||||
RET C
|
RET C
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,LP_SC_TAB
|
LD HL,LP_SC_TAB
|
||||||
|
;
|
||||||
ADD A,L
|
ADD A,L
|
||||||
LD L,A
|
LD L,A
|
||||||
LD A,H
|
JR NC,.no_inc
|
||||||
ADC A,0
|
INC H
|
||||||
LD H,A
|
; LD A,H
|
||||||
LD A,(HL)
|
; ADC A,0
|
||||||
|
; LD H,A
|
||||||
|
.no_inc: LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
LD H,(HL)
|
LD H,(HL)
|
||||||
LD L,A
|
LD L,A
|
||||||
EX (SP),HL
|
EX (SP),HL
|
||||||
RET
|
RET
|
||||||
LP_SC_TAB:
|
;
|
||||||
DW LP_SET_32
|
LP_SC_TAB: DW LP_SET_32 ; 0 - ᯥªâà㬮¢áª®¥ ®ª® 32x24
|
||||||
DW LP_SET_64
|
DW LP_SET_64 ; 1 - ⥪á⮢®¥ ®ª® 64x24
|
||||||
DW LP_SET_40
|
DW LP_SET_40 ; 2 - ⥪á⮢®¥ ®ª® 40x32
|
||||||
DW LP_SET_80
|
DW LP_SET_80 ; 3 - ⥪á⮢®¥ ®ª® 80x32
|
||||||
DW LP_SET_32.X
|
DW LP_SET_32.X ; 4 - ᯥªâà㬮¢áª®¥ ®ª®, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
DW LP_SET_64.X
|
DW LP_SET_64.X ; 5 - ⥪á⮢®¥ ®ª® 64x24, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
DW LP_SET_40.X
|
DW LP_SET_40.X ; 6 - ⥪á⮢®¥ ®ª® 40x32, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
DW LP_SET_80.X
|
DW LP_SET_80.X ; 7 - ⥪á⮢®¥ ®ª® 80x32, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
DW PIC_SET_S1
|
DW PIC_SET_S1 ; 8 - £à ä¨ç¥áª®¥ ®ª® 0, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
DW PIC_SET_S2
|
DW PIC_SET_S2 ; 9 - £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
; DW LP_SET_MNU
|
;DW LP_SET_MNU ; !TODO
|
||||||
.SIZE EQU $-LP_SC_TAB
|
.SIZE EQU $-LP_SC_TAB
|
||||||
|
|
||||||
;LP_SET_MNU: ; ?????
|
; !TODO
|
||||||
; SCF
|
; LP_SET_MNU:
|
||||||
; RET
|
|
||||||
; LD IX,LP_SCR_MNU
|
; LD IX,LP_SCR_MNU
|
||||||
; JP LP_SET_MODE
|
; JP LP_SET_MODE
|
||||||
|
|
||||||
@ -1032,7 +1031,6 @@ LP_SET_LOOP:
|
|||||||
CALL LP_SIZE
|
CALL LP_SIZE
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
WIN_CLOSE:
|
WIN_CLOSE:
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -5,13 +5,28 @@
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬ ¯ ¬ïâ¨.
|
; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬ ¯ ¬ïâ¨.
|
||||||
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
; ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM
|
||||||
EMM.GetMemSize:
|
EMM.GetMemSize: IN A,(SLOT1)
|
||||||
IN A,(SLOT1)
|
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000
|
XOR A
|
||||||
LD C,0
|
LD C,A
|
||||||
|
LD HL,SYS_PAGE.RAMD_FAT-#4000-#4000
|
||||||
|
;
|
||||||
|
.loop: DEC L
|
||||||
|
JR Z,.exit
|
||||||
|
CP (HL)
|
||||||
|
JR NZ,.loop
|
||||||
|
INC C
|
||||||
|
JP .loop
|
||||||
|
;
|
||||||
|
.exit: LD HL,#100 ;!HARDCODE max mem pages
|
||||||
|
LD A,B
|
||||||
|
LD B,0
|
||||||
|
OUT (SLOT1),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
/*
|
||||||
.loop: LD A,(HL)
|
.loop: LD A,(HL)
|
||||||
INC L
|
INC L
|
||||||
JR Z,.exit
|
JR Z,.exit
|
||||||
@ -24,6 +39,7 @@ EMM.GetMemSize:
|
|||||||
LD B,0
|
LD B,0
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
RET
|
RET
|
||||||
|
*/
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -124,53 +140,50 @@ RESERVED_PAGES:
|
|||||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||||
; CF - ¯à¨§ ª ®è¨¡ª¨
|
; CF - ¯à¨§ ª ®è¨¡ª¨
|
||||||
;EMM_FN2M:
|
;EMM_FN2M:
|
||||||
EMM.GetMem:
|
EMM.GetMem: PUSH BC
|
||||||
;PUSH DE
|
|
||||||
PUSH BC
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD C,B ; á®åà ¨âì ç¨á«® ã¦ëå ¡«®ª®¢
|
LD C,B ; á®åà ¨âì ç¨á«® ã¦ëå ¡«®ª®¢
|
||||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||||
; –¨ª« ¯à®¢¥àª¨ «¨ç¨ï ã¦ëå ¡«®ª®¢.
|
; –¨ª« ¯à®¢¥àª¨ «¨ç¨ï ã¦ëå ¡«®ª®¢.
|
||||||
|
XOR A
|
||||||
.loop: DEC L
|
.loop: DEC L
|
||||||
JR Z,.noRAM
|
JR Z,.noRAM
|
||||||
LD A,(HL)
|
; LD A,(HL)
|
||||||
AND A
|
; AND A
|
||||||
|
CP (HL)
|
||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
|
|
||||||
; Œ¥áâ® ¥áâì !
|
; Œ¥áâ® ¥áâì !
|
||||||
LD B,C ; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª
|
LD B,C ; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª
|
||||||
LD C,#FF ; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk
|
LD C,#FF ; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk
|
||||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
LD L,A ;low SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||||
|
; ‡ ¯®«¨âì RAMD_FAT
|
||||||
; ‡ ¯®«¨âì RAMD_FAT
|
; A = 0
|
||||||
.loop2: DEC L
|
.loop2: DEC L
|
||||||
LD A,(HL)
|
; LD A,(HL)
|
||||||
AND A
|
; AND A
|
||||||
|
CP (HL)
|
||||||
JR NZ,.loop2
|
JR NZ,.loop2
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
LD C,L
|
LD C,L
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
|
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||||
; L - 㪠§ â¥«ì æ¥¯®çª¨.
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,L
|
LD A,L
|
||||||
AND A
|
AND A
|
||||||
POP BC
|
POP BC
|
||||||
;POP DE
|
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
.noRAM: LD L,1 ; <20>…’ <20>€ŒŸ’ˆ
|
.noRAM: LD L,1 ; !HARDCODE bios errors <20>…’ <20>€ŒŸ’ˆ
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,L
|
LD A,L
|
||||||
SCF
|
SCF
|
||||||
POP BC
|
POP BC
|
||||||
;POP DE
|
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
@ -335,10 +348,12 @@ EMM.GetMemPageNext:
|
|||||||
AND A
|
AND A
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
|
|
||||||
IN A,(SLOT1)
|
IN A,(SLOT1)
|
||||||
LD H,A
|
LD H,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
|
|
||||||
LD A,H
|
LD A,H
|
||||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
@ -347,6 +362,7 @@ EMM.GetMemPageNext:
|
|||||||
AND A
|
AND A
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
|
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
@ -439,7 +455,7 @@ EMM.GetMemBlkPages:
|
|||||||
; º B - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å º\
|
; º B - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å º\
|
||||||
; º A - block RAM º\
|
; º A - block RAM º\
|
||||||
; º A' - ª®¬ ¤ ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk º\
|
; º A' - ª®¬ ¤ ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk º\
|
||||||
; º 0 - read, 255 - write, 70 - read ROM DISK º\
|
; º 0 - read, 255 - write, 70 - read ROM DISKº\
|
||||||
; º ** NOT USED TR-DOS VARS ** º\
|
; º ** NOT USED TR-DOS VARS ** º\
|
||||||
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
|
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\
|
||||||
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||||
@ -523,14 +539,14 @@ BLK_RD_WR:
|
|||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
JR .RAMD_LOOP_D
|
JP .RAMD_LOOP_D
|
||||||
|
|
||||||
.NOT_FOUR_BLK:
|
.NOT_FOUR_BLK:
|
||||||
LD A,E
|
LD A,E
|
||||||
.loop: SUB #40
|
.loop: SUB #40
|
||||||
JR C,.NOT_ONE_BLK
|
JR C,.NOT_ONE_BLK
|
||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
JR .loop
|
JP .loop
|
||||||
|
|
||||||
.NOT_ONE_BLK:
|
.NOT_ONE_BLK:
|
||||||
AND #3F
|
AND #3F
|
||||||
@ -552,7 +568,7 @@ BLK_RD_WR:
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
SET 7,D
|
SET 7,D
|
||||||
SET 6,D
|
SET 6,D
|
||||||
JR .BLK_CONT1
|
JP .BLK_CONT1
|
||||||
|
|
||||||
.BLK_PAGE1:
|
.BLK_PAGE1:
|
||||||
LD C,SLOT1
|
LD C,SLOT1
|
||||||
@ -582,8 +598,10 @@ BLK_RD_WR:
|
|||||||
EX DE,HL ; for READ
|
EX DE,HL ; for READ
|
||||||
.NO_EX_RW2:
|
.NO_EX_RW2:
|
||||||
EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
EX AF,AF' ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï
|
||||||
INC B ; B 㦥 㬥ì訫áï 1,
|
; A = 0
|
||||||
DEC B
|
;INC B ; B 㦥 㬥ì訫áï 1,
|
||||||
|
;DEC B
|
||||||
|
CP B
|
||||||
JP Z,.BLK_EXIT_1
|
JP Z,.BLK_EXIT_1
|
||||||
|
|
||||||
BIT 6,D
|
BIT 6,D
|
||||||
|
|||||||
@ -133,9 +133,9 @@ PIC_FN3:
|
|||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
|
|
||||||
BIT 0,B
|
BIT 0,B
|
||||||
LD BC,40H+04000H
|
LD BC,#40 + #4000
|
||||||
JR Z,PIC_FN3_NO_2ND
|
JR Z,PIC_FN3_NO_2ND
|
||||||
LD BC,40H+320+04000H
|
LD BC,#40 + 320 + #4000
|
||||||
PIC_FN3_NO_2ND:
|
PIC_FN3_NO_2ND:
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
|
|
||||||
@ -296,11 +296,11 @@ PIC_FN5: ;
|
|||||||
SET_PAL_INIT:
|
SET_PAL_INIT:
|
||||||
LD D,A
|
LD D,A
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,SET_PAL_GRAF
|
JP Z,SET_GRAPH_PALETTE
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,SET_PAL_ZX
|
JP Z,SET_TXT_PALETTE.ZX
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,SET_PAL_IBM
|
JP Z,SET_TXT_PALETTE.IBM
|
||||||
|
|
||||||
; LD IX,PAL_DAT1
|
; LD IX,PAL_DAT1
|
||||||
; JR Z,PIC_FN6_L1
|
; JR Z,PIC_FN6_L1
|
||||||
@ -471,6 +471,670 @@ PIC_FN14:
|
|||||||
PIC_FN15:
|
PIC_FN15:
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
;************************************
|
||||||
|
|
||||||
|
|
||||||
|
;************************************
|
||||||
|
; SYCLES EQU 0
|
||||||
|
; ;START EQU 1
|
||||||
|
; ST1 EQU 2
|
||||||
|
; DPAL1 EQU 3
|
||||||
|
; ST2 EQU 4
|
||||||
|
; DPAL2 EQU 5
|
||||||
|
|
||||||
|
; MACRO NEXT_LIN_H
|
||||||
|
; EX AF,AF'
|
||||||
|
; INC A
|
||||||
|
; OUT (RGADR),A
|
||||||
|
; EX AF,AF'
|
||||||
|
; ENDM
|
||||||
|
|
||||||
|
; MACRO NEXT_LIN_HP
|
||||||
|
; EX AF,AF'
|
||||||
|
; INC A
|
||||||
|
; OUT (RGADR),A
|
||||||
|
; JR NZ,.MD_NO_INC_H
|
||||||
|
; INC L
|
||||||
|
; .MD_NO_INC_H:
|
||||||
|
; EX AF,AF'
|
||||||
|
; ENDM
|
||||||
|
|
||||||
|
;****************************************
|
||||||
|
; ‡ £à㧪 ०¨¬ íªà .
|
||||||
|
;****************************************
|
||||||
|
|
||||||
|
; CALL SINC_DEF
|
||||||
|
; CALL SET_TXT_PALETTE.ZX
|
||||||
|
; RET
|
||||||
|
|
||||||
|
;****************************************
|
||||||
|
|
||||||
|
;!TODO âãâ äãªæ¨ï
|
||||||
|
CL0 EQU 200
|
||||||
|
CL1 EQU 240
|
||||||
|
|
||||||
|
|
||||||
|
SET_TXT_PALETTE:
|
||||||
|
.IBM: LD DE,#8000
|
||||||
|
JR .TXT
|
||||||
|
;
|
||||||
|
.ZX: LD DE,0
|
||||||
|
.TXT: PUSH IX
|
||||||
|
IN A,(RGADR)
|
||||||
|
PUSH AF
|
||||||
|
IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,#50
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
LD IX,#C3F0 ; !HARDCODE ¤à¥á ¯ «¨âàë?
|
||||||
|
.generate_loop:
|
||||||
|
CALL GENERATE_PAL1
|
||||||
|
LD A,E
|
||||||
|
OUT (RGADR),A
|
||||||
|
LD (IX),L ; R
|
||||||
|
LD (IX+1),B ; G
|
||||||
|
LD (IX+2),C ; B
|
||||||
|
LD (IX+3),H ; i ?
|
||||||
|
INC E
|
||||||
|
JR NZ,.generate_loop
|
||||||
|
;
|
||||||
|
LD BC,4
|
||||||
|
ADD IX,BC
|
||||||
|
INC D
|
||||||
|
LD A,D
|
||||||
|
AND 3
|
||||||
|
JR NZ,.generate_loop
|
||||||
|
;
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
POP AF
|
||||||
|
OUT (RGADR),A
|
||||||
|
POP IX
|
||||||
|
RET
|
||||||
|
|
||||||
|
; £¥¥à æ¨ï ᯥªâà㬮¢áª®© ¯ «¨âàë.
|
||||||
|
; ‚室: E - âਡãâ, D - ®¬¥à ¯ «¨âàë
|
||||||
|
; ‚›•Ž„: L - red, B - green, C - blue, H - intensity
|
||||||
|
GENERATE_PAL1: XOR A
|
||||||
|
LD C,A
|
||||||
|
LD B,A
|
||||||
|
LD L,A
|
||||||
|
BIT 7,D
|
||||||
|
JR NZ,GENERATE_IBM
|
||||||
|
BIT 1,D
|
||||||
|
JR NZ,.FLH
|
||||||
|
.NOF: BIT 0,D
|
||||||
|
JR Z,.PAPER
|
||||||
|
.INK: LD A,CL0
|
||||||
|
BIT 6,E
|
||||||
|
JR Z,.NOI1
|
||||||
|
LD A,CL1
|
||||||
|
.NOI1: BIT 0,E ; BLUE
|
||||||
|
JR Z,.NO1
|
||||||
|
LD C,A
|
||||||
|
.NO1: BIT 1,E ; RED
|
||||||
|
JR Z,.PP_NO2
|
||||||
|
LD L,A
|
||||||
|
.PP_NO2: BIT 2,E ; GREEN
|
||||||
|
JR Z,.PP_NO3
|
||||||
|
LD B,A
|
||||||
|
.PP_NO3: JR .PP_NO6
|
||||||
|
;
|
||||||
|
.FLH: BIT 7,E
|
||||||
|
JR Z,.NOF
|
||||||
|
BIT 0,D
|
||||||
|
JR Z,.INK
|
||||||
|
.PAPER: LD A,CL0
|
||||||
|
BIT 6,E
|
||||||
|
JR Z,.NOI2
|
||||||
|
LD A,CL1
|
||||||
|
.NOI2: BIT 3,E ; BLUE
|
||||||
|
JR Z,.PP_NO4
|
||||||
|
LD C,A
|
||||||
|
.PP_NO4: BIT 4,E ; RED
|
||||||
|
JR Z,.PP_NO5
|
||||||
|
LD L,A
|
||||||
|
.PP_NO5: BIT 5,E ; GREEN
|
||||||
|
JR Z,.PP_NO6
|
||||||
|
LD B,A
|
||||||
|
.PP_NO6: LD A,C
|
||||||
|
AND A
|
||||||
|
RRA
|
||||||
|
ADD A,L
|
||||||
|
RRA
|
||||||
|
ADD A,B
|
||||||
|
RRA
|
||||||
|
LD H,A ; B/W mode
|
||||||
|
RET
|
||||||
|
;****************************************
|
||||||
|
|
||||||
|
GENERATE_IBM:
|
||||||
|
BIT 7,E
|
||||||
|
JR Z,.NO_FLH
|
||||||
|
BIT 1,D
|
||||||
|
JR Z,.PAPER
|
||||||
|
.NO_FLH:
|
||||||
|
BIT 0,D
|
||||||
|
JR Z,.PAPER
|
||||||
|
.INK:
|
||||||
|
.NO_INTENS:
|
||||||
|
LD A,#A8
|
||||||
|
.INTENS:
|
||||||
|
BIT 0,E ; BLUE
|
||||||
|
JR Z,.PPI_NO4
|
||||||
|
LD C,A
|
||||||
|
.PPI_NO4:
|
||||||
|
BIT 2,E ; RED
|
||||||
|
JR Z,.PPI_NO5
|
||||||
|
LD L,A
|
||||||
|
.PPI_NO5:
|
||||||
|
BIT 1,E ; GREEN
|
||||||
|
JR Z,.PPI_NO6
|
||||||
|
LD B,A
|
||||||
|
.PPI_NO6:
|
||||||
|
LD A,E
|
||||||
|
AND #0F
|
||||||
|
CP 6
|
||||||
|
JR NZ,.no_correct
|
||||||
|
LD B,#54
|
||||||
|
.no_correct:
|
||||||
|
BIT 3,E
|
||||||
|
JR Z,GENERATE_PAL1.PP_NO6
|
||||||
|
|
||||||
|
LD A,#54
|
||||||
|
ADD A,C
|
||||||
|
LD C,A
|
||||||
|
LD A,#54
|
||||||
|
ADD A,B
|
||||||
|
LD B,A
|
||||||
|
LD A,#54
|
||||||
|
ADD A,L
|
||||||
|
LD L,A
|
||||||
|
JR GENERATE_PAL1.PP_NO6
|
||||||
|
.PAPER:
|
||||||
|
LD A,#A8
|
||||||
|
BIT 4,E ; BLUE
|
||||||
|
JR Z,.PPI_NO4X
|
||||||
|
LD C,A
|
||||||
|
.PPI_NO4X:
|
||||||
|
BIT 6,E ; RED
|
||||||
|
JR Z,.PPI_NO5X
|
||||||
|
LD L,A
|
||||||
|
.PPI_NO5X:
|
||||||
|
BIT 5,E ; GREEN
|
||||||
|
JR Z,.PPI_NO6X
|
||||||
|
LD B,A
|
||||||
|
.PPI_NO6X:
|
||||||
|
LD A,E
|
||||||
|
AND #70
|
||||||
|
CP #60
|
||||||
|
JR NZ,GENERATE_PAL1.PP_NO6
|
||||||
|
LD B,#54
|
||||||
|
JR GENERATE_PAL1.PP_NO6
|
||||||
|
;****************************************
|
||||||
|
|
||||||
|
;****************************************
|
||||||
|
;****************************************
|
||||||
|
|
||||||
|
; D - ®¬¥à £à ä¨ç¥áª®© ¯ «¨âàë
|
||||||
|
SET_GRAPH_PALETTE:
|
||||||
|
PUSH IX
|
||||||
|
IN A,(RGADR)
|
||||||
|
PUSH AF
|
||||||
|
|
||||||
|
IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,#50
|
||||||
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
|
||||||
|
LD IX,#C3E0
|
||||||
|
LD A,D
|
||||||
|
AND 3
|
||||||
|
ADD A,A
|
||||||
|
ADD A,A
|
||||||
|
LD E,A
|
||||||
|
LD D,0
|
||||||
|
ADD IX,DE
|
||||||
|
|
||||||
|
LD E,0
|
||||||
|
|
||||||
|
XOR A
|
||||||
|
LD B,A
|
||||||
|
LD C,A
|
||||||
|
LD L,A
|
||||||
|
LD H,A
|
||||||
|
|
||||||
|
SET_PAL_GR1:
|
||||||
|
LD A,E
|
||||||
|
OUT (RGADR),A
|
||||||
|
|
||||||
|
LD (IX),L
|
||||||
|
LD (IX+1),B
|
||||||
|
LD (IX+2),C
|
||||||
|
LD (IX+3),H
|
||||||
|
|
||||||
|
CALL GENERATE_PAL3
|
||||||
|
|
||||||
|
INC E
|
||||||
|
LD A,E
|
||||||
|
CP 40
|
||||||
|
JR NZ,SET_PAL_GR1
|
||||||
|
|
||||||
|
XOR A
|
||||||
|
LD B,A
|
||||||
|
LD C,A
|
||||||
|
LD L,A
|
||||||
|
LD H,A
|
||||||
|
|
||||||
|
SET_PAL_GR2:
|
||||||
|
LD A,E
|
||||||
|
OUT (RGADR),A
|
||||||
|
|
||||||
|
LD (IX),L
|
||||||
|
LD (IX+1),B
|
||||||
|
LD (IX+2),C
|
||||||
|
LD (IX+3),H
|
||||||
|
|
||||||
|
CALL GENERATE_PAL2
|
||||||
|
|
||||||
|
INC E
|
||||||
|
JR NZ,SET_PAL_GR2
|
||||||
|
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
POP AF
|
||||||
|
OUT (RGADR),A
|
||||||
|
POP IX
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
;;*********************************
|
||||||
|
;
|
||||||
|
|
||||||
|
GENERATE_PAL3: ; gray-scale
|
||||||
|
LD A,B
|
||||||
|
ADD A,6
|
||||||
|
LD B,A
|
||||||
|
LD C,A
|
||||||
|
LD L,A
|
||||||
|
|
||||||
|
LD A,C
|
||||||
|
AND A
|
||||||
|
RRA
|
||||||
|
ADD A,L
|
||||||
|
RRA
|
||||||
|
ADD A,B
|
||||||
|
RRA
|
||||||
|
LD H,A
|
||||||
|
|
||||||
|
RET
|
||||||
|
|
||||||
|
GENERATE_PAL2: ; C - BLUE; L - RED; B - GREEN; H - INTENSITY
|
||||||
|
LD A,C
|
||||||
|
ADD A,50
|
||||||
|
LD C,A
|
||||||
|
JR NC,GEN_PAL2_L1
|
||||||
|
LD C,0
|
||||||
|
LD A,L
|
||||||
|
ADD A,50
|
||||||
|
LD L,A
|
||||||
|
JR NC,GEN_PAL2_L1
|
||||||
|
LD L,0
|
||||||
|
LD A,B
|
||||||
|
ADD A,50
|
||||||
|
LD B,A
|
||||||
|
JR NC,GEN_PAL2_L1
|
||||||
|
LD B,0
|
||||||
|
|
||||||
|
GEN_PAL2_L1:
|
||||||
|
LD A,C
|
||||||
|
AND A
|
||||||
|
RR A
|
||||||
|
ADD A,L
|
||||||
|
RR A
|
||||||
|
ADD A,B
|
||||||
|
RR A
|
||||||
|
LD H,A
|
||||||
|
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
;************************************
|
||||||
|
|
||||||
|
FN_SYNC:
|
||||||
|
BIT 7,a
|
||||||
|
JR Z,.old_mode
|
||||||
|
|
||||||
|
ld h,a
|
||||||
|
and #60 ; check reserved bits
|
||||||
|
jr nz,.error
|
||||||
|
|
||||||
|
bit 2,h ; Set V-Sinc?
|
||||||
|
jr nz,.set_v_sinc
|
||||||
|
|
||||||
|
bit 4,h ; Set Waits?
|
||||||
|
jr z,.error ; Error - no parameters
|
||||||
|
|
||||||
|
.set_waits:
|
||||||
|
ld a,h
|
||||||
|
and 8 ; check waits. Z - no waits, NZ - waits
|
||||||
|
ld h,#FF
|
||||||
|
jr z,1F
|
||||||
|
ld h,#FB
|
||||||
|
1:
|
||||||
|
ld bc,(Port_All_Mode)
|
||||||
|
in a,(C)
|
||||||
|
and h
|
||||||
|
out (C),a
|
||||||
|
RET
|
||||||
|
|
||||||
|
.set_v_sinc:
|
||||||
|
ld a,h
|
||||||
|
and 3
|
||||||
|
jr z,.SetDefLines
|
||||||
|
dec a
|
||||||
|
jr z,.SetCmosLines
|
||||||
|
dec a
|
||||||
|
jr z,.Set320Lines
|
||||||
|
; jr Set312Lines
|
||||||
|
|
||||||
|
.set312lines:
|
||||||
|
ld a,Port_VSYNC.SET_312L
|
||||||
|
out (Port_VSYNC),a
|
||||||
|
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (C),A
|
||||||
|
ld a,(SYS_PAGE.VSyncAndWaits)
|
||||||
|
and 2
|
||||||
|
ld (SYS_PAGE.VSyncAndWaits),a
|
||||||
|
OUT (C),B
|
||||||
|
|
||||||
|
.end_set_v_sinc:
|
||||||
|
bit 4,h
|
||||||
|
ret z
|
||||||
|
jr .set_waits
|
||||||
|
|
||||||
|
|
||||||
|
.Set320Lines:
|
||||||
|
ld a,Port_VSYNC.SET_320L
|
||||||
|
out (Port_VSYNC),a
|
||||||
|
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (C),A
|
||||||
|
ld a,(SYS_PAGE.VSyncAndWaits)
|
||||||
|
or 1
|
||||||
|
ld (SYS_PAGE.VSyncAndWaits),a
|
||||||
|
OUT (C),B
|
||||||
|
|
||||||
|
jr .end_set_v_sinc
|
||||||
|
|
||||||
|
.SetCmosLines:
|
||||||
|
LD D,CMOS_CELL.ScreenSET
|
||||||
|
CALL CMOS_RD
|
||||||
|
|
||||||
|
AND high CMOS_CELL.ScreenSET.Mask.Sinc ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
||||||
|
jr z,.SetDefLines
|
||||||
|
|
||||||
|
bit 6,a
|
||||||
|
jr z,.set312lines
|
||||||
|
|
||||||
|
jr .Set320Lines
|
||||||
|
|
||||||
|
.old_mode:
|
||||||
|
AND A
|
||||||
|
JR Z,.INT_DEF
|
||||||
|
DEC A
|
||||||
|
JR Z,.INT_SCORP
|
||||||
|
DEC A
|
||||||
|
JR Z,.INT_PENT
|
||||||
|
DEC A
|
||||||
|
JR Z,.INT_ORIG
|
||||||
|
DEC A
|
||||||
|
JR Z,.INT_CMOS_SINC
|
||||||
|
; [x] ª áâ®¬ë© íªà ¯® â ¡«¨æ¥ ¯®«ì§®¢ ⥫ï
|
||||||
|
DEC A
|
||||||
|
JR Z,.PROG_SCR
|
||||||
|
;
|
||||||
|
.error: SCF
|
||||||
|
RET
|
||||||
|
|
||||||
|
.SetDefLines:
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (C),A
|
||||||
|
ld a,(SYS_PAGE.VSyncAndWaits)
|
||||||
|
OUT (C),B
|
||||||
|
and 1
|
||||||
|
jr z,.set312lines
|
||||||
|
jr .Set320Lines
|
||||||
|
|
||||||
|
.INT_DEF:
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (C),A
|
||||||
|
LD DE,(SYS_PAGE.CONFIG_ALL)
|
||||||
|
OUT (C),B
|
||||||
|
|
||||||
|
CALL Test_CONFIG_ALL
|
||||||
|
jr nz,.INT_CMOS_SINC
|
||||||
|
jp (IX)
|
||||||
|
|
||||||
|
.INT_CMOS_SINC:
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (C),A
|
||||||
|
LD DE,(SYS_PAGE.CONFIG_ALL)
|
||||||
|
OUT (C),B
|
||||||
|
|
||||||
|
LD D,CMOS_CELL.ScreenSET
|
||||||
|
CALL CMOS_RD
|
||||||
|
|
||||||
|
AND high CMOS_CELL.ScreenSET.Mask.Int ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
||||||
|
JR NZ,.skiptest
|
||||||
|
|
||||||
|
CALL Test_CONFIG_ALL
|
||||||
|
JP (IX) ; default int (non CMOS)
|
||||||
|
|
||||||
|
.skiptest:
|
||||||
|
cp #10
|
||||||
|
jr z,.INT_SCORP ; scorpion int
|
||||||
|
|
||||||
|
cp #20
|
||||||
|
jr z,.INT_PENT ; pentagon int
|
||||||
|
|
||||||
|
; jr ORIG_SINC ; original int
|
||||||
|
|
||||||
|
.INT_ORIG:
|
||||||
|
LD IX,SCREEN_TABLES.ORIGINAL
|
||||||
|
JR .PROG_SCR
|
||||||
|
.INT_SCORP:
|
||||||
|
LD IX,SCREEN_TABLES.SCORPION
|
||||||
|
JR .PROG_SCR
|
||||||
|
.INT_PENT:
|
||||||
|
LD IX,SCREEN_TABLES.PENTAGON
|
||||||
|
; JR PROG_SCR
|
||||||
|
.PROG_SCR:
|
||||||
|
IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
EX AF,AF'
|
||||||
|
LD (SYS_PAGE.COPY_SLOT3),A
|
||||||
|
IN A,(PORT_Y)
|
||||||
|
LD (SYS_PAGE.COPY_RGADR),A
|
||||||
|
|
||||||
|
LD (SYS_PAGE.CONFIG_ALL),IX
|
||||||
|
XOR A
|
||||||
|
|
||||||
|
;----[START]-----------------------[? 1]
|
||||||
|
.loop_1:
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
EX AF,AF'
|
||||||
|
|
||||||
|
LD A,#50
|
||||||
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
LD HL,#C300
|
||||||
|
|
||||||
|
;----[START]------------------[v 2]-----
|
||||||
|
.loop_2:
|
||||||
|
LD C,(IX)
|
||||||
|
;----[START]-------------[v 3]----------
|
||||||
|
.loop_3:
|
||||||
|
; ¢§ïâì ¤à¥á ¤ ëå ¤«ï § ¯¨á¨ ¢ á«ã¦¥¡ãî ®¡« áâì íªà
|
||||||
|
LD E,(IX+1) ; take adress of line X
|
||||||
|
LD D,(IX+2)
|
||||||
|
;----[START]--------[v 4]---------------
|
||||||
|
.loop_4:
|
||||||
|
LD A,(DE) ; take counter in table 1, line X, column Y
|
||||||
|
INC DE
|
||||||
|
AND A
|
||||||
|
JR Z,.loop_4_exit ; exit if zero-counter
|
||||||
|
LD B,A
|
||||||
|
LD A,(DE)
|
||||||
|
INC DE
|
||||||
|
;----[START]---[v 5]--------------------
|
||||||
|
.loop_5:
|
||||||
|
LD (HL),A
|
||||||
|
INC L
|
||||||
|
LD (HL),0
|
||||||
|
INC L
|
||||||
|
LD (HL),0
|
||||||
|
|
||||||
|
EX AF,AF'
|
||||||
|
INC A
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
EX AF,AF'
|
||||||
|
|
||||||
|
LD (HL),0
|
||||||
|
DEC L
|
||||||
|
LD (HL),0
|
||||||
|
DEC L
|
||||||
|
LD (HL),A
|
||||||
|
|
||||||
|
EX AF,AF'
|
||||||
|
INC A
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
EX AF,AF'
|
||||||
|
|
||||||
|
DJNZ .loop_5
|
||||||
|
;--------------[^ 5]--------------------
|
||||||
|
JR .loop_4
|
||||||
|
;-------------------[^ 4]---------------
|
||||||
|
.loop_4_exit:
|
||||||
|
INC HL ; next line
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
INC HL
|
||||||
|
IN A,(PORT_Y)
|
||||||
|
AND #80
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
DEC C
|
||||||
|
JR NZ,.loop_3
|
||||||
|
;------------------------[^ 3]----------
|
||||||
|
INC IX ; next counter
|
||||||
|
INC IX
|
||||||
|
INC IX
|
||||||
|
LD A,(IX)
|
||||||
|
AND A
|
||||||
|
JR NZ,.loop_2
|
||||||
|
;-----------------------------[^ 2]-----
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD IX,(SYS_PAGE.CONFIG_ALL)
|
||||||
|
|
||||||
|
EX AF,AF'
|
||||||
|
ADD A,#80
|
||||||
|
JR NC,.loop_1
|
||||||
|
;----------------------------------[^ 1]
|
||||||
|
|
||||||
|
; Exit
|
||||||
|
LD A,(SYS_PAGE.COPY_RGADR)
|
||||||
|
OUT (PORT_Y),A
|
||||||
|
LD A,(SYS_PAGE.COPY_SLOT3)
|
||||||
|
OUT (SLOT3),A
|
||||||
|
.exit: OR A
|
||||||
|
RET
|
||||||
|
|
||||||
|
;DE - ᮤ¥à¦¨¬®¥ CONFIG_ALL
|
||||||
|
Test_CONFIG_ALL:
|
||||||
|
LD HL,SCREEN_TABLES.SCORPION
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
ld IX,FN_SYNC.INT_SCORP
|
||||||
|
RET Z
|
||||||
|
|
||||||
|
LD HL,SCREEN_TABLES.ORIGINAL
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
ld IX,FN_SYNC.INT_ORIG
|
||||||
|
RET Z
|
||||||
|
|
||||||
|
LD HL,SCREEN_TABLES.PENTAGON
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
ld IX,FN_SYNC.INT_PENT
|
||||||
|
RET Z
|
||||||
|
and a
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;--- Screen data table 1: counter1, data1 .. counterX, dataX
|
||||||
|
SCREEN_TABLES:
|
||||||
|
; | ç¨á«® | § 票ï |
|
||||||
|
; | áâப | ¢ |
|
||||||
|
; | /2 | áâப å |
|
||||||
|
.SCR: DB 41 , #F8
|
||||||
|
DB 3 , #FC
|
||||||
|
DB 4 , #FC
|
||||||
|
DB 7 , #FC
|
||||||
|
DB 9 , #F8
|
||||||
|
DB 0
|
||||||
|
|
||||||
|
;.SCR: DB 41,#F8, 3,#FC, 4,#FC, 7,#FC, 9,#F8, 0
|
||||||
|
.INT: DB 40,#FC, 2,#FD, 6,#FC, 7,#FC, 9,#FC, 0
|
||||||
|
.INT_SC: DB 41,#F8, 1,#FD, 6,#FC, 7,#FC, 9,#F8, 0
|
||||||
|
.BLN: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
||||||
|
.SNC: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
||||||
|
.RES: DB 41,#F8, 3,#FE, 4,#FE, 7,#FE, 9,#F8, 0
|
||||||
|
;---------------------------------------
|
||||||
|
|
||||||
|
;--- Screen data tables 2: counter1, data address1 .. counterX, data addressX
|
||||||
|
;
|
||||||
|
; | ª®«-¢® | § 票ï |
|
||||||
|
; | áâப | ¢ |
|
||||||
|
; | | áâப¥ |
|
||||||
|
.PENTAGON: DB 33 : DW .SCR
|
||||||
|
DB 1 : DW .INT ; DW .BLN
|
||||||
|
DB 3 : DW .SNC
|
||||||
|
DB 1 : DW .BLN
|
||||||
|
DB 1 : DW .SCR
|
||||||
|
DB 1 : DW .RES
|
||||||
|
DB 0 ; end
|
||||||
|
.SCORPION: DB 31 : DW .SCR
|
||||||
|
DB 1 : DW .INT_SC
|
||||||
|
DB 1 : DW .SCR
|
||||||
|
DB 1 : DW .SNC
|
||||||
|
DB 3 : DW .SNC
|
||||||
|
DB 1 : DW .BLN
|
||||||
|
DB 2 : DW .RES
|
||||||
|
DB 0 ; end
|
||||||
|
.ORIGINAL: DB 33 : DW .SCR
|
||||||
|
DB 1 : DW .SNC
|
||||||
|
DB 1 : DW .INT
|
||||||
|
DB 2 : DW .SNC
|
||||||
|
DB 1 : DW .BLN
|
||||||
|
DB 1 : DW .SCR
|
||||||
|
DB 1 : DW .RES
|
||||||
|
DB 0 ; end
|
||||||
|
;---------------------------------------
|
||||||
|
|
||||||
;************************************
|
;************************************
|
||||||
;
|
;
|
||||||
|
|||||||
380
src/bios/exp/FUNC_ZX.ASM
Normal file
380
src/bios/exp/FUNC_ZX.ASM
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
;
|
||||||
|
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||||
|
|
||||||
|
|
||||||
|
; [ ] free zx pages!
|
||||||
|
IF FREE_ZX_PAGES
|
||||||
|
;----------------[‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥ áâà ¨æ ᯥªâà㬠]-------------;
|
||||||
|
;¢å®¤: ॣ B b3..0:
|
||||||
|
; 0 - ¨¨â ¯ ¬ï⨠Pentagon 128
|
||||||
|
; 1 - ¨¨â ¯ ¬ï⨠Pentagon 512
|
||||||
|
; 2 - ¨¨â ¯ ¬ï⨠Scorpion 256
|
||||||
|
; ॣ B b7:
|
||||||
|
; ¢ë¤¥«¨âì/¢¥àãâì à ¬¡«®ª ¤«ï áâà ¨æ ZX-ROM à §¬¥à®¬ A áâà.
|
||||||
|
;¢ë室: CF = 0: A - ®¬¥à à ¬¡«®ª ¥á«¨ âॡ®¢ «áï
|
||||||
|
; CF = 1: A - ®¬¥à ®è¨¡ª¨
|
||||||
|
MANAGE_ZX_PAGES:
|
||||||
|
|
||||||
|
|
||||||
|
.GET_SCORP: IN A,(SLOT3)
|
||||||
|
PUSH AF
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||||
|
LD DE,SYS_PAGE.SHARED_BUFFER_256b
|
||||||
|
LD BC,SYS_PAGE.RAMD_FAT.Size
|
||||||
|
LDIR
|
||||||
|
DEC H
|
||||||
|
XOR A
|
||||||
|
; ‡ ¯®«¨âì RAMD_FAT
|
||||||
|
; A = 0
|
||||||
|
.loop2: DEC L
|
||||||
|
CP (HL)
|
||||||
|
JR NZ,.loop2
|
||||||
|
;
|
||||||
|
.check_barred_pages:
|
||||||
|
; ¯à®¢¥àª ¥à §à¥èñë¥ áâà ¨æë
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,L
|
||||||
|
CP RESET_PAGE
|
||||||
|
JR C,.good_page
|
||||||
|
JR NZ,.check_isa_page
|
||||||
|
DEC L
|
||||||
|
JR .good_page
|
||||||
|
.check_isa_page: ;
|
||||||
|
AND #F0
|
||||||
|
XOR #D0 ; áâà ¨æë ISA #D0..#DF
|
||||||
|
JR NZ,.good_page
|
||||||
|
LD L,#D0 - 1
|
||||||
|
.good_page: EX AF,AF'
|
||||||
|
;
|
||||||
|
LD (HL),C
|
||||||
|
LD C,L
|
||||||
|
DJNZ .loop2
|
||||||
|
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||||
|
;
|
||||||
|
POP AF
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
LD A,L
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
;!TODO § ¤¥©á⢮¢ âì
|
||||||
|
GOTO_SPEC: IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,B
|
||||||
|
LD (SYS_PAGE.CONFIG_DE+1),A
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
;NO_SETUP_2: CP #FC
|
||||||
|
; JR Z,SPECTRUM_0 ; Ю䍣ãà æ¨ï AY
|
||||||
|
|
||||||
|
;NO_SETUP_1:
|
||||||
|
;!TODO ᤥ« âì ªâ¨¢ æ¨î ¢¨â ¤«ï ¯ à ¬¥âà ¨§ Setup
|
||||||
|
.ZX_MODE: LD A,#FE ; !HARDCODE ᤥ« âì ç¥à¥§ ¬¥âªã ACC-off Spectrum-MODE
|
||||||
|
LD BC,Port_All_Mode
|
||||||
|
OUT (C),A
|
||||||
|
LD SP,#C000
|
||||||
|
;
|
||||||
|
CALL FN_SYNC.INT_PENT
|
||||||
|
CALL SET_TXT_PALETTE.ZX
|
||||||
|
;
|
||||||
|
LD E,0
|
||||||
|
CALL LP_SET_32
|
||||||
|
;
|
||||||
|
LD E,0
|
||||||
|
LD HL,#5104
|
||||||
|
CALL LP_SET_32.X
|
||||||
|
|
||||||
|
; ????? ¬®¦® ¨á¯®«ì§®¢ âì ª®£¤ -¨¡ã¤ì ª ª-¨¡ã¤ì
|
||||||
|
; LD D,#35
|
||||||
|
; CALL CMOS_RD
|
||||||
|
; BIT 0,A
|
||||||
|
; PUSH AF
|
||||||
|
; CALL Z,SPRINTER_1
|
||||||
|
; POP AF
|
||||||
|
; PUSH AF
|
||||||
|
; CALL NZ,AY8910
|
||||||
|
; POP AF
|
||||||
|
|
||||||
|
.TASK_0: XOR A ; § ¤ ç 0, ०¨¬ 256 ª¨«®¡ ©â
|
||||||
|
.START_TASK: LD IX,.BASIC_128
|
||||||
|
JP INIT_PAGES ; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬ ᯥªâàã¬
|
||||||
|
;
|
||||||
|
;start_basic:
|
||||||
|
.BASIC_128: LD SP,#C000
|
||||||
|
LD HL,RES128_PROG
|
||||||
|
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
||||||
|
LD BC,RES128_PROG.Size
|
||||||
|
LDIR
|
||||||
|
DI
|
||||||
|
JP ZX_VARS.PRINTER_BUFFER
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
;
|
||||||
|
;>$< >$< >$< >$< >$< >$< [ <20>…<EFBFBD>…Œ…™€…Œ€Ÿ ‚ އ“ ] >$< >$< >$< >$< >$< >$< ;
|
||||||
|
|
||||||
|
;--------[ <20>à®£à ¬¬ , à §¬¥é ¥¬ ï á #5B00 ¤«ï § ¯ã᪠Spectrum ]--------;
|
||||||
|
RES128_PROG:
|
||||||
|
DISP ZX_VARS.PRINTER_BUFFER ;#5B00
|
||||||
|
LD A,ROM.BIOS
|
||||||
|
OUT (SYS_PORT.RAM),A ; ‚®§¢à â ¢ 128k ROM
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD DE,(SYS_PAGE.CONFIG_DE)
|
||||||
|
XOR A
|
||||||
|
LD (SYS_PAGE.CONFIG_DE+1),A
|
||||||
|
OUT (C),B
|
||||||
|
|
||||||
|
LD BC,#1FFD
|
||||||
|
OUT (C),A ; Scorp ¯®àâ
|
||||||
|
LD B,#7F
|
||||||
|
OUT (C),A ; 128 ¯®àâ
|
||||||
|
|
||||||
|
LD A,E ; ãáâ ®¢ª ª®ä¨£ãà æ¨¨ ¨ ०¨¬ TURBO
|
||||||
|
OUT (SYS_PORT.RAM),A ; CONFIG_SET
|
||||||
|
|
||||||
|
INC D
|
||||||
|
DEC D
|
||||||
|
; 0 ‚•Ž„ ‚ BASIC-128
|
||||||
|
JP Z,0
|
||||||
|
; 1 ‚•Ž„ ‚ BASIC-48
|
||||||
|
LD A,#10
|
||||||
|
OUT (C),A
|
||||||
|
DEC D
|
||||||
|
JP Z,0
|
||||||
|
; 2 ‚•Ž„ ‚ TR-DOS
|
||||||
|
LD HL,0
|
||||||
|
PUSH HL
|
||||||
|
DEC D
|
||||||
|
JP Z,#3D29
|
||||||
|
; 3 ‚•Ž„ ‚ EXPANSION
|
||||||
|
;!TODO ¯®ª ¥ à ¡®â ¥â. Page #45, BIOS (ZX_EXP) #E0
|
||||||
|
XOR A
|
||||||
|
OUT (C),A
|
||||||
|
LD A,#02
|
||||||
|
LD B,#1F
|
||||||
|
OUT (C),A
|
||||||
|
DEC D
|
||||||
|
JP Z,0
|
||||||
|
;
|
||||||
|
XOR A
|
||||||
|
OUT (C),A
|
||||||
|
LD A,#30
|
||||||
|
LD B,#7F
|
||||||
|
OUT (C),A
|
||||||
|
;!TEST
|
||||||
|
LD A,CNF_PORT.PENT_RESET + CNF_PORT.SCORP_RESET
|
||||||
|
OUT (CNF_PORT.OFF),A
|
||||||
|
;
|
||||||
|
DEC D
|
||||||
|
; 4 ‚•Ž„ ‚ TR-DOS á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||||||
|
JP Z,#3D29
|
||||||
|
; 5 ‚•Ž„ ‚ BASIC-48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||||||
|
JP 0
|
||||||
|
ENT
|
||||||
|
.Size EQU $-RES128_PROG
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
;*****************************************
|
||||||
|
;
|
||||||
|
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï
|
||||||
|
; ᯥªâà㬮¢áª®£® ०¨¬ ¨
|
||||||
|
; ¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£®
|
||||||
|
; íªà
|
||||||
|
;
|
||||||
|
; ‚®§¢à â ¯® IX
|
||||||
|
;
|
||||||
|
; !!! NO USE STACK !!!
|
||||||
|
;
|
||||||
|
;*****************************************
|
||||||
|
;!TODO
|
||||||
|
; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum
|
||||||
|
INIT_PAGES:
|
||||||
|
AND A
|
||||||
|
LD E,A
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,E
|
||||||
|
|
||||||
|
; BIT 7,A
|
||||||
|
; JR Z,SCORPION_256_MODE
|
||||||
|
; BIT 6,A
|
||||||
|
; JR Z,PENTAGON_128_MODE
|
||||||
|
;
|
||||||
|
;PENTAGON_48_MODE:
|
||||||
|
; AND #3C
|
||||||
|
; OUT (SLOT0),A
|
||||||
|
; INC A
|
||||||
|
; OUT (SLOT1),A
|
||||||
|
; INC A
|
||||||
|
; OUT (SLOT2),A
|
||||||
|
; INC A
|
||||||
|
; LD D,A
|
||||||
|
; LD BC,#1FFD
|
||||||
|
; XOR A
|
||||||
|
; OUT (C),A
|
||||||
|
; LD B,#7F
|
||||||
|
; OUT (C),A
|
||||||
|
; LD A,D
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
; JR INIT_VIDEO_REG
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; PENTAGON_128_MODE:
|
||||||
|
; LD D,8
|
||||||
|
; AND #38
|
||||||
|
; JR ALL_MODE
|
||||||
|
|
||||||
|
SCORPION_256_MODE:
|
||||||
|
LD D,16
|
||||||
|
AND #30 ; ¤® 4-å ᯥªâà㬮¢
|
||||||
|
|
||||||
|
ALL_MODE:
|
||||||
|
OUT (SLOT0),A
|
||||||
|
XOR 5
|
||||||
|
OUT (SLOT1),A
|
||||||
|
XOR 7
|
||||||
|
OUT (SLOT2),A
|
||||||
|
OR #0F
|
||||||
|
LD E,A
|
||||||
|
|
||||||
|
.loop: DEC D
|
||||||
|
|
||||||
|
LD A,D
|
||||||
|
RLCA
|
||||||
|
AND #10
|
||||||
|
LD BC,#1FFD
|
||||||
|
OUT (C),A
|
||||||
|
|
||||||
|
LD A,D
|
||||||
|
AND 7
|
||||||
|
OR #40
|
||||||
|
LD B,#7F
|
||||||
|
OUT (C),A
|
||||||
|
|
||||||
|
LD A,E
|
||||||
|
OUT (SLOT3),A
|
||||||
|
DEC E
|
||||||
|
|
||||||
|
DEC D
|
||||||
|
INC D
|
||||||
|
JR NZ,.loop
|
||||||
|
|
||||||
|
INIT_VIDEO_REG:
|
||||||
|
XOR A
|
||||||
|
OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥® ¤à¥á
|
||||||
|
; OUT (RGSCR),A ; ॣ¨áâà íªà
|
||||||
|
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
|
||||||
|
|
||||||
|
;!TEST
|
||||||
|
; Restore old Spectrum Screen
|
||||||
|
;; LD HL,#4000
|
||||||
|
;; LD DE,#4000
|
||||||
|
;; LD BC,#1B00
|
||||||
|
;; LDIR
|
||||||
|
|
||||||
|
; EX AF,AF'
|
||||||
|
; BIT 6,A
|
||||||
|
; JR NZ,NO_SCREEN_ALT
|
||||||
|
|
||||||
|
; EX AF,AF'
|
||||||
|
|
||||||
|
; LD A,7 ; á¥¤ì¬ ï íªà ï áâà ¨æ
|
||||||
|
; LD BC,#7FFD
|
||||||
|
; OUT (C),A
|
||||||
|
|
||||||
|
; Restore old Spectrum Screen 2
|
||||||
|
;; LD HL,#C000
|
||||||
|
;; LD DE,#C000
|
||||||
|
;; LD BC,#1B00
|
||||||
|
;; LDIR
|
||||||
|
|
||||||
|
; XOR A
|
||||||
|
; LD BC,#7FFD
|
||||||
|
; OUT (C),A
|
||||||
|
;
|
||||||
|
|
||||||
|
EX AF,AF'
|
||||||
|
NO_SCREEN_ALT:
|
||||||
|
AND A
|
||||||
|
JP (IX)
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;---------------------[ ‡€ƒ‹“˜Šˆ „‹Ÿ #41 ‘’<E28098>€<EFBFBD>ˆ–›]----------------------;
|
||||||
|
;-------------[RST 08]
|
||||||
|
RAM_BIOS_PROG: ; for CALL BIOS in #41 page
|
||||||
|
DISP Spec_Page.to_bios
|
||||||
|
PUSH AF
|
||||||
|
LD A,ROM.BIOS
|
||||||
|
OUT (SYS_PORT.ROM),A
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
|
ENT
|
||||||
|
.Length EQU $-RAM_BIOS_PROG
|
||||||
|
;-------------------[]
|
||||||
|
;
|
||||||
|
;-------------[RST 38]
|
||||||
|
PROG_NO_ROM:
|
||||||
|
DISP Spec_Page.no_zx_rom
|
||||||
|
DI
|
||||||
|
;
|
||||||
|
LD A,#FF
|
||||||
|
OUT (SLOT3),A
|
||||||
|
OUT (SLOT2),A
|
||||||
|
OUT (SLOT1),A
|
||||||
|
;
|
||||||
|
LD SP,#BF00
|
||||||
|
;
|
||||||
|
LD E,0
|
||||||
|
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
LD DE,0
|
||||||
|
LD HL,#2050
|
||||||
|
LD C,BIOS.LP_CLS_WIN
|
||||||
|
RST ToBIOS
|
||||||
|
; set scr-2
|
||||||
|
LD A,1
|
||||||
|
OUT (SCREEN_SWITCH),A
|
||||||
|
;
|
||||||
|
LD HL,MESSAGE_NR
|
||||||
|
LD DE,#A000
|
||||||
|
LD BC,MESSAGE_NR.size
|
||||||
|
LD A,C
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
|
LD HL,#A000
|
||||||
|
LD D,0 ; delimiter
|
||||||
|
LD E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED
|
||||||
|
LD B,A
|
||||||
|
LD C,BIOS.LP_PRINT_LINE3
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
.loop: DI
|
||||||
|
HALT
|
||||||
|
JR .loop
|
||||||
|
;
|
||||||
|
MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET"
|
||||||
|
.size EQU $-MESSAGE_NR
|
||||||
|
ENT
|
||||||
|
PROG_NO_ROM.size EQU $-PROG_NO_ROM
|
||||||
|
;-------------------[]
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
|
||||||
|
;
|
||||||
|
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||||
|
;
|
||||||
@ -52,8 +52,8 @@ Raster:
|
|||||||
INCBIN 'Build/Bin/LOGO_DAT.BIN'
|
INCBIN 'Build/Bin/LOGO_DAT.BIN'
|
||||||
.length EQU $-Raster
|
.length EQU $-Raster
|
||||||
|
|
||||||
|
/*
|
||||||
IF Pashalki
|
IF Pashalki
|
||||||
; !TODO ᤥ« вм вгв в Ў«ЁзЄг-ббл«ЄЁ г¦го в Ў«Ёжг бЇа ©в®ў Ё § ўп§ вм нв® ¤ вл
|
|
||||||
|
|
||||||
|
|
||||||
MACRO _PASHALKI_CODE
|
MACRO _PASHALKI_CODE
|
||||||
@ -106,7 +106,6 @@ NewYear: INCLUDE './src/bios/logo/use/New_Year.inc'
|
|||||||
|
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
and a
|
and a
|
||||||
ld b,0
|
ld b,0
|
||||||
|
|||||||
@ -177,7 +177,7 @@ TASK_SWITCH:
|
|||||||
LD A,C ; § ¤ ç
|
LD A,C ; § ¤ ç
|
||||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||||
|
|
||||||
JP SPECTRUM_TASK ; § Żăáâ¨âě Ž˘ăî § ¤ çă!
|
JP GOTO_SPEC.START_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã!
|
||||||
; ; ¨ ¯®ª ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨!
|
; ; ¨ ¯®ª ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨!
|
||||||
|
|
||||||
TASK_SET:
|
TASK_SET:
|
||||||
|
|||||||
@ -1,15 +1,17 @@
|
|||||||
;=======================[All shared EQUs]=======================;
|
;=======================[All shared EQUs]=======================;
|
||||||
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
BETA_BUILD EQU 7 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||||
;======================[All shared defines]=====================;
|
;======================[All shared defines]=====================;
|
||||||
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||||
DEFINE SP2000_Loader_Flag #0107 ;
|
DEFINE SP2000_Loader_Flag #0107 ;
|
||||||
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
||||||
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§ ªá¥«ï ¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§ ªá¥«ï ¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
||||||
DEFINE Pashalki 0 ;
|
|
||||||
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp' ;
|
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp' ;
|
||||||
DEFINE StandartCGApallete 1 ; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc
|
DEFINE StandartCGApallete 1 ; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc
|
||||||
DEFINE BitStream_SizeInPages 4 ;
|
DEFINE BitStream_SizeInPages 4 ;
|
||||||
DEFINE USE_E1_SCANCODE 0 ;
|
DEFINE USE_E1_SCANCODE 0 ;
|
||||||
|
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ¥¬®£® § å प®¦¥ë© ¢ ਠâ. 2 - ¡®«¥¥ "¯à ¢¨«ìë©"
|
||||||
|
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª, ¥á«¨ ¥â, â® ¢ 15-ë©
|
||||||
|
DEFINE FREE_ZX_PAGES 0 ; 1 - ®á¢®¡®¤¨âì áâà ¨æë ᯥªâà㬠;!TODO
|
||||||
;----[ ‡ ¤¥à¦ª ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯ (0 = 256) ]---;
|
;----[ ‡ ¤¥à¦ª ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯ (0 = 256) ]---;
|
||||||
DEFINE LOGO_DELAY_MIN 25 ;
|
DEFINE LOGO_DELAY_MIN 25 ;
|
||||||
DEFINE LOGO_DELAY_NORM 100 ;
|
DEFINE LOGO_DELAY_NORM 100 ;
|
||||||
@ -18,8 +20,6 @@ BETA_BUILD EQU 6 ;
|
|||||||
DEFINE TEST_INT 1 ; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ì᪮£® INT
|
DEFINE TEST_INT 1 ; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ì᪮£® INT
|
||||||
DEFINE NEW_FEATURE 0 ; !TODO ¯ãªâë ¢ á¥â ¯
|
DEFINE NEW_FEATURE 0 ; !TODO ¯ãªâë ¢ á¥â ¯
|
||||||
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª ¤«ï äãªæ¨© 5x
|
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª ¤«ï äãªæ¨© 5x
|
||||||
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ¥¬®£® § å प®¦¥ë© ¢ ਠâ. 2 - ¡®«¥¥ "¯à ¢¨«ìë©"
|
|
||||||
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª, ¥á«¨ ¥â, â® ¢ 15-ë©
|
|
||||||
DEFINE FDD_NormalCount 0 ; !TODO
|
DEFINE FDD_NormalCount 0 ; !TODO
|
||||||
DEFINE UnusedSettingsFeatures 0 ;
|
DEFINE UnusedSettingsFeatures 0 ;
|
||||||
;===============================================================;
|
;===============================================================;
|
||||||
Binary file not shown.
@ -1,9 +1,6 @@
|
|||||||
;
|
;
|
||||||
;---------[All shared includes]---------
|
;---------[All shared includes]---------
|
||||||
INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines
|
INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines
|
||||||
IF Pashalki
|
|
||||||
INCLUDE 'Shared_Includes/structures/EasterSprites.inc'
|
|
||||||
ENDIF
|
|
||||||
INCLUDE 'Shared_Includes/structures/FileSystem.inc'
|
INCLUDE 'Shared_Includes/structures/FileSystem.inc'
|
||||||
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
|
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
|
||||||
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
|
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user