This commit is contained in:
Tolik 2024-08-18 07:03:58 +10:00
parent b3de0bb07b
commit 5791d4e591
12 changed files with 1222 additions and 1229 deletions

@ -1 +1 @@
Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1
Subproject commit b541d4221846090878c1de0138977e28139f7d14

View File

@ -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
;-------------------[]
;-----------------------------------------------------------------------;
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
;

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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
View 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_ ;
;

View File

@ -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

View File

@ -177,7 +177,7 @@ TASK_SWITCH:
LD A,C ; § ¤ ç 
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
JP SPECTRUM_TASK ; § Żăáâ¨âě ­Ž˘ăî § ¤ çă!
JP GOTO_SPEC.START_TASK ; § ¯ãáâ¨âì ­®¢ãî § ¤ çã!
; ; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥­¨¥ ¯ ¬ïâ¨!
TASK_SET:

View File

@ -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.

View File

@ -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' ; ¬ ªà®áë