...
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 | ||||
| 
 | ||||
| Set_ALL_Mode:	LD A,#FF | ||||
| 		LD BC,Port_All_Mode | ||||
| 		OUT (C),A | ||||
| @ -929,6 +928,9 @@ Setup_to_RAM:	LD HL,Setup_Starter.Start | ||||
| 		LDIR | ||||
| 	;   á⥪ ª« ¤ñâáï  ¤à¥á ¢®§¢à â  ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï  § ¤ | ||||
| 		CALL Setup_Starter.Exec					; #C000 | ||||
| 		;JP	PrepareToZX | ||||
| 	ENDMODULE | ||||
| 	; | ||||
| PrepareToZX:	;CALL	init_zx_roms | ||||
| 		; Setup HDD drives for ZX Spectrum mode | ||||
| 		DI | ||||
| @ -960,8 +962,7 @@ PrepareToZX:	;CALL	init_zx_roms | ||||
| 		CP	#10 | ||||
| 		JR	C,.loop | ||||
| 		; ¢ë室 ¢ ०¨¬ zx spectrum | ||||
| .start_zx:	JP ZX_SPECTRUM_MODE | ||||
| 	ENDMODULE | ||||
| .start_zx:	JP	GOTO_SPEC.ZX_MODE | ||||
| ;*********************************** | ||||
| ;	ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢ | ||||
| PORTS_INIT: | ||||
| @ -1118,15 +1119,14 @@ PORTS_INIT: | ||||
| 	        INCLUDE 'FUNC_CMOS.ASM' | ||||
|                 INCLUDE 'BIOS_FUNC.ASM' | ||||
| 	        INCLUDE 'FUNC_SERVICE.asm' | ||||
| 
 | ||||
| 	        INCLUDE 'FLEX.asm' | ||||
| 	; INCLUDE 'EXP_SCR.ASZ' | ||||
| 	        INCLUDE 'FUNC_PIC.ASM' | ||||
| 		; INCLUDE 'EXP_SCR.ASZ'		LP_SCR_MNU | ||||
| 	        INCLUDE 'FUNC_SCREEN.ASM' | ||||
| 	        INCLUDE 'FUNC_RAM_ROM_DRV.ASM' | ||||
| 	        INCLUDE 'FUNC_SYS.ASM' | ||||
| 	        INCLUDE 'FUNC_FOR_TRDOS.ASM' | ||||
|                 INCLUDE 'FUNC_5x.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>ணࠬ¬ , à §¬¥é ¥¬ ï á #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 ]-------------------------------; | ||||
| ;	¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥®© ¢ #40 áâà ¨æ¥, | ||||
| ;	á  ¤à¥á  RESTARTS, ¯¥à¥å¢ â뢠¥â RESET | ||||
| @ -1435,66 +1219,6 @@ Exec: | ||||
| Length		EQU $-Setup_Starter.Start | ||||
| 	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,76 +819,75 @@ LP_INI_40: | ||||
| ;******************************************************** | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ;------------------------------------------------------------------[#80] | ||||
| LP_OPEN_S: | ||||
| 	LD A,B | ||||
| 	ADD A,A | ||||
| 	CP LP_SC_TAB.SIZE | ||||
| 	CCF | ||||
| 	RET C | ||||
| 	PUSH HL | ||||
| 	LD HL,LP_SC_TAB | ||||
| LP_OPEN_S:	LD	A,B | ||||
| 		ADD	A,A | ||||
| 		CP	LP_SC_TAB.SIZE | ||||
| 		CCF | ||||
| 		RET	C | ||||
| 		PUSH	HL | ||||
| 		LD	HL,LP_SC_TAB | ||||
| 		; | ||||
| 		ADD	A,L | ||||
| 		LD	L,A | ||||
| 		JR	NC,.no_inc | ||||
| 		INC	H | ||||
| 		; LD	A,H | ||||
| 		; ADC	A,0 | ||||
| 		; LD	H,A | ||||
| .no_inc:	LD	A,(HL) | ||||
| 		INC	HL | ||||
| 		LD	H,(HL) | ||||
| 		LD	L,A | ||||
| 		EX	(SP),HL | ||||
| 		RET | ||||
| 		; | ||||
| LP_SC_TAB:	DW	LP_SET_32	; 0 - ᯥªâà㬮¢áª®¥ ®ª® 32x24 | ||||
| 		DW	LP_SET_64	; 1 - ⥪á⮢®¥ ®ª® 64x24 | ||||
| 		DW	LP_SET_40	; 2 - ⥪á⮢®¥ ®ª® 40x32 | ||||
| 		DW	LP_SET_80	; 3 - ⥪á⮢®¥ ®ª® 80x32 | ||||
| 		DW	LP_SET_32.X	; 4 - ᯥªâà㬮¢áª®¥ ®ª®, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		DW	LP_SET_64.X	; 5 - ⥪á⮢®¥ ®ª® 64x24, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		DW	LP_SET_40.X	; 6 - ⥪á⮢®¥ ®ª® 40x32, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		DW	LP_SET_80.X	; 7 - ⥪á⮢®¥ ®ª® 80x32, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		DW	PIC_SET_S1	; 8 - £à ä¨ç¥áª®¥ ®ª® 0, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		DW	PIC_SET_S2	; 9 - £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª  | ||||
| 		;DW	LP_SET_MNU	; !TODO | ||||
| .SIZE		EQU	$-LP_SC_TAB | ||||
| 
 | ||||
| 	ADD A,L | ||||
| 	LD L,A | ||||
| 	LD A,H | ||||
| 	ADC A,0 | ||||
| 	LD H,A | ||||
| 	LD A,(HL) | ||||
| 	INC HL | ||||
| 	LD H,(HL) | ||||
| 	LD L,A | ||||
| 	EX (SP),HL | ||||
| 	RET | ||||
| LP_SC_TAB: | ||||
| 	DW LP_SET_32 | ||||
| 	DW LP_SET_64 | ||||
| 	DW LP_SET_40 | ||||
| 	DW LP_SET_80 | ||||
| 	DW LP_SET_32.X | ||||
| 	DW LP_SET_64.X | ||||
| 	DW LP_SET_40.X | ||||
| 	DW LP_SET_80.X | ||||
| 	DW PIC_SET_S1 | ||||
| 	DW PIC_SET_S2 | ||||
| 	; DW LP_SET_MNU | ||||
| .SIZE	EQU $-LP_SC_TAB | ||||
| 
 | ||||
| ;LP_SET_MNU:		; ?????  | ||||
| ;	SCF | ||||
| ;	RET | ||||
| ;	LD IX,LP_SCR_MNU | ||||
| ;	JP LP_SET_MODE | ||||
| ; !TODO | ||||
| ; LP_SET_MNU: | ||||
| ; 		LD	IX,LP_SCR_MNU | ||||
| ; 		JP	LP_SET_MODE | ||||
| 
 | ||||
| LP_SET_32: | ||||
| 	LD HL,#4104 | ||||
| .X:	LD IX,LP_SCR_32 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	HL,#4104 | ||||
| .X:		LD	IX,LP_SCR_32 | ||||
| 		JP	LP_SET_MODE | ||||
| 
 | ||||
| LP_SET_64: | ||||
| 	LD HL,#4104 | ||||
| .X:	LD IX,LP_SCR_64 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	HL,#4104 | ||||
| .X:		LD	IX,LP_SCR_64 | ||||
| 		JP	LP_SET_MODE | ||||
| 
 | ||||
| LP_SET_40: | ||||
| 	LD HL,#4000 | ||||
| .X:	LD IX,LP_SCR_40 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	HL,#4000 | ||||
| .X:		LD	IX,LP_SCR_40 | ||||
| 		JP	LP_SET_MODE | ||||
| 
 | ||||
| LP_SET_80: | ||||
| 	LD HL,#4000 | ||||
| .X:	LD IX,LP_SCR_80 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	HL,#4000 | ||||
| .X:		LD	IX,LP_SCR_80 | ||||
| 		JP	LP_SET_MODE | ||||
| 
 | ||||
| PIC_SET_S1: | ||||
| 	LD IX,PIC_320X256_1 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	IX,PIC_320X256_1 | ||||
| 		JP	LP_SET_MODE | ||||
| 
 | ||||
| PIC_SET_S2: | ||||
| 	LD IX,PIC_320X256_2 | ||||
| 	JP LP_SET_MODE | ||||
| 		LD	IX,PIC_320X256_2 | ||||
| 		JP	LP_SET_MODE | ||||
| ;------------------------------------------------------------------[#80] | ||||
| ; | ||||
| 
 | ||||
| @ -1032,7 +1031,6 @@ LP_SET_LOOP: | ||||
| 	CALL LP_SIZE | ||||
| 	XOR A | ||||
| 	RET | ||||
| 
 | ||||
| WIN_CLOSE: | ||||
| 	SCF | ||||
| 	RET | ||||
|  | ||||
| @ -5,25 +5,41 @@ | ||||
| ;----------------------------------------------------------------------; | ||||
| ; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬  ¯ ¬ïâ¨. | ||||
| ;	‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM | ||||
| EMM.GetMemSize: | ||||
| 	IN A,(SLOT1) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT1),A | ||||
| 	LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 | ||||
| 	LD C,0 | ||||
| .loop:	LD A,(HL) | ||||
| 	INC L | ||||
| 	JR Z,.exit | ||||
| 	AND A | ||||
| 	JR NZ,.loop | ||||
| 	INC C | ||||
| 	JR .loop | ||||
| .exit:	LD HL,#100	;!HARDCODE max mem pages | ||||
| 	LD A,B | ||||
| 	LD B,0 | ||||
| 	OUT (SLOT1),A | ||||
| 	RET | ||||
| EMM.GetMemSize:	IN	A,(SLOT1) | ||||
| 		LD	B,A | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT1),A | ||||
| 		XOR	A | ||||
| 		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) | ||||
| 		INC	L | ||||
| 		JR	Z,.exit | ||||
| 		AND	A | ||||
| 		JR	NZ,.loop | ||||
| 		INC	C | ||||
| 		JR	.loop | ||||
| .exit:		LD	HL,#100	;!HARDCODE max mem pages | ||||
| 		LD	A,B | ||||
| 		LD	B,0 | ||||
| 		OUT	(SLOT1),A | ||||
| 		RET | ||||
| */ | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| @ -124,54 +140,51 @@ RESERVED_PAGES: | ||||
| ;	‚ë室:  L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨ | ||||
| ;		CF - ¯à¨§ ª ®è¨¡ª¨ | ||||
| ;EMM_FN2M: | ||||
| EMM.GetMem: | ||||
| 	;PUSH DE | ||||
| 	PUSH BC | ||||
| 	IN A,(SLOT3) | ||||
| 	EX AF,AF' | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD C,B		; á®åà ¨âì ç¨á«® ã¦ëå ¡«®ª®¢ | ||||
| 	LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| ; –¨ª« ¯à®¢¥àª¨  «¨ç¨ï ã¦ëå ¡«®ª®¢. | ||||
| .loop:	DEC L | ||||
| 	JR Z,.noRAM | ||||
| 	LD A,(HL) | ||||
| 	AND A | ||||
| 	JR NZ,.loop | ||||
| 	DJNZ .loop | ||||
| 
 | ||||
| 	; Œ¥áâ® ¥áâì ! | ||||
| 	LD B,C		; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª  | ||||
| 	LD C,#FF	; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk | ||||
| 	LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| 
 | ||||
| ; ‡ ¯®«¨âì RAMD_FAT | ||||
| .loop2:	DEC L | ||||
| 	LD A,(HL) | ||||
| 	AND A | ||||
| 	JR NZ,.loop2 | ||||
| 	LD (HL),C | ||||
| 	LD C,L | ||||
| 	DJNZ .loop2 | ||||
| 
 | ||||
| 	; L - 㪠§ â¥«ì 楯®çª¨. | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,L | ||||
| 	AND A | ||||
| 	POP BC | ||||
| 	;POP DE | ||||
| 	RET | ||||
| 
 | ||||
| .noRAM:	LD L,1		; <20>…’ <20>€ŒŸ’ˆ | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,L | ||||
| 	SCF | ||||
| 	POP BC | ||||
| 	;POP DE | ||||
| 	RET | ||||
| EMM.GetMem:	PUSH	BC | ||||
| 		IN	A,(SLOT3) | ||||
| 		EX	AF,AF' | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	C,B						; á®åà ¨âì ç¨á«® ã¦ëå ¡«®ª®¢ | ||||
| 		LD	HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| 		; –¨ª« ¯à®¢¥àª¨  «¨ç¨ï ã¦ëå ¡«®ª®¢. | ||||
| 		XOR	A | ||||
| .loop:		DEC	L | ||||
| 		JR	Z,.noRAM | ||||
| 		; LD	A,(HL) | ||||
| 		; AND	A | ||||
| 		CP	(HL) | ||||
| 		JR	NZ,.loop | ||||
| 		DJNZ	.loop | ||||
| 		; Œ¥áâ® ¥áâì ! | ||||
| 		LD	B,C						; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª  | ||||
| 		LD	C,#FF						; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk | ||||
| 		LD	L,A	;low SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| 		; ‡ ¯®«¨âì RAMD_FAT | ||||
| 		; A = 0 | ||||
| .loop2:		DEC	L | ||||
| 		; LD A,(HL) | ||||
| 		; AND A | ||||
| 		CP	(HL) | ||||
| 		JR	NZ,.loop2 | ||||
| 		LD	(HL),C | ||||
| 		LD	C,L | ||||
| 		DJNZ	.loop2 | ||||
| 		; L = 㪠§ â¥«ì 楯®çª¨. | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,L | ||||
| 		AND	A | ||||
| 		POP	BC | ||||
| 		RET | ||||
| 		; | ||||
| .noRAM:		LD	L,1		; !HARDCODE bios errors <20>…’ <20>€ŒŸ’ˆ | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,L | ||||
| 		SCF | ||||
| 		POP	BC | ||||
| 		RET | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| @ -335,10 +348,12 @@ EMM.GetMemPageNext: | ||||
| 	AND A | ||||
| 	SCF | ||||
| 	RET Z | ||||
| 
 | ||||
| 	IN A,(SLOT1) | ||||
| 	LD H,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT1),A | ||||
| 
 | ||||
| 	LD A,H | ||||
| 	LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000) | ||||
| 	LD L,(HL) | ||||
| @ -347,6 +362,7 @@ EMM.GetMemPageNext: | ||||
| 	AND A | ||||
| 	SCF | ||||
| 	RET Z | ||||
| 
 | ||||
| 	AND A | ||||
| 	RET | ||||
| ;----------------------------------------------------------------------; | ||||
| @ -432,17 +448,17 @@ EMM.GetMemBlkPages: | ||||
| ; | ||||
| ;----------------------------------------------------------------------;	!FIXIT SAFE_RGADR | ||||
| ;RAMD_R_W: | ||||
| ;	  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» | ||||
| ;	  º RD/WR SECTOR				   º\ | ||||
| ;	  º HL - BUFER					º\ | ||||
| ;	  º DE - ABS sector ¢ 256b ¡«®ª å		  º\ | ||||
| ;	  º B  - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å		º\ | ||||
| ;	  º A  - block RAM				 º\ | ||||
| ;	  º A' - ª®¬ ¤  ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk	º\ | ||||
| ;	  º	 0 - read, 255 - write, 70 - read ROM DISK º\ | ||||
| ;	  º ** NOT USED TR-DOS VARS **			º\ | ||||
| ;	  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\ | ||||
| ;	\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | ||||
| ;	ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» | ||||
| ;	º RD/WR SECTOR					 º\ | ||||
| ;	º HL - BUFER					 º\ | ||||
| ;	º DE - ABS sector ¢ 256b ¡«®ª å			 º\ | ||||
| ;	º B  - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å		 º\ | ||||
| ;	º A  - block RAM				 º\ | ||||
| ;	º A' - ª®¬ ¤  ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk	 º\ | ||||
| ;	º	0 - read, 255 - write, 70 - read ROM DISKº\ | ||||
| ;	º ** NOT USED TR-DOS VARS **			 º\ | ||||
| ;	ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\ | ||||
| ;	 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | ||||
| BLK_RD_WR: | ||||
| 	AND A | ||||
| 	SCF | ||||
| @ -454,9 +470,9 @@ BLK_RD_WR: | ||||
| 	RET	Z | ||||
| 	; | ||||
| 	; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| 	LD	 C,A | ||||
| 	LD	 A,R | ||||
| 	PUSH    AF | ||||
| 	LD	C,A | ||||
| 	LD	A,R | ||||
| 	PUSH	AF | ||||
| 	; á®åà ï¥¬ PORT_Y | ||||
| 	IN	A,(PORT_Y) | ||||
| 	PUSH	AF | ||||
| @ -523,14 +539,14 @@ BLK_RD_WR: | ||||
| 	LD L,(HL) | ||||
| 	LD L,(HL) | ||||
| 	LD L,(HL) | ||||
| 	JR .RAMD_LOOP_D | ||||
| 	JP .RAMD_LOOP_D | ||||
| 
 | ||||
| .NOT_FOUR_BLK: | ||||
| 	LD A,E | ||||
| .loop:	SUB #40 | ||||
| 	JR C,.NOT_ONE_BLK | ||||
| 	LD L,(HL) | ||||
| 	JR .loop | ||||
| 	JP .loop | ||||
| 
 | ||||
| .NOT_ONE_BLK: | ||||
| 	AND #3F | ||||
| @ -552,7 +568,7 @@ BLK_RD_WR: | ||||
| 	OUT (SLOT3),A | ||||
| 	SET 7,D | ||||
| 	SET 6,D | ||||
| 	JR .BLK_CONT1 | ||||
| 	JP .BLK_CONT1 | ||||
| 
 | ||||
| .BLK_PAGE1: | ||||
| 	LD C,SLOT1 | ||||
| @ -581,9 +597,11 @@ BLK_RD_WR: | ||||
| 	JR Z,.NO_EX_RW2		; WRITE | ||||
| 	EX DE,HL		; for READ | ||||
| .NO_EX_RW2: | ||||
| 	EX AF,AF'	  ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï | ||||
| 	INC B		; B 㦥 㬥ì訫áï   1, | ||||
| 	DEC B | ||||
| 	EX AF,AF'		; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï | ||||
| 	; A = 0 | ||||
| 	;INC B			; B 㦥 㬥ì訫áï   1, | ||||
| 	;DEC B | ||||
| 	CP B | ||||
| 	JP Z,.BLK_EXIT_1 | ||||
| 
 | ||||
| 	BIT 6,D | ||||
|  | ||||
| @ -133,9 +133,9 @@ PIC_FN3: | ||||
| 	OUT (SLOT1),A | ||||
| 
 | ||||
| 	BIT 0,B | ||||
| 	LD BC,40H+04000H | ||||
| 	LD BC,#40 + #4000 | ||||
| 	JR Z,PIC_FN3_NO_2ND | ||||
| 	LD BC,40H+320+04000H | ||||
| 	LD BC,#40 + 320 + #4000 | ||||
| PIC_FN3_NO_2ND: | ||||
| 	ADD HL,BC | ||||
| 
 | ||||
| @ -296,11 +296,11 @@ PIC_FN5:	;  | ||||
| SET_PAL_INIT: | ||||
| 	LD D,A | ||||
| 	DEC B | ||||
| 	JP Z,SET_PAL_GRAF | ||||
| 	JP Z,SET_GRAPH_PALETTE | ||||
| 	DEC B | ||||
| 	JP Z,SET_PAL_ZX | ||||
| 	JP Z,SET_TXT_PALETTE.ZX | ||||
| 	DEC B | ||||
| 	JP Z,SET_PAL_IBM | ||||
| 	JP Z,SET_TXT_PALETTE.IBM | ||||
| 
 | ||||
| ;	LD IX,PAL_DAT1 | ||||
| ;	JR Z,PIC_FN6_L1 | ||||
| @ -471,6 +471,670 @@ PIC_FN14: | ||||
| PIC_FN15: | ||||
| 	SCF | ||||
| 	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' | ||||
| .length		EQU $-Raster | ||||
| 
 | ||||
| /* | ||||
|  IF Pashalki | ||||
| ; !TODO ᤥ« вм вгв в Ў«ЁзЄг-ббл«ЄЁ   г¦го в Ў«Ёжг бЇа ©в®ў Ё § ўп§ вм нв®   ¤ вл | ||||
| 
 | ||||
| 
 | ||||
| 	MACRO _PASHALKI_CODE | ||||
| @ -106,7 +106,6 @@ NewYear:	INCLUDE	'./src/bios/logo/use/New_Year.inc' | ||||
|   | ||||
|  ENDIF | ||||
| 
 | ||||
| /* | ||||
| 
 | ||||
| 	and a | ||||
| 	ld b,0 | ||||
|  | ||||
| @ -177,7 +177,7 @@ TASK_SWITCH: | ||||
| 	LD A,C					; § ¤ ç  | ||||
| 	LD (IX),A				; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	JP SPECTRUM_TASK 			; § Żăáâ¨âě Ž˘ăî § ¤ çă! | ||||
| 	JP GOTO_SPEC.START_TASK			; § ¯ãáâ¨âì ®¢ãî § ¤ çã! | ||||
| ;                          			; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨! | ||||
| 
 | ||||
| TASK_SET: | ||||
|  | ||||
| @ -1,15 +1,17 @@ | ||||
| ;=======================[All shared EQUs]=======================; | ||||
| BETA_BUILD	EQU			6			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| BETA_BUILD	EQU			7			; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ   áâ à⮢®¬ íªà ¥ | ||||
| ;======================[All shared defines]=====================; | ||||
|  DEFINE		PACKED_MAIN		0			; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? | ||||
|  DEFINE		SP2000_Loader_Flag	#0107			; | ||||
|  DEFINE		IDE_Optimization	1			; á«¥£ª  ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD | ||||
|  DEFINE		NeedSafePort_Y		1			; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§  ªá¥«ï ¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà  | ||||
|  DEFINE		Pashalki		0			;  | ||||
|  DEFINE		PICTURE_FILE './src/bios/logo/psfathers.bmp'	; | ||||
|  DEFINE		StandartCGApallete	1			; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc | ||||
|  DEFINE		BitStream_SizeInPages	4			; | ||||
|  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) ]---; | ||||
|  DEFINE		LOGO_DELAY_MIN		25			; | ||||
|  DEFINE		LOGO_DELAY_NORM		100			; | ||||
| @ -18,8 +20,6 @@ BETA_BUILD	EQU			6			;  | ||||
|  DEFINE		TEST_INT		1			; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ â¥«ì᪮£® INT | ||||
|  DEFINE		NEW_FEATURE		0			; !TODO ¯ãªâë ¢ á¥â ¯ | ||||
|  DEFINE		HDDwriteProtect		0			; áâ à ï ä¨èª  ¤«ï äãªæ¨© 5x | ||||
|  DEFINE		RECOVERYmountTYPE	1			; 1 - ¡ëáâàë© ¥¬®£® § å à¤ª®¦¥ë© ¢ à¨ â. 2 - ¡®«¥¥ "¯à ¢¨«ìë©" | ||||
|  DEFINE		RECOVERYrdChooseTYPE	1			; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª, ¥á«¨ ¥â, â® ¢ 15-ë© | ||||
|  DEFINE		FDD_NormalCount		0			; !TODO  | ||||
|  DEFINE		UnusedSettingsFeatures	0			; | ||||
| ;===============================================================; | ||||
										
											Binary file not shown.
										
									
								
							| @ -1,9 +1,6 @@ | ||||
| ; | ||||
| ;---------[All shared includes]--------- | ||||
| 	INCLUDE 'src/bios/shared/DEFINES.INC'                           ; Shared defines | ||||
|  IF Pashalki | ||||
| 	INCLUDE 'Shared_Includes/structures/EasterSprites.inc' | ||||
|  ENDIF | ||||
| 	INCLUDE 'Shared_Includes/structures/FileSystem.inc' | ||||
| 	INCLUDE 'src/bios/Loader/Loader.asm'                            ; Bitstream loader as macros | ||||
| 	INCLUDE 'src/bios/shared/CompMacro.asm'                         ; ¬ ªà®áë | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik