ZX-EXP to BIOS adaptation
This commit is contained in:
		
							parent
							
								
									2c91a523fa
								
							
						
					
					
						commit
						6a170dff30
					
				| @ -1 +1 @@ | ||||
| Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa | ||||
| Subproject commit 80b60f7294ce3eee958a0c4e9a6f29577cee496f | ||||
| @ -67,6 +67,7 @@ | ||||
| ;-----------------[EXP]----------------- | ||||
| 	MMU		0 e, 8						; áâà ¨æ  8 ¢ ¡ ªã 0 ¨ ¯à®¢¥àª    £à ¨æë	 | ||||
| 	ORG		COMPILE_ADDR.EXP | ||||
|         DEFINE+ IsInBIOS 1 | ||||
|  	OUTPUT	'Build/Bin/EXP.BIN' | ||||
| 		ShowInfo 'EXP block Start', 0                           ; !!!!! test | ||||
| 		INCLUDE	'src/bios/EXP/EXP.asm' | ||||
| @ -80,11 +81,13 @@ | ||||
| ;-----------------[ROM]----------------- | ||||
| 	MMU		0 e, 0						; áâà ¨æ  0 ¢ ¡ ªã 0 ¨ ¯à®¢¥àª    £à ¨æë. | ||||
| 	ORG		ROM_MAP.ROM | ||||
|         DEFINE+ IsInBIOS 0 | ||||
| 	OUTPUT	'Build/Bin/ROM.BIN' | ||||
|                 ShowInfo 'ROM block Start', 0                           ; !!!!! test | ||||
| 		INCLUDE 'src/bios/ROM/ROM.asm' | ||||
|                 ShowInfo 'ROM block End', 0                             ; !!!!! test | ||||
| 	OUTEND	 | ||||
|         UNDEFINE IsInBIOS | ||||
| ;--------------------------------------- | ||||
| ; | ||||
| 
 | ||||
|  | ||||
| @ -1,346 +0,0 @@ | ||||
| 
 | ||||
| ;======================================================== | ||||
| ;55H READH   LOAD SECTORS | ||||
| ;56H WRITEH  SAVE SECTORS | ||||
| ;57H VERIFYH VERIFY SECTORS | ||||
| 
 | ||||
| Y_PORT	EQU	089H | ||||
| ;Write | ||||
| HDW_COM	EQU	4153H	;1F7H Command | ||||
| HDW_DRV	EQU	4152H	;1F6H Drive Control | ||||
| 
 | ||||
| HDW_CLH	EQU	0155H	;1F5H Cylinder High | ||||
| HDW_CLL	EQU	0154H	;1F4H Cylinder Low | ||||
| HDW_SEC	EQU	0153H	;1F3H Sector | ||||
| HDW_CNT	EQU	0152H	;1F2H Counter | ||||
| HDW_ERR	EQU	0151H	;1F1H Error | ||||
| HDW_DAT	EQU	0150H	;1F0H Data | ||||
| ;Read | ||||
| HDR_CTL	EQU	4053H	;1F7H Status (Control) | ||||
| HDR_DRV	EQU	4052H	;1F6H Drive Control | ||||
| 
 | ||||
| HDR_CLH	EQU	0055H	;1F5H Cylinder High | ||||
| HDR_CLL	EQU	0054H	;1F4H Cylinder Low | ||||
| HDR_SEC	EQU	0053H	;1F3H Sector | ||||
| HDR_CNT	EQU	0052H	;1F2H Counter | ||||
| HDR_ERR	EQU	0051H	;1F1H Error | ||||
| HDR_DAT	EQU	0050H	;1F0H Data | ||||
| 
 | ||||
| BSY	EQU	7 | ||||
| RDY	EQU	6 | ||||
| DRQ	EQU	3 | ||||
| ERR	EQU	0 | ||||
| 
 | ||||
| ;EQU FOR IY+ | ||||
| DRVHD_H	EQU	0 | ||||
| SC_PT_H	EQU	1 | ||||
| HEADS_H	EQU	2 | ||||
| CYL_L_H	EQU	3 | ||||
| CYL_H_H	EQU	4 | ||||
| SPCLL_H	EQU	5 | ||||
| SPCLH_H	EQU	6 | ||||
| 
 | ||||
| IDE0	EQU	0C1C0H | ||||
| IDE1	EQU	0C1C8H | ||||
| 
 | ||||
| ;IDE0	 DEFB	 #FF	 ;DRIVE/HEAD REGISTER	      ;00 | ||||
| ;	 DEFB	 #FF	 ;SECTORS PER TRACK	      ;01 | ||||
| ;	 DEFB	 #FF	 ;HEADS			      ;02 | ||||
| ;	 DEFB	 #FF	 ;CYLINDERS LOW		      ;03 | ||||
| ;	 DEFB	 #FF	 ;CYLINDERS HIGH	      ;04 | ||||
| ;	 DEFB	 #FF	 ;SECTOR PER CYLINDER LOW     ;05 | ||||
| ;	 DEFB	 #FF	 ;SECTOR PER CYLINDER HIGH    ;06 | ||||
| ;	 DEFB	 #FF	 ;RESERVED		      ;07 | ||||
| 
 | ||||
| ;IDE1	 DEFB	 #FF	 ;DRIVE/HEAD REGISTER	      ;00 | ||||
| ;	 DEFB	 #FF	 ;SECTORS PER TRACK	      ;01 | ||||
| ;	 DEFB	 #FF	 ;HEADS			      ;02 | ||||
| ;	 DEFB	 #FF	 ;CYLINDERS LOW		      ;03 | ||||
| ;	 DEFB	 #FF	 ;CYLINDERS HIGH	      ;04 | ||||
| ;	 DEFB	 #FF	 ;SECTOR PER CYLINDER LOW     ;05 | ||||
| ;	 DEFB	 #FF	 ;SECTOR PER CYLINDER HIGH    ;06 | ||||
| ;	 DEFB	 #FF	 ;RESERVED		      ;07 | ||||
| 
 | ||||
| ;HL:IX - SECTOR | ||||
| ;   DE - ADDRESS | ||||
| ;    B - SECTORS | ||||
| 
 | ||||
| ;READ SECTOR(S) | ||||
| READH:	PUSH	IY | ||||
| 	EXX  | ||||
| 	LD	C,Y_PORT | ||||
| 	IN	B,(C) | ||||
| 	PUSH	BC | ||||
| 	LD	E,0C0H | ||||
| 	OUT	(C),E | ||||
| 	EXX  | ||||
| 	CALL	RDS000 | ||||
| 	EXX  | ||||
| 	POP	BC | ||||
| 	OUT	(C),B | ||||
| 	EXX  | ||||
| 	POP	IY | ||||
| 	RET	NC | ||||
| 	LD	A,4	;NOT READY | ||||
| 	RET  | ||||
| 
 | ||||
| ;READ SECTOR(S) | ||||
| RDS000:	AND	1 | ||||
| 	LD	IY,IDE0 | ||||
| 	JR	Z,RDS001 | ||||
| 	LD	IY,IDE1 | ||||
| RDS001:	EXX  | ||||
| 	LD	DE,0C040H | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	PUSH	DE | ||||
| 	CALL	PRESET | ||||
| 	POP	HL | ||||
| 	LD	BC,HDW_COM | ||||
| 	LD	A,020H		;READ WITH RETRY | ||||
| 	OUT	(C),A | ||||
| ;SAVE HL! | ||||
| RDS002:	EXX  | ||||
| 	LD	DE,08908H   ;WAIT BUSY=0 & DRQ=1 & ERR=0 | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	LD	BC,HDR_DAT | ||||
| 	INIR  | ||||
| 	INIR  | ||||
| ; | ||||
| 	LD	A,H | ||||
| 	OR	L | ||||
| 	JR	NZ,W44 | ||||
| 	LD	HL,0C000H | ||||
| W44 | ||||
| ; | ||||
| 	LD	BC,HDR_CTL | ||||
| 	IN	A,(C) | ||||
| 	BIT	DRQ,A | ||||
| 	JR	NZ,RDS002 | ||||
| 	XOR	A | ||||
| 	RET  | ||||
| 
 | ||||
| ;HL:IX - SECTOR | ||||
| ;   DE - ADDRESS | ||||
| ;    B - SECTORS | ||||
| 
 | ||||
| ;WRITE SECTOR(S) | ||||
| WRITEH:	PUSH	IY | ||||
| 	EXX  | ||||
| 	LD	C,Y_PORT | ||||
| 	IN	B,(C) | ||||
| 	PUSH	BC | ||||
| 	LD	E,0C0H | ||||
| 	OUT	(C),E | ||||
| 	EXX  | ||||
| 	CALL	WRS000 | ||||
| 	EXX  | ||||
| 	POP	BC | ||||
| 	OUT	(C),B | ||||
| 	EXX  | ||||
| 	POP	IY | ||||
| 	RET	NC | ||||
| 	LD	A,4	;NOT READY | ||||
| 	RET  | ||||
| 
 | ||||
| ;WRITE SECTOR(S) | ||||
| WRS000:	AND	1 | ||||
| 	LD	IY,IDE0 | ||||
| 	JR	Z,WRS001 | ||||
| 	LD	IY,IDE1 | ||||
| WRS001:	EXX  | ||||
| 	LD	DE,0C040H | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	PUSH	DE | ||||
| 	CALL	PRESET | ||||
| 	POP	HL | ||||
| 	LD	BC,HDW_COM | ||||
| 	LD	A,030H		;WRITE WITH RETRY | ||||
| 	OUT	(C),A | ||||
| ;SAVE HL! | ||||
| WRS002:	EXX  | ||||
| 	LD	DE,08908H   ;WAIT BUSY=0 & DRQ=1 & ERR=0 | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	LD	BC,HDW_DAT | ||||
| 	OTIR  | ||||
| 	OTIR  | ||||
| ; | ||||
| 	LD	A,H | ||||
| 	OR	L | ||||
| 	JR	NZ,W33 | ||||
| 	LD	HL,0C000H | ||||
| W33: | ||||
| ; | ||||
| 	LD	BC,HDR_CTL | ||||
| 	IN	A,(C) | ||||
| 	BIT	DRQ,A | ||||
| 	JR	NZ,WRS002 | ||||
| 	XOR	A | ||||
| 	RET  | ||||
| 
 | ||||
| ;HL:IX - SECTOR | ||||
| ;    B - SECTORS | ||||
| 
 | ||||
| ;VERIFY	SECTOR(S) | ||||
| VERIFYH: | ||||
| 	PUSH	IY | ||||
| 	EXX  | ||||
| 	LD	C,Y_PORT | ||||
| 	IN	B,(C) | ||||
| 	PUSH	BC | ||||
| 	LD	E,0C0H | ||||
| 	OUT	(C),E | ||||
| 	EXX  | ||||
| 	CALL	VRS000 | ||||
| 	EXX  | ||||
| 	POP	BC | ||||
| 	OUT	(C),B | ||||
| 	EXX  | ||||
| 	POP	IY | ||||
| 	RET	NC | ||||
| 	LD	A,4	;NOT READY | ||||
| 	RET  | ||||
| 
 | ||||
| ;VERIFY	SECTOR(S) | ||||
| VRS000:	AND	1 | ||||
| 	LD	IY,IDE0 | ||||
| 	JR	Z,VRS001 | ||||
| 	LD	IY,IDE1 | ||||
| VRS001:	EXX  | ||||
| 	LD	DE,0C040H | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	EXX  | ||||
| 	RET	C | ||||
| 	PUSH	DE | ||||
| 	CALL	PRESET | ||||
| 	POP	HL | ||||
| 	LD	BC,HDW_COM | ||||
| 	LD	A,040H		;VERIFY	WITH RETRY | ||||
| 	OUT	(C),A | ||||
| VRS002:	LD	BC,HDR_CTL | ||||
| 	IN	A,(C) | ||||
| 	BIT	ERR,A | ||||
| 	JR	Z,VRS003 | ||||
| 	SCF  | ||||
| 	RET  | ||||
| VRS003:	LD	DE,08100H   ;WAIT BUSY=0 & ERR=0 | ||||
| 	LD	BC,HDR_CTL | ||||
| 	CALL	WAITPRT | ||||
| 	RET	C | ||||
| 	XOR	A | ||||
| 	RET  | ||||
| 
 | ||||
| ; HL:IX	- LBA SECTOR | ||||
| ;     B	- SECTOR COUNTER | ||||
| 
 | ||||
| PRESET:	LD	A,B | ||||
| 	LD	BC,HDW_CNT | ||||
| 	OUT	(C),A | ||||
| 	IN	A,(0E2H) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,0FEH | ||||
| 	OUT	(0E2H),A | ||||
| 	LD	A,(IY+DRVHD_H) | ||||
| 	LD	BC,HDW_DRV | ||||
| 	OUT	(C),A | ||||
| 	BIT	6,A | ||||
| 	LD	E,LX | ||||
| 	LD	D,HX | ||||
| 	CALL	Z,LBA_CHS | ||||
| 	LD	BC,HDW_SEC | ||||
| 	OUT	(C),E		;LBA 0..7 | ||||
| 	LD	BC,HDW_CLL | ||||
| 	OUT	(C),D		;LBA 8..15 | ||||
| 	LD	BC,HDW_CLH | ||||
| 	OUT	(C),L		;LBA 16..23 | ||||
| 	LD	BC,HDW_DRV | ||||
| 	DEC	B | ||||
| 	IN	A,(C) | ||||
| 	AND	0F0H | ||||
| 	OR	H		;LBA 24..27 | ||||
| 	INC	B | ||||
| 	OUT	(C),A | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(0E2H),A | ||||
| 	AND	A | ||||
| 	RET  | ||||
| 
 | ||||
| ; HL:DE	- SECTOR OFFSET | ||||
| 
 | ||||
| LBA_CHS: | ||||
| 	LD	C,(IY+SPCLL_H) | ||||
| 	LD	B,(IY+SPCLH_H) | ||||
| ;	HL:DE /	BC => DE:IX HL-OSTATOK | ||||
| DIV32X:	LD	HX,D | ||||
| 	LD	LX,E | ||||
| 	EX	DE,HL | ||||
| 	LD	HL,0 | ||||
| 	LD	A,020H | ||||
| DIV011:	ADD	IX,IX | ||||
| 	EX	DE,HL | ||||
| 	ADC	HL,HL | ||||
| 	EX	DE,HL | ||||
| 	ADC	HL,HL | ||||
| 	SBC	HL,BC | ||||
| 	JR	NC,DIV012 | ||||
| 	ADD	HL,BC | ||||
| 	DEC	A | ||||
| 	JR	NZ,DIV011 | ||||
| 	JR	DIV014 | ||||
| DIV012:	INC	IX | ||||
| 	DEC	A | ||||
| 	JR	NZ,DIV011 | ||||
| DIV014:	LD	E,(IY+SC_PT_H) | ||||
| 	LD	D,0 | ||||
| 	XOR	A | ||||
| CHS005:	INC	A | ||||
| 	SBC	HL,DE | ||||
| 	JR	NC,CHS005 | ||||
| 	ADD	HL,DE | ||||
| 	DEC	A | ||||
| 	LD	H,A | ||||
| 	LD	E,L | ||||
| 	INC	E | ||||
| 	LD	D,LX | ||||
| 	LD	A,HX | ||||
| 	LD	L,A | ||||
| 	RET  | ||||
| 
 | ||||
| ; D - MASK | ||||
| ; E - PATTERN | ||||
| ; BC - PORT | ||||
| 
 | ||||
| WAITPRT: | ||||
| 	LD	HL,0000H | ||||
| WAITP0:	IN	A,(C) | ||||
| 	CP	0FFH | ||||
| 	JR	Z,WAITP1 | ||||
| 	AND	D | ||||
| 	CP	E | ||||
| 	JR	NZ,WAITP2 | ||||
| 	AND	A | ||||
| 	RET  | ||||
| 
 | ||||
| WAITP2:	DEC	HL | ||||
| 	LD	A,L | ||||
| 	OR	H | ||||
| 	JP	NZ,WAITP0 | ||||
| WAITP1:	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| ;======================================================= | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,841 +0,0 @@ | ||||
| ; | ||||
|         _mInfoALIGN 256,0 | ||||
| TAB_FNS:                                ; !FIXIT ¯®¯à ¢¨âì ¢ ¤®ª¥  §¢ ¨ï äãªæ¨©, ç áâì ¥ ᮢ¯ ¤ ¥â | ||||
| ;       8x | ||||
| /* 80 */  DW LP_OPEN_S                    ; ®âªàë⨥ ®ª  | ||||
| /* 81 */  DW LP_PRINT_ALL                 ; ¯¥ç âì ᨬ¢®«  ¢ ®ª® | ||||
| /* 82 */  DW LP_PRINT_SYM                 ; ¯¥ç âì ᨬ¢®«  ¡¥§  âà | ||||
| /* 83 */  DW LP_PRINT_ATR                 ; ¯¥ç âì ⮫쪮  âਡãâ  | ||||
| /* 84 */  DW LP_SET_PLACE                 ; ãáâ ®¢ª  ¯®§¨æ¨¨ ¯¥ç â¨ | ||||
| /* 85 */  DW LP_PRINT_LINE                ; ¯¥ç âì áâப¨ ¤«¨®© B | ||||
| /* 86 */  DW LP_PRINT_LINE2               ; ¯¥ç âì áâப¨ -//- ¡¥§  âਡã⮢ | ||||
| /* 87 */  DW LP_PRINT_LINE3               ; ¯¥ç âì áâப¨ ¤«¨®© B ¤® D | ||||
| /* 88 */  DW LP_PRINT_LINE4               ; ¯¥ç âì áâப¨ -//- ¡¥§  âਡã⮢ | ||||
| /* 89 */  DW LP_CLS_WIN | ||||
| /* 8A */  DW LP_SCROLL_UD | ||||
| /* 8B */  DW LP_PRINT_LINE5 | ||||
| /* 8C */  DW LP_PRINT_LINE6 | ||||
| /* 8D */  DW LP_CLS_WIN2 | ||||
| /* 8E */  DW LP_GET_PLACE | ||||
| /* 8F */  DW FN_TURBO | ||||
| ;       9x | ||||
| /* 90 */  DW EMM.GetMemSize               ; ¥à §àãè î饥 ®¯à¥¤¥«¥¨¥ ®¡ê¥¬  އ“. | ||||
| /* 91 */  DW EMM.InitMem                  ; ¨¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ï⨠| ||||
| /* 92 */  DW EMM.GetMemRMD                ; ¯®«ãç¨âì ¡«®ª ¯ ¬ï⨠¤«ï à ¬¤¨áª  | ||||
| /* 93 */  DW EMM.FreeMemRMD               ; ®á¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠ࠬ¤¨áª  | ||||
| /* 94 */  DW EMM.GetMemPageRMD            ; ¯®«ãç¨âì ®¬¥àa áâà ¨æ RAM-Disk | ||||
| /* 95 */  DW EMM.GetMemPageNext           ; ¯®«ãç¨âì á«¥¤ãîéãî áâà ¨æã | ||||
| /* 96 */  DW EMM.GetBanksPorts            ; ¯®«ãç¨âì  ¤à¥á  ¯®à⮢ | ||||
| /* 97 */  DW EMM.CheckColdInit            ; ¯à®¢¥àª    宫®¤ë© áâ àâ ¨ ¨¨æ¨ «¨§ æ¨¨ ¥á«¨ ® ;????? 㦠 «¨ ª ª API? | ||||
| /* 98 */  DW RAMD_CALC_PAGE               ; Fn 98h      ;????? | ||||
| /* 99 */  DW SET_DISK_TYPE                ;             ;????? | ||||
| /* 9A */  DW DISK_REDIR                   ;             ;????? | ||||
| /* 9B */  DW    FN_NO   ;GET_RAMD_NUM     ; ¯®«ãç¨âì ®¬¥à ram disk ¯® ¥£® block id | ||||
| /* 9C */  DW    FN_NO                     ; | ||||
| /* 9D */  DW EMM.DivMemBlocks             ; à §¤¥«¥¨ï ¡«®ª    ¤¢ . | ||||
| /* 9E */  DW EMM.MergeMemBlocks           ; ᫨逸 ¤¢ãå ¡«®ª®¢ | ||||
| /* 9F */  DW EMM.FullInit                 ; ¨¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬ëå ¯¥à¥¬¥ëå | ||||
| ;       Ax | ||||
| /* A0 */  DW PIC_FN0                      ; Ž’Š<EFBFBD>›’ˆ… ŽŠ<EFBFBD>€        - Fn 0A0h | ||||
| /* A1 */  DW PIC_FN1                      ; ‚›‚…‘’ˆ ’Ž—Š“ | ||||
| /* A2 */  DW PIC_FN2                      ; ‚›‚Ž„ ‹ˆ<EFBFBD>ˆˆ COPY | ||||
| /* A3 */  DW PIC_FN3                      ; ‚›‚Ž„ ‹ˆ<EFBFBD>ˆˆ FILL | ||||
| /* A4 */  DW PIC_FN4                      ; ‚›‚Ž„ <EFBFBD>€‹ˆ’<EFBFBD>› | ||||
| /* A5 */  DW PIC_FN5                      ; “‘’€<EFBFBD>ނЀ RGMOD | ||||
| /* A6 */  DW PIC_FN6                      ; A - page_pal, E - ®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë | ||||
| /* A7 */  DW PIC_FN7                      ; <EFBFBD>¨á®¢ ¨¥ «¨¨¨ ®¤®£® æ¢¥â  | ||||
| /* A8 */  DW PIC_FN8                      ; <EFBFBD>¨á®¢ ¨¥ à §®æ¢¥â®© «¨¨¨  | ||||
| /* A9 */  DW PIC_FN9                      ; ¥â | ||||
| /* AA */  DW PIC_FN10                     ; ¥â | ||||
| /* AB */  DW PIC_FN11                     ; ¥â | ||||
| /* AC */  DW PIC_FN12                     ; ¥â | ||||
| /* AD */  DW PIC_FN14                     ; ¥â | ||||
| /* AE */  DW PIC_FN14                     ; ¥â | ||||
| /* AF */  DW PIC_FN15                     ; ¥â | ||||
| ;       Bx | ||||
| /* B0 */  DW WIN_OPEN                     ; ®âªàë⨥ ®ª  ¯® ®¯¨á â¥«î | ||||
| /* B1 */  DW WIN_CLOSE                    ; § ªàë⨥ ®ª  | ||||
| /* B2 */  DW WIN_COPY                     ; á®åà ¥¨¥ ⥪á⮢®£® ®ª  ¢ ¯ ¬ï⨠| ||||
| /* B3 */  DW WIN_RESTORE                  ; ¢®ááâ ®¢«¥¨¥ ⥪á⮢®£® ®ª  ¨§ ¯ ¬ï⨠| ||||
| /* B4 */  DW WIN_GET_SYM                  ; ¢§ïâì ᨬ¢®« | ||||
| /* B5 */  DW WIN_PUT_SYM                  ; ¯®«®¦¨âì ᨬ¢®« | ||||
| /* B6 */  DW WIN_SET_ZG                   ; § £à㧪  § ª®£¥¥à â®à  | ||||
| /* B7 */  DW WIN_MOVE                     ; ¯¥à¥¬¥áâ¨âì ®ª® | ||||
| /* B8 */  DW WIN_GET_ZG                   ; ¯®«ãç¨âì § ª®£¥¥à â®à | ||||
| /* B9 */  DW    FN_NO | ||||
| /* BA */  DW    FN_NO | ||||
| /* BB */  DW    FN_NO | ||||
| /* BC */  DW    FN_NO | ||||
| /* BD */  DW    FN_NO | ||||
| /* BE */  DW    FN_NO | ||||
| /* BF */  DW    FN_NO | ||||
| ;       Cx | ||||
| /* C0 */  DW EMM.GetMemSize               ; ¯®«ãç¨âì ¤ ë¥ ®¡ ®¡ê¥¬¥ ¯ ¬ï⨠¨ ª®«-¢® ᢮¡. áâà. | ||||
| /* C1 */  DW EMM.InitMem                  ; ¨¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ï⨠| ||||
| /* C2 */  DW EMM.GetMem                   ; ¯®«ãç¨âì ¡«®ª ¯ ¬ï⨠| ||||
| /* C3 */  DW EMM.FreeMem                  ; ®á¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠| ||||
| /* C4 */  DW EMM.GetMemPage               ; ¯®«ãç¨âì ®¬¥à áâà ¨æë ¢ ¡«®ª¥ ¯ ¬ï⨠| ||||
| /* C5 */  DW EMM.GetMemBlkPages           ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª  ¯ ¬ï⨠| ||||
| /* C6 */  DW EMM.GetBanksPorts            ; ¯®«ãç¨âì  ¤à¥á  ¯®à⮢ ®ª® | ||||
| /* C7 */  DW EMM.GetMemPageNext           ; ¯®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¡«®ª  | ||||
| /* C8 */  DW BLK_RD_WR                    ; äãªæ¨ï ç⥨ï/§ ¯¨á¨ ¢ ¡«®ª ¯ ¬ï⨠| ||||
| /* C9 */  DW BLK_TO_RAMD                  ;  § ç¨âì ¡«®ª RAM-Disk-ã | ||||
| /* CA */  DW RAMD_CLEAR                   ; ®á¢®¡®¤¨âì RAM-Disk | ||||
| /* CB */  DW RAMD_TO_DRV                  ;  § ç¨âì RAM-Disk   ¤¨áª®¢®¤ | ||||
| /* CC */  DW FDD_TO_DRV                   ;  § ç¨âì REAL_DRIVE   ¤¨áª®¢®¤ | ||||
| /* CD */  DW HDD_TO_DRV                   ;  § ç¨âì HDD   ¤¨áª®¢®¤ | ||||
| /* CE */  DW GET_RAMD_ST                  ; ¯®«ãç¨âì ⨯  § ç¥¨ï   RAM-Disk | ||||
| /* CF */  DW GET_DRV_ST                   ; ¯®«ãç¨âì ⨯  § ç¥¨ï   ¤¨áª®¢®¤ | ||||
| ;       Dx | ||||
| /* D0 */  DW FN_LIB | ||||
| /* D1 */  DW FN_LIB | ||||
| /* D2 */  DW FN_LIB | ||||
| /* D3 */  DW FN_LIB | ||||
| /* D4 */  DW FN_LIB | ||||
| /* D5 */  DW FN_LIB | ||||
| /* D6 */  DW FN_LIB | ||||
| /* D7 */  DW FN_LIB | ||||
| /* D8 */  DW FN_LIB | ||||
| /* D9 */  DW FN_LIB | ||||
| /* DA */  DW FN_LIB | ||||
| /* DB */  DW FN_LIB | ||||
| /* DC */  DW FN_LIB | ||||
| /* DD */  DW FN_LIB | ||||
| /* DE */  DW FN_LIB | ||||
| /* DF */  DW FN_LIB | ||||
| ;       Ex | ||||
| /* E0 */  DW LP_PRINT_LINE_DIR | ||||
| /* E1 */  DW    FN_NO | ||||
| /* E2 */  DW    FN_NO | ||||
| /* E3 */  DW    FN_NO | ||||
| /* E4 */  DW    FN_NO | ||||
| /* E5 */  DW    FN_NO | ||||
| /* E6 */  DW    FN_NO | ||||
| /* E7 */  DW    FN_NO | ||||
| /* E8 */  DW FN_SEND_BYTE                 ; ¯®á« âì ¡ ©â ç¥à¥§ PC_link | ||||
| /* E9 */  DW FN_RESEIVE_B                 ; ¯à¨ïâì ¡ ©â ç¥à¥§ PC_link | ||||
| /* EA */  DW FN_KBD_OUT                   ; ¯®á« âì ¡ ©â ¢ ª« ¢¨ âãàã | ||||
| /* EB */  DW    FN_NO | ||||
| /* EC */  DW    FN_NO | ||||
| /* ED */  DW FN_CRIPT | ||||
| /* EE */  DW AY8910 | ||||
| /* EF */  DW FN_VERSION | ||||
| ;       Fx | ||||
| /* F0 */  DW SPRINTER_1 | ||||
| /* F1 */  DW SPRINTER_2 | ||||
| /* F2 */  DW FN_SINC | ||||
| /* F3 */  DW SPRINTER_ALL | ||||
| /* F4 */  DW DCP_FN0 | ||||
| /* F5 */  DW CMOS_TEST | ||||
| /* F6 */  DW CMOS_RD | ||||
| /* F7 */  DW CMOS_WR | ||||
| /* F8 */  DW SET_ROM_PAGES | ||||
| /* F9 */  DW READ_PORTS                   ; !TODO | ||||
| /* FA */  DW WRITE_PORTS                  ; !TODO | ||||
| /* FB */  DW GOTO_SPEC                    ; Goto Spectrum! | ||||
| /* FC */  DW    FN_NO | ||||
| /* FD */  DW FN_RESET | ||||
| /* FE */  DW    FN_NO                   ; SAVE_AUTOSTART | ||||
| /* FF */  DW FN_VERSION | ||||
| 
 | ||||
| EXP_FNS:								; ‚室 ¢ äãªæ¨î ¨§ DOS | ||||
| 	POP     AF | ||||
| 	CALL    APIfrom80toFF                                           ; !TEST new_api | ||||
| 	CALL    DOS_ON | ||||
| 	JP      EXP_FNS_RET | ||||
| 
 | ||||
| ;************************************ | ||||
| ; ‚室 ¢ äãªæ¨î ¯® RST18 ¨ RST8 | ||||
| EXP_FNS_RST18: | ||||
| 	BIT     7,C | ||||
|         JR      NZ,APIfrom80toFF                                        ; !TEST new_api | ||||
|         ;.APIfrom40to5F: | ||||
| 	BIT 6,C | ||||
| 	RES 6,C | ||||
|         JP NZ,EXP_HDD_NEW | ||||
| 	SCF | ||||
| 	RET | ||||
| ;********************************** | ||||
| 
 | ||||
| ;----------------------------------------------------------------------- | ||||
| FN_CRIPT: | ||||
| 	DEC B | ||||
| 	SCF | ||||
| 	RET NZ | ||||
| 	LD HL,(ROM_NUMBER.part1) ;rdlow-ok | ||||
| 	LD A,(ROM_NUMBER.part2)  ;rdlow-ok | ||||
| 	LD BC,(BoardID.start)    ;rdlow-ok | ||||
| 	LD DE,(BoardID.end)      ;rdlow-ok | ||||
| 	AND A | ||||
| 	RET | ||||
| ; BoardID_start old address     #312A | ||||
| ; BoardID_end old address       #312D | ||||
| ;----------------------------------------------------------------------- | ||||
| 
 | ||||
| ;********************************** | ||||
| ;!!!!! £«ïãâì | ||||
| ; START_DI: | ||||
| ;         PUSH AF | ||||
| ;         LD A,R | ||||
| ;         JP PE,XX_DI | ||||
| ;         LD A,R | ||||
| ; XX_DI:  LD A,#80 | ||||
| ;         JP PE,XX_DI2 | ||||
| ;         XOR A | ||||
| ; XX_DI2: LD R,A | ||||
| ;         DI | ||||
| ;         POP AF | ||||
| ;         RET | ||||
| 
 | ||||
| ; END_DI: PUSH AF | ||||
| ;         LD A,R | ||||
| ;         BIT 7,A | ||||
| ;         JR Z,XX_DI3 | ||||
| ;         EI | ||||
| ;         POP AF	; PE | ||||
| ;         RET | ||||
| 
 | ||||
| ; XX_DI3: DI | ||||
| ;         POP AF	; PO | ||||
| ;         RET | ||||
| ;********************************** | ||||
| 
 | ||||
| 
 | ||||
| APIfrom80toFF: | ||||
|         PUSH HL | ||||
|         LD L,C | ||||
|         SLA L | ||||
|         LD H,high TAB_FNS | ||||
|         LD C,(HL)       // LD A,(HL) | ||||
|         INC L | ||||
|         LD H,(HL) | ||||
|         LD L,C          // LD L,A | ||||
|         EX (SP),HL | ||||
|         RET | ||||
| 
 | ||||
| ;!      !       !       !       !       !       !       ! | ||||
| ; !TODO ᤥ« âì | ||||
| READ_PORTS: | ||||
| WRITE_PORTS: | ||||
| FN_NO:  SCF | ||||
|         RET | ||||
| ;!      !       !       !       !       !       !       ! | ||||
| 
 | ||||
| ; ????? ¬®¦¥â ¯¥à¥¤¥« âì ¢å®¤? | ||||
| ; CALL from 3D13h! | ||||
| ; in A - page, B - new ROM-page | ||||
| ; out B - old ROM-page | ||||
| SET_ROM_PAGES: | ||||
|         EX AF,AF' | ||||
|                 LD A,CNF_0 | ||||
|                 OUT (SYS_PORT.ON),A | ||||
| 
 | ||||
|                 LD C,SLOT2                                              ; ¯®«ãç¨âì áâà ¨æã | ||||
|                 IN D,(C) | ||||
| 
 | ||||
|                 LD A,DCP_PAGE                                           ; ãáâ ®¢¨âì ®¢ãî | ||||
|                 OUT (C),A | ||||
| 
 | ||||
|                 LD A,(#8000)                                            ; á®åà ¨âì â® çâ® ¡ë«® | ||||
|                 LD L,A | ||||
|                 LD A,(#8200) | ||||
|                 LD H,A | ||||
|         EX AF,AF'							; áâà ¨æ  | ||||
| 
 | ||||
|         LD (#8000),A                                                    ; ãáâ ®¢¨âì ¯®àâ ROM TR-DOS | ||||
|         LD (#8200),A | ||||
| 
 | ||||
|         EX AF,AF' | ||||
|                 LD A,B | ||||
|                 LD BC,0 | ||||
|         EX AF,AF' | ||||
| 
 | ||||
|         IN A,(C) | ||||
| 
 | ||||
|         EX AF,AF' | ||||
|                 OUT (C),A                                               ; ãáâ ®¢¨âì ®¢ë© TR-DOS | ||||
|         EX AF,AF' | ||||
| 
 | ||||
|         LD B,A | ||||
|         LD A,L | ||||
|         LD (#8000),A                                                    ; ¢¥àãâì ¯®àâ | ||||
|         LD A,H | ||||
|         LD (#8200),A                                                    ; ¢¥àãâì ¯®àâ | ||||
| 
 | ||||
|         LD C,SLOT2 | ||||
|         LD A,SYS_PAGE | ||||
|         OUT (C),A | ||||
|         LD A,(SYS_PAGE.CONFIG_DE-#4000) | ||||
|         OUT (C),D                                                       ; ¢¥àãâì áâà ¨æã | ||||
|         OUT (SYS_PORT.ON),A | ||||
| 	 | ||||
|         AND A | ||||
|         RET | ||||
| ;TAB_SIZE EQU $-TAB_FNS | ||||
| 
 | ||||
| ;***************************************** | ||||
| 
 | ||||
| ;***************************************** | ||||
| ;	”ãªæ¨ï ¤¥è¨äà â®à  ¯®à⮢. | ||||
| ;	HL -  ¤à¥á | ||||
| ;	DE - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;	B - ¯®àâ | ||||
| ; | ||||
| ;	ALL STACKS, DI | ||||
| ;***************************************** | ||||
| DCP_FN0:                                                                ; !FIXIT § ¯®¬¨ âì âãâ á®áâ®ï¨¥ ¯à¥à뢠¨© ¨ ¢ëàã¡ âì | ||||
| 	AND A | ||||
| 	JP Z,PORTS_INIT | ||||
| 
 | ||||
| 	PUSH IX | ||||
| 	LD IX,.RET_DCP_FN0 | ||||
| 
 | ||||
| 	IN A,(SLOT3) | ||||
| 	EX AF,AF' | ||||
| 	LD A,DCP_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 	JR DCP_FN0M | ||||
| 
 | ||||
| .RET_DCP_FN0: | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT3),A | ||||
| 	AND A | ||||
| 	POP IX | ||||
| ;                                                                         !FIXIT ¢®ááâ  ¢«¨¢ âì ¯à¥à뢠¨ï | ||||
| 	RET | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;       ”ãªæ¨ï ¤¥è¨äà â®à  ¯®à⮢. | ||||
| ;       HL -  ¤à¥á | ||||
| ;       DE - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;       B - ¯®àâ | ||||
| DCP_FN0M: | ||||
|         LD A,L | ||||
|         AND E | ||||
|         LD L,A | ||||
| 
 | ||||
|         LD A,H | ||||
|         AND D | ||||
| ;       AND #3F | ||||
|         OR #C0 | ||||
|         LD H,A | ||||
| 
 | ||||
|         LD A,D | ||||
|         OR #C0 | ||||
|         LD D,A | ||||
| 
 | ||||
| .loop:  LD (HL),B | ||||
| 
 | ||||
|         LD A,L                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
|         OR E                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
|         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
|         JR Z,.carry                                                     ; ¢®§¨ª ¯¥à¥®á | ||||
| 
 | ||||
|         OR E | ||||
|         XOR E                                                           ; ®¡ã«¨âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë | ||||
|         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
|         LD A,L | ||||
|         AND E                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
|         OR C | ||||
|         LD L,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
| 
 | ||||
|         JR .loop                                                        ; 横« | ||||
| 
 | ||||
| .carry:                                                                 ; A = 0 | ||||
| ;       OR E | ||||
| ;       XOR E | ||||
| ;       LD C,A | ||||
|         LD A,L                                                          ; § ¡¨âì ¨§¬¥ï¥¬ë¥ ¡¨âë ã«ï¬¨ | ||||
|         AND E | ||||
| ;       OR C | ||||
|         LD L,A | ||||
| 
 | ||||
|         LD A,H                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
|         OR D                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
|         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
|         JR Z,.exit | ||||
| 
 | ||||
|         OR D | ||||
|         XOR D | ||||
|         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
|         LD A,H | ||||
|         AND D                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
|         OR C | ||||
|         LD H,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
|         JR .loop | ||||
| 
 | ||||
| .exit:  JP (IX) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ; RAM-Disk A, BLK - B | ||||
| BLK_TO_RAMD: | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	PUSH HL | ||||
| 	LD L,A | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD C,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD A,L | ||||
| 	LD HL,SYS_PAGE.RAMD_KEYS-#4000 | ||||
| 	ADD A,L | ||||
| 	LD L,A | ||||
| 	LD A,(HL)	; ª«îç ¡«®ª  | ||||
| 	AND A | ||||
| 	JR NZ,BLK_BUSY	; RAM-Disk § ïâ - ®è¨¡ª  | ||||
| 	LD (HL),B | ||||
| 
 | ||||
| 	LD A,C | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	LD A,B | ||||
| 	AND A | ||||
| 	POP HL | ||||
| 	RET | ||||
| 
 | ||||
| BLK_BUSY: | ||||
| 	LD A,C | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	SCF | ||||
| 	POP HL | ||||
| 	RET | ||||
| 
 | ||||
| ; RAM-Disk A | ||||
| RAMD_CLEAR: | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	PUSH HL | ||||
| 	LD L,A | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD C,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD A,L | ||||
| 	LD HL,SYS_PAGE.RAMD_KEYS-#4000	; RAM-Disk ᢮¡®¤¥ | ||||
| 	ADD A,L | ||||
| 	LD L,A | ||||
| 	LD B,A		; § ¯®¬¨âì 㤠«ï¥¬ë© à ¬¤¨áª | ||||
| 	LD A,(HL) | ||||
| 	AND A | ||||
| 	JR Z,BLK_BUSY	; ¢®§¢à â á ®è¨¡ª®© | ||||
| 	LD (HL),0 | ||||
| 	LD A,C | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	AND A | ||||
| 	POP HL | ||||
| 	RET | ||||
| 
 | ||||
| ; RAM-Disk A, DRV - B | ||||
| RAMD_TO_DRV: | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CCF | ||||
| 	RET C | ||||
| 	LD C,A | ||||
| 	LD A,B | ||||
| 	CP 4 | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.DISK_TYPE-#4000 | ||||
| 	LD L,B | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD A,C | ||||
| 	ADD A,4 | ||||
| 	LD (HL),A | ||||
| 	LD A,B | ||||
| 	OUT (SLOT2),A | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| ; Disk A, DRV - B | ||||
| FDD_TO_DRV: | ||||
| 	CP 4 | ||||
| 	CCF | ||||
| 	RET C | ||||
| 	LD C,A | ||||
| 
 | ||||
| 	LD A,B | ||||
| 	CP 4 | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.DISK_TYPE-#4000 | ||||
| 	LD L,B | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD (HL),C | ||||
| 	LD A,B | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| ; HDD A, DRV - B | ||||
| HDD_TO_DRV: | ||||
| 	AND 0FH | ||||
| 	LD C,A | ||||
| 	LD A,B | ||||
| 	CP 4 | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.DISK_TYPE-#4000 | ||||
| 	LD L,B | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD A,C | ||||
| 	ADD A,40H | ||||
| 	LD (HL),A | ||||
| 	LD A,B | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| ; ‚室: | ||||
| ;       A - RAM Disk ID | ||||
| ; ‚ë室: | ||||
| ;       A - Number (0..15) | ||||
| ; GET_RAMD_NUM: | ||||
| ;         EX      AF,AF' | ||||
| ;         IN      A,(SLOT2) | ||||
| ;         EX      AF,AF' | ||||
| ;         LD      BC,SYS_PAGE * 256 + SLOT2 | ||||
| ;         OUT     (C),B | ||||
| 
 | ||||
| ;         LD      HL,SYS_PAGE.RAMD_KEYS-#4000 | ||||
| ;         LD      BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
| ;         CPIR | ||||
| 
 | ||||
| ;         EX      AF,AF' | ||||
| ;         OUT     (SLOT2),A | ||||
| ;         EX      AF,AF' | ||||
| 
 | ||||
| ;         SCF | ||||
| ;         RET     PE | ||||
| 
 | ||||
| ;         DEC     L | ||||
| ;         LD      A,L | ||||
| ;         SUB     low SYS_PAGE.RAMD_KEYS | ||||
| ;         RET         | ||||
| 
 | ||||
| ;   ¢ë室¥ ¯à¨ € = 0 ¤®«¦¥ ¡ëâì ãáâ ®¢«¥ ä« £ Z | ||||
| GET_RAMD_ST:                                                            ; DSS  ¤¥¥âáï, çâ® íâ  äãªæ¨ï ¥ £à®å ¥â DE | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	PUSH BC | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.RAMD_KEYS-#4000 | ||||
| 	ADD A,L | ||||
| 	LD L,A | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD C,(HL) | ||||
| 	LD A,B | ||||
| 	OUT (SLOT2),A | ||||
| 	LD A,C | ||||
| 	POP BC | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| GET_DRV_ST: | ||||
| 	CP 4 | ||||
| 	CCF | ||||
| 	RET C | ||||
| 
 | ||||
| 	PUSH BC | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.DISK_TYPE-#4000 | ||||
| 	ADD A,L | ||||
| 	LD L,A | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD C,(HL) | ||||
| 	LD A,B | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	LD A,C | ||||
| 
 | ||||
| 	POP BC | ||||
| 
 | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| ;*********************************************** | ||||
| ; ????? çñ §  å¥àï ¯à® ¡¥©á¨ª? âãâ ¥ â® ¨¦¥ | ||||
| ; | ||||
| ; 	CMOS - 35h,36h - ãáâ ®¢ª¨ ¡¥©á¨ª  | ||||
| ; | ||||
| ;*********************************************** | ||||
| CMOS_EMU_WR: | ||||
| 	PUSH DE | ||||
| 
 | ||||
| 	LD C,SLOT3 | ||||
| 	IN B,(C) | ||||
| 	LD E,SYS_PAGE | ||||
| 	OUT (C),E | ||||
| 	LD E,D | ||||
| 	LD D,#FF | ||||
| 	LD (DE),A | ||||
| 	OUT (C),B | ||||
| 
 | ||||
| 	POP DE | ||||
| 	RET | ||||
| 
 | ||||
| ; § ¯¨áì ¢ CMOS | ||||
| CMOS_WR: | ||||
| 	CALL CMOS_TEST | ||||
| 	JR C,CMOS_EMU_WR | ||||
| XWR_CMOS: | ||||
| 	LD BC,CMOS.Port.Address.Write | ||||
| 	OUT (C),D | ||||
| 	LD BC,CMOS.Port.Data.Write | ||||
| 	OUT (C),A | ||||
| 	RET | ||||
| 
 | ||||
| CMOS_EMU_RD: | ||||
| 	PUSH DE | ||||
| 
 | ||||
| 	LD C,SLOT3 | ||||
| 	IN B,(C) | ||||
| 	LD E,SYS_PAGE | ||||
| 	OUT (C),E | ||||
| 	LD E,D | ||||
| 	LD D,#FF | ||||
| 	LD A,(DE) | ||||
| 	OUT (C),B | ||||
| 
 | ||||
| 	POP DE | ||||
| 	RET | ||||
| 
 | ||||
| ; ç⥨¥ ¨§ CMOS | ||||
| CMOS_RD: | ||||
| 	CALL CMOS_TEST | ||||
| 	JR C,CMOS_EMU_RD | ||||
| XRD_CMOS: | ||||
| 	LD BC,CMOS.Port.Address.Write | ||||
| 	OUT (C),D | ||||
| 	LD BC,CMOS.Port.Data.Read | ||||
| 	IN A,(C) | ||||
| 	RET | ||||
| 
 | ||||
| CMOS_TEST: | ||||
| 
 | ||||
| 	PUSH DE | ||||
| 	PUSH BC | ||||
| 	PUSH AF | ||||
| 
 | ||||
| 	LD D,3FH															; !HARDCODE | ||||
| 	CALL XRD_CMOS | ||||
| 	LD E,A | ||||
| 	CPL | ||||
| 	CALL XWR_CMOS | ||||
| 	CALL XRD_CMOS | ||||
| 	CPL | ||||
| 	CP E | ||||
| 	JR NZ,CMOS_ERR | ||||
| 	LD A,E | ||||
| 	CALL XWR_CMOS | ||||
| 
 | ||||
| 	POP AF | ||||
| 	POP BC | ||||
| 	POP DE | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| CMOS_ERR: | ||||
| 	LD A,E | ||||
| 	CALL XWR_CMOS | ||||
| 	POP AF | ||||
| 	POP BC | ||||
| 	POP DE | ||||
| 	SCF | ||||
| 	RET | ||||
| 
 | ||||
| ; | ||||
| ;DE - ªã¤  - áâà ¨æ  ®âªàëâ ! | ||||
| ;BC - ᪮«ìª® | ||||
| ;HL - ¡ãä¥à | ||||
| ; | ||||
| ;       PUSH BC | ||||
| ;       LD H,D | ||||
| ;       LD L,E | ||||
| ;       ADD HL,BC | ||||
| ;       JR C,CUT | ||||
| ;       LD HL,BUFER | ||||
| ;       LDIR | ||||
| ;       POP BC | ||||
| ;       RET | ||||
| ;CUT: | ||||
| ;       PUSH HL | ||||
| ;       LD A,L | ||||
| ;       LD L,C | ||||
| ;       LD C,A | ||||
| ;       LD A,H | ||||
| ;       LD H,B | ||||
| ;       LD B,A | ||||
| ; | ||||
| ;       AND A | ||||
| ;	SBC HL,BC | ||||
| ;	LD B,H | ||||
| ;	LD C,L | ||||
| ;	LD HL,BUFER | ||||
| ;	LDIR | ||||
| ;	CALL NEXT_BANK | ||||
| ;	POP BC | ||||
| ;	LD A,B | ||||
| ;	OR C | ||||
| ;	JR Z,LAB | ||||
| ;	LDIR | ||||
| ;LAB:	POP BC | ||||
| ;	RET | ||||
| ; | ||||
| 
 | ||||
| FN_TURBO: | ||||
| 	CP 2 | ||||
| 	JR Z,.FN_TB_ONOFF | ||||
| 	CP 3 | ||||
| 	JR Z,.FN_TB_ONOFF | ||||
| 	CP #12 | ||||
| 	JR Z,.SET_FDD_720 | ||||
| 	CP #13 | ||||
| 	JR Z,.SET_FDD_1440 | ||||
| 	SCF | ||||
| 	RET | ||||
| 
 | ||||
| ;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬ | ||||
| .SET_FDD_720: | ||||
| 	LD A,1 | ||||
| 	OUT (#BD),A                                                     ; !HARDCODE | ||||
| 	AND A | ||||
| 	RET | ||||
| ;!FIXIT ¬¥ï¥¬ ¯«®â®áâì - ¬¥ï¥¬ ¢ á¨á⥬®© áâà ¨æ¥ ¨äã ®¡ í⮬ | ||||
| .SET_FDD_1440: | ||||
| 	LD A,#21 | ||||
| 	OUT (#BD),A                                                     ; !HARDCODE | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| .FN_TB_ONOFF: | ||||
| 	LD C,A | ||||
| 	IN A,(SLOT3) | ||||
| 	LD B,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD DE,(SYS_PAGE.CONFIG_DE) | ||||
| 	LD A,E | ||||
| 	AND #FC | ||||
| 	OR C | ||||
| 	LD E,A | ||||
| 	OUT (SYS_PORT.ON),A | ||||
| 	LD (SYS_PAGE.CONFIG_DE),DE | ||||
| 	LD A,B | ||||
| 	OUT (SLOT3),A | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| 
 | ||||
| ; à §¤¥«¨âì ¡«®ª ¯ ¬ï⨠  ¤¢  ¡«®ª  | ||||
| ; A - ¡«®ª, B - ¤«¨  ¯¥à¢®£® ¡«®ª  ¯®á«¥ à §¤¥«¥¨ï | ||||
| ; ¢ë室: A - ¡«®ª 1, B - ¡«®ª 2 | ||||
| EMM.DivMemBlocks: | ||||
| 	INC B | ||||
| 	DEC B | ||||
| 	SCF | ||||
| 	RET Z | ||||
| 	DEC B | ||||
| 	LD E,A | ||||
| 	CALL EMM.GetMemPage	; ¯®«ãç¨âì ®¬¥à áâà ¨æë ¡«®ª  | ||||
| 	RET C | ||||
| 	LD D,A | ||||
| 
 | ||||
| 	IN A,(SLOT2) | ||||
| 	EX AF,AF' | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	LD H,high (SYS_PAGE.RAMD_FAT - #4000) | ||||
| 	LD L,D | ||||
| 	LD A,(HL) | ||||
| 	LD (HL),0FFH | ||||
| 	LD B,A | ||||
| 
 | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| 	LD A,E | ||||
| 	AND A | ||||
| 	RET | ||||
| 
 | ||||
| ; ᫨âì ¤¢  ¡«®ª  ¯ ¬ï⨠¢ ®¤¨ | ||||
| ; € - ¡«®ª 1, B - ¡«®ª 2 | ||||
| ; ¢ë室: € - ¡«®ª | ||||
| EMM.MergeMemBlocks: | ||||
| 	LD E,A | ||||
| 	IN A,(SLOT2) | ||||
| 	EX AF,AF' | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT2),A | ||||
| 	LD H,high (SYS_PAGE.RAMD_FAT - #4000) | ||||
| 	LD L,E | ||||
| 	LD C,B | ||||
| 	LD B,0 | ||||
| EMM_ADD_L: | ||||
| 	LD A,(HL) | ||||
| 	AND A | ||||
| 	JR Z,EMM_ADD_ERR | ||||
| 	CP 0FFH | ||||
| 	JR Z,EMM_ADD_NEXT | ||||
| 	LD L,A | ||||
| 	DJNZ EMM_ADD_L | ||||
| EMM_ADD_ERR: | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT2),A | ||||
| 	SCF | ||||
| 	RET | ||||
| 
 | ||||
| EMM_ADD_NEXT: | ||||
| 	LD A,C | ||||
| 	AND A | ||||
| 	JR Z,EMM_ADD_ERR | ||||
| 	LD (HL),A | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT2),A | ||||
| 	AND A | ||||
| 	LD A,E | ||||
| 	RET | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -1,824 +0,0 @@ | ||||
| 
 | ||||
| ; | ||||
| ;	DISPLAY "HDD utility" | ||||
| /* | ||||
| P_HD_CS		HDW_DRV	#4152 | ||||
| P_CMD		HDW_COM	#4153 | ||||
| P_HDST		HDR_CTL	#4053 | ||||
| P_S_CNT		HDW_CNT #0152 | ||||
| */ | ||||
| ;HDD_TYPE EQU 1                                                         ; ????? çñ íâ®??? | ||||
| 
 | ||||
| 	MACRO WAIT_HDD | ||||
| .loop: | ||||
| 		LD BC,IDE.Read.Status	 | ||||
| 		IN A,(C) | ||||
| 		BIT IDE.ControlBit.Busy,A | ||||
| 		JR NZ,.loop | ||||
| 	ENDM | ||||
| 
 | ||||
| ;************************************** | ||||
| ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| EXP_HDD_NEW: | ||||
| 	PUSH AF | ||||
| 	LD A,C | ||||
| 	CP #10 | ||||
| 	;JR C,EXP_4X.HDD_CMD | ||||
| 	JR C,HDD_CMD.4x | ||||
| 	POP AF | ||||
| 	JP EXP_HDD  ; !FIXIT ¤ «ìè¥ ¢ ROM ¡ã¤ãâ ®¯ïâì ¯à®¢¥àª¨ áâ àè¨å ¡¨â®¢ ॣ. C, ã©â¨ ª ª-â® ®â í⮣® | ||||
| 
 | ||||
| ; MODULE EXP_4X | ||||
| ; !TODO ®¯â¨¬¨§¨à®¢ âì HD_CMD_X | ||||
| ; C - COMAND ( 5 - RD, 6 - WR ) | ||||
| ; 0 - INIT, 1 - DIAG | ||||
| ;HDD_CMD: | ||||
| ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| HDD_CMD.4x: | ||||
| 	LD A,C								; !!!!! ¬®¦® ã¡à âì, ¢ A ¨ â ª â®, çâ® ¢ C | ||||
| 
 | ||||
| 	AND A | ||||
| 	JP Z,FN_HDD_INIT					; #40 ˆ¨æ¨ «¨§ æ¨ï ¢¨ç¥áâ¥à   | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_RECAL					; #41 <EFBFBD>¥ª «¨¡à®¢ª  ¢¨ç¥áâ¥à   | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_TEST_IDE				; #42 ’¥áâ  «¨ç¨ï ¨â¥àä¥©á  IDE | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_PREPARE					; #43 <EFBFBD>®¤£®â®¢ª  ¢¨ç¥áâ¥à  ª ®¯¥à æ¨¨ ç⥨ï/§ ¯¨á¨  | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_READ_BPB				; #44 —¨â âì BPB ¯¥à¢®£® à §¤¥«  | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_READ					; #45 —¨â âì ᥪâ®à  á ¢¨ç¥áâ¥à   | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_WRITE					; #46 <EFBFBD>¨á âì ᥪâ®à    ¢¨ç¥áâ¥à | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_PART					; #47 set IDE number (<EFBFBD> áâனª  ¯ àâ¨æ¨© ¨ master/slave)??? | ||||
| 	DEC A | ||||
| 	JP Z,FN_HDD_READ_NEXT				; #48 —¨â âì á«¥¤ãî騩 ᥪâ®à (ONLY FOR LBA!) | ||||
| 
 | ||||
| 	POP AF ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| 	SCF | ||||
| 	RET | ||||
| ;======================================= | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_BPB_PREP: | ||||
| 	LD	D,A | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR.sectors) | ||||
| 	LD	E,A | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	A,D | ||||
| 	LD	D,#00 | ||||
| 	LD	IX,#0000 | ||||
| 	LD	B,#01 | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_PREPARE: | ||||
| 	PUSH	AF | ||||
| 	PUSH	HL | ||||
| 	CALL	HD_CALC_SECS | ||||
| 	JR	NC,HD_PREP_L1 | ||||
| 	POP	HL | ||||
| 	POP	AF | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_PREP_L1: | ||||
| 	LD A,B | ||||
| 	LD BC,IDE.Write.Counter												; “áâ ®¢¨âì ç¨á«® ᥪâ®à®¢ ¤«ï § ¯¨á¨ | ||||
| 	OUT (C),A | ||||
| 
 | ||||
|  IF IDE_Optimization | ||||
|  	INC C																; IDE.Write.Sector | ||||
| 	OUT (C),L															; ‘…Š’Ž<EFBFBD> | ||||
| 	INC C																; IDE.Write.CylinderLow | ||||
| 	OUT (C),E															; ¤®à®¦ª  low | ||||
| 	INC C																; IDE.Write.CylinderHigh | ||||
| 	OUT (C),D		 | ||||
|  ELSE | ||||
| 	LD BC,IDE.Write.Sector | ||||
| 	OUT (C),L															; ‘…Š’Ž<EFBFBD> | ||||
| 	LD BC,IDE.Write.CylinderLow | ||||
| 	OUT (C),E															; ¤®à®¦ª  low | ||||
| 	LD BC,IDE.Write.CylinderHigh | ||||
| 	OUT (C),D															; ¤®à®¦ª  high | ||||
|  ENDIF | ||||
| 
 | ||||
| 	LD BC,IDE.Read.Control | ||||
| ;	DEC B | ||||
| 	IN A,(C) | ||||
| 	AND #F0																; !!!!!  ¯®á¬®âà¥âì | ||||
| 	OR H | ||||
| 	INC B																; IDE.Write.DriveCtrl | ||||
| 
 | ||||
| 	OUT (C),A | ||||
| 
 | ||||
| 	POP HL																; BUFER & PAGE | ||||
| 	POP AF | ||||
| 	AND A | ||||
| 	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| NEXT_ADD_SEC: | ||||
| 	PUSH AF | ||||
| 
 | ||||
| 	LD A,B | ||||
| 	LD BC,IDE.Write.Counter												; “áâ ®¢¨âì ç¨á«® ᥪâ®à®¢ ¤«ï § ¯¨á¨ | ||||
| 	OUT (C),A | ||||
| 
 | ||||
|  IF IDE_Optimization | ||||
| 	DEC B | ||||
| 	INC C | ||||
| 	IN A,(C)															; IDE.Read.Sector | ||||
| 	ADC A,E | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.Sector | ||||
| 
 | ||||
| 	DEC B | ||||
| 	INC C | ||||
| 	IN A,(C)															; IDE.Read.CylinderLow | ||||
| 	ADC A,D | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.CylinderLow | ||||
| 
 | ||||
| 	DEC B | ||||
| 	INC C | ||||
| 	IN A,(C)															; IDE.Read.CylinderHigh | ||||
| 	ADC A,0 | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.CylinderHigh | ||||
| 
 | ||||
| 	LD BC,IDE.Read.Control | ||||
| 	IN A,(C) | ||||
|  ELSE | ||||
| 	LD BC,IDE.Read.Sector | ||||
| 	IN A,(C) | ||||
| 	ADC A,E | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.Sector | ||||
| 
 | ||||
| 	LD BC,IDE.Read.CylinderLow | ||||
| 	IN A,(C) | ||||
| 	ADC A,D | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.CylinderLow | ||||
| 
 | ||||
| 	LD BC,IDE.Read.CylinderHigh | ||||
| 	IN A,(C) | ||||
| 	ADC A,0 | ||||
| 	INC B | ||||
| 	OUT (C),A															; IDE.Write.CylinderHigh | ||||
| 
 | ||||
| 	LD BC,IDE.Read.Control | ||||
| 	IN A,(C) | ||||
|  ENDIF | ||||
| 
 | ||||
| 	LD D,A | ||||
| 	ADC A,0 | ||||
| 	AND #0F | ||||
| 	LD E,A | ||||
| 	LD A,D | ||||
| 	AND #F0 | ||||
| 	OR E | ||||
| 	INC B | ||||
| 	OUT (C),A															; ????? HEADS?! IDE.Write.DriveCtrl | ||||
| 
 | ||||
| 	POP AF | ||||
| 	RET | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_PREPARE:															; <EFBFBD>Ž„ƒŽ’ނЀ Š ‚<EFBFBD>…˜<EFBFBD>ˆŒ Ž<EFBFBD>…<EFBFBD>€–ˆŸŒ R/W | ||||
| 	POP AF | ||||
| 	AND A | ||||
| 	INC B | ||||
| 	DEC B | ||||
| 	RET Z | ||||
| 
 | ||||
| 	CALL HD_WAIT | ||||
| 	RET C | ||||
| 
 | ||||
| 	CALL HD_PREPARE | ||||
| 	RET C | ||||
| 
 | ||||
| 	EXX | ||||
| 	LD C,SLOT3 | ||||
| 	IN B,(C) | ||||
| 	EXX | ||||
| 	OUT (SLOT3),A | ||||
| 	EX AF,AF' | ||||
| 
 | ||||
| 	SAFE_PORTY | ||||
| 
 | ||||
| 	LD BC,IDE.Write.Command												; ????? | ||||
| 	LD A,#20															; ????? | ||||
| ;	OUT (C),A | ||||
| 	AND A																; ????? | ||||
| 
 | ||||
| 	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_READ_BPB: | ||||
| 	POP	AF | ||||
| 	CALL	HD_WAIT | ||||
| 	RET	C | ||||
| 	CALL	HD_BPB_PREP | ||||
| 	RET	C | ||||
| 
 | ||||
| 	JR	HD_RD_L1 | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ; FOR LBA ONLY - NEXT_READ | ||||
| FN_HDD_READ_NEXT: | ||||
| ; HL - bufer, A - page | ||||
| ; B - numer of sectors | ||||
| ; DE - add_par (next+DE)  (d.b. 1 for NEXT) | ||||
| 	POP AF | ||||
| 	AND A | ||||
| 	INC B | ||||
| 	DEC B | ||||
| 	RET Z								; ret if 0 sectors | ||||
| 	CALL HD_WAIT | ||||
| 	RET C | ||||
| 	CALL NEXT_ADD_SEC | ||||
| 	JR HD_RD_L1 | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_READ: | ||||
| 	POP AF								; HL - BUFER, A - PAGE !!! | ||||
| 
 | ||||
| HD_RD_CMD: | ||||
| 	AND A | ||||
| 	INC B | ||||
| 	DEC B | ||||
| 	RET Z | ||||
| 	CALL HD_WAIT | ||||
| 	RET C | ||||
| 
 | ||||
| 	CALL HD_PREPARE | ||||
| 	RET C | ||||
| 
 | ||||
| HD_RD_L1: | ||||
| 	EXX | ||||
| 	LD C,SLOT3 | ||||
| 	IN B,(C) | ||||
| 	EXX | ||||
| 	OUT (SLOT3),A | ||||
| 	EX AF,AF' | ||||
| 
 | ||||
| 	SAFE_PORTY | ||||
| 
 | ||||
| 	LD BC,IDE.Write.Command | ||||
| 	LD A,#20 | ||||
| 	OUT (C),A | ||||
| 
 | ||||
| HD_RD_L2: | ||||
| 
 | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	BIT IDE.ControlBit.DataRequest,A | ||||
| 	JR NZ,HD_READ_CONT | ||||
| 
 | ||||
| 	ZERO_PORTY | ||||
| 
 | ||||
| HD_RET: | ||||
| 	EXX | ||||
| 	OUT (C),B | ||||
| 	EXX | ||||
| 	LD BC,IDE.Read.Error | ||||
| 	IN A,(C) | ||||
| 	AND A | ||||
| 	SCF | ||||
| 	RET NZ | ||||
| 
 | ||||
| 	EX AF,AF' | ||||
| 	AND A | ||||
| 	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_READ_CONT: | ||||
| 	LD BC,IDE.Read.Data | ||||
| 
 | ||||
| .loop_read1: | ||||
| 	DUP 16 | ||||
| 		INI								; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®. | ||||
| 	EDUP | ||||
|     JP NZ,.loop_read1 | ||||
| .loop_read2: | ||||
| 	DUP 16 | ||||
| 		INI								; ¢á¥£® 16 à § INI - ®¯â¨¬ «ì®. | ||||
| 	EDUP | ||||
|     JP NZ,.loop_read2 | ||||
| 
 | ||||
| 	LD A,H | ||||
| 	OR L | ||||
| 	JR NZ,HD_RD_L2 | ||||
| 
 | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	EX AF,AF' | ||||
| 	LD HL,SYS_PAGE.RAMD_FAT | ||||
| 	LD L,A | ||||
| 	LD A,(HL) | ||||
| 	OUT (SLOT3),A | ||||
| 	EX AF,AF' | ||||
| 	LD HL,#C000															; !!!!! | ||||
| 	JR HD_RD_L2 | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_WRITE: | ||||
| 	POP	AF								; HL - BUFER, A - PAGE !!! | ||||
| 
 | ||||
| HD_WR_CMD: | ||||
| 	AND	A | ||||
| 	INC	B | ||||
| 	DEC	B | ||||
| 	RET	Z | ||||
| 
 | ||||
| 	CALL	HD_WAIT | ||||
| 	RET	C | ||||
| 	CALL	HD_PREPARE | ||||
| 	RET	C | ||||
| 
 | ||||
| 	EXX  | ||||
| 	LD	C,SLOT3 | ||||
| 	IN	B,(C) | ||||
| 	EXX  | ||||
| 	OUT	(SLOT3),A | ||||
| 	EX	AF,AF' | ||||
| 
 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,#30 | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| HD_WR_L2: | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	BIT IDE.ControlBit.DataRequest,A | ||||
| 	JP Z,HD_RET | ||||
| 
 | ||||
| ;	IF HDD_TYPE = 1 | ||||
| 		LD	BC,IDE.Write.Data | ||||
| 		LD	D,32 | ||||
| HD_WR_LOOP: | ||||
| 		DUP 16 | ||||
| 			OUTI						; ¢á¥£® 16 à § OUTI - ®¯â¨¬ «ì®. | ||||
| 		EDUP | ||||
| 
 | ||||
| 		DEC	D | ||||
| 		JP	NZ,HD_WR_LOOP | ||||
| /* | ||||
| 	ELSE | ||||
| 		LD BC,P_DATS+#100 | ||||
| 		LD D,64 | ||||
| HD_WR_LOOP: | ||||
| 		DUP 4 | ||||
| 			INC HL | ||||
| 			OUTI | ||||
| 			DEC HL | ||||
| 			DEC HL | ||||
| 			OUTI | ||||
| 			INC HL | ||||
| 		EDUP | ||||
| 		 | ||||
| 		DEC D | ||||
| 		JR NZ,HD_WR_LOOP | ||||
| 	ENDIF | ||||
| */ | ||||
| 	LD	A,H | ||||
| 	OR	L | ||||
| 	JR	NZ,HD_WR_L2 | ||||
| 
 | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	EX	AF,AF' | ||||
| 	LD	HL,SYS_PAGE.RAMD_FAT | ||||
| 	LD	L,A | ||||
| 	LD	A,(HL) | ||||
| 	OUT	(SLOT3),A | ||||
| 	EX	AF,AF' | ||||
| 	LD	HL,#C000						;!!!!! | ||||
| 	JR	HD_WR_L2 | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_RECAL: | ||||
| 	POP	AF	 | ||||
| HD_CMD1_EX: | ||||
| 	LD	A,#A0 | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	OUT	(C),A | ||||
| 	LD	A,#90							; DIAGNOSTICS | ||||
| 	CALL HD_CMD_EXE | ||||
| 	AND	A | ||||
| 	BIT	IDE.ControlBit.Error,A | ||||
| 	RET	Z | ||||
| 	LD	BC,IDE.Read.Error | ||||
| 	IN	A,(C) | ||||
| 	CP	1																; !!!!! £«ïãâì | ||||
| 	RET	Z | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_TEST_IDE: | ||||
| 	POP	AF | ||||
| 	LD	E,#00 | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	LD	A,#A0															; !!!!! £«ïãâì | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	CALL	TEST_HDD_DRV | ||||
| 
 | ||||
| 	JR	NZ,NO_HDD1 | ||||
| 	SET	0,E | ||||
| NO_HDD1: | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	LD	A,#B0															; !!!!! £«ïãâì | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	CALL	TEST_HDD_DRV | ||||
| 
 | ||||
| 	JR	NZ,NO_HDD2 | ||||
| 	SET	1,E | ||||
| NO_HDD2: | ||||
| 	LD	A,E | ||||
| 	AND	A | ||||
| 	SCF  | ||||
| 	RET	Z								; HDD absent ! | ||||
| 	AND	A | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[DIFFERENT] | ||||
| ; <EFBFBD>¥ ¤®«¦  ¯®àâ¨âì ॣ¨áâà E!!! | ||||
| TEST_HDD_DRV: | ||||
| ; EXP_HDD.ASM variant | ||||
| 	LD HL,#01FE															; ????? | ||||
| 	LD BC,IDE.Write.Counter | ||||
| 	OUT (C),L | ||||
|  IF IDE_Optimization | ||||
| 	INC C | ||||
| 	OUT (C),H															; IDE.Write.Sector | ||||
| 
 | ||||
| 	DEC C | ||||
| 	INC B | ||||
| 	IN A,(C)															; ????? IDE.Write.Counter+#100 | ||||
| 	CP L | ||||
| 	RET NZ | ||||
| 	INC C | ||||
| 
 | ||||
|  ELSE | ||||
| 	LD BC,IDE.Write.Sector | ||||
| 	OUT (C),H | ||||
| 	LD BC,IDE.Write.Counter+#100 | ||||
| 	IN A,(C) | ||||
| 	CP L | ||||
| 	RET NZ | ||||
| 	LD BC,IDE.Write.Sector+#100 | ||||
|  ENDIF | ||||
| 
 | ||||
| 	IN A,(C)															; ????? IDE.Write.Sector+#100 | ||||
| 	CP H | ||||
| 	RET | ||||
| /* | ||||
| TEST_HDD_DRV: | ||||
| ; EXTENDED.ASM variant | ||||
| 	LD	HL,#00FF						;???!!!! | ||||
| 	LD	BC,IDE.Write.CylinderLow | ||||
| 	OUT	(C),L | ||||
|  IF IDE_Optimization | ||||
| 	INC C | ||||
| 	OUT	(C),H															; IDE.Write.CylinderHigh | ||||
| 					 | ||||
| 	INC B | ||||
| 	DEC C | ||||
| 	IN	A,(C)															; ????? ’ãâ ॣ¨áâà BC = #0254 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï? | ||||
| 	CP	L | ||||
| 	RET	NZ | ||||
| 	INC C | ||||
| 
 | ||||
|  ELSE | ||||
| 	LD	BC,IDE.Write.CylinderHigh | ||||
| 	OUT	(C),H | ||||
| 	LD	BC,#0254						;???!!!! | ||||
| 	IN	A,(C) | ||||
| 	CP	L | ||||
| 	RET	NZ | ||||
| 	LD	BC,#0255						;???!!!! | ||||
|  ENDIF | ||||
| 
 | ||||
| 	IN	A,(C)															; ????? ’ãâ ॣ¨áâà BC = #0255 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï? | ||||
| 	CP	H | ||||
| 	RET | ||||
| */ | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| FN_HDD_INIT: | ||||
| 	POP	AF | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	LD	A,#A0 | ||||
| 	OUT	(C),A | ||||
| 	CALL    TEST_HDD_DRV | ||||
| 	JR	NZ,HD_ABSENT | ||||
| HD_C0_L3: | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	LD	A,#EC															; !HARDCODE | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	BIT	IDE.ControlBit.DataRequest,A | ||||
| 	JR	NZ,HD_C0_L2 | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_ABSENT: | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	LD	A,#B0															; !HARDCODE | ||||
| 	OUT	(C),A | ||||
| 	CALL	TEST_HDD_DRV | ||||
| 	JR	Z,HD_C0_L3 | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_C0_L2: | ||||
| 	LD	BC,IDE.Read.Data | ||||
| 	LD	HL,SYS_PAGE.HD_IDF_ADR | ||||
| 	IN	A,(SLOT3) | ||||
| 	LD	D,A | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	INIR  | ||||
| 	INIR  | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR.sectors)			; ç¨á«® ᥪâ®à®¢ | ||||
| 	LD	C,A | ||||
| 	LD	HL,0 | ||||
| 	LD	B,H | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR.heads)			; ç¨á«® £®«®¢®ª | ||||
| .loop: | ||||
| 	ADD	HL,BC | ||||
| 	DEC	A | ||||
| 	JR	NZ,.loop | ||||
| 	LD	(SYS_PAGE.HD_IDF_ADR.sec_cyl),HL | ||||
| 
 | ||||
| 	WAIT_HDD | ||||
| 
 | ||||
| 	LD	BC,IDE.Read.Control | ||||
| ;	DEC	B | ||||
| 	IN	A,(C) | ||||
| 	AND	#10 | ||||
| 	LD	B,A | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR.heads)			; ç¨á«® £®«®¢®ª | ||||
| 
 | ||||
| 	DEC	A | ||||
| 	AND	#0F | ||||
| 	OR	#A0 | ||||
| 	OR	B | ||||
| 
 | ||||
| 	LD	H,A | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR+99)												; ????? LBA? | ||||
| 	BIT	1,A | ||||
| 	JR	Z,HD_C0_NO_LBA | ||||
| 	SET	6,H | ||||
| 
 | ||||
| HD_C0_NO_LBA: | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	OUT	(C),H | ||||
| 
 | ||||
| 	LD	A,(SYS_PAGE.HD_IDF_ADR.sectors)			; ç¨á«® ᥪâ®à®¢ | ||||
| 
 | ||||
| 	LD	BC,IDE.Write.Counter | ||||
| 	OUT	(C),A | ||||
| 	LD	A,D | ||||
| 	OUT	(SLOT3),A | ||||
| 	 | ||||
| 	LD	A,#91							; SET HDD PARAMETERS | ||||
| 	CALL	HD_CMD_EXE | ||||
| 	RET | ||||
| 
 | ||||
| ;	RET C | ||||
| ;	LD A,1FH	; RECALIBRATE | ||||
| ;	CALL HD_CMD_EXE | ||||
| ;	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_CMD_EXE: | ||||
| 	CALL	HD_WAIT | ||||
| 	RET	C | ||||
| 	LD	BC,IDE.Write.Command | ||||
| 	OUT	(C),A | ||||
| HD_WAIT: | ||||
| 	PUSH	DE | ||||
| 	PUSH	BC | ||||
| 	PUSH	AF | ||||
| 	LD	DE,0 | ||||
| HD_WAIT1: | ||||
| 	LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	BIT	IDE.ControlBit.Busy,A | ||||
| 	JR	Z,HD_W_EXIT | ||||
| 	DEC	DE | ||||
| 	LD	A,D | ||||
| 	OR	E | ||||
| 	JR	NZ,HD_WAIT1 | ||||
| 	POP	AF | ||||
| 	POP	BC | ||||
| 	POP	DE | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| HD_W_EXIT: | ||||
| 	POP AF | ||||
| 	POP BC | ||||
| 	POP DE | ||||
| 	AND A | ||||
| 	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[DIFFERENT] | ||||
| /* | ||||
| ;EXTENDED.ASM Version | ||||
| 
 | ||||
| HDD_LBA:								;???!!!! | ||||
| 	POP	BC | ||||
| 	LD	L,E | ||||
| 	LD	E,D | ||||
| 	LD	D,XL | ||||
| 	XOR	A | ||||
| 	LD	H,A | ||||
| 	RET  | ||||
| 
 | ||||
| HD_CALC_SECS: | ||||
| 	LD	A,XH | ||||
| 	AND	A | ||||
| 	SCF  | ||||
| 	RET	NZ								; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD | ||||
| 
 | ||||
| 	PUSH	BC | ||||
| 	LD	BC,IDE.Write.DriveCtrl | ||||
| 	DEC	B | ||||
| 	IN	A,(C) | ||||
| 	BIT	6,A | ||||
| 	JR	NZ,HDD_LBA | ||||
| ;	POP BC								;!!!!!  ¯®á¬®âà¥âì | ||||
| */ | ||||
| 
 | ||||
| ;EXP_HDD.ASM Version | ||||
| HDD_LBA: | ||||
| 	POP BC | ||||
| 	LD L,E | ||||
| 	LD E,D | ||||
| 	LD	D,XL | ||||
| 	LD	A,XH | ||||
| 	AND #0F																; XOR A ????? à §®¡à âìáï | ||||
| 	LD H,A | ||||
| 	RET | ||||
| 
 | ||||
| HD_CALC_SECS: | ||||
| 	PUSH BC | ||||
| 	LD BC,IDE.Read.Control | ||||
| ;	DEC B | ||||
| 	IN A,(C) | ||||
| 	BIT 6,A | ||||
| 	JR NZ,HDD_LBA | ||||
| 	POP BC																; ᨬ ¥¬ § ç¥¨¥ ¤«ï ª®à४⮣® ret | ||||
| 
 | ||||
| 	LD A,XH | ||||
| 	AND A | ||||
| 	SCF | ||||
| 	RET NZ								; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------[OK] | ||||
| ;	IX,DE -  ¡á®«îâë© ®¬¥à ᥪâ®à  | ||||
| 	PUSH IX | ||||
| 	POP HL | ||||
| 
 | ||||
| 	IN A,(SLOT3) | ||||
| 	LD C,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,C | ||||
| 	LD (SYS_PAGE.COPY_SLOT3),A | ||||
| 
 | ||||
| ; HL,DE - ®¬¥à ᥪâ®à  | ||||
| ; BC - ç¨á«® ᥪâ®à®¢   樫¨¤à¥ | ||||
| 	LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl)				; ç¨á«® ᥪâ®à®¢   樫¨¤à¥ | ||||
| 	LD A,16								; HL,DE à §¤¥«¨âì   BC | ||||
| 	SCF | ||||
| DIV_LOOP: | ||||
| 	EX	DE,HL | ||||
| 	ADD HL,HL | ||||
| 	EX	DE,HL | ||||
| 	ADC HL,HL | ||||
| 
 | ||||
| 	SBC HL,BC							; áà ¢¨âì HL ¨ BC | ||||
| 	JR	NC,NO_ADD						; ¯¥à¥®á  ¥ ¡ë«® - +1! | ||||
| 	ADD	HL,BC | ||||
| 	DEC	A | ||||
| 	JR	NZ,DIV_LOOP | ||||
| 	JR	DIV_END | ||||
| NO_ADD: | ||||
| 	INC DE | ||||
| 	DEC A | ||||
| 	JR NZ,DIV_LOOP | ||||
| DIV_END: | ||||
| ; DE - १ã«ìâ â, HL - ®áâ â®ª | ||||
| ; DE - 樫¨¤à | ||||
| 	LD A,(SYS_PAGE.HD_IDF_ADR+12)                                   ; !HARDCODE .sectors | ||||
| ; A - ç¨á«® ᥪâ®à®¢   ¤®à®¦ª¥ | ||||
| ; HL - ®¬¥à ᥪâ®à  ¢ 樫¨¤à¥ | ||||
| 	LD B,0 | ||||
| 	LD C,A | ||||
| ;	LD BC,(MS_BPB+S_P_T)                                            ; —ˆ‘‹Ž ‘…Š’Ž<EFBFBD>Ž‚ <EFBFBD>€ „Ž<EFBFBD>ކЅ | ||||
| 	XOR A | ||||
| HD_CALC_LOOP2: | ||||
| 	SBC HL,BC | ||||
| 	INC A | ||||
| 	JR NC,HD_CALC_LOOP2 | ||||
| 
 | ||||
| 	DEC	A                                                       ; A - £®«®¢ª  | ||||
| 	ADD	HL,BC							; L - ᥪâ®à | ||||
| 	INC	L | ||||
| 	LD	H,A                                                     ; HL - HEAD,SEC | ||||
| 
 | ||||
| 	LD	A,(SYS_PAGE.COPY_SLOT3) | ||||
| 	OUT	(SLOT3),A | ||||
| 
 | ||||
| 	AND	A | ||||
| 	RET | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| FN_HDD_PART: | ||||
| 	POP	AF | ||||
| 	BIT	0,A | ||||
| 	LD	A,#21															; !HARDCODE | ||||
| 	JR	Z,IDE_1 | ||||
| 	LD	A,#01															; !HARDCODE | ||||
| IDE_1: | ||||
| 	OUT	(#BC),A															;!!!!!  ¯®á¬®âà¥âì | ||||
| 	RET | ||||
| 
 | ||||
| ; ENDMODULE | ||||
| ;************************************************ | ||||
| 
 | ||||
| ; ????? | ||||
| ;	DB 'HDD_DRV_END' | ||||
| ; ‚室: | ||||
| ; C - ª®¬ ¤  | ||||
| ;   0 - INIT - ¢å®¤ëå ¯ à ¥â => A - ç¨á«® ¯®¤¤¥à¦¨¢ ¥¬ëå ¤¨áª®¢. | ||||
| ;   1 - RESET - ¢ë¡®à ¤¨áª  A - ®¬¥à ¤¨áª  ®â 0 => | ||||
| ;   2 - (STATUS) !!!!! TEST? | ||||
| ;   3 - MEDIA CHECK - A - ®¬¥à ¤¨áª  => A = 0 - old. #FF - new (¢á¥£¤  #FF) !!!!! PREPARE??? | ||||
| ;   4 - READ BPB - A - ¤¨áª HL -  ¤à¥á ¢ ⥪ã饩 áâà ¨æ¥. | ||||
| ;   5 - READ - A - ¤¨áª, IX:DE ᥪâ®à, HL -  ¤à¥á, B - ç¨á«® ᥪâ®à®¢ | ||||
| ;   6 - WRITE - '' - | ||||
| ;	7 - PART | ||||
| ;	8 - READ_NEXT | ||||
| ; | ||||
| ; ®è¨¡ª¨ - CF - A - ®è¨¡ª  | ||||
| ; | ||||
| ; 0 - ¥â ®è¨¡ª¨ | ||||
| ; 1 - ¥¢¥à ï ª®¬ ¤  | ||||
| ; 2 - ¥¢¥àë© ®¬¥à ¤¨áª  | ||||
| ; 3 - ¥¢¥àë© ä®à¬ â (¥ MS-DOS) | ||||
| ; 4 - ¥â £®â®¢®á⨠| ||||
| ; 5 - ®è¨¡ª  ¯®§¨æ¨®¨à®¢ ¨ï | ||||
| ; 6 - ᥪâ®à ¥  ©¤¥ | ||||
| ; 7 - ®è¨¡ª  CRC | ||||
| ; 8 - § é¨â  § ¯¨á¨ | ||||
| ; 9 - ®è¨¡ª  ç⥨ï | ||||
| ; 10 - ®è¨¡ª  § ¯¨á¨ | ||||
| ; 11 - ƒ‹žŠ | ||||
| ; | ||||
| @ -1,474 +0,0 @@ | ||||
| 
 | ||||
| ; | ||||
| ; It's disk drive BIOS extender for functions 5xh. | ||||
| ;--------------------------------------------------------------- | ||||
| ;Version! Description | ||||
| ;--------------------------------------------------------------- | ||||
| ;  2.32	! Removed `DI' Disabled	Interupt instruction in	HDRIVER6 | ||||
| ;	! function load	sectors. | ||||
| ;	! Fixed	bug waiting slave device in AUTOIDE. | ||||
| 
 | ||||
| ;SPRINTER EQU	97 | ||||
| ;SPRINTER EQU	2000 | ||||
| ;	DEVICE ZXSPECTRUM4096 | ||||
| 
 | ||||
| /* | ||||
| ;HDD_TYPE	EQU	1 | ||||
| 	MACRO WAIT_HDD | ||||
| .LL1: | ||||
| 		LD BC,P_HDST | ||||
| 		IN A,(C) | ||||
| 		BIT 7,A | ||||
| 		JR NZ,.LL1 | ||||
| 	ENDM | ||||
| */ | ||||
| 
 | ||||
| ;	ORG	#0000 | ||||
| 
 | ||||
| ;	INCLUDE	'../VERSION.INC' | ||||
| ;	INCLUDE '../BIOS.INC' | ||||
| 
 | ||||
| ;VER	EQU	2	;Version disk subsystem | ||||
| ;MOD	EQU	40 | ||||
| 
 | ||||
| ;PAGE1	EQU	#A2 | ||||
| ;PAGE2	EQU	#C2 | ||||
| ;INT_ADRESS	EQU	#C124 | ||||
| ;INT_PAGE	EQU	#C126 | ||||
| ;INT_ID	EQU	#C127 | ||||
| ;BIOS	EQU	#3FD0 | ||||
| ;	DS	#3FD0,#FF | ||||
| 
 | ||||
| ;------------[Begin of ROM]------------- | ||||
| ROM_START: | ||||
| 	DI  | ||||
| 	HALT  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;--------------[checksum]--------------- | ||||
| 	BLOCK 4-$,#FF | ||||
| Check_Sum: | ||||
| 	DB #FF,#FF,#FF,#FF					; ¬¥áâ® ¤«ï ª®â஫쮩 á㬬ë | ||||
| ;--------------------------------------- | ||||
| 	BLOCK #10-$,#FF | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;----------------[int]------------------ | ||||
| 	BLOCK #38-$,#FF	 | ||||
| 
 | ||||
| INT: | ||||
| 	PUSH	HL | ||||
| 	PUSH	BC | ||||
| 	PUSH	AF | ||||
| 	LD	C,SLOT3 | ||||
| 	IN	B,(C) | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(C),A | ||||
| 
 | ||||
| 	LD	A,(SYS_PAGE.INT_ID) | ||||
| 	CP	#AA | ||||
| 	JR	Z,YESINT | ||||
| 	OUT	(C),B | ||||
| 	JR	NOINT | ||||
| YESINT: | ||||
| 	LD	HL,(SYS_PAGE.INT_ADRESS) | ||||
| 	LD	A,H | ||||
| 	OR	L | ||||
| 	LD	A,(SYS_PAGE.INT_PAGE) | ||||
| 	OUT	(C),B | ||||
| 	CALL	NZ,EXTINT | ||||
| NOINT: | ||||
| 	POP	AF | ||||
| 	POP	BC | ||||
| 	POP	HL | ||||
| 	EI  | ||||
| 	RETI  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;----------------[NMI]------------------ | ||||
| 	_mInfoBLOCK #66-$,#FF | ||||
| NMI: | ||||
| 	RETN | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;----------------[int]------------------ | ||||
| EXTINT: | ||||
| 	OR	A | ||||
| 	RET	Z | ||||
| 	LD	C,SLOT1 | ||||
| 	BIT	7,H | ||||
| 	JR	Z,L1 | ||||
| 	LD	C,SLOT2 | ||||
| 	BIT	6,H | ||||
| 	JR	Z,L1 | ||||
| 	LD	C,SLOT3 | ||||
| L1: | ||||
| 	IN	B,(C) | ||||
| 	PUSH	BC | ||||
| 	OUT	(C),A | ||||
| 	CALL	JPHL | ||||
| 	POP	BC | ||||
| 	OUT	(C),B | ||||
| 	RET  | ||||
| JPHL: | ||||
| 	JP	(HL) | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ; | ||||
| ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| HDD_FN_5x: | ||||
| 	POP	AF | ||||
|         CALL    HDD_CMD.FN5X | ||||
| 	JP	RET_TO_EXP | ||||
| 
 | ||||
|  ;HD_CMD_X | ||||
|  ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| HDD_CMD_4X: | ||||
|         SET     6,C | ||||
|         CALL    ToBIOS_FromEXT | ||||
|         RET | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; !TODO ; !FIXIT | ||||
| ;                               ; SCF | ||||
| ;                               ; BIT	7,C | ||||
| ; !FIXIT | ||||
| ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| HDD_CMD: | ||||
|         push af                 ; RET	NZ | ||||
|         ld a,%00011111          ; BIT	6,C | ||||
|         sub c                   ; RET	NZ | ||||
|         jp c,.exit              ; BIT	5,C | ||||
|         pop af                  ; RET	NZ | ||||
| 	BIT	4,C | ||||
|         JP	Z,HDD_CMD_4X	; 4xh functions	 ;C <  #10              ; !TEST new_api | ||||
| ; 5xh functions   #C0 - CD ROM, #80 - HARD DISK, #60 - RAM DISK, #00 - FLOPPY DISK | ||||
| .FN5X: | ||||
| 	RES	4,C                                                     ;C >= #10 | ||||
| 	INC	C | ||||
| 	DEC	C | ||||
| 	JP	Z,.RESERVED       ;#50 | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_RESET       ;#51 - Reset drive | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_READ_LONG   ;#52 - Long read | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_WRITE_LONG  ;#53 - Long write | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_VERIFY      ;#54 - Verify sectors | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_READ        ;#55 - Read sectors | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_WRITE       ;#56 - Write sectors | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_DETECT      ;#57 - Detect | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_GET_PAR     ;#58 - Get Media parameters | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_SET_PAR     ;#59 - Set Media parameters | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_VERSION     ;#5A - Version number | ||||
| 	DEC	C | ||||
| 	JP	Z,.RESERVED       ;#5B | ||||
| 	DEC	C | ||||
| 	JP	Z,.RESERVED       ;#5C | ||||
| 	DEC	C | ||||
| 	JP	Z,.RESERVED       ;#5D | ||||
| 	DEC	C | ||||
| 	JP	Z,.RESERVED       ;#5E | ||||
| 	DEC	C | ||||
| 	JP	Z,DRV_CONFIG      ;#5F - Configuration | ||||
| .RESERVED: | ||||
| 	LD	A,1                                                     ;!HARDCODE error code | ||||
| 	SCF  | ||||
| 	RET  | ||||
| .exit:  POP     AF | ||||
|         SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_VERSION: | ||||
| 	LD	HL,0 | ||||
| 	LD	BC,0 | ||||
| 	LD	DE,Disk_subsystem_ver_hex | ||||
| 	AND	A | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_CONFIG:																; ????? çâ® §  äãªæ¨ï ¨ ªã¤  㪠§ë¢ ¥â IX | ||||
| 	IN	A,(SLOT3) | ||||
| 	PUSH	AF | ||||
| 	PUSH	IY | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	(IX+0),#04 | ||||
| 	LD	(IX+1),#00	;FDD COUNT | ||||
| 	LD	(IX+2),#00	;HDD COUNT | ||||
| 	LD	(IX+3),#00	;CDD COUNT | ||||
| 	LD	(IX+4),#00	;END CODE | ||||
| ;Calculating FDD devices | ||||
| 	LD	HL,FDD_INI_TABLE.FDD_0 | ||||
| 	INC	(IX+1) | ||||
| 	LD	B,8 | ||||
| 	LD	A,#FF | ||||
| TFD0: | ||||
| 	CP	(HL) | ||||
| 	INC	HL | ||||
| 	JR	NZ,YYYFD0 | ||||
| 	DJNZ	TFD0 | ||||
| 	DEC	(IX+1) | ||||
| YYYFD0: | ||||
| 	LD	HL,FDD_INI_TABLE.FDD_1 | ||||
| 	INC	(IX+1) | ||||
| 	LD	B,8 | ||||
| 	LD	A,#FF | ||||
| TFD1: | ||||
| 	CP	(HL) | ||||
| 	INC	HL | ||||
| 	JR	NZ,YYYFD1 | ||||
| 	DJNZ	TFD1 | ||||
| 	DEC	(IX+1) | ||||
| YYYFD1: | ||||
| ;Calculating IDE devices | ||||
| 	LD	IY,IDE.INIT_TBL_IDE0 | ||||
| 	LD	A,(IY+IDE.HDD_INIT_TABLE.DriveType)	;IDE TYPE 1-HDD, 2-CD-ROM | ||||
| 	CP	#FF | ||||
| 	JR	Z,ABSIDE0 | ||||
| 	CP	IDE.Device.HDD | ||||
| 	JR	NZ,NOT_HD0 | ||||
| 	INC	(IX+2) | ||||
| NOT_HD0: | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JR	NZ,NOT_CD0 | ||||
| 	INC	(IX+3) | ||||
| NOT_CD0: | ||||
| ABSIDE0: | ||||
| 	LD	IY,IDE.INIT_TBL_IDE1 | ||||
| 	LD	A,(IY+IDE.HDD_INIT_TABLE.DriveType)	;IDE TYPE 1-HDD, 2-CD-ROM | ||||
| 	CP	#FF | ||||
| 	JR	Z,ABSIDE1 | ||||
| 	CP	IDE.Device.HDD | ||||
| 	JR	NZ,NOT_HD1 | ||||
| 	INC	(IX+2) | ||||
| 
 | ||||
| NOT_HD1: | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JR	NZ,NOT_CD1 | ||||
| 	INC	(IX+3) | ||||
| NOT_CD1: | ||||
| ABSIDE1: | ||||
| 	LD	IY,IDE.INIT_TBL_IDE2 | ||||
| 	LD	A,(IY+IDE.HDD_INIT_TABLE.DriveType)						;IDE TYPE 1-HDD, 2-CD-ROM | ||||
| 	CP	#FF | ||||
| 	JR	Z,ABSIDE2 | ||||
| 	CP	IDE.Device.HDD | ||||
| 	JR	NZ,NOT_HD2 | ||||
| 	INC	(IX+2) | ||||
| NOT_HD2: | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JR	NZ,NOT_CD2 | ||||
| 	INC	(IX+3) | ||||
| NOT_CD2: | ||||
| ABSIDE2: | ||||
| 	LD	IY,IDE.INIT_TBL_IDE3 | ||||
| 	LD	A,(IY+IDE.HDD_INIT_TABLE.DriveType)						;IDE TYPE 1-HDD, 2-CD-ROM | ||||
| 	CP	#FF | ||||
| 	JR	Z,check_exit | ||||
| 	CP	IDE.Device.HDD | ||||
| 	JR	NZ,NOT_HD3 | ||||
| 	INC	(IX+2) | ||||
| NOT_HD3: | ||||
| 	CP	IDE.Device.CDROM | ||||
| 	JR	NZ,check_exit | ||||
| 	INC	(IX+3) | ||||
| check_exit: | ||||
| 	POP	IY | ||||
| 	POP	AF | ||||
| 	OUT	(SLOT3),A | ||||
| 	XOR	A | ||||
| 	RET  | ||||
| 	 | ||||
| DRV_RESET: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.RESET | ||||
| ;	CP	#60 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#70 | ||||
| ;	JP	C,RESETR | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.RESET | ||||
| 	CP	#C0 | ||||
| 	JP	C,.error | ||||
| 	CP	#D0 | ||||
| 	JP	C,CD_5x.RESET | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_READ_LONG: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.LONG_READ | ||||
| 	CP	#60 | ||||
| 	JP	C,.error | ||||
| 	CP	#70 | ||||
| 	JP	C,RMD_5x.LONG_READ | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.LONG_READ | ||||
| 	CP	#C0 | ||||
| 	JP	C,.error | ||||
| 	CP	#D0 | ||||
| 	JP	C,CD_5x.LONG_READ | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_WRITE_LONG: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.LONG_WRITE | ||||
| 	CP	#60 | ||||
| 	JP	C,.error | ||||
| 	CP	#70 | ||||
| 	JP	C,RMD_5x.LONG_WRITE | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.LONG_WRITE | ||||
| ;	CP	#C0 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#D0 | ||||
| ;	JP	C,LWRITEC | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_READ: | ||||
| 	CP	#10                            ; !HARDCODE ¯® §ë¢ âì ¡ë ¢á¥ ID | ||||
| 	JP	C,FDD_5x.READ | ||||
| 	CP	#60 | ||||
| 	JP	C,.error | ||||
| 	CP	#70 | ||||
| 	JP	C,RMD_5x.READ | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.READ | ||||
| 	CP	#C0 | ||||
| 	JP	C,.error | ||||
| 	CP	#D0 | ||||
| 	JP	C,CD_5x.READ | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET | ||||
| 
 | ||||
| DRV_WRITE: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.WRITE | ||||
| 	CP	#60 | ||||
| 	JP	C,.error | ||||
| 	CP	#70 | ||||
| 	JP	C,RMD_5x.WRITE | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.WRITE | ||||
| ;	CP	#C0 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#D0 | ||||
| ;	JP	C,WRITEC | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_VERIFY: | ||||
| ;	CP	#10 | ||||
| ;	JP	C,VERIFYD | ||||
| ;	CP	#60 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#70 | ||||
| ;	JP	C,VERIFYR | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.VERIFY | ||||
| ;	CP	#C0 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#D0 | ||||
| ;	JP	C,VERIFYC | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_DETECT: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.DETECT | ||||
| ;	CP	#60 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#70 | ||||
| ;	JP	C,DETECTR | ||||
| ;	CP	#80 | ||||
| ;	JP	C,.error | ||||
| ;	CP	#90 | ||||
| ;	JP	C,DETECTH | ||||
| 	CP	#C0 | ||||
| 	JP	C,.error | ||||
| 	CP	#D0 | ||||
| 	JP	C,CD_5x.DETECT | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_GET_PAR: | ||||
| 	CP	#10 | ||||
| 	JP	C,FDD_5x.GETMED | ||||
|         CP      #60 | ||||
|         JP      C,.error | ||||
|         CP      #70 | ||||
|         JP      C,RMD_5x.GETMED  | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.GETMED | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| 
 | ||||
| DRV_SET_PAR: | ||||
|         CP      #10 | ||||
| 	JP	C,FDD_5x.SETMED | ||||
| 	CP	#60 | ||||
| 	JP	C,.error | ||||
| 	CP	#70 | ||||
| 	JP	C,RMD_5x.SETMED | ||||
| 	CP	#80 | ||||
| 	JP	C,.error | ||||
| 	CP	#90 | ||||
| 	JP	C,HDD_5x.SETMED | ||||
| .error: | ||||
| 	LD	A,#AA | ||||
| 	SCF  | ||||
| 	RET  | ||||
| ; | ||||
| 
 | ||||
| 	INCLUDE	'src/bios/ROM/EXTENDED/FDD_DRIVER_2.asm' | ||||
|         INCLUDE 'src/bios/ROM/EXTENDED/RAM_DISK_DRIVER_1.asm' | ||||
| 	INCLUDE	'src/bios/ROM/EXTENDED/HDD_DRIVER_6.asm' | ||||
| 	INCLUDE	'src/bios/ROM/EXTENDED/CD_DRIVER_0.asm' | ||||
| 
 | ||||
| ;01000h	SETUP | ||||
| 
 | ||||
| ;	ORG	#9000 | ||||
| ;	INCBIN "BSETUP.BIN" | ||||
| ;	INCLUDE "ENDROM.ASM" | ||||
| ; | ||||
| @ -1,135 +0,0 @@ | ||||
| ;-----------[#0000 Extended]------------ | ||||
|  INCLUDE 'src/bios/rom/EXTENDED/EXTENDED.asm' | ||||
| ;--------------------------------------- | ||||
|         DISPLAY "                       EXTENDED end addr: ", /A, $ | ||||
| 
 | ||||
| ;-------------[#1000 SETUP]------------- | ||||
|         ShowInfo 'Setup block of ROM start', 0                          ; !!!!! test | ||||
| 
 | ||||
| BLOCK_Setup     EQU $ | ||||
| 
 | ||||
|         IF PACKED_MAIN | ||||
|  BLOCK ROM_MAP.SETUP-$,#FF | ||||
|   | ||||
|  DISP COMPILE_ADDR.SETUP | ||||
| 
 | ||||
| ; Depacker version | ||||
| SETUP_MAIN: | ||||
|         LD	HL,DEPACKER.UnpackedEXECaddr; â®çª  ¢å®¤  ¢ à á¯ ª®¢ ®¬ ª®¤¥ | ||||
|         PUSH	HL | ||||
|         LD	DE,DEPACKER.WorkAddr		;  ¤à¥á ¯à®æ¥¤ãàë ¤¥¯ ª¥à  | ||||
|         PUSH	DE | ||||
| 
 | ||||
|         LD	HL,DEPACKER.Addr | ||||
|         LD	BC,DEPACKER.Length | ||||
|         LDIR  | ||||
| 
 | ||||
|         LD	HL,DEPACKER.PackedMAIN		; £¤¥  à娢 | ||||
|         LD	DE,DEPACKER.UnpackAddr		; ªã¤  à á¯ ª®¢ë¢ âì | ||||
|         RET  | ||||
| 
 | ||||
| .Depacker     EQU $ | ||||
|  ENT | ||||
| 
 | ||||
| ;-----------------[v] | ||||
| DEPACK_DATA: | ||||
|  DISP   DEPACKER.WorkAddr | ||||
|         MODULE UnPacker | ||||
|                 INCLUDE	'src/bios/ROM/SETUP/DEHRUST.asm'                ; !TODO ᤥ« âì   LUA  ¢â®¢ë¡®à ¤¥ª®¬¯à¥áá®à  ¨ ª®¬¯à¥áá®à  | ||||
| PackedMAIN:     INCBIN 'Build/Bin/temp/MAIN.PAK' | ||||
|         ENDMODULE | ||||
|  ENT | ||||
| DEPACK_DATA.length      EQU $-DEPACK_DATA | ||||
| ;-----------------[^] | ||||
| 
 | ||||
| 
 | ||||
|         ELSE | ||||
|                 DISP COMPILE_ADDR.SETUP | ||||
|                         ShowInfo 'Setup block DISP start', 1            ; !!!!! test | ||||
| SETUP_MAIN:             INCLUDE 'src/bios/ROM/SETUP/Main.asm' | ||||
|                         ShowInfo 'Setup block DISP end', 1              ; !!!!! test | ||||
|                 ENT | ||||
|         ENDIF | ||||
| 
 | ||||
| 
 | ||||
|         ShowInfo 'Setup block of ROM end', 0                          ; !!!!! test | ||||
| BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;*************************************** | ||||
| ; | ||||
| ;  !TODO ¬®¦® ®¯à¨å®¤®¢ âì âãâ ᪮«ìª®-â® ¡ ©â®¢ | ||||
| ; DISPLAY 'Address in ROM with ', /D, ToBIOS_FromEXT-$, ' free bytes: ',/H,$ | ||||
| ;*************************************** | ||||
| ; | ||||
| ;---------------[SET EXP]--------------- | ||||
|         _mInfoBLOCK ToBIOS_FromEXT-$,#FF      ; #3FD0 | ||||
| ; call exp bios from setup | ||||
| ;RST18h: | ||||
|         PUSH	AF | ||||
| 	LD	A,ROM.EXT                                            ; set exp-rom to slot0 | ||||
| 	OUT	(SYS_PORT.ON),A | ||||
| 	POP	AF | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;--------[ From TR-DOS to HDD part2]-------- | ||||
| 	_mInfoBLOCK #3FD8-$,#FF | ||||
| TRDOS_HD_CMD: | ||||
| //        JP      L0107 | ||||
|         POP	AF | ||||
|         CALL	HDD_CMD                                                 ; !TEST new_api | ||||
|         JP	RET_TO_TRDOS | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;-------------[SND_TEST_RET]------------- | ||||
| 	_mInfoBLOCK #3FE0-$,#FF | ||||
| SND_TEST_RET: | ||||
|         LD	A,ROM.EXT | ||||
| 	OUT	(SYS_PORT.OFF),A | ||||
| ;       JP SOUND_TEST | ||||
| 	JP	#0000 | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;!TEST ¥ 㦮 ¥á«¨ new_api_table | ||||
| ;------------[HDD_5x portal]------------         | ||||
| ; â®çª  ¢å®¤ /¢ë室  ¤«ï äãªæ¨© 5å ¨§ EXP | ||||
| 	_mInfoBLOCK #3FE8-$,#FF | ||||
| RET_TO_EXP: | ||||
| 	PUSH	AF | ||||
| 	LD	A,ROM.EXT | ||||
| 	OUT	(SYS_PORT.ON),A | ||||
| 	JP	HDD_FN_5x | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| ;!FIXIT íâ  â®çª  ¢å®¤  ®ç¥ì áâà  ï ¨§ áâà ¨æë ¢ áâà ¨æã ¯à룠¥â | ||||
| ;---------[ From TR-DOS to HDD ]-------- | ||||
| 	_mInfoBLOCK #3FF0-$,255 | ||||
| RET_TO_TRDOS: | ||||
|         PUSH	AF | ||||
| 	DI  | ||||
| 	LD	A,ROM.EXT | ||||
| 	OUT	(SYS_PORT.OFF),A | ||||
| 	JR	TRDOS_HD_CMD                                            ; âãâ ¥ 墠⨫® ¬¥áâ  ¢ 1 ¡ ©â, ç⮡ áà §ã ᤥ« âì JP | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;-----[???????????????????????????]----- | ||||
| 	_mInfoBLOCK #3FF8-$,255 | ||||
| A3FF8:	PUSH	AF | ||||
| 	LD	A,ROM.EXT | ||||
| 	OUT	(SYS_PORT.OFF),A | ||||
| ; !FIXIT ¬®¦¥â ã¡à âì § £«ãèªã ¨ ᤥ« âì, ç⮡ ¯¥à¥ª«îç «®áì   EXP ¨ ¤ «ìè¥ ª ª ¢ EXP_FNS_RET ? | ||||
| ;          ¨«¨ ᢮¥£® 祣®-¨¡ã¤ì ¤®¡ ¢¨âì. | ||||
| 	JP	#0000 | ||||
| ;--------------------------------------- | ||||
| ;       $ = #4000 | ||||
| ;======================================= | ||||
| @ -16,7 +16,7 @@ | ||||
| ;                         ....0..11.1110          | ||||
| ;        WORD            %00000001101110      ; -  ¤à¥á | ||||
| ;        WORD            %00001001101111      ; - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;        BYTE            Conf_port.Border_FE  ; - ¯®àâ | ||||
| ;        BYTE            ACEX.Border_FE  ; - ŻŽŕâ | ||||
| 
 | ||||
| ; DCP END MARKER | ||||
| ;        DW      0,0,0 | ||||
| @ -25,126 +25,125 @@ | ||||
| 
 | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; VG93 Ports | ||||
|         DW      %00000000000111 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.VG93_1F | ||||
|         DB      ACEX.VG93_1F | ||||
|         DW      %11010000000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.VG93_1F | ||||
| ;ok | ||||
|         DB      ACEX.VG93_1F | ||||
| 
 | ||||
|         DW      %00000000100111 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.VG93_3F | ||||
|         DB      ACEX.VG93_3F | ||||
|         DW      %11010000100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.VG93_3F | ||||
| ;ok | ||||
|         DB      ACEX.VG93_3F | ||||
| 
 | ||||
|         DW      %00000001000111 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.VG93_5F | ||||
|         DB      ACEX.VG93_5F | ||||
|         DW      %11010001000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.VG93_5F | ||||
| ;ok | ||||
|         DB      ACEX.VG93_5F | ||||
| 
 | ||||
|         DW      %00000001100111 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.VG93_7F | ||||
|         DB      ACEX.VG93_7F | ||||
|         DW      %11010001100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.VG93_7F | ||||
| ;ok | ||||
|         DB      ACEX.VG93_7F | ||||
| 
 | ||||
|         DW      %00000001101111 | ||||
|         DW      %00011001101111 | ||||
|         DB      Conf_port.VG93_State | ||||
|         DB      ACEX.VG93_State | ||||
|         DW      %11010001101111 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.VG93_State | ||||
|         DB      ACEX.VG93_State | ||||
| ; For joystick | ||||
|         DW      %00011000000111 | ||||
|         DW      %10011001101111 | ||||
|         DB      Conf_port.JOY_VG93 | ||||
|         DB      ACEX.JOY_VG93 | ||||
|         DW      %10011000000111 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.JOY_VG93 | ||||
|         DB      ACEX.JOY_VG93 | ||||
| 
 | ||||
| ; For VG93 with dos on | ||||
|         DW      %00001001101111 | ||||
|         DW      %00011001101111 | ||||
|         DB      Conf_port.JOY_VG93 | ||||
|         DB      ACEX.JOY_VG93 | ||||
| 
 | ||||
| ; For VG93 with dos off | ||||
|         DW      %11011001101111 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.JOY_VG93 | ||||
| ;ok | ||||
|         DB      ACEX.JOY_VG93 | ||||
| 
 | ||||
|         DW      %00000000101101 | ||||
|         DW      %11011111111111 | ||||
|         DB      Conf_port.FDD720 | ||||
|         DB      ACEX.FDD720 | ||||
|         DW      %11000000101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.FDD720 | ||||
| ;ok | ||||
|         DB      ACEX.FDD720 | ||||
| 
 | ||||
|         DW      %00000000111101 | ||||
|         DW      %11011111111111 | ||||
|         DB      Conf_port.FDD144 | ||||
|         DB      ACEX.FDD144 | ||||
|         DW      %11000000111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.FDD144 | ||||
|         DB      ACEX.FDD144 | ||||
| 
 | ||||
| ;!FIXIT UNKNOWN PORTS--------------------------------------------------; dos on, ⮫쪮 ç¥à¥§ BC, ç⥨¥/§ ¯¨áì | ||||
| ;ok | ||||
|         DW      %10000100101101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #18 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %10000100111101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #19 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %10000110101101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #1A | ||||
| ;----------------------------------------------------------------------; | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %00000100101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1B | ||||
|         DB      ACEX.ISA_CTRL | ||||
|         DW      %10000110111101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #1B | ||||
|         DB      ACEX.ISA_CTRL | ||||
|         DW      %11000100101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1B | ||||
| ;ok | ||||
|         DB      ACEX.ISA_CTRL | ||||
| 
 | ||||
|         DW      %00001100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1C | ||||
|         DB      ACEX.CMOS_DATA.READ | ||||
|         DW      %11001100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1C | ||||
| ;ok | ||||
|         DB      ACEX.CMOS_DATA.READ | ||||
| 
 | ||||
|         DW      %00000110101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1D | ||||
|         DB      ACEX.CMOS_ADDR.WRITE | ||||
|         DW      %11000110101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1D | ||||
| ;ok | ||||
|         DB      ACEX.CMOS_ADDR.WRITE | ||||
| 
 | ||||
|         DW      %00000100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1E | ||||
|         DB      ACEX.CMOS_DATA.WRITE | ||||
|         DW      %11000100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1E | ||||
| ;ok | ||||
|         DB      ACEX.CMOS_DATA.WRITE | ||||
| ; | ||||
| ;---------HDD[v] | ||||
|         DW      %00000001000000 | ||||
|         DW      %11000001101111 | ||||
|         DB      #20 | ||||
|         DW      %01000001000000 | ||||
|         DW      %11010001101111 | ||||
|         DB      #20 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %10000001000000 | ||||
|         DW      %11010001101111 | ||||
|         DB      #20 | ||||
| @ -152,7 +151,6 @@ | ||||
|         DW      %11000001101111 | ||||
|         DB      #20 | ||||
| 
 | ||||
| ;ok | ||||
|         DW      %00000001000001 | ||||
|         DW      %00010111101111 | ||||
|         DB      #21 | ||||
| @ -162,7 +160,7 @@ | ||||
|         DW      %11010001000001 | ||||
|         DW      %11010111101111 | ||||
|         DB      #21 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %00000001000010 | ||||
|         DW      %00010111101111 | ||||
|         DB      #22 | ||||
| @ -172,7 +170,7 @@ | ||||
|         DW      %11010001000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #22 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %00000001000011 | ||||
|         DW      %00010111101111 | ||||
|         DB      #23 | ||||
| @ -182,7 +180,7 @@ | ||||
|         DW      %11010001000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #23 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %00000001000100 | ||||
|         DW      %00010111101111 | ||||
|         DB      #24 | ||||
| @ -193,7 +191,6 @@ | ||||
|         DW      %11010111101111 | ||||
|         DB      #24 | ||||
| 
 | ||||
| ;ok | ||||
|         DW      %00000001000101 | ||||
|         DW      %00010111101111 | ||||
|         DB      #25 | ||||
| @ -204,7 +201,6 @@ | ||||
|         DW      %11010111101111 | ||||
|         DB      #25 | ||||
| 
 | ||||
| ;ok | ||||
|         DW      %00000011000010 | ||||
|         DW      %00010111101111 | ||||
|         DB      #26 | ||||
| @ -214,7 +210,7 @@ | ||||
|         DW      %11010011000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #26 | ||||
| ;ok | ||||
| 
 | ||||
|         DW      %00000011000011 | ||||
|         DW      %00010111101111 | ||||
|         DB      #27 | ||||
| @ -224,233 +220,232 @@ | ||||
|         DW      %11010011000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #27 | ||||
| ;ok | ||||
| ;---------HDD[^] | ||||
| ; | ||||
|         DW      %00000011000100 | ||||
|         DW      %00010111101111 | ||||
|         DB      Conf_port.IDE_CONTROL_3F6 | ||||
|         DB      ACEX.IDE_CONTROL_3F6 | ||||
|         DW      %00010011000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      Conf_port.IDE_CONTROL_3F6 | ||||
|         DB      ACEX.IDE_CONTROL_3F6 | ||||
|         DW      %11010011000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      Conf_port.IDE_CONTROL_3F6 | ||||
| ;ok | ||||
|         DB      ACEX.IDE_CONTROL_3F6 | ||||
| 
 | ||||
|         DW      %00000011000101 | ||||
|         DW      %00010111101111  | ||||
|         DB      Conf_port.IDE_STATUS_3F7 | ||||
|         DB      ACEX.IDE_STATUS_3F7 | ||||
|         DW      %00010011000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      Conf_port.IDE_STATUS_3F7 | ||||
|         DB      ACEX.IDE_STATUS_3F7 | ||||
|         DW      %11010011000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      Conf_port.IDE_STATUS_3F7 | ||||
| ;ok | ||||
|         DB      ACEX.IDE_STATUS_3F7 | ||||
| 
 | ||||
|         DW      %00000000101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.IDE_CHANEL_1 | ||||
|         DB      ACEX.IDE_CHANEL_1 | ||||
|         DW      %11000000101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.IDE_CHANEL_1 | ||||
| ;ok | ||||
|         DB      ACEX.IDE_CHANEL_1 | ||||
| 
 | ||||
|         DW      %00000000111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.IDE_CHANEL_2 | ||||
|         DB      ACEX.IDE_CHANEL_2 | ||||
|         DW      %11000000111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.IDE_CHANEL_2 | ||||
| ;ok | ||||
|         DB      ACEX.IDE_CHANEL_2 | ||||
| 
 | ||||
|         DW      %00000010101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.VSYNC320 | ||||
|         DB      ACEX.VSYNC320 | ||||
|         DW      %11000010101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.VSYNC320 | ||||
| ;ok | ||||
|         DB      ACEX.VSYNC320 | ||||
| 
 | ||||
|         DW      %00000010111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.VSYNC312 | ||||
|         DB      ACEX.VSYNC312 | ||||
|         DW      %11000010111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.VSYNC312 | ||||
| ;ok | ||||
|         DB      ACEX.VSYNC312 | ||||
| 
 | ||||
|         DW      %00000010101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.RESET | ||||
|         DB      ACEX.RESET | ||||
|         DW      %11000010101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.RESET | ||||
| ;ok | ||||
|         DB      ACEX.RESET | ||||
| 
 | ||||
|         DW      %00000010111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.UNKNOWN       ;!FIXIT ¬®¦® ¯®ª  ã¡à âì | ||||
|         DB      ACEX.UNKNOWN       ;!FIXIT ŹŽŚŽ ŻŽŞ  ăĄŕ âě | ||||
|         DW      %11000010111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.UNKNOWN       ;!FIXIT ¬®¦® ¯®ª  ã¡à âì | ||||
| ;ok | ||||
|         DB      ACEX.UNKNOWN       ;!FIXIT ŹŽŚŽ ŻŽŞ  ăĄŕ âě | ||||
| 
 | ||||
|         DW      %00010000101011 | ||||
|         DW      %11010001101011 | ||||
|         DB      Conf_port.ISA_Control | ||||
| ;ok | ||||
|         DB      ACEX.ISA_Control   ;!FIXIT ŹŽŚŽ ŻŽŞ  ăĄŕ âě ??? | ||||
| 
 | ||||
|         DW      %00011001101110 | ||||
|         DW      %10011001101111 | ||||
|         DB      Conf_port.ZX_Keyboard | ||||
|         DB      ACEX.ZX_Keyboard | ||||
|         DW      %10011001101110 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.ZX_Keyboard | ||||
| ;ok | ||||
|         DB      ACEX.ZX_Keyboard | ||||
| 
 | ||||
|         DW      %00001111111101 | ||||
|         DW      %00001111111111 | ||||
|         DB      Conf_port.AY_FFFD_READ | ||||
| ;ok | ||||
|         DB      ACEX.AY_FFFD_READ | ||||
| 
 | ||||
|         DW      %00001111011111 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.Kempston_Mouse | ||||
|         DB      ACEX.Kempston_Mouse | ||||
|         DW      %11001111011111 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.Kempston_Mouse | ||||
| ;ok | ||||
|         DB      ACEX.Kempston_Mouse | ||||
| 
 | ||||
|         DW      %00011001100011 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %01010001100011 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %10010001100011 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %00010000000111 | ||||
|         DW      %11011000001111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %00011000001000 | ||||
|         DW      %11011001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %00010001101011 | ||||
|         DW      %10010001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
|         DB      ACEX.CBL_OUT | ||||
|         DW      %10010001101011 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.CBL_OUT | ||||
| ;ok | ||||
|         DB      ACEX.CBL_OUT | ||||
| 
 | ||||
|         DW      %00000001000110 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.CBL_SYS_PORT | ||||
|         DB      ACEX.CBL_SYS_PORT | ||||
|         DW      %11000001000110 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.CBL_SYS_PORT | ||||
| ;ok | ||||
|         DB      ACEX.CBL_SYS_PORT | ||||
| 
 | ||||
|         DW      %00000111111101 | ||||
|         DW      %00001111111111 | ||||
|         DB      Conf_port.AY_FFFD_WRITE | ||||
| ;ok | ||||
|         DB      ACEX.AY_FFFD_WRITE | ||||
| 
 | ||||
|         DW      %00000101111101 | ||||
|         DW      %00001111111111 | ||||
|         DB      Conf_port.AY_BFFD | ||||
| ;ok | ||||
|         DB      ACEX.AY_BFFD | ||||
| 
 | ||||
|         DW      %00000001101101 | ||||
|         DW      %10000111111111 | ||||
|         DB      Conf_port.Scorp_1FFD | ||||
|         DB      ACEX.Scorp_1FFD | ||||
|         DW      %11000001101101 | ||||
|         DW      %11000111111111 | ||||
|         DB      Conf_port.Scorp_1FFD | ||||
| ;ok | ||||
|         DB      ACEX.Scorp_1FFD | ||||
| 
 | ||||
|         DW      %00000011101101 | ||||
|         DW      %00100111101111 | ||||
|         DB      Conf_port.Pent_7FFD | ||||
|         DB      ACEX.Pent_7FFD | ||||
|         DW      %00100011101101 | ||||
|         DW      %11110111101111 | ||||
|         DB      Conf_port.Pent_7FFD | ||||
|         DB      ACEX.Pent_7FFD | ||||
|         DW      %11100011101101 | ||||
|         DW      %11100111101111 | ||||
|         DB      Conf_port.Pent_7FFD | ||||
|         DB      ACEX.Pent_7FFD | ||||
|         DW      %10000001101101 | ||||
|         DW      %11100111101111 | ||||
|         DB      Conf_port.Pent_7FFD | ||||
| ;ok | ||||
|         DB      ACEX.Pent_7FFD | ||||
| 
 | ||||
|         DW      %00000001101110 | ||||
|         DW      %00001001101111 | ||||
|         DB      Conf_port.Border_FE | ||||
| ;ok | ||||
|         DB      ACEX.Border_FE | ||||
| 
 | ||||
|         DW      %00000001010110 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.ALL_MODE | ||||
|         DB      ACEX.ALL_MODE | ||||
|         DW      %11000001010110 | ||||
|         DW      %11001111111111 | ||||
|         DB      Conf_port.ALL_MODE | ||||
| ;ok | ||||
|         DB      ACEX.ALL_MODE | ||||
| 
 | ||||
|         DW      %00000000001001 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.PORT_Y | ||||
|         DB      ACEX.PORT_Y | ||||
|         DW      %00010000001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.PORT_Y | ||||
|         DB      ACEX.PORT_Y | ||||
|         DW      %11010000001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.PORT_Y | ||||
| ;ok | ||||
|         DB      ACEX.PORT_Y | ||||
| 
 | ||||
|         DW      %00000001001001 | ||||
|         DW      %00010001101111 | ||||
|         DB      Conf_port.RGMOD | ||||
|         DB      ACEX.RGMOD | ||||
|         DW      %00010001001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.RGMOD | ||||
|         DB      ACEX.RGMOD | ||||
|         DW      %11010001001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      Conf_port.RGMOD | ||||
| ;ok | ||||
|         DB      ACEX.RGMOD | ||||
| 
 | ||||
|         DW      %00000000100100 | ||||
|         DW      %00000000101111 | ||||
|         DB      Conf_port.CNF_PORT | ||||
|         DB      ACEX.CNF_PORT | ||||
| 
 | ||||
| ;!FIXIT ¬®¦® ã¡à âì | ||||
|         DW      %00000001101100 | ||||
|         DW      %11001001101111 | ||||
|         DB      Conf_port.SCALE | ||||
|         DB      ACEX.SCALE | ||||
|         DW      %11000001101100 | ||||
|         DW      %11001001101111 | ||||
|         DB      Conf_port.SCALE | ||||
| ;------------------------------ | ||||
|         DB      ACEX.SCALE | ||||
| 
 | ||||
| 
 | ||||
| ;ok | ||||
|         DW      %00000000001010 | ||||
|         DW      %00010001101111 | ||||
|         DB      #E8 | ||||
|         DB      ACEX.SLOT0 | ||||
|         DW      %00010000001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E8 | ||||
|         DB      ACEX.SLOT0 | ||||
|         DW      %11010000001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E8 | ||||
| ;ok | ||||
|         DB      ACEX.SLOT0 | ||||
| 
 | ||||
|         DW      %00000000101010 | ||||
|         DW      %00010001101111 | ||||
|         DB      #E9 | ||||
|         DB      ACEX.SLOT1 | ||||
|         DW      %00010000101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E9 | ||||
|         DB      ACEX.SLOT1 | ||||
|         DW      %11010000101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E9 | ||||
|         DB      ACEX.SLOT1 | ||||
| 
 | ||||
| ;ok | ||||
|         DW      %00000001001010 | ||||
|         DW      %00010001101111 | ||||
|         DB      #EA | ||||
|         DB      ACEX.SLOT2 | ||||
|         DW      %00010001001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #EA | ||||
|         DB      ACEX.SLOT2 | ||||
|         DW      %11010001001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #EA | ||||
| ;ok | ||||
|         DB      ACEX.SLOT2 | ||||
| 
 | ||||
|         DW      %00000001101010 | ||||
|         DW      %00010001101111 | ||||
|         DB      #F0 | ||||
|         DB      ACEX.SLOT3 | ||||
|         DW      %00010001101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #F0 | ||||
|         DB      ACEX.SLOT3 | ||||
|         DW      %11010001101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #F0 | ||||
|         DB      ACEX.SLOT3 | ||||
| ; DCP END MARKER | ||||
|         DW      0,0,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
|  | ||||
| @ -250,23 +250,6 @@ NO_RESTART: | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------[ FOR ZX-MODE ]----------------------------; | ||||
|  IF BIOS_ZXMODE | ||||
| ;!HARDCODE   íâ®â  ¤à¥á #‘0 ¯à룠¥â ¢ vROM Basic-48 ¯®  ¤à¥áã #3CF0 | ||||
| ; ¬®¦® ¯®¯à®¡®¢ âì ¯¥à¥¤¥« âì íâ®â  ¤à¥á â ¬ | ||||
| 	_mInfoBLOCK #C0-$,0 | ||||
| ;BEGIN: | ||||
| ; ‚室 ç¥à¥§ USR 15600 | ||||
| RET_FROM_BIOS_TO_BASIC48: | ||||
|         CALL CH_2 | ||||
|         CALL COMAND_LINE        ; ‚›<E2809A>Ž‹<C5BD>…<EFBFBD>ˆ… ŠŽŒ€<C592>„›, …‘‹ˆ …‘’œ | ||||
|         ; ‚室 ¡¥§ ª®¬ ¤ë | ||||
|         JP SW_ROM_1             ; ‚އ‚<E280A1>€’ ‚ << MAIN MENU >> | ||||
|  ENDIF | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; ==== POST PROCs ================= | ||||
| 	MODULE POST_TEST | ||||
| START: | ||||
| @ -283,9 +266,7 @@ POST_1_RAM_BUS: | ||||
| 	LD BC,0 | ||||
| 	LD HL,#C000 | ||||
| 	LD DE,#0055 | ||||
| 
 | ||||
| .loop: | ||||
| 	LD (HL),E | ||||
| .loop:	LD (HL),E | ||||
| 	INC L | ||||
| 	LD (HL),D | ||||
| 	DEC L | ||||
| @ -651,7 +632,7 @@ start: | ||||
| ;----[¯¥à¥å¢ â soft reset #EE port]----- | ||||
| Check_EE_Port: | ||||
| 
 | ||||
| 	LD      A,Conf_port.RET_PORT | ||||
| 	LD      A,ACEX.RET_PORT | ||||
| 	LD      B,0 | ||||
| 	LD      C,BIOS.SET_PORTS	 | ||||
| 	CALL    @ToBIOS_3D13                                             ; ¯¥à¥ãáâ ®¢¨âì ¢ãâà. ¯®àâ #EE | ||||
| @ -757,7 +738,7 @@ Set_Default_Screen: | ||||
| 	CALL FN_SYNC.INT_DEF                                                    ; set default int | ||||
| 	ld a,128+4                                                      ; !HARDCODE  | ||||
| 	;ld c,BIOS.FN_SYNC | ||||
| 	;RST ToBIOS_18                                                  ; set default vsync | ||||
| 	;RST_to_BIOS_18                                                  ; set default vsync | ||||
|         CALL FN_SYNC                                                    ; set default vsync | ||||
| Setup_to_RAM: | ||||
| 	LD HL,Setup_Starter.Start | ||||
| @ -976,20 +957,19 @@ init_zx_roms: | ||||
| 	IN      A,(SLOT3) | ||||
| 	PUSH    AF | ||||
| 
 | ||||
|         ;!HARDCODE | ||||
| 	DI | ||||
| 	LD      A,1 | ||||
| 	LD      A,1                                                     ;!HARDCODE | ||||
| 	OUT     (SYS_PORT.ROM),A  | ||||
| 	LD      A,2 | ||||
| 	;LD      A,2 | ||||
|         INC     A                                                       ;!HARDCODE | ||||
| 
 | ||||
|  IF SetFullZXromLoader | ||||
| 	LD      B,6     ; zx-rom number of pages | ||||
|  ELSE | ||||
|         LD      B,4 | ||||
|  ENDIF | ||||
| 
 | ||||
| .loop: | ||||
| 	push    bc | ||||
|         IF SetFullZXromLoader | ||||
| 	 LD      B,6     ; zx-rom number of pages | ||||
|         ELSE | ||||
|          LD      B,4 | ||||
|         ENDIF | ||||
| ;!FIXIT ¯¥à¥¤¥« âì   äãªæ¨î ¡¨®á  ¤«ï ç⥨ï ROM-DISK ¨ ¯¥à¥¥á⨠¢ ¥£® <20>‡“ ᯥªâà㬠 | ||||
| .loop:	push    bc | ||||
| 
 | ||||
| 	out     (ROM.SLOT0),a | ||||
| 	or	%01000000 | ||||
| @ -1024,7 +1004,7 @@ init_zx_roms: | ||||
| 	LD      B,#44							; page | ||||
| 	CALL    .SET_ROM | ||||
| 
 | ||||
| 	LD      A,#E0							;!HARDCODE ROM-ID - EXPANSION | ||||
| 	LD      A,#E0							;!HARDCODE ROM-ID - BIOS | ||||
| 	LD      B,#45							; page | ||||
| 	CALL    .SET_ROM | ||||
| 
 | ||||
| @ -1114,252 +1094,11 @@ SPECTRUM_TASK: | ||||
| BASIC_128: | ||||
| 	LD SP,#BFFF | ||||
| 	LD HL,RES128_PROG | ||||
| 	LD DE,#5B00							; § ¯ã᪠¯à®£à ¬¬ë   BASIC-¥. | ||||
| 	LD DE,ZX_VARS.PRINTER_BUFFER                                    ; § ¯ã᪠¯à®£à ¬¬ë   BASIC-¥. | ||||
| 	LD BC,LEN_RES128 | ||||
| 	LDIR | ||||
| 	DI | ||||
| 	JP #5B00                                                        ;!HARDCODE | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;***************************************************** | ||||
| 
 | ||||
| ; TURBO_OFF: | ||||
| ; 	LD A,D_TBOFF | ||||
| ; 	OUT (SYS_PORT.ON),A | ||||
| ; 	RET | ||||
| 
 | ||||
| ; TURBO_ON: | ||||
| ; 	LD A,D_TBON | ||||
| ; 	OUT (SYS_PORT.ON),A | ||||
| ; 	RET | ||||
| 
 | ||||
| ; JP_HL:  JP (HL) | ||||
| 
 | ||||
| 
 | ||||
| ;PRINT_LINE: | ||||
| ;        LD A,(HL) | ||||
| ;        INC HL | ||||
| ;        CP 0FFh | ||||
| ;        RET Z | ||||
| ;        RST 10H | ||||
| ;        JR PRINT_LINE | ||||
| 
 | ||||
| 
 | ||||
| ;	JP RESET_128 | ||||
| 
 | ||||
| 
 | ||||
|  IF BIOS_ZXMODE | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;                       ******* SERVICE ******* | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;------[ „…˜ˆ”<CB86>€–ˆŸ ŠŽŒ€<C592>„<EFBFBD>މ ‘’<E28098>ŽŠˆ,<2C>…<EFBFBD>…„€<E2809E><E282AC>މ „‹Ÿ "EXPANSION" ]-------; | ||||
| COMAND_LINE: | ||||
|         LD HL,(#5C5D)    ;!HARDCODE CH_ADR | ||||
| COMAND_LOOP: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP ":" | ||||
|         JR Z,COMAND_L1 | ||||
|         CP 0Dh | ||||
|         JR NZ,COMAND_LOOP | ||||
|         RET | ||||
| 
 | ||||
| COMAND_L1: | ||||
|         LD A,(HL) | ||||
|         CP 0EAh         ; REM !!! | ||||
|         RET NZ | ||||
|         INC HL | ||||
| COMAND_OK:      ; Ž<><C5BD>€<EFBFBD>“†…<E280A0>€ ŠŽŒ€<C592>„€ „‹Ÿ 'expansion' | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP ':' | ||||
|         JP Z,MENU_S1 | ||||
|         CP 0Dh | ||||
|         JP Z,MENU_S1 | ||||
|         CP 'I' | ||||
|         JR Z,COMAND_ISD | ||||
|         CP 'i' | ||||
|         JR Z,COMAND_ISD | ||||
|         CP 'T' | ||||
|         JR Z,TASK_SWITCH | ||||
|         CP 't' | ||||
|         JR Z,TASK_SWITCH | ||||
|         DEC HL | ||||
|         POP BC | ||||
|         JP BASIC_MENU | ||||
| MENU_S1: | ||||
|         POP BC | ||||
|         CALL SERVICE | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| COMAND_ISD: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP 'S' | ||||
|         JP Z,COMAND_ISD2 | ||||
|         CP 's' | ||||
|         JP Z,COMAND_ISD2 | ||||
|         RET | ||||
| 
 | ||||
| COMAND_ISD2: | ||||
|         POP BC | ||||
|         CALL ISDOS | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| 
 | ||||
| TASK_SWITCH: | ||||
| 
 | ||||
| ;	*** ‘®åà ¨âì § ¤ çã *** | ||||
| 	PUSH IY | ||||
| 	PUSH IX | ||||
| 	PUSH AF | ||||
| 	PUSH BC | ||||
| 	PUSH DE | ||||
| 	PUSH HL | ||||
| 
 | ||||
| 	EXX | ||||
| 	EX AF,AF' | ||||
| 
 | ||||
| 	PUSH AF | ||||
| 	PUSH BC | ||||
| 	PUSH DE | ||||
| 	PUSH HL | ||||
| 
 | ||||
| 	LD A,R | ||||
| 	PUSH AF | ||||
| 	LD A,I | ||||
| 	PUSH AF | ||||
| 
 | ||||
| 	LD A,(HL) | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	AND 30H		; ®¢ ï § ¤ ç  0..3 | ||||
|         LD C,A | ||||
| 
 | ||||
| 	IN A,(SLOT3) | ||||
| 	LD B,A		; 3-ï áâà ¨æ  â¥ªã饩 § ¤ ç¨ | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 	LD IX,SYS_PAGE.TASK_DATA	; ¤ ë¥ § ¤ ç | ||||
| 	LD E,(IX)	; áâ à ï § ¤ ç  | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ¤ ë¥ ⥪ã饩 § ¤ ç¨ | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 
 | ||||
| 	LD (IX+1),B	; á®åà ¨âì áâà ¨æã 3 | ||||
| 	LD HL,0 | ||||
| 	ADD HL,SP | ||||
| 	LD (IX+2),L	; á®åà ¨âì á⥪ § ¤ ç¨ | ||||
| 	LD (IX+3),H | ||||
| 	SET 0,(IX)	; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨ | ||||
| 	RES 1,(IX)	; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨ãâ  | ||||
| 
 | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD E,C | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 
 | ||||
| 	BIT 1,(IX) | ||||
| ;	JR NZ,TASK_IN_WORK	; § ¤ ç  ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥ | ||||
| 				; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï | ||||
| 
 | ||||
| 	BIT 0,(IX)	; ¡ë«  á®åà ¥ /¥â | ||||
| 	JR NZ,TASK_SET	; § ¤ ç  áãé¥áâ¢ã¥â | ||||
| 
 | ||||
| ;	§ ¤ ç¨ ¥ ¡ë«®! | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD A,C		; § ¤ ç  | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	JP SPECTRUM_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã! | ||||
| ;                          ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨! | ||||
| 
 | ||||
| TASK_SET: | ||||
| 	LD IX,TASK_RESTORE | ||||
| 	LD A,C | ||||
| 	EXX | ||||
| 	JP INIT_PAGES	; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë! | ||||
| 
 | ||||
| TASK_RESTORE: | ||||
| 	EXX | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,C | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	LD E,A | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE | ||||
| 
 | ||||
| 	LD L,(IX+2)	; ¢á¯®¬¨âì á⥪ | ||||
| 	LD H,(IX+3) | ||||
| 	LD SP,HL | ||||
| 	LD A,(IX+1)	; ¢á¯®¬¨âì âà¥âìî áâà ¨æã | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 
 | ||||
| 	POP AF	; ¢®ááâ ®¢¨âì | ||||
| 	LD I,A | ||||
| 	POP AF | ||||
| 	LD R,A | ||||
| 	POP HL | ||||
| 	POP DE | ||||
| 	POP BC | ||||
| 	POP AF | ||||
| 	EX AF,AF' | ||||
| 	EXX | ||||
| 	POP HL | ||||
| 	POP DE | ||||
| 	POP BC | ||||
| 	POP AF | ||||
| 	POP IX | ||||
| 	POP IY | ||||
| 		; ¢¥àãâìáï ¢ § ¤ çã | ||||
| 
 | ||||
| NO_TASK: | ||||
| 	POP BC | ||||
|        JP SW_ROM_1 | ||||
| 
 | ||||
| ; 259F - ADRESS BASIC128 - MAIN_MENU | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;                       *** UTILITES *** | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; C_0030:                 ; ¯®«ãç¨âì à ¡ ®¡« | ||||
| ;        CALL_48X 0030h | ||||
| ;        RET | ||||
| C_19E8:                 ; ®ç¨áâ¨âì à ¡ ®¡« | ||||
|        CALL_48X 19E8h | ||||
|        RET | ||||
| C_1655:                 ; ¯®«ãç¨âì ¯à®áâà á⢮ | ||||
|        CALL_48X 1655h | ||||
|        RET | ||||
| CLS: | ||||
| C_0D6B: CALL_48 #0D6B | ||||
|         RET | ||||
| CH_2:   LD A,2 | ||||
| C_1601:                 ; OPEN CHANEL | ||||
|         CALL_48 #1601 | ||||
|         RET | ||||
| 
 | ||||
|         INCLUDE 'ZX_MENU.ASM' | ||||
|         INCLUDE 'ZX_MODE.ASM' | ||||
|  ENDIF | ||||
| 	JP ZX_VARS.PRINTER_BUFFER | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
| ; | ||||
| @ -1370,11 +1109,9 @@ C_1601:                 ; OPEN CHANEL | ||||
| ; | ||||
| ;>$< >$< >$< >$< >$< >$< [ <20>…<EFBFBD>…Œ…™€…Œ›… ‚ އ“ ] >$< >$< >$< >$< >$< >$< ; | ||||
| 
 | ||||
| 
 | ||||
| ;--------[ <20>ணࠬ¬ , à §¬¥é ¥¬ ï á #5B00 ¤«ï § ¯ã᪠ Spectrum ]--------; | ||||
| ;!TODO 㦠 «¨ âãâ? | ||||
| RES128_PROG: | ||||
|  DISP #5B00                                                             ;!HARDCODE SWAP_ROM | ||||
|  DISP ZX_VARS.PRINTER_BUFFER                                            ;#5B00 | ||||
| 	LD A,ROM.BIOS | ||||
| 	OUT (SYS_PORT.RAM),A                                            ; ‚®§¢à â ¢ 128k ROM | ||||
| 	LD C,SLOT3 | ||||
| @ -1414,7 +1151,7 @@ RES128_PROG: | ||||
| 	 LD     B,#1F | ||||
| 	 OUT    (C),A | ||||
| 	 DEC    D | ||||
| 	 JP     Z,0								; 3 ‚•Ž„ ‚ EXPANSION ??? | ||||
| 	 JP     Z,0							; 3 ‚•Ž„ ‚ EXPANSION ??? | ||||
|         ; | ||||
| 
 | ||||
| 	XOR A | ||||
| @ -1453,7 +1190,7 @@ RESTARTS_PROG:							        ; !TODO LDConf  | ||||
| Start: | ||||
|   DISP	COMPILE_ADDR.SETUP_STARTER | ||||
| Exec: | ||||
| 	LD A,CNF_PORT.CNF_0 + ROM.EXPANSION | ||||
| 	LD A,CNF_PORT.CNF_0 + ROM.EXTENSION | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 
 | ||||
| 	LD HL,ROM_MAP.SETUP | ||||
| @ -1556,8 +1293,12 @@ PROG_NO_ROM.size EQU $-PROG_NO_ROM | ||||
| ;-------------------[] | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ; !FIXIT ᤥ« âì í⨠䨪á¨à®¢ ë¥  ¤à¥á  ®â¤¥«ìë¬ ä ©«®¬ ¨ á IF/ELSE ¨ ¯®¤ª«îç âì ¨å ¯®â®¬ ªã¤   ¤®. | ||||
| ; | ||||
| ;?????  ¯®á¬®âà¥âì | ||||
| ;----------------------------------------------------------------------; | ||||
| @ -1642,7 +1383,7 @@ DOS_ON:	NOP | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3D13-$,#FF | ||||
| 	NOP | ||||
| 	JP #18 | ||||
| 	JP      ToBIOS_18 | ||||
| ;*************************************** | ||||
| 
 | ||||
| ;*************************************** | ||||
| @ -1653,7 +1394,6 @@ DOS_ON:	NOP | ||||
| 
 | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3E00-$,#FF | ||||
| ;!TODO   çñ ¥ ¢ á⥪ ¯à룠âì? | ||||
| DOS_OFF: | ||||
| 	DI | ||||
| 	PUSH AF | ||||
| @ -1811,7 +1551,7 @@ ROM_DISK.Pages:                                                         ;  | ||||
| ; „«ï ¢ë§®¢  äãªæ¨© ¡¨®á  ¨§ áâà ¨æë 0 <20>‡“ (ROM Extension) | ||||
| FN1_RET: | ||||
| 	PUSH AF | ||||
| 	LD A,ROM.EXPANSION | ||||
| 	LD A,ROM.EXTENSION | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 	POP AF | ||||
| 	RST #18 | ||||
| @ -1839,7 +1579,7 @@ FN1_RET: | ||||
| 	_mInfoBLOCK #3FE8-$,#FF	 | ||||
| EXP_HDD:                                                                ;HDD_EXE: | ||||
| 	PUSH AF | ||||
| 	LD A,ROM.EXPANSION | ||||
| 	LD A,ROM.EXTENSION | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 	POP AF | ||||
| 	RET | ||||
|  | ||||
| @ -449,7 +449,7 @@ WRS000: | ||||
| 	PUSH	BC | ||||
| 	LD	D,#1D           ;!!!!! CMOS £«ïãâì | ||||
| 	;LD	C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	POP	BC | ||||
| 	AND	1 | ||||
|  | ||||
| @ -115,7 +115,7 @@ RAM_DRV_READ_WRITE: | ||||
| 
 | ||||
|         AND     #0F                     ;®¬¥à à ¬¤¨áª  | ||||
|         ;LD      C,BIOS.GET_RAMD_ST | ||||
|         ;RST     ToBIOS_18 | ||||
|         ;RST_to_BIOS | ||||
|         CALL    GET_RAMD_ST | ||||
| ; A = Memory Block ID | ||||
| 
 | ||||
| @ -136,7 +136,7 @@ RAM_DRV_READ_WRITE: | ||||
|         PUSH    DE | ||||
|         //PUSH    BC | ||||
|         ;LD      C,BIOS.BLK_RD_WR | ||||
|         ;RST     ToBIOS_18 | ||||
|         ;RST_to_BIOS | ||||
|         CALL    BLK_RD_WR | ||||
|         JR      C,.error_stack3 | ||||
| ; hl = address + Sector_low * 256 * Sector_counter | ||||
|  | ||||
| @ -122,7 +122,7 @@ RST_CONF: | ||||
|         ;!TODO ᤥ« âì äãªæ¨î ¯® § «¨¢ª¥ ᢮¥© ª®äë, ¯¥à¥å¢ âã à¥á¥â . | ||||
|         ; .. ... ... ..  | ||||
|         LD      BC,256*BIOS.REINIT.HARD_RESET + BIOS.REINIT | ||||
|         JP      ToBIOS_18 | ||||
|         JP_to_BIOS | ||||
| 
 | ||||
| ;*************************************** | ||||
| 
 | ||||
| @ -190,7 +190,7 @@ REINIT:	DEC     B | ||||
|         DI | ||||
|         LD      A,DCP_PAGE | ||||
|         OUT     (SLOT1),A                                               ; set DCP page | ||||
|         LD      A,Conf_port.RESET | ||||
|         LD      A,ACEX.RESET | ||||
|         LD      (#4400),A                                               ; open for WR | ||||
| .loop:  LD      BC,#0100                                                ; 横« á¡à®á  | ||||
|         OUT     (C),C | ||||
|  | ||||
| @ -101,7 +101,7 @@ RUN_M_1: | ||||
|         POP AF          ; ¢¥àãâì ®¬¥à ¢ë¡®à  | ||||
|         POP IX | ||||
|         RET             ; ¢®§¢à â ¨§ ¯à®£à ¬¬ë RUN_MENU | ||||
| 
 | ||||
| JP_HL:  JP (HL) | ||||
| ;************************************** | ||||
| ;            128k MENU | ||||
| ;************************************** | ||||
| @ -132,7 +132,7 @@ MN_128_S: | ||||
| ;************************************** | ||||
| MENU_128: | ||||
|         LD      A,0 | ||||
|         OUT     (SYS_PORT_OFF),A | ||||
|         OUT     (SYS_PORT.OFF),A | ||||
|         CALL    SWAP_ROM | ||||
|         CALL    NEW_SP | ||||
| 
 | ||||
| @ -220,9 +220,9 @@ BASIC_MENU: | ||||
| ;        CP 'S' | ||||
| ;        JP Z,SET_SYSTEM | ||||
| 
 | ||||
|         LD DE,(CH_ADR) | ||||
|         LD DE,(ZX_VARS.CH_ADR) | ||||
|         PUSH DE | ||||
|         LD (CH_ADR),HL | ||||
|         LD (ZX_VARS.CH_ADR),HL | ||||
|         CALL_48X 1C8Ch  ; SYMBOL VAR | ||||
|         CALL_48X 2BF1h  ; input txt !!! | ||||
|                         ; DE - adr | ||||
| @ -239,7 +239,7 @@ NO_EXE_M: | ||||
|         POP DE | ||||
|         LD (DE),A | ||||
|         POP HL | ||||
|         LD (CH_ADR),HL | ||||
|         LD (ZX_VARS.CH_ADR),HL | ||||
|         JP SW_ROM | ||||
| TST_M: | ||||
|         PUSH DE | ||||
| @ -276,9 +276,9 @@ ERR_TST_M: | ||||
| ;************************************** | ||||
| 
 | ||||
| CALL_DOS_MOVE: | ||||
|         LD DE,5C00H-.Size | ||||
|         LD DE,#5C00 - DOS_PROG.Size     ;!HARDCODE | ||||
|         LD HL,DOS_PROG | ||||
|         LD BC,.Size | ||||
|         LD BC,DOS_PROG.Size | ||||
|         LDIR | ||||
|         RET | ||||
| ; | ||||
| @ -294,7 +294,7 @@ CALL_DOS1: | ||||
|         LD (ZX_VARS.STK_BOT),DE | ||||
|         LD (ZX_VARS.STK_END),DE | ||||
|         CALL CALL_DOS_MOVE | ||||
|         JP 5C00H-.Size | ||||
|         JP #5C00 - DOS_PROG.Size | ||||
| CALL_DOS: | ||||
|         PUSH HL | ||||
|         PUSH DE | ||||
| @ -302,17 +302,17 @@ CALL_DOS: | ||||
|         PUSH AF | ||||
|         CALL CALL_DOS_MOVE | ||||
|         LD A,13H | ||||
|         LD (5C00H-.Size+DOS_PROG_A),A | ||||
|         LD (5C00H-DOS_PROG.Size+DOS_PROG_A),A | ||||
|         POP AF | ||||
|         POP BC | ||||
|         POP DE | ||||
|         POP HL | ||||
|         JP 5C00H-.Size | ||||
|         JP #5C00-DOS_PROG.Size | ||||
| 
 | ||||
| DOS_PROG: | ||||
|         PUSH AF | ||||
|         XOR A | ||||
|         OUT (SYS_PORT_OFF),A | ||||
|         OUT (SYS_PORT.OFF),A | ||||
|         POP AF | ||||
|         CALL #3D03              ;!HARDCODE | ||||
| DOS_PROG_A EQU $-DOS_PROG-1 | ||||
| @ -321,7 +321,7 @@ DOS_PROG_A EQU $-DOS_PROG-1 | ||||
|         OUT (CNF_PORT),A | ||||
|         POP AF | ||||
|         RET | ||||
| .Size   EQU $-DOS_PROG | ||||
| DOS_PROG.Size   EQU $-DOS_PROG | ||||
| 
 | ||||
| CONT_PROG: | ||||
|         LD HL,1AFDH | ||||
|  | ||||
| @ -53,23 +53,23 @@ GOTO_TRDOS: | ||||
| TURBO_OFF: | ||||
|         LD      A,BIOS.FN_TURBO.OFF | ||||
|         LD      C,BIOS.FN_TURBO | ||||
|         JP      ToBIOS_18 | ||||
|         JP_to_BIOS | ||||
| TURBO_ON: | ||||
|         LD      A,BIOS.FN_TURBO.ON | ||||
|         LD      C,BIOS.FN_TURBO | ||||
|         JP      ToBIOS_18 | ||||
|         JP_to_BIOS | ||||
| 
 | ||||
| ;******************************* | ||||
| 
 | ||||
| CLEAR_RAM: | ||||
| 	DI | ||||
| 	LD      C,BIOS.FullInit | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
|         ; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥î ᯥªâà㬠 ¢®§¢à â ¢ DSS ¯® CAD | ||||
|         ;  ¡ã¤¥â ®¯ áë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì), | ||||
|         ;  ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â . | ||||
|         ;!TODO ¯à¨¤ã¬ âì ª ª ®âª«îç âì ¯¥à¥å¢ â ⮫쪮   ¢®§¢à â ¢ DSS | ||||
|         LD      A,Conf_port.RET_PORT | ||||
|         LD      A,ACEX.RET_PORT | ||||
|         LD      BC,BIOS.SET_PORTS | ||||
|         CALL    ToBIOS_3D13 | ||||
| 	EI | ||||
| @ -160,7 +160,7 @@ IS_MENU: | ||||
| SPRINTER_1X: | ||||
|         CALL    _SET_CNF | ||||
|         LD      C,BIOS.RST_CONF.SP97_1 | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
| 	CALL    CNF_PN_320 | ||||
|         LD      L,2             ;FN_SYNC.INT_PENT | ||||
|         JR      1F              ;!FIXIT ¬¥âªã ¯à¨¤ã¬ âì | ||||
| @ -169,7 +169,7 @@ SPRINTER_1X: | ||||
| AY8910_X: | ||||
|         CALL    _SET_CNF | ||||
|         LD      C,BIOS.RST_CONF.AY8910 | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
| 
 | ||||
|         LD      A,#FA           ; no ACC, Original waits | ||||
|         LD      (Port_All_Mode),A | ||||
| @ -227,17 +227,17 @@ CONFIG_SET: | ||||
| 
 | ||||
|         LD      A,L | ||||
|         LD      C,BIOS.FN_SYNC | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
| 
 | ||||
| 	LD      HL,#4104                        ;!HARDCODE | ||||
| 	LD      E,0 | ||||
| 	LD      BC,256*4 + BIOS.LP_OPEN_S       ;!HARDCODE | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
| 
 | ||||
| 	LD      HL,#5104                        ;!HARDCODE | ||||
| 	LD      E,0 | ||||
| 	LD      BC,256*4 + BIOS.LP_OPEN_S | ||||
| 	RST     ToBIOS_18 | ||||
| 	RST_to_BIOS | ||||
| 
 | ||||
| 	POP     DE | ||||
| 	LD      A,E | ||||
| @ -250,7 +250,7 @@ CONFIG_SET: | ||||
| SPRINTER_reset: | ||||
|         CALL    _SET_CNF | ||||
|         LD      BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT | ||||
| 	JP      ToBIOS_18 | ||||
| 	JP_to_BIOS | ||||
| 
 | ||||
| _SET_CNF: | ||||
|         DI | ||||
| @ -292,7 +292,7 @@ UTILIT: | ||||
| 
 | ||||
| UTIL_DISK: | ||||
| 	LD A,0 | ||||
| 	CALL EMM_FN3 | ||||
| 	CALL EMM_FN3            ;!!!!! ç¥à¥§ RST_to_BIOS EMM.FreeMemRMD | ||||
| 
 | ||||
|         LD HL,C_DEMO6 | ||||
|         CALL CALL_DOS1 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -1,460 +0,0 @@ | ||||
| ; | ||||
|         IFN SET_NEWdcp | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; !TODO áà ¢¨âì ª ª § ¯ ªã¥âáï DCP  «£®à¨â¬®¬ ¤«ï k50 | ||||
| DCP_INIT: | ||||
|         EXX | ||||
|         LD HL,DCP_DATA | ||||
|         LD DE,#C000 | ||||
| .loop0: | ||||
|         LD B,8 | ||||
|         LD C,(HL) | ||||
|         INC HL | ||||
| .loop1: | ||||
|         RLC C | ||||
|         JR C,.loop2 | ||||
|         SUB A | ||||
|         LD (DE),A | ||||
|         INC DE | ||||
|         DJNZ .loop1 | ||||
|         JR .loop3 | ||||
| .loop2: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         LD (DE),A | ||||
|         INC DE | ||||
|         DJNZ .loop1 | ||||
| .loop3: | ||||
|         inc d | ||||
|         dec d | ||||
|         JR NZ,.loop0 | ||||
| 
 | ||||
|         LD HL,#C000                                                     ; CONFIG-3 for DOS & other fns | ||||
|         LD DE,#F000 | ||||
|         LD BC,#0400 | ||||
|         LDIR | ||||
|         LD HL,#F000 | ||||
|         LD DE,#F400 | ||||
|         LD BC,#0C00 | ||||
|         LDIR | ||||
| 
 | ||||
| ; First IN command - OPEN DCP | ||||
|         IN A,(SLOT3) | ||||
|         EXX | ||||
|         JP (HL) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
|         ELSE | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| DCP_INIT: | ||||
|         LD C,XL | ||||
|         LD B,XH | ||||
|         LD E,YL | ||||
|         LD D,YH | ||||
|         EXX | ||||
| 
 | ||||
|         LD HL,#C000 | ||||
|         LD DE,#C001 | ||||
|         LD BC,#3FFF | ||||
|         LD (HL),L | ||||
|         LDIR | ||||
| 
 | ||||
|         LD IY,.data | ||||
|         LD IX,.ret | ||||
| 
 | ||||
| .loop: | ||||
|         LD L,(IY) | ||||
|         LD H,(IY+1) | ||||
|         LD E,(IY+2) | ||||
|         LD D,(IY+3) | ||||
|         LD B,(IY+4) | ||||
|         JR DCP_FN0M | ||||
| 
 | ||||
| .ret: | ||||
|         LD BC,5 | ||||
|         ADD IY,BC | ||||
|         LD A,(IY+2) | ||||
|         OR (IY+3) | ||||
|         JR NZ,.loop | ||||
| 
 | ||||
|         EXX | ||||
|         LD XL,C | ||||
|         LD XH,B | ||||
|         LD YL,E | ||||
|         LD YH,D | ||||
| 
 | ||||
| ; First IN command - OPEN DCP | ||||
|         IN A,(SLOT3) | ||||
|         JP (HL) | ||||
| ;-----------------------------------------------------------------------; | ||||
|         ENDIF | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;       ”ãªæ¨ï ¤¥è¨äà â®à  ¯®à⮢. | ||||
| ;       HL -  ¤à¥á | ||||
| ;       DE - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;       B - ¯®àâ | ||||
| 
 | ||||
| DCP_FN0M: | ||||
|         LD A,L | ||||
|         AND E | ||||
|         LD L,A | ||||
| 
 | ||||
|         LD A,H | ||||
|         AND D | ||||
| ;       AND #3F | ||||
|         OR #C0 | ||||
|         LD H,A | ||||
| 
 | ||||
|         LD A,D | ||||
|         OR #C0 | ||||
|         LD D,A | ||||
| 
 | ||||
| .loop:  LD (HL),B | ||||
| 
 | ||||
|         LD A,L                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
|         OR E                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
|         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
|         JR Z,.carry                                                     ; ¢®§¨ª ¯¥à¥®á | ||||
| 
 | ||||
|         OR E | ||||
|         XOR E                                                           ; ®¡ã«¨âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë | ||||
|         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
|         LD A,L | ||||
|         AND E                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
|         OR C | ||||
|         LD L,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
| 
 | ||||
|         JR .loop                                                        ; 横« | ||||
| 
 | ||||
| .carry:                                                                 ; A = 0 | ||||
| ;       OR E | ||||
| ;       XOR E | ||||
| ;       LD C,A | ||||
|         LD A,L                                                          ; § ¡¨âì ¨§¬¥ï¥¬ë¥ ¡¨âë ã«ï¬¨ | ||||
|         AND E | ||||
| ;       OR C | ||||
|         LD L,A | ||||
| 
 | ||||
|         LD A,H                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
|         OR D                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
|         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
|         JR Z,.exit | ||||
| 
 | ||||
|         OR D | ||||
|         XOR D | ||||
|         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
|         LD A,H | ||||
|         AND D                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
|         OR C | ||||
|         LD H,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
|         JR .loop | ||||
| 
 | ||||
| .exit:  JP (IX) | ||||
| ; | ||||
| 
 | ||||
|         IF SET_NEWdcp | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; DATA FOR DCP | ||||
| ; ¢¡¨¢ ¥¬ ¢ â ¡«¨æã DCP.XLSX ã¦ë© ¢¥è¨© ¯®àâ, | ||||
| ; ᬮâਬ ᬥ饨¥ ¤«ï OUT (‘),x - íâ®  ¤à¥á | ||||
| ; | ||||
| ;       C  C    E  D  /  A    A  A  A  A    A  A  A  A | ||||
| ;       N  N    1  O  W  1    1  6  5  1    7  2  1  0 | ||||
| ;       F  F    2  S  R  5    4        3 | ||||
| ;       1  0    8 | ||||
| ; | ||||
| ;                        CCED/AAAAAAAAA | ||||
| ;                        NN1OW116517210 | ||||
| ;                        FF2SR54  3         | ||||
| DCP_INIT.data: ;         108             | ||||
| ;       Border           ....0..11.1110 | ||||
|         DW              %00000001101110 ; -  ¤à¥á | ||||
|         DW              %00001001101111 ; - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
|         DB              #C2             ; - ¯®àâ | ||||
| ;       Keyboard         ....1..11.1110 | ||||
|         DW              %00001001101110 | ||||
|         DW              %00001001101111 | ||||
|         DB              #40 | ||||
| ;       Kempston         ...11..00.0111 | ||||
|         DW              %00011000000111 | ||||
|         DW              %00011001101111 | ||||
|         DB              #15 | ||||
| 
 | ||||
| ;       DRQ/INTRQ        ...01..11.1111 | ||||
|         DW              %00001001101111 | ||||
|         DW              %00011001101111 | ||||
|         DB              #15 | ||||
| ;       WR_PDOS          ...00..11.1111 | ||||
|         DW              %00000001101111 | ||||
|         DW              %00011001101111 | ||||
|         DB              #14 | ||||
| ;       CS_WG93_1F       ...0...00.0111 | ||||
|         DW              %00000000000111 | ||||
|         DW              %00010001101111 | ||||
|         DB              #10 | ||||
| ;       CS_WG93_3F       ...0...01.0111 | ||||
|         DW              %00000000100111 | ||||
|         DW              %00010001101111 | ||||
|         DB              #11 | ||||
| ;       CS_WG93_5F       ...0...10.0111 | ||||
|         DW              %00000001000111 | ||||
|         DW              %00010001101111 | ||||
|         DB              #12 | ||||
| ;       CS_WG93_7F       ...0...11.0111 | ||||
|         DW              %00000001100111 | ||||
|         DW              %00010001101111 | ||||
|         DB              #13 | ||||
| ; | ||||
| ;       CNF_PORT         ........1.0100 | ||||
|         DW              %00000000100100 | ||||
|         DW              %00000000101111 | ||||
|         DB              #C6 | ||||
| ; | ||||
| ;       SOUND_BFFD_WR    ....0101111101 | ||||
|         DW              %00000101111101 | ||||
|         DW              %00001111111111 | ||||
|         DB              #91 | ||||
| ;       SOUND_FFFD_WR    ....0111111101 | ||||
|         DW              %00000111111101 | ||||
|         DW              %00001111111111 | ||||
|         DB              #90 | ||||
| ;       SOUND_FFFD_RD    ....11.1111101 | ||||
|         DW              %00001101111101 | ||||
|         DW              %00001101111111 | ||||
|         DB              #00 | ||||
| ; | ||||
| ;       COVOX_4F         ...10.....0111 | ||||
|         DW              %00010000000111 | ||||
|         DW              %00011000001111 | ||||
|         DB              #88 | ||||
| ;       COVOX_FB         ...10..11.1011 | ||||
|         DW              %00010001101011 | ||||
|         DW              %00011001101111 | ||||
|         DB              #88 | ||||
| ;       CASH__FB         ...11..11..011 | ||||
|         DW              %00011001100011 | ||||
|         DW              %00011001100111 | ||||
|         DB              #88 | ||||
| ;       CASH__80         ...11..00.1000 | ||||
|         DW              %00011000001000 | ||||
|         DW              %00011001101111 | ||||
|         DB              #88 | ||||
| ; | ||||
| ;       P_XTR            ...1...01.1.11 | ||||
|         DW              %00010000101011 | ||||
|         DW              %00010001101011 | ||||
|         DB              #32 | ||||
| ; | ||||
| ;       SC_256_1FFDH     0....001101101 | ||||
|         DW              %00000001101101 | ||||
|         DW              %10000111111111 | ||||
|         DB              #C0 | ||||
| ;       ZX_128_7FFDH     0.0..0111.1101 | ||||
|         DW              %00000011101101 | ||||
|         DW              %10100111101111 | ||||
|         DB              #C1 | ||||
| ;       ZX_128_7FFDH     0..0.0111.1101 | ||||
|         DW              %00000011101101 | ||||
|         DW              %10010111101111 | ||||
|         DB              #C1 | ||||
| 
 | ||||
| ;       ZX_128_7FFDH     100..0.11.1101 | ||||
|         DW              %10000001101101 | ||||
|         DW              %11100101101111 | ||||
|         DB              #C1 | ||||
| ;       ZX_128_7FFDH     10.0.0.11.1101 | ||||
|         DW              %10000001101101 | ||||
|         DW              %11010101101111 | ||||
|         DB              #C1 | ||||
| 
 | ||||
| ;       SC_256_1FFDH     11...001101101 | ||||
|         DW              %11000001101101 | ||||
|         DW              %11000111111111 | ||||
|         DB              #C0 | ||||
| ;       ZX_128_7FFDH     110..0111.1101 | ||||
|         DW              %11000011101101 | ||||
|         DW              %11100111101111 | ||||
|         DB              #C1 | ||||
| ;       ZX_128_7FFDH     11.0.0111.1101 | ||||
|         DW              %11000011101101 | ||||
|         DW              %11010111101111 | ||||
|         DB              #C1 | ||||
| ; | ||||
| ;       HDD_DATA         ...0...10.0000 | ||||
|         DW              %00000001000000 | ||||
|         DW              %00010001101111 | ||||
|         DB              #20 | ||||
| ;       HDD_1F1          ...0.0010.0001 | ||||
|         DW              %00000001000001 | ||||
|         DW              %00010111101111 | ||||
|         DB              #21 | ||||
| ;       HDD_1F2          ...0.0010.0010 | ||||
|         DW              %00000001000010 | ||||
|         DW              %00010111101111 | ||||
|         DB              #22 | ||||
| ;       HDD_1F3          ...0.0010.0011 | ||||
|         DW              %00000001000011 | ||||
|         DW              %00010111101111 | ||||
|         DB              #23 | ||||
| ;       HDD_1F4          ...0.0010.0100 | ||||
|         DW              %00000001000100 | ||||
|         DW              %00010111101111 | ||||
|         DB              #24 | ||||
| ;       HDD_1F5          ...0.0010.0101 | ||||
|         DW              %00000001000101 | ||||
|         DW              %00010111101111 | ||||
|         DB              #25 | ||||
| ;       HDD_1F6          ...0.0110.0010 | ||||
|         DW              %00000011000010 | ||||
|         DW              %00010111101111 | ||||
|         DB              #26 | ||||
| ;       HDD_1F7          ...0.0110.0011 | ||||
|         DW              %00000011000011 | ||||
|         DW              %00010111101111 | ||||
|         DB              #27 | ||||
| ;       HDD_3F6          ...0.0110.0100 | ||||
|         DW              %00000011000100 | ||||
|         DW              %00010111101111 | ||||
|         DB              #28 | ||||
| ;       HDD_3F7          ...0.0110.0101 | ||||
|         DW              %00000011000101 | ||||
|         DW              %00010111101111 | ||||
|         DB              #29 | ||||
| ; | ||||
| ;       HDD_DATA         00.....10.0000 | ||||
|         DW              %00000001000000 | ||||
|         DW              %11000001101111 | ||||
|         DB              #20 | ||||
| ;       HDD_1F1          00...0010.0001 | ||||
|         DW              %00000001000001 | ||||
|         DW              %11000111101111 | ||||
|         DB              #21 | ||||
| ;       HDD_1F2          00...0010.0010 | ||||
|         DW              %00000001000010 | ||||
|         DW              %11000111101111 | ||||
|         DB              #22 | ||||
| ;       HDD_1F3          00...0010.0011 | ||||
|         DW              %00000001000011 | ||||
|         DW              %11000111101111 | ||||
|         DB              #23 | ||||
| ;       HDD_1F4          00...0010.0100 | ||||
|         DW              %00000001000100 | ||||
|         DW              %11000111101111 | ||||
|         DB              #24 | ||||
| ;       HDD_1F5          00...0010.0101 | ||||
|         DW              %00000001000101 | ||||
|         DW              %11000111101111 | ||||
|         DB              #25 | ||||
| ;       HDD_1F6          00...0110.0010 | ||||
|         DW              %00000011000010 | ||||
|         DW              %11000111101111 | ||||
|         DB              #26 | ||||
| ;       HDD_1F7          00...0110.0011 | ||||
|         DW              %00000011000011 | ||||
|         DW              %11000111101111 | ||||
|         DB              #27 | ||||
| ;       HDD_3F6          00...0110.0100 | ||||
|         DW              %00000011000100 | ||||
|         DW              %11000111101111 | ||||
|         DB              #28 | ||||
| ;       HDD_3F7          00...0110.0101 | ||||
|         DW              %00000011000101 | ||||
|         DW              %11000111101111 | ||||
|         DB              #29 | ||||
| ; | ||||
| ;       PAGE0            ...0...00.1010 | ||||
|         DW              %00000000001010 | ||||
|         DW              %00010001101111 | ||||
|         DB              #E8 | ||||
| ;       PAGE1            ...0...01.1010 | ||||
|         DW              %00000000101010 | ||||
|         DW              %00010001101111 | ||||
|         DB              #E9 | ||||
| ;       PAGE2            ...0...10.1010 | ||||
|         DW              %00000001001010 | ||||
|         DW              %00010001101111 | ||||
|         DB              #EA | ||||
| ;       PAGE3            ...0...11.1010 | ||||
|         DW              %00000001101010 | ||||
|         DW              %00010001101111 | ||||
|         DB              #F0 | ||||
| ; | ||||
| ;       PAGE0            00.....00.1010 | ||||
|         DW              %00000000001010 | ||||
|         DW              %11000001101111 | ||||
|         DB              #E8 | ||||
| ;       PAGE1            00.....01.1010 | ||||
|         DW              %00000000101010 | ||||
|         DW              %11000001101111 | ||||
|         DB              #E9 | ||||
| ;       PAGE2            00.....10.1010 | ||||
|         DW              %00000001001010 | ||||
|         DW              %11000001101111 | ||||
|         DB              #EA | ||||
| ;       PAGE3            00.....11.1010 | ||||
|         DW              %00000001101010 | ||||
|         DW              %11000001101111 | ||||
|         DB              #F0 | ||||
| ; | ||||
| ;       Y_PORT(RGADR)    ...0...00.1001 | ||||
|         DW              %00000000001001 | ||||
|         DW              %00010001101111 | ||||
|         DB              #C4 | ||||
| ;       RGMOD            ...0...10.1001 | ||||
|         DW              %00000001001001 | ||||
|         DW              %00010001101111 | ||||
|         DB              #C5 | ||||
| ; | ||||
| ;       Y_PORT(RGADR)    00.....00.1001 | ||||
|         DW              %00000000001001 | ||||
|         DW              %11000001101111 | ||||
|         DB              #C4 | ||||
| ;       RGMOD            00.....10.1001 | ||||
|         DW              %00000001001001 | ||||
|         DW              %11000001101111 | ||||
|         DB              #C5 | ||||
| ; | ||||
| ;       ISA_REG          ...00100101101 | ||||
|         DW              %00000100101101 | ||||
|         DW              %00011111111111 | ||||
|         DB              #1B | ||||
| ;       CMOS_DWR         ...001.0111101 | ||||
|         DW              %00000100111101 | ||||
|         DW              %00011101111111 | ||||
|         DB              #1E | ||||
| ;       CMOS_AWR         ...00110101101 | ||||
|         DW              %00000110101101 | ||||
|         DW              %00011111111111 | ||||
|         DB              #1D | ||||
| ;       CMOS_DRD         ...011.0111101 | ||||
|         DW              %00001100111101 | ||||
|         DW              %00011101111111 | ||||
|         DB              #1C | ||||
| ; | ||||
| ;       ISA_REG          00..0100101101 | ||||
|         DW              %00000100101101 | ||||
|         DW              %11001111111111 | ||||
|         DB              #1B | ||||
| ;       CMOS_DWR         00..01.0111101 | ||||
|         DW              %00000100111101 | ||||
|         DW              %11001101111111 | ||||
|         DB              #1E | ||||
| ;       CMOS_AWR         00..0110101101 | ||||
|         DW              %00000110101101 | ||||
|         DW              %11001111111111 | ||||
|         DB              #1D | ||||
| ;       CMOS_DRD         00..11.0111101 | ||||
|         DW              %00001100111101 | ||||
|         DW              %11001101111111 | ||||
|         DB              #1C | ||||
| 
 | ||||
| ; DCP END MARKER | ||||
|         DW      0,0,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
|         ENDIF | ||||
| ; | ||||
| @ -1,9 +0,0 @@ | ||||
| 
 | ||||
|         DEFINE FNAME_DCPpage './src/bios/old_files/DCP_PAGE.bin' | ||||
|         DEFINE FNAME_DCP './src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM' | ||||
| 
 | ||||
|  includelua 'Shared_includes/lua/Functions.lua' | ||||
| 
 | ||||
|  LUA PASS1 | ||||
|         Generate_DCPASM_fromPAGE(sj.get_define("FNAME_DCPpage"), sj.get_define("FNAME_DCP"))  | ||||
|  ENDLUA | ||||
| @ -1,639 +0,0 @@ | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; | ||||
|         DW      %00000000000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #10 | ||||
| ; | ||||
|         DW      %01000000000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #10 | ||||
| ; | ||||
|         DW      %10000000000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #10 | ||||
| ; | ||||
|         DW      %11000000000111 | ||||
|         DW      %11000001101111 | ||||
|         DB      #10 | ||||
| ; | ||||
|         DW      %00000000100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #11 | ||||
| ; | ||||
|         DW      %01000000100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #11 | ||||
| ; | ||||
|         DW      %10000000100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #11 | ||||
| ; | ||||
|         DW      %11000000100111 | ||||
|         DW      %11000001101111 | ||||
|         DB      #11 | ||||
| ; | ||||
|         DW      %00000001000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #12 | ||||
| ; | ||||
|         DW      %01000001000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #12 | ||||
| ; | ||||
|         DW      %10000001000111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #12 | ||||
| ; | ||||
|         DW      %11000001000111 | ||||
|         DW      %11000001101111 | ||||
|         DB      #12 | ||||
| ; | ||||
|         DW      %00000001100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #13 | ||||
| ; | ||||
|         DW      %01000001100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #13 | ||||
| ; | ||||
|         DW      %10000001100111 | ||||
|         DW      %11010001101111 | ||||
|         DB      #13 | ||||
| ; | ||||
|         DW      %11000001100111 | ||||
|         DW      %11000001101111 | ||||
|         DB      #13 | ||||
| ; | ||||
|         DW      %00000001101111 | ||||
|         DW      %11011001101111 | ||||
|         DB      #14 | ||||
| ; | ||||
|         DW      %01000001101111 | ||||
|         DW      %11011001101111 | ||||
|         DB      #14 | ||||
| ; | ||||
|         DW      %10000001101111 | ||||
|         DW      %11011001101111 | ||||
|         DB      #14 | ||||
| ; | ||||
|         DW      %11000001101111 | ||||
|         DW      %11001001101111 | ||||
|         DB      #14 | ||||
| ; | ||||
|         DW      %00001000000111 | ||||
|         DW      %11001000000111 | ||||
|         DB      #15 | ||||
| ; | ||||
|         DW      %01001000000111 | ||||
|         DW      %11001000000111 | ||||
|         DB      #15 | ||||
| ; | ||||
|         DW      %10001000000111 | ||||
|         DW      %11001000000111 | ||||
|         DB      #15 | ||||
| ; | ||||
|         DW      %11001001101111 | ||||
|         DW      %11001001101111 | ||||
|         DB      #15 | ||||
| ; | ||||
|         DW      %00000000101101 | ||||
|         DW      %11011111111111 | ||||
|         DB      #16 | ||||
| ; | ||||
|         DW      %11000000101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #16 | ||||
| ; | ||||
|         DW      %00000000111101 | ||||
|         DW      %11011111111111 | ||||
|         DB      #17 | ||||
| ; | ||||
|         DW      %11000000111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #17 | ||||
| ; | ||||
|         DW      %10000100101101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #18 | ||||
| ; | ||||
|         DW      %10000100111101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #19 | ||||
| ; | ||||
|         DW      %10000110101101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #1A | ||||
| ; | ||||
|         DW      %00000100101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1B | ||||
| ; | ||||
|         DW      %10000110111101 | ||||
|         DW      %11010111111111 | ||||
|         DB      #1B | ||||
| ; | ||||
|         DW      %11000100101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1B | ||||
| ; | ||||
|         DW      %00001100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1C | ||||
| ; | ||||
|         DW      %11001100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1C | ||||
| ; | ||||
|         DW      %00000110101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1D | ||||
| ; | ||||
|         DW      %11000110101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #1D | ||||
| ; | ||||
|         DW      %00000100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1E | ||||
| ; | ||||
|         DW      %11000100111101 | ||||
|         DW      %11001101111111 | ||||
|         DB      #1E | ||||
| ; | ||||
|         DW      %00000001000000 | ||||
|         DW      %11000001101111 | ||||
|         DB      #20 | ||||
| ; | ||||
|         DW      %01000001000000 | ||||
|         DW      %11010001101111 | ||||
|         DB      #20 | ||||
| ; | ||||
|         DW      %10000001000000 | ||||
|         DW      %11010001101111 | ||||
|         DB      #20 | ||||
| ; | ||||
|         DW      %11000001000000 | ||||
|         DW      %11000001101111 | ||||
|         DB      #20 | ||||
| ; | ||||
|         DW      %00000001000001 | ||||
|         DW      %11000111101111 | ||||
|         DB      #21 | ||||
| ; | ||||
|         DW      %01000001000001 | ||||
|         DW      %11010111101111 | ||||
|         DB      #21 | ||||
| ; | ||||
|         DW      %10000001000001 | ||||
|         DW      %11010111101111 | ||||
|         DB      #21 | ||||
| ; | ||||
|         DW      %11000001000001 | ||||
|         DW      %11000111101111 | ||||
|         DB      #21 | ||||
| ; | ||||
|         DW      %00000001000010 | ||||
|         DW      %11000111101111 | ||||
|         DB      #22 | ||||
| ; | ||||
|         DW      %01000001000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #22 | ||||
| ; | ||||
|         DW      %10000001000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #22 | ||||
| ; | ||||
|         DW      %11000001000010 | ||||
|         DW      %11000111101111 | ||||
|         DB      #22 | ||||
| ; | ||||
|         DW      %00000001000011 | ||||
|         DW      %11000111101111 | ||||
|         DB      #23 | ||||
| ; | ||||
|         DW      %01000001000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #23 | ||||
| ; | ||||
|         DW      %10000001000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #23 | ||||
| ; | ||||
|         DW      %11000001000011 | ||||
|         DW      %11000111101111 | ||||
|         DB      #23 | ||||
| ; | ||||
|         DW      %00000001000100 | ||||
|         DW      %11000111101111 | ||||
|         DB      #24 | ||||
| ; | ||||
|         DW      %01000001000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      #24 | ||||
| ; | ||||
|         DW      %10000001000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      #24 | ||||
| ; | ||||
|         DW      %11000001000100 | ||||
|         DW      %11000111101111 | ||||
|         DB      #24 | ||||
| ; | ||||
|         DW      %00000001000101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #25 | ||||
| ; | ||||
|         DW      %01000001000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      #25 | ||||
| ; | ||||
|         DW      %10000001000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      #25 | ||||
| ; | ||||
|         DW      %11000001000101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #25 | ||||
| ; | ||||
|         DW      %00000011000010 | ||||
|         DW      %11000111101111 | ||||
|         DB      #26 | ||||
| ; | ||||
|         DW      %01000011000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #26 | ||||
| ; | ||||
|         DW      %10000011000010 | ||||
|         DW      %11010111101111 | ||||
|         DB      #26 | ||||
| ; | ||||
|         DW      %11000011000010 | ||||
|         DW      %11000111101111 | ||||
|         DB      #26 | ||||
| ; | ||||
|         DW      %00000011000011 | ||||
|         DW      %11000111101111 | ||||
|         DB      #27 | ||||
| ; | ||||
|         DW      %01000011000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #27 | ||||
| ; | ||||
|         DW      %10000011000011 | ||||
|         DW      %11010111101111 | ||||
|         DB      #27 | ||||
| ; | ||||
|         DW      %11000011000011 | ||||
|         DW      %11000111101111 | ||||
|         DB      #27 | ||||
| ; | ||||
|         DW      %00000011000100 | ||||
|         DW      %11000111101111 | ||||
|         DB      #28 | ||||
| ; | ||||
|         DW      %01000011000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      #28 | ||||
| ; | ||||
|         DW      %10000011000100 | ||||
|         DW      %11010111101111 | ||||
|         DB      #28 | ||||
| ; | ||||
|         DW      %11000011000100 | ||||
|         DW      %11000111101111 | ||||
|         DB      #28 | ||||
| ; | ||||
|         DW      %00000011000101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #29 | ||||
| ; | ||||
|         DW      %01000011000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      #29 | ||||
| ; | ||||
|         DW      %10000011000101 | ||||
|         DW      %11010111101111 | ||||
|         DB      #29 | ||||
| ; | ||||
|         DW      %11000011000101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #29 | ||||
| ; | ||||
|         DW      %00000000101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2A | ||||
| ; | ||||
|         DW      %11000000101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2A | ||||
| ; | ||||
|         DW      %00000000111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2B | ||||
| ; | ||||
|         DW      %11000000111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2B | ||||
| ; | ||||
|         DW      %00000010101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2C | ||||
| ; | ||||
|         DW      %11000010101101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2C | ||||
| ; | ||||
|         DW      %00000010111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2D | ||||
| ; | ||||
|         DW      %11000010111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2D | ||||
| ; | ||||
|         DW      %00000010101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2E | ||||
| ; | ||||
|         DW      %11000010101100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2E | ||||
| ; | ||||
|         DW      %00000010111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2F | ||||
| ; | ||||
|         DW      %11000010111100 | ||||
|         DW      %11001111111111 | ||||
|         DB      #2F | ||||
| ; | ||||
|         DW      %00010000101011 | ||||
|         DW      %11010001101011 | ||||
|         DB      #32 | ||||
| ; | ||||
|         DW      %00011001101110 | ||||
|         DW      %11011001101111 | ||||
|         DB      #40 | ||||
| ; | ||||
|         DW      %01011001101110 | ||||
|         DW      %11011001101111 | ||||
|         DB      #40 | ||||
| ; | ||||
|         DW      %10011001101110 | ||||
|         DW      %11011001101111 | ||||
|         DB      #40 | ||||
| ; | ||||
|         DW      %00001111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #52 | ||||
| ; | ||||
|         DW      %01001111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #52 | ||||
| ; | ||||
|         DW      %10001111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #52 | ||||
| ; | ||||
|         DW      %11001111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #52 | ||||
| ; | ||||
|         DW      %00001111011111 | ||||
|         DW      %11001111111111 | ||||
|         DB      #58 | ||||
| ; | ||||
|         DW      %11001111011111 | ||||
|         DW      %11001111111111 | ||||
|         DB      #58 | ||||
| ; | ||||
|         DW      %00010000000000 | ||||
|         DW      %11010000000000 | ||||
|         DB      #88 | ||||
| ; | ||||
|         DW      %01010001100011 | ||||
|         DW      %11010001100111 | ||||
|         DB      #88 | ||||
| ; | ||||
|         DW      %10010001100011 | ||||
|         DW      %11010001100111 | ||||
|         DB      #88 | ||||
| ; | ||||
|         DW      %00000001000110 | ||||
|         DW      %11001111111111 | ||||
|         DB      #89 | ||||
| ; | ||||
|         DW      %11000001000110 | ||||
|         DW      %11001111111111 | ||||
|         DB      #89 | ||||
| ; | ||||
|         DW      %00000111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #90 | ||||
| ; | ||||
|         DW      %01000111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #90 | ||||
| ; | ||||
|         DW      %10000111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #90 | ||||
| ; | ||||
|         DW      %11000111111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #90 | ||||
| ; | ||||
|         DW      %00000101111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #91 | ||||
| ; | ||||
|         DW      %01000101111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #91 | ||||
| ; | ||||
|         DW      %10000101111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #91 | ||||
| ; | ||||
|         DW      %11000101111101 | ||||
|         DW      %11001111111111 | ||||
|         DB      #91 | ||||
| ; | ||||
|         DW      %00000001101101 | ||||
|         DW      %11000111111111 | ||||
|         DB      #C0 | ||||
| ; | ||||
|         DW      %01000001101101 | ||||
|         DW      %11000111111111 | ||||
|         DB      #C0 | ||||
| ; | ||||
|         DW      %11000001101101 | ||||
|         DW      %11000111111111 | ||||
|         DB      #C0 | ||||
| ; | ||||
|         DW      %00000011101101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #C1 | ||||
| ; | ||||
|         DW      %01000011101101 | ||||
|         DW      %11100111101111 | ||||
|         DB      #C1 | ||||
| ; | ||||
|         DW      %10000001101101 | ||||
|         DW      %11100101101111 | ||||
|         DB      #C1 | ||||
| ; | ||||
|         DW      %11000011101101 | ||||
|         DW      %11000111101111 | ||||
|         DB      #C1 | ||||
| ; | ||||
|         DW      %00000001101110 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C2 | ||||
| ; | ||||
|         DW      %01000001101110 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C2 | ||||
| ; | ||||
|         DW      %10000001101110 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C2 | ||||
| ; | ||||
|         DW      %11000001101110 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C2 | ||||
| ; | ||||
|         DW      %00000001010110 | ||||
|         DW      %11001111111111 | ||||
|         DB      #C3 | ||||
| ; | ||||
|         DW      %11000001010110 | ||||
|         DW      %11001111111111 | ||||
|         DB      #C3 | ||||
| ; | ||||
|         DW      %00000000001001 | ||||
|         DW      %11000001101111 | ||||
|         DB      #C4 | ||||
| ; | ||||
|         DW      %01000000001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      #C4 | ||||
| ; | ||||
|         DW      %10000000001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      #C4 | ||||
| ; | ||||
|         DW      %11000000001001 | ||||
|         DW      %11000001101111 | ||||
|         DB      #C4 | ||||
| ; | ||||
|         DW      %00000001001001 | ||||
|         DW      %11000001101111 | ||||
|         DB      #C5 | ||||
| ; | ||||
|         DW      %01000001001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      #C5 | ||||
| ; | ||||
|         DW      %10000001001001 | ||||
|         DW      %11010001101111 | ||||
|         DB      #C5 | ||||
| ; | ||||
|         DW      %11000001001001 | ||||
|         DW      %11000001101111 | ||||
|         DB      #C5 | ||||
| ; | ||||
|         DW      %00000000100100 | ||||
|         DW      %11000000101111 | ||||
|         DB      #C6 | ||||
| ; | ||||
|         DW      %01000000100100 | ||||
|         DW      %11000000101111 | ||||
|         DB      #C6 | ||||
| ; | ||||
|         DW      %10000000100100 | ||||
|         DW      %11000000101111 | ||||
|         DB      #C6 | ||||
| ; | ||||
|         DW      %11000000100100 | ||||
|         DW      %11000000101111 | ||||
|         DB      #C6 | ||||
| ; | ||||
|         DW      %00000001101100 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C7 | ||||
| ; | ||||
|         DW      %11000001101100 | ||||
|         DW      %11001001101111 | ||||
|         DB      #C7 | ||||
| ; | ||||
|         DW      %00000000001010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #E8 | ||||
| ; | ||||
|         DW      %01000000001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E8 | ||||
| ; | ||||
|         DW      %10000000001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E8 | ||||
| ; | ||||
|         DW      %11000000001010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #E8 | ||||
| ; | ||||
|         DW      %00000000101010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #E9 | ||||
| ; | ||||
|         DW      %01000000101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E9 | ||||
| ; | ||||
|         DW      %10000000101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #E9 | ||||
| ; | ||||
|         DW      %11000000101010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #E9 | ||||
| ; | ||||
|         DW      %00000001001010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #EA | ||||
| ; | ||||
|         DW      %01000001001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #EA | ||||
| ; | ||||
|         DW      %10000001001010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #EA | ||||
| ; | ||||
|         DW      %11000001001010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #EA | ||||
| ; | ||||
|         DW      %00000001101010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #F0 | ||||
| ; | ||||
|         DW      %01000001101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #F0 | ||||
| ; | ||||
|         DW      %10000001101010 | ||||
|         DW      %11010001101111 | ||||
|         DB      #F0 | ||||
| ; | ||||
|         DW      %11000001101010 | ||||
|         DW      %11000001101111 | ||||
|         DB      #F0 | ||||
| ; DCP END MARKER | ||||
|         DW      0,0,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| @ -1,110 +0,0 @@ | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; !TODO áà ¢¨âì ª ª § ¯ ªã¥âáï DCP  «£®à¨â¬®¬ ¤«ï k50 | ||||
| DCP_INIT: | ||||
|         EXX | ||||
|         LD HL,DCP_DATA | ||||
|         LD DE,#C000 | ||||
| .loop0: | ||||
|         LD B,8 | ||||
|         LD C,(HL) | ||||
|         INC HL | ||||
| .loop1: | ||||
|         RLC C | ||||
|         JR C,.loop2 | ||||
|         SUB A | ||||
|         LD (DE),A | ||||
|         INC DE | ||||
|         DJNZ .loop1 | ||||
|         JR .loop3 | ||||
| .loop2: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         LD (DE),A | ||||
|         INC DE | ||||
|         DJNZ .loop1 | ||||
| .loop3: | ||||
|         INC D | ||||
|         DEC D | ||||
|         JR NZ,.loop0 | ||||
| 
 | ||||
|         LD HL,#C000                                                     ; CONFIG-3 for DOS & other fns | ||||
|         LD DE,#F000 | ||||
|         LD BC,#0400 | ||||
|         LDIR            ; DE = #F400 !!! | ||||
|         LD HL,#F000 | ||||
|         ;LD DE,#F400 | ||||
|         LD BC,#0C00 | ||||
|         LDIR | ||||
| 
 | ||||
| ; First IN command - OPEN DCP | ||||
|         IN A,(SLOT3) | ||||
|         EXX | ||||
|         JP (HL) | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;       ”ãªæ¨ï ¤¥è¨äà â®à  ¯®à⮢. | ||||
| ;       HL -  ¤à¥á | ||||
| ;       DE - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;       B - ¯®àâ | ||||
| ; DCP_FN0M: | ||||
| ;         LD A,L | ||||
| ;         AND E | ||||
| ;         LD L,A | ||||
| 
 | ||||
| ;         LD A,H | ||||
| ;         AND D | ||||
| ; ;       AND #3F | ||||
| ;         OR #C0 | ||||
| ;         LD H,A | ||||
| 
 | ||||
| ;         LD A,D | ||||
| ;         OR #C0 | ||||
| ;         LD D,A | ||||
| 
 | ||||
| ; .loop:  LD (HL),B | ||||
| 
 | ||||
| ;         LD A,L                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
| ;         OR E                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
| ;         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
| ;         JR Z,.carry                                                     ; ¢®§¨ª ¯¥à¥®á | ||||
| 
 | ||||
| ;         OR E | ||||
| ;         XOR E                                                           ; ®¡ã«¨âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë | ||||
| ;         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
| ;         LD A,L | ||||
| ;         AND E                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
| ;         OR C | ||||
| ;         LD L,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
| 
 | ||||
| ;         JR .loop                                                        ; 横« | ||||
| 
 | ||||
| ; .carry:                                                                 ; A = 0 | ||||
| ; ;       OR E | ||||
| ; ;       XOR E | ||||
| ; ;       LD C,A | ||||
| ;         LD A,L                                                          ; § ¡¨âì ¨§¬¥ï¥¬ë¥ ¡¨âë ã«ï¬¨ | ||||
| ;         AND E | ||||
| ; ;       OR C | ||||
| ;         LD L,A | ||||
| 
 | ||||
| ;         LD A,H                                                          ; § ¬ áª¨à®¢ âì ¥¨§¬¥ï¥¬ë¥ ¡¨âë 1-¬¨ | ||||
| ;         OR D                                                            ; ¤«ï ¯à®å®¦¤¥¨ï ¯¥à¥®á  | ||||
| ;         INC A                                                           ; 㢥«¨ç¨âì  ¤à¥á | ||||
| ;         JR Z,.exit | ||||
| 
 | ||||
| ;         OR D | ||||
| ;         XOR D | ||||
| ;         LD C,A                                                          ; ¨§¬¥ï¥¬ ï ç áâì | ||||
| 
 | ||||
| ;         LD A,H | ||||
| ;         AND D                                                           ; ¢ë¤¥«¨âì ¥¨§¬¥ï¥¬ãî | ||||
| ;         OR C | ||||
| ;         LD H,A                                                          ; ¤®¡ ¢¨âì ¨§¬¥ï¥¬ãî ç áâì | ||||
| ;         JR .loop | ||||
| 
 | ||||
| ; .exit:  JP (IX) | ||||
| ;-----------------------------------------------------------------------; | ||||
										
											Binary file not shown.
										
									
								
							| @ -1,565 +0,0 @@ | ||||
| ; z80dasm 1.2.0 | ||||
| ; command line: z80dasm -a -l -u -t -g 0x0000 -o /Users/tolik/Library/CloudStorage/GoogleDrive-tolik.trek@gmail.com/Мой диск/Progs/ASM/GIT/DSS 1.70b/Build/SP_EXP2_dasm.a80 /Users/tolik/Downloads/SP_EXP2.BIN | ||||
| 
 | ||||
| 	org 00000h | ||||
| ;-----------------------------------------------------------------------; | ||||
| l0000h:	di			;0000	f3		. | ||||
| 	halt			;0001	76		v | ||||
| ; | ||||
|         BLOCK   #10-$,#FF | ||||
| 	ret			;0010	c9		. | ||||
| ; | ||||
|         BLOCK   #38-$,#FF | ||||
| 	ei			;0038	fb		. | ||||
| 	reti			;0039	ed 4d		. M | ||||
| ; | ||||
|         BLOCK   #66-$,#C9 | ||||
| 	retn			;0066	ed 45		. E | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
|         BLOCK   #100-$,#FF | ||||
| l0100h:	pop af			;0100	f1		. | ||||
| 	call sub_010eh		;0101	cd 0e 01	. . . | ||||
| 	jp l3fe8h		;0104	c3 e8 3f	. . ? | ||||
| l0107h: | ||||
| 	pop af			;0107	f1		. | ||||
| 	call sub_010eh		;0108	cd 0e 01	. . . | ||||
| 	jp l3ff0h		;010b	c3 f0 3f	. . ? | ||||
| 
 | ||||
| 
 | ||||
| sub_010eh: | ||||
| 	push af			;010e	f5		. | ||||
| 	ld a,c			;010f	79		y | ||||
| 	and a			;0110	a7		. | ||||
| 	jp z,l030ch		;0111	ca 0c 03	. . . | ||||
| 	dec a			;0114	3d		= | ||||
| 	jp z,l02b1h		;0115	ca b1 02	. . . | ||||
| 	dec a			;0118	3d		= | ||||
| 	jp z,l02cch		;0119	ca cc 02	. . . | ||||
| 	dec a			;011c	3d		= | ||||
| 	jp z,l017bh		;011d	ca 7b 01	. { . | ||||
| 	dec a			;0120	3d		= | ||||
| 	jp z,l019ch		;0121	ca 9c 01	. . . | ||||
| 	dec a			;0124	3d		= | ||||
| 	jp z,l01a7h		;0125	ca a7 01	. . . | ||||
| 	dec a			;0128	3d		= | ||||
| 	jp z,l0247h		;0129	ca 47 02	. G . | ||||
| 	dec a			;012c	3d		= | ||||
| 	jp z,l0424h		;012d	ca 24 04	. $ . | ||||
| 	pop af			;0130	f1		. | ||||
| 	scf			;0131	37		7 | ||||
| 	ret			;0132	c9		. | ||||
| 
 | ||||
| 
 | ||||
| sub_0133h: | ||||
| 	ld d,a			;0133	57		W | ||||
| 	in a,(0e2h)		;0134	db e2		. . | ||||
| 	ex af,af'		;0136	08		. | ||||
| 	ld a,0feh		;0137	3e fe		> . | ||||
| 	out (0e2h),a		;0139	d3 e2		. . | ||||
| 	ld a,(0c60ch)		;013b	3a 0c c6	: . . | ||||
| 	ld e,a			;013e	5f		_ | ||||
| 	ex af,af'		;013f	08		. | ||||
| 	out (0e2h),a		;0140	d3 e2		. . | ||||
| 	ld a,d			;0142	7a		z | ||||
| 	ld d,000h		;0143	16 00		. . | ||||
| 	ld ix,0 		;0145	dd 21 00 00	. ! . . | ||||
| 	ld b,001h		;0149	06 01		. . | ||||
| sub_014bh: | ||||
| 	push af			;014b	f5		. | ||||
| 	push hl			;014c	e5		. | ||||
| 	call sub_03d4h		;014d	cd d4 03	. . . | ||||
| l0150h: | ||||
| 	jr nc,l0156h		;0150	30 04		0 . | ||||
| l0152h: | ||||
| 	pop hl			;0152	e1		. | ||||
| l0153h: | ||||
| 	pop af			;0153	f1		. | ||||
| l0154h: | ||||
| 	scf			;0154	37		7 | ||||
| l0155h: | ||||
| 	ret			;0155	c9		. | ||||
| l0156h: | ||||
| 	ld a,b			;0156	78		x | ||||
| 	ld bc,l0152h		;0157	01 52 01	. R . | ||||
| 	out (c),a		;015a	ed 79		. y | ||||
| 	ld bc,l0153h		;015c	01 53 01	. S . | ||||
| 	out (c),l		;015f	ed 69		. i | ||||
| 	ld bc,l0154h		;0161	01 54 01	. T . | ||||
| 	out (c),e		;0164	ed 59		. Y | ||||
| 	ld bc,l0155h		;0166	01 55 01	. U . | ||||
| 	out (c),d		;0169	ed 51		. Q | ||||
| 	ld bc,04152h		;016b	01 52 41	. R A | ||||
| 	dec b			;016e	05		. | ||||
| 	in a,(c)		;016f	ed 78		. x | ||||
| 	and 0f0h		;0171	e6 f0		. . | ||||
| 	or h			;0173	b4		. | ||||
| 	inc b			;0174	04		. | ||||
| 	out (c),a		;0175	ed 79		. y | ||||
| 	pop hl			;0177	e1		. | ||||
| 	pop af			;0178	f1		. | ||||
| 	and a			;0179	a7		. | ||||
| 	ret			;017a	c9		. | ||||
| l017bh: | ||||
| 	pop af			;017b	f1		. | ||||
| 	and a			;017c	a7		. | ||||
| 	inc b			;017d	04		. | ||||
| 	dec b			;017e	05		. | ||||
| 	ret z			;017f	c8		. | ||||
| 	call sub_03aeh		;0180	cd ae 03	. . . | ||||
| 	ret c			;0183	d8		. | ||||
| 	call sub_014bh		;0184	cd 4b 01	. K . | ||||
| 	ret c			;0187	d8		. | ||||
| 	exx			;0188	d9		. | ||||
| 	ld c,0e2h		;0189	0e e2		. . | ||||
| 	in b,(c)		;018b	ed 40		. @ | ||||
| 	exx			;018d	d9		. | ||||
| 	out (0e2h),a		;018e	d3 e2		. . | ||||
| 	ex af,af'		;0190	08		. | ||||
| 	ld a,0c0h		;0191	3e c0		> . | ||||
| 	out (089h),a		;0193	d3 89		. . | ||||
| 	ld bc,04153h		;0195	01 53 41	. S A | ||||
| 	ld a,020h		;0198	3e 20		>   | ||||
| 	and a			;019a	a7		. | ||||
| 	ret			;019b	c9		. | ||||
| l019ch: | ||||
| 	pop af			;019c	f1		. | ||||
| 	call sub_03aeh		;019d	cd ae 03	. . . | ||||
| 	ret c			;01a0	d8		. | ||||
| 	call sub_0133h		;01a1	cd 33 01	. 3 . | ||||
| 	ret c			;01a4	d8		. | ||||
| 	jr l01b4h		;01a5	18 0d		. . | ||||
| l01a7h: | ||||
| 	pop af			;01a7	f1		. | ||||
| 	and a			;01a8	a7		. | ||||
| 	inc b			;01a9	04		. | ||||
| 	dec b			;01aa	05		. | ||||
| 	ret z			;01ab	c8		. | ||||
| 	call sub_03aeh		;01ac	cd ae 03	. . . | ||||
| 	ret c			;01af	d8		. | ||||
| 	call sub_014bh		;01b0	cd 4b 01	. K . | ||||
| 	ret c			;01b3	d8		. | ||||
| l01b4h: | ||||
| 	exx			;01b4	d9		. | ||||
| 	ld c,0e2h		;01b5	0e e2		. . | ||||
| 	in b,(c)		;01b7	ed 40		. @ | ||||
| 	exx			;01b9	d9		. | ||||
| 	out (0e2h),a		;01ba	d3 e2		. . | ||||
| 	ex af,af'		;01bc	08		. | ||||
| 	ld a,0c0h		;01bd	3e c0		> . | ||||
| 	out (089h),a		;01bf	d3 89		. . | ||||
| 	ld bc,04153h		;01c1	01 53 41	. S A | ||||
| 	ld a,020h		;01c4	3e 20		>   | ||||
| 	out (c),a		;01c6	ed 79		. y | ||||
| l01c8h: | ||||
| 	ld bc,04053h		;01c8	01 53 40	. S @ | ||||
| 	in a,(c)		;01cb	ed 78		. x | ||||
| 	bit 7,a			;01cd	cb 7f		. . | ||||
| 	jr nz,l01c8h		;01cf	20 f7		  . | ||||
| 	bit 3,a			;01d1	cb 5f		. _ | ||||
| 	jr nz,l01e8h		;01d3	20 13		  . | ||||
| 	ld a,000h		;01d5	3e 00		> . | ||||
| 	out (089h),a		;01d7	d3 89		. . | ||||
| l01d9h: | ||||
| 	exx			;01d9	d9		. | ||||
| 	out (c),b		;01da	ed 41		. A | ||||
| 	exx			;01dc	d9		. | ||||
| 	ld bc,#0051		;01dd	01 51 00	. Q . | ||||
| 	in a,(c)		;01e0	ed 78		. x | ||||
| 	and a			;01e2	a7		. | ||||
| 	scf			;01e3	37		7 | ||||
| 	ret nz			;01e4	c0		. | ||||
| 	ex af,af'		;01e5	08		. | ||||
| 	and a			;01e6	a7		. | ||||
| 	ret			;01e7	c9		. | ||||
| l01e8h: | ||||
| 	ld bc,#0050		;01e8	01 50 00	. P . | ||||
| l01ebh: | ||||
| 	ini			;01eb	ed a2		. . | ||||
| 	ini			;01ed	ed a2		. . | ||||
| 	ini			;01ef	ed a2		. . | ||||
| 	ini			;01f1	ed a2		. . | ||||
| 	ini			;01f3	ed a2		. . | ||||
| 	ini			;01f5	ed a2		. . | ||||
| 	ini			;01f7	ed a2		. . | ||||
| 	ini			;01f9	ed a2		. . | ||||
| 	ini			;01fb	ed a2		. . | ||||
| 	ini			;01fd	ed a2		. . | ||||
| 	ini			;01ff	ed a2		. . | ||||
| 	ini			;0201	ed a2		. . | ||||
| 	ini			;0203	ed a2		. . | ||||
| 	ini			;0205	ed a2		. . | ||||
| 	ini			;0207	ed a2		. . | ||||
| 	ini			;0209	ed a2		. . | ||||
| 	jp nz,l01ebh		;020b	c2 eb 01	. . . | ||||
| l020eh: | ||||
| 	ini			;020e	ed a2		. . | ||||
| 	ini			;0210	ed a2		. . | ||||
| 	ini			;0212	ed a2		. . | ||||
| 	ini			;0214	ed a2		. . | ||||
| 	ini			;0216	ed a2		. . | ||||
| 	ini			;0218	ed a2		. . | ||||
| 	ini			;021a	ed a2		. . | ||||
| 	ini			;021c	ed a2		. . | ||||
| 	ini			;021e	ed a2		. . | ||||
| 	ini			;0220	ed a2		. . | ||||
| 	ini			;0222	ed a2		. . | ||||
| 	ini			;0224	ed a2		. . | ||||
| 	ini			;0226	ed a2		. . | ||||
| 	ini			;0228	ed a2		. . | ||||
| 	ini			;022a	ed a2		. . | ||||
| 	ini			;022c	ed a2		. . | ||||
| 	jp nz,l020eh		;022e	c2 0e 02	. . . | ||||
| 	ld a,h			;0231	7c		| | ||||
| 	or l			;0232	b5		. | ||||
| 	jr nz,l01c8h		;0233	20 93		  . | ||||
| 	ld a,0feh		;0235	3e fe		> . | ||||
| 	out (0e2h),a		;0237	d3 e2		. . | ||||
| 	ex af,af'		;0239	08		. | ||||
| 	ld hl,0c200h		;023a	21 00 c2	! . . | ||||
| 	ld l,a			;023d	6f		o | ||||
| 	ld a,(hl)		;023e	7e		~ | ||||
| 	out (0e2h),a		;023f	d3 e2		. . | ||||
| 	ex af,af'		;0241	08		. | ||||
| 	ld hl,0c000h		;0242	21 00 c0	! . . | ||||
| 	jr l01c8h		;0245	18 81		. . | ||||
| l0247h: | ||||
| 	pop af			;0247	f1		. | ||||
| 	and a			;0248	a7		. | ||||
| 	inc b			;0249	04		. | ||||
| 	dec b			;024a	05		. | ||||
| 	ret z			;024b	c8		. | ||||
| 	call sub_03aeh		;024c	cd ae 03	. . . | ||||
| 	ret c			;024f	d8		. | ||||
| 	call sub_014bh		;0250	cd 4b 01	. K . | ||||
| l0253h: | ||||
| 	ret c			;0253	d8		. | ||||
| 	exx			;0254	d9		. | ||||
| 	ld c,0e2h		;0255	0e e2		. . | ||||
| 	in b,(c)		;0257	ed 40		. @ | ||||
| 	exx			;0259	d9		. | ||||
| 	out (0e2h),a		;025a	d3 e2		. . | ||||
| 	ex af,af'		;025c	08		. | ||||
| 	ld bc,04153h		;025d	01 53 41	. S A | ||||
| 	ld a,030h		;0260	3e 30		> 0 | ||||
| 	out (c),a		;0262	ed 79		. y | ||||
| l0264h: | ||||
| 	ld bc,04053h		;0264	01 53 40	. S @ | ||||
| 	in a,(c)		;0267	ed 78		. x | ||||
| 	bit 7,a			;0269	cb 7f		. . | ||||
| 	jr nz,l0264h		;026b	20 f7		  . | ||||
| 	bit 3,a			;026d	cb 5f		. _ | ||||
| 	jp z,l01d9h		;026f	ca d9 01	. . . | ||||
| 	ld bc,l0150h		;0272	01 50 01	. P . | ||||
| 	ld d,020h		;0275	16 20		.   | ||||
| l0277h: | ||||
| 	outi			;0277	ed a3		. . | ||||
| 	outi			;0279	ed a3		. . | ||||
| 	outi			;027b	ed a3		. . | ||||
| 	outi			;027d	ed a3		. . | ||||
| 	outi			;027f	ed a3		. . | ||||
| 	outi			;0281	ed a3		. . | ||||
| 	outi			;0283	ed a3		. . | ||||
| 	outi			;0285	ed a3		. . | ||||
| 	outi			;0287	ed a3		. . | ||||
| 	outi			;0289	ed a3		. . | ||||
| 	outi			;028b	ed a3		. . | ||||
| 	outi			;028d	ed a3		. . | ||||
| 	outi			;028f	ed a3		. . | ||||
| 	outi			;0291	ed a3		. . | ||||
| 	outi			;0293	ed a3		. . | ||||
| 	outi			;0295	ed a3		. . | ||||
| 	dec d			;0297	15		. | ||||
| 	jp nz,l0277h		;0298	c2 77 02	. w . | ||||
| 	ld a,h			;029b	7c		| | ||||
| 	or l			;029c	b5		. | ||||
| 	jr nz,l0264h		;029d	20 c5		  . | ||||
| 	ld a,0feh		;029f	3e fe		> . | ||||
| 	out (0e2h),a		;02a1	d3 e2		. . | ||||
| 	ex af,af'		;02a3	08		. | ||||
| 	ld hl,0c200h		;02a4	21 00 c2	! . . | ||||
| 	ld l,a			;02a7	6f		o | ||||
| 	ld a,(hl)		;02a8	7e		~ | ||||
| 	out (0e2h),a		;02a9	d3 e2		. . | ||||
| 	ex af,af'		;02ab	08		. | ||||
| 	ld hl,0c000h		;02ac	21 00 c0	! . . | ||||
| 	jr l0264h		;02af	18 b3		. . | ||||
| l02b1h: | ||||
| 	pop af			;02b1	f1		. | ||||
| 	ld a,0a0h		;02b2	3e a0		> . | ||||
| 	ld bc,04152h		;02b4	01 52 41	. R A | ||||
| 	out (c),a		;02b7	ed 79		. y | ||||
| 	ld a,090h		;02b9	3e 90		> . | ||||
| 	call sub_03a5h		;02bb	cd a5 03	. . . | ||||
| 	and a			;02be	a7		. | ||||
| 	bit 0,a			;02bf	cb 47		. G | ||||
| 	ret z			;02c1	c8		. | ||||
| 	ld bc,#0051		;02c2	01 51 00	. Q . | ||||
| 	in a,(c)		;02c5	ed 78		. x | ||||
| 	cp 001h			;02c7	fe 01		. . | ||||
| 	ret z			;02c9	c8		. | ||||
| 	scf			;02ca	37		7 | ||||
| 	ret			;02cb	c9		. | ||||
| l02cch: | ||||
| 	pop af			;02cc	f1		. | ||||
| 	ld e,000h		;02cd	1e 00		. . | ||||
| 	ld bc,04152h		;02cf	01 52 41	. R A | ||||
| 	ld a,0a0h		;02d2	3e a0		> . | ||||
| 	out (c),a		;02d4	ed 79		. y | ||||
| 	call sub_02f1h		;02d6	cd f1 02	. . . | ||||
| 	jr nz,l02ddh		;02d9	20 02		  . | ||||
| 	set 0,e			;02db	cb c3		. . | ||||
| l02ddh: | ||||
| 	ld bc,04152h		;02dd	01 52 41	. R A | ||||
| 	ld a,0b0h		;02e0	3e b0		> . | ||||
| 	out (c),a		;02e2	ed 79		. y | ||||
| 	call sub_02f1h		;02e4	cd f1 02	. . . | ||||
| 	jr nz,l02ebh		;02e7	20 02		  . | ||||
| 	set 1,e			;02e9	cb cb		. . | ||||
| l02ebh: | ||||
| 	ld a,e			;02eb	7b		{ | ||||
| 	and a			;02ec	a7		. | ||||
| 	scf			;02ed	37		7 | ||||
| 	ret z			;02ee	c8		. | ||||
| 	and a			;02ef	a7		. | ||||
| 	ret			;02f0	c9		. | ||||
| sub_02f1h: | ||||
| 	ld hl,001feh		;02f1	21 fe 01	! . . | ||||
| 	ld bc,l0152h		;02f4	01 52 01	. R . | ||||
| 	out (c),l		;02f7	ed 69		. i | ||||
| 	ld bc,l0153h		;02f9	01 53 01	. S . | ||||
| 	out (c),h		;02fc	ed 61		. a | ||||
| 	ld bc,00252h		;02fe	01 52 02	. R . | ||||
| 	in a,(c)		;0301	ed 78		. x | ||||
| 	cp l			;0303	bd		. | ||||
| 	ret nz			;0304	c0		. | ||||
| 	ld bc,l0253h		;0305	01 53 02	. S . | ||||
| 	in a,(c)		;0308	ed 78		. x | ||||
| 	cp h			;030a	bc		. | ||||
| 	ret			;030b	c9		. | ||||
| l030ch: | ||||
| 	pop af			;030c	f1		. | ||||
| 	ld bc,04152h		;030d	01 52 41	. R A | ||||
| 	ld a,0a0h		;0310	3e a0		> . | ||||
| 	out (c),a		;0312	ed 79		. y | ||||
| 	call sub_02f1h		;0314	cd f1 02	. . . | ||||
| 	jr nz,l0338h		;0317	20 1f		  . | ||||
| l0319h: | ||||
| 	ld bc,04053h		;0319	01 53 40	. S @ | ||||
| 	in a,(c)		;031c	ed 78		. x | ||||
| 	bit 7,a			;031e	cb 7f		. . | ||||
| 	jr nz,l0319h		;0320	20 f7		  . | ||||
| 	ld bc,04153h		;0322	01 53 41	. S A | ||||
| 	ld a,0ech		;0325	3e ec		> . | ||||
| 	out (c),a		;0327	ed 79		. y | ||||
| l0329h: | ||||
| 	ld bc,04053h		;0329	01 53 40	. S @ | ||||
| 	in a,(c)		;032c	ed 78		. x | ||||
| 	bit 7,a			;032e	cb 7f		. . | ||||
| 	jr nz,l0329h		;0330	20 f7		  . | ||||
| 	bit 3,a			;0332	cb 5f		. _ | ||||
| 	jr nz,l0346h		;0334	20 10		  . | ||||
| 	scf			;0336	37		7 | ||||
| 	ret			;0337	c9		. | ||||
| l0338h: | ||||
| 	ld bc,04152h		;0338	01 52 41	. R A | ||||
| 	ld a,0b0h		;033b	3e b0		> . | ||||
| 	out (c),a		;033d	ed 79		. y | ||||
| 	call sub_02f1h		;033f	cd f1 02	. . . | ||||
| 	jr z,l0319h		;0342	28 d5		( . | ||||
| 	scf			;0344	37		7 | ||||
| 	ret			;0345	c9		. | ||||
| l0346h: | ||||
| 	ld bc,#0050		;0346	01 50 00	. P . | ||||
| 	ld hl,0c600h		;0349	21 00 c6	! . . | ||||
| 	in a,(0e2h)		;034c	db e2		. . | ||||
| 	ld d,a			;034e	57		W | ||||
| 	ld a,0feh		;034f	3e fe		> . | ||||
| 	out (0e2h),a		;0351	d3 e2		. . | ||||
| 	inir			;0353	ed b2		. . | ||||
| 	inir			;0355	ed b2		. . | ||||
| 	ld a,(0c60ch)		;0357	3a 0c c6	: . . | ||||
| 	ld c,a			;035a	4f		O | ||||
| 	ld b,000h		;035b	06 00		. . | ||||
| 	ld hl,0 		;035d	21 00 00	! . . | ||||
| 	ld a,(0c606h)		;0360	3a 06 c6	: . . | ||||
| l0363h: | ||||
| 	add hl,bc		;0363	09		. | ||||
| 	dec a			;0364	3d		= | ||||
| 	jr nz,l0363h		;0365	20 fc		  . | ||||
| 	ld (0c604h),hl		;0367	22 04 c6	" . . | ||||
| l036ah: | ||||
| 	ld bc,04053h		;036a	01 53 40	. S @ | ||||
| 	in a,(c)		;036d	ed 78		. x | ||||
| 	bit 7,a			;036f	cb 7f		. . | ||||
| 	jr nz,l036ah		;0371	20 f7		  . | ||||
| 	ld bc,04152h		;0373	01 52 41	. R A | ||||
| 	dec b			;0376	05		. | ||||
| 	in a,(c)		;0377	ed 78		. x | ||||
| 	and 010h		;0379	e6 10		. . | ||||
| 	ld b,a			;037b	47		G | ||||
| 	ld a,(0c606h)		;037c	3a 06 c6	: . . | ||||
| 	dec a			;037f	3d		= | ||||
| 	and 00fh		;0380	e6 0f		. . | ||||
| 	or 0a0h			;0382	f6 a0		. . | ||||
| 	or b			;0384	b0		. | ||||
| 	ld h,a			;0385	67		g | ||||
| 	ld a,(0c663h)		;0386	3a 63 c6	: c . | ||||
| 	bit 1,a			;0389	cb 4f		. O | ||||
| 	jr z,l038fh		;038b	28 02		( . | ||||
| 	set 6,h			;038d	cb f4		. . | ||||
| l038fh: | ||||
| 	ld bc,04152h		;038f	01 52 41	. R A | ||||
| 	out (c),h		;0392	ed 61		. a | ||||
| 	ld a,(0c60ch)		;0394	3a 0c c6	: . . | ||||
| 	ld bc,l0152h		;0397	01 52 01	. R . | ||||
| 	out (c),a		;039a	ed 79		. y | ||||
| 	ld a,d			;039c	7a		z | ||||
| 	out (0e2h),a		;039d	d3 e2		. . | ||||
| 	ld a,091h		;039f	3e 91		> . | ||||
| 	call sub_03a5h		;03a1	cd a5 03	. . . | ||||
| 	ret			;03a4	c9		. | ||||
| sub_03a5h: | ||||
| 	call sub_03aeh		;03a5	cd ae 03	. . . | ||||
| 	ret c			;03a8	d8		. | ||||
| 	ld bc,04153h		;03a9	01 53 41	. S A | ||||
| 	out (c),a		;03ac	ed 79		. y | ||||
| sub_03aeh: | ||||
| 	push de			;03ae	d5		. | ||||
| 	push bc			;03af	c5		. | ||||
| 	push af			;03b0	f5		. | ||||
| 	ld de,0 		;03b1	11 00 00	. . . | ||||
| l03b4h: | ||||
| 	ld bc,04053h		;03b4	01 53 40	. S @ | ||||
| 	in a,(c)		;03b7	ed 78		. x | ||||
| 	bit 7,a			;03b9	cb 7f		. . | ||||
| 	jr z,l03c7h		;03bb	28 0a		( . | ||||
| 	dec de			;03bd	1b		. | ||||
| 	ld a,d			;03be	7a		z | ||||
| 	or e			;03bf	b3		. | ||||
| 	jr nz,l03b4h		;03c0	20 f2		  . | ||||
| 	pop af			;03c2	f1		. | ||||
| 	pop bc			;03c3	c1		. | ||||
| 	pop de			;03c4	d1		. | ||||
| 	scf			;03c5	37		7 | ||||
| 	ret			;03c6	c9		. | ||||
| l03c7h: | ||||
| 	pop af			;03c7	f1		. | ||||
| 	pop bc			;03c8	c1		. | ||||
| 	pop de			;03c9	d1		. | ||||
| 	and a			;03ca	a7		. | ||||
| 	ret			;03cb	c9		. | ||||
| l03cch: | ||||
| 	pop bc			;03cc	c1		. | ||||
| 	ld l,e			;03cd	6b		k | ||||
| 	ld e,d			;03ce	5a		Z | ||||
| 	ld d,ixl		;03cf	dd 55		. U | ||||
| 	xor a			;03d1	af		. | ||||
| 	ld h,a			;03d2	67		g | ||||
| 	ret			;03d3	c9		. | ||||
| sub_03d4h: | ||||
| 	ld a,ixh		;03d4	dd 7c		. | | ||||
| 	and a			;03d6	a7		. | ||||
| 	scf			;03d7	37		7 | ||||
| 	ret nz			;03d8	c0		. | ||||
| 	push bc			;03d9	c5		. | ||||
| 	ld bc,04152h		;03da	01 52 41	. R A | ||||
| 	dec b			;03dd	05		. | ||||
| 	in a,(c)		;03de	ed 78		. x | ||||
| 	bit 6,a			;03e0	cb 77		. w | ||||
| 	jr nz,l03cch		;03e2	20 e8		  . | ||||
| 	push ix			;03e4	dd e5		. . | ||||
| 	pop hl			;03e6	e1		. | ||||
| 	in a,(0e2h)		;03e7	db e2		. . | ||||
| 	ld c,a			;03e9	4f		O | ||||
| 	ld a,0feh		;03ea	3e fe		> . | ||||
| 	out (0e2h),a		;03ec	d3 e2		. . | ||||
| 	ld a,c			;03ee	79		y | ||||
| 	ld (0c107h),a		;03ef	32 07 c1	2 . . | ||||
| 	ld bc,(0c604h)		;03f2	ed 4b 04 c6	. K . . | ||||
| 	ld a,010h		;03f6	3e 10		> . | ||||
| 	scf			;03f8	37		7 | ||||
| l03f9h: | ||||
| 	ex de,hl		;03f9	eb		. | ||||
| 	add hl,hl		;03fa	29		) | ||||
| 	ex de,hl		;03fb	eb		. | ||||
| 	adc hl,hl		;03fc	ed 6a		. j | ||||
| 	sbc hl,bc		;03fe	ed 42		. B | ||||
| 	jr nc,l0408h		;0400	30 06		0 . | ||||
| 	add hl,bc		;0402	09		. | ||||
| 	dec a			;0403	3d		= | ||||
| 	jr nz,l03f9h		;0404	20 f3		  . | ||||
| 	jr l040ch		;0406	18 04		. . | ||||
| l0408h: | ||||
| 	inc de			;0408	13		. | ||||
| 	dec a			;0409	3d		= | ||||
| 	jr nz,l03f9h		;040a	20 ed		  . | ||||
| l040ch: | ||||
| 	ld a,(0c60ch)		;040c	3a 0c c6	: . . | ||||
| 	ld b,000h		;040f	06 00		. . | ||||
| 	ld c,a			;0411	4f		O | ||||
| 	xor a			;0412	af		. | ||||
| l0413h: | ||||
| 	sbc hl,bc		;0413	ed 42		. B | ||||
| 	inc a			;0415	3c		< | ||||
| 	jr nc,l0413h		;0416	30 fb		0 . | ||||
| 	dec a			;0418	3d		= | ||||
| 	add hl,bc		;0419	09		. | ||||
| 	inc l			;041a	2c		, | ||||
| 	ld h,a			;041b	67		g | ||||
| 	ld a,(0c107h)		;041c	3a 07 c1	: . . | ||||
| 	out (0e2h),a		;041f	d3 e2		. . | ||||
| 	pop bc			;0421	c1		. | ||||
| 	and a			;0422	a7		. | ||||
| 	ret			;0423	c9		. | ||||
| l0424h: | ||||
| 	pop af			;0424	f1		. | ||||
| 	bit 0,a			;0425	cb 47		. G | ||||
| 	ld a,021h		;0427	3e 21		> ! | ||||
| 	jr z,l042dh		;0429	28 02		( . | ||||
| 	ld a,001h		;042b	3e 01		> . | ||||
| l042dh: | ||||
| 	out (0bch),a		;042d	d3 bc		. . | ||||
| 	ret			;042f	c9		. | ||||
| 
 | ||||
| ; | ||||
| ;-----------------------------------------------------------------------; | ||||
|         BLOCK   #3FD0-$,#FF | ||||
| 	push af			;3fd0	f5		. | ||||
| 	ld a,000h		;3fd1	3e 00		> . | ||||
| 	out (07ch),a		;3fd3	d3 7c		. | | ||||
| 	pop af			;3fd5	f1		. | ||||
| l3fd6h: | ||||
| 	ret			;3fd6	c9		. | ||||
| l3fd7h: | ||||
| 	jp l0107h		;3fd7	c3 07 01	. . . | ||||
| 
 | ||||
| 
 | ||||
|         BLOCK   #3FE0-$,#FF | ||||
| l3fe0h: | ||||
| 	ld a,000h		;3fe0	3e 00		> . | ||||
| 	out (03ch),a		;3fe2	d3 3c		. < | ||||
| 	jp l3fe0h		;3fe4	c3 e0 3f	. . ? | ||||
| 	rst 38h			;3fe7	ff		. | ||||
| l3fe8h: | ||||
| 	push af			;3fe8	f5		. | ||||
| 	ld a,000h		;3fe9	3e 00		> . | ||||
| 	out (07ch),a		;3feb	d3 7c		. | | ||||
| 	jp l0100h		;3fed	c3 00 01	. . . | ||||
| l3ff0h: | ||||
| 	push af			;3ff0	f5		. | ||||
| 	di			;3ff1	f3		. | ||||
| 	ld a,000h		;3ff2	3e 00		> . | ||||
| 	out (03ch),a		;3ff4	d3 3c		. < | ||||
| 	jr l3fd7h		;3ff6	18 df		. . | ||||
| 	push af			;3ff8	f5		. | ||||
| 	ld a,000h		;3ff9	3e 00		> . | ||||
| 	out (03ch),a		;3ffb	d3 3c		. < | ||||
| 	jp l3fd6h		;3ffd	c3 d6 3f	. . ? | ||||
| 
 | ||||
|         BLOCK   #4000-$,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
| @ -83,6 +83,269 @@ JPHL:	JP	(HL) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------[ FOR ZX-MODE ]----------------------------; | ||||
|  IF BIOS_ZXMODE | ||||
| ;!HARDCODE   íâ®â  ¤à¥á #‘0 ¯à룠¥â ¢ vROM Basic-48 ¯®  ¤à¥áã #3CF0 | ||||
| ; ¬®¦® ¯®¯à®¡®¢ âì ¯¥à¥¤¥« âì íâ®â  ¤à¥á â ¬ | ||||
| /* | ||||
| 	_mInfoBLOCK #C0-$,0 | ||||
| ;BEGIN: | ||||
| ; ‚室 ç¥à¥§ USR 15600 | ||||
| RET_FROM_BIOS_TO_BASIC48: | ||||
|         CALL CH_2 | ||||
|         CALL COMAND_LINE        ; ‚›<E2809A>Ž‹<C5BD>…<EFBFBD>ˆ… ŠŽŒ€<C592>„›, …‘‹ˆ …‘’œ | ||||
|         ; ‚室 ¡¥§ ª®¬ ¤ë | ||||
|         JP SW_ROM_1             ; ‚އ‚<E280A1>€’ ‚ << MAIN MENU >> | ||||
| */ | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------[ ??????????? ]----------------------------; | ||||
| ; TURBO_OFF: | ||||
| ; 	LD A,D_TBOFF | ||||
| ; 	OUT (SYS_PORT.ON),A | ||||
| ; 	RET | ||||
| ; | ||||
| ; TURBO_ON: | ||||
| ; 	LD A,D_TBON | ||||
| ; 	OUT (SYS_PORT.ON),A | ||||
| ; 	RET | ||||
| ; | ||||
| ; JP_HL:  JP (HL) | ||||
| ; | ||||
| ;PRINT_LINE: | ||||
| ;        LD A,(HL) | ||||
| ;        INC HL | ||||
| ;        CP 0FFh | ||||
| ;        RET Z | ||||
| ;        RST 10H | ||||
| ;        JR PRINT_LINE | ||||
| ; | ||||
| ;	JP RESET_128 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;                       ******* SERVICE ******* | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;------[ „…˜ˆ”<CB86>€–ˆŸ ŠŽŒ€<C592>„<EFBFBD>މ ‘’<E28098>ŽŠˆ,<2C>…<EFBFBD>…„€<E2809E><E282AC>މ „‹Ÿ "EXPANSION" ]-------; | ||||
| COMAND_LINE: | ||||
|         LD HL,(#5C5D)   ;!HARDCODE CH_ADR | ||||
| COMAND_LOOP: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP ":" | ||||
|         JR Z,COMAND_L1 | ||||
|         CP #0D | ||||
|         JR NZ,COMAND_LOOP | ||||
|         RET | ||||
| 
 | ||||
| COMAND_L1: | ||||
|         LD A,(HL) | ||||
|         CP #EA          ;!HARDCODE | ||||
|         RET NZ | ||||
|         INC HL | ||||
| COMAND_OK:      ; Ž<><C5BD>€<EFBFBD>“†…<E280A0>€ ŠŽŒ€<C592>„€ „‹Ÿ 'expansion' | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP ':' | ||||
|         JP Z,MENU_S1 | ||||
|         CP #0D | ||||
|         JP Z,MENU_S1 | ||||
|         CP 'I' | ||||
|         JR Z,COMAND_ISD | ||||
|         CP 'i' | ||||
|         JR Z,COMAND_ISD | ||||
|         CP 'T' | ||||
|         JR Z,TASK_SWITCH | ||||
|         CP 't' | ||||
|         JR Z,TASK_SWITCH | ||||
|         DEC HL | ||||
|         POP BC | ||||
|         JP BASIC_MENU | ||||
| MENU_S1: | ||||
|         POP BC | ||||
|         CALL SERVICE | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| COMAND_ISD: | ||||
|         LD A,(HL) | ||||
|         INC HL | ||||
|         CP 'S' | ||||
|         JP Z,COMAND_ISD2 | ||||
|         CP 's' | ||||
|         JP Z,COMAND_ISD2 | ||||
|         RET | ||||
| 
 | ||||
| COMAND_ISD2: | ||||
|         POP BC | ||||
|         CALL ISDOS | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| 
 | ||||
| TASK_SWITCH: | ||||
| ;	*** ‘®åà ¨âì § ¤ çã *** | ||||
| 	PUSH IY | ||||
| 	PUSH IX | ||||
| 	PUSH AF | ||||
| 	PUSH BC | ||||
| 	PUSH DE | ||||
| 	PUSH HL | ||||
| 
 | ||||
| 	EXX | ||||
| 	EX AF,AF' | ||||
| 
 | ||||
| 	PUSH AF | ||||
| 	PUSH BC | ||||
| 	PUSH DE | ||||
| 	PUSH HL | ||||
| 
 | ||||
| 	LD A,R | ||||
| 	PUSH AF | ||||
| 	LD A,I | ||||
| 	PUSH AF | ||||
| 
 | ||||
| 	LD A,(HL) | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	AND 30H		; ®¢ ï § ¤ ç  0..3 | ||||
|         LD C,A | ||||
| 
 | ||||
| 	IN A,(SLOT3) | ||||
| 	LD B,A		; 3-ï áâà ¨æ  â¥ªã饩 § ¤ ç¨ | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 	LD IX,SYS_PAGE.TASK_DATA	; ¤ ë¥ § ¤ ç | ||||
| 	LD E,(IX)	; áâ à ï § ¤ ç  | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ¤ ë¥ ⥪ã饩 § ¤ ç¨ | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 
 | ||||
| 	LD (IX+1),B	; á®åà ¨âì áâà ¨æã 3 | ||||
| 	LD HL,0 | ||||
| 	ADD HL,SP | ||||
| 	LD (IX+2),L	; á®åà ¨âì á⥪ § ¤ ç¨ | ||||
| 	LD (IX+3),H | ||||
| 	SET 0,(IX)	; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨ | ||||
| 	RES 1,(IX)	; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨ãâ  | ||||
| 
 | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD E,C | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 
 | ||||
| 	BIT 1,(IX) | ||||
| ;	JR NZ,TASK_IN_WORK	; § ¤ ç  ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥ | ||||
| 				; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï | ||||
| 
 | ||||
| 	BIT 0,(IX)	; ¡ë«  á®åà ¥ /¥â | ||||
| 	JR NZ,TASK_SET	; § ¤ ç  áãé¥áâ¢ã¥â | ||||
| 
 | ||||
| ;	§ ¤ ç¨ ¥ ¡ë«®! | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD A,C		; § ¤ ç  | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	JP SPECTRUM_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã! | ||||
| ;                          ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨! | ||||
| 
 | ||||
| TASK_SET: | ||||
| 	LD IX,TASK_RESTORE | ||||
| 	LD A,C | ||||
| 	EXX | ||||
| 	JP INIT_PAGES	; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë! | ||||
| 
 | ||||
| TASK_RESTORE: | ||||
| 	EXX | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,C | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	LD E,A | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE | ||||
| 
 | ||||
| 	LD L,(IX+2)	; ¢á¯®¬¨âì á⥪ | ||||
| 	LD H,(IX+3) | ||||
| 	LD SP,HL | ||||
| 	LD A,(IX+1)	; ¢á¯®¬¨âì âà¥âìî áâà ¨æã | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 
 | ||||
| 	POP AF	; ¢®ááâ ®¢¨âì | ||||
| 	LD I,A | ||||
| 	POP AF | ||||
| 	LD R,A | ||||
| 	POP HL | ||||
| 	POP DE | ||||
| 	POP BC | ||||
| 	POP AF | ||||
| 	EX AF,AF' | ||||
| 	EXX | ||||
| 	POP HL | ||||
| 	POP DE | ||||
| 	POP BC | ||||
| 	POP AF | ||||
| 	POP IX | ||||
| 	POP IY | ||||
| 	; ¢¥àãâìáï ¢ § ¤ çã | ||||
| 
 | ||||
| NO_TASK: | ||||
|         POP BC | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| ; 259F - ADRESS BASIC128 - MAIN_MENU | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;                       *** UTILITES *** | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ; C_0030:                 ; ¯®«ãç¨âì à ¡ ®¡« | ||||
| ;        CALL_48X 0030h | ||||
| ;        RET | ||||
| C_19E8:                 ; ®ç¨áâ¨âì à ¡ ®¡« | ||||
|        CALL_48X #19E8   ;!HARDCODE | ||||
|        RET | ||||
| C_1655:                 ; ¯®«ãç¨âì ¯à®áâà á⢮ | ||||
|        CALL_48X #1655   ;!HARDCODE    | ||||
|        RET | ||||
| CLS: | ||||
| C_0D6B: CALL_48 #0D6B   ;!HARDCODE | ||||
|         RET | ||||
| CH_2:   LD A,2 | ||||
| C_1601:                 ; OPEN CHANEL | ||||
|         CALL_48 #1601   ;!HARDCODE | ||||
|         RET | ||||
| 
 | ||||
|         INCLUDE '../exp/ZX_MENU.ASM' | ||||
|         INCLUDE '../exp/ZX_MODE.ASM' | ||||
|  ENDIF | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;-------------[#1000 SETUP]------------- | ||||
| @ -137,8 +400,146 @@ SETUP_MAIN:     INCLUDE 'src/bios/ROM/SETUP/Main.asm' | ||||
|         ShowInfo 'Setup block of ROM end', 0                          ; !!!!! test | ||||
| BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| ;--------------------------------------- | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ; !FIXIT ᤥ« âì í⨠䨪á¨à®¢ ë¥  ¤à¥á  ®â¤¥«ìë¬ ä ©«®¬ ¨ á IF/ELSE ¨ ¯®¤ª«îç âì ¨å ¯®â®¬ ªã¤   ¤®. | ||||
| ; | ||||
| ;?????  ¯®á¬®âà¥âì | ||||
| ;----------------------------------------------------------------------; | ||||
| ;        BLOCK #3CC0-$,255 | ||||
| 	; no-magics! | ||||
| ;MAGIC_1:								; ‡€ƒ‹“˜Š€ „‹Ÿ MAGIC | ||||
| ;        PUSH AF | ||||
| ;        LD A,ROM.EXT | ||||
| ;        OUT (SYS_PORT.OFF),A | ||||
| ;        POP AF | ||||
| ;        JP MAGIC_1 | ||||
| ;MAGIC_3: | ||||
| ;        PUSH AF | ||||
| ;        LD A,ROM.EXT | ||||
| ;        OUT (SYS_PORT.OFF),A | ||||
| ;        POP AF | ||||
| ;        RETN | ||||
| ;MAGIC_2: | ||||
| ;;       CALL MG_BEGIN | ||||
| ;        JR MAGIC_3 | ||||
| 
 | ||||
| ;************************* | ||||
| 	_mInfoBLOCK #3CE0-$,0 | ||||
| ;SW_ROM_1: | ||||
|         LD      HL,#259F        ;!HARDCODE Show Main Menu in BASIC-128 | ||||
|         PUSH    HL | ||||
|         LD      HL,#5B00        ;!HARDCODE | ||||
|         LD      A,(HL) | ||||
|         CP      #F5             ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï â® «¨ ¢ #5B00 | ||||
|         JR      Z,JP_HL_48      ; ‚އ‚<E280A1>€’ Š Œ…<C592>ž BASIC128 | ||||
|         POP     HL | ||||
|         JR      SW_ROM          ; <20><>Ž‘’މ ‚އ‚<E280A1>€’ | ||||
| ;************************* | ||||
| 
 | ||||
| 	_mInfoBLOCK #3CF0-$,0 | ||||
|  IF BIOS_ZXMODE | ||||
| 
 | ||||
| ;BEGIN: | ||||
| ; ‚室 ç¥à¥§ USR 15600 | ||||
| RET_FROM_BIOS_TO_BASIC48: | ||||
|         CALL CH_2 | ||||
|         CALL COMAND_LINE        ; ‚›<E2809A>Ž‹<C5BD>…<EFBFBD>ˆ… ŠŽŒ€<C592>„›, …‘‹ˆ …‘’œ | ||||
|         ; ‚室 ¡¥§ ª®¬ ¤ë | ||||
|         JR SW_ROM_1             ; ‚އ‚<E280A1>€’ ‚ << MAIN MENU >> | ||||
| 
 | ||||
|  ENDIF | ||||
| ;JMP_48: | ||||
| ;        LD HL,00h | ||||
| ;        JR JP_HL_48 | ||||
| ; | ||||
| ;        NOP | ||||
| ;        NOP | ||||
| ;        NOP | ||||
| 
 | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3CF8-$,0 | ||||
| 	; no basic-48! | ||||
| ;JP_HL_48: | ||||
|        PUSH HL | ||||
| ;SW_ROM: | ||||
|        PUSH AF | ||||
|        LD A,ROM.BIOS            ;!FIXIT ¨«¨ ¯®áâ ¢¨âì âãâ ROM.EXPANSION ??? | ||||
|        OUT (SYS_PORT.RAM),A | ||||
|        POP AF | ||||
|        RET | ||||
| ;*************************************** | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| ;!TODO ᯥªâà㬮¢áª¨¥ ã⨫¨âë | ||||
| ;----------------------------------------------------------------------; | ||||
|         ; _mInfoBLOCK #3CFA-$,#FF | ||||
|         ; LD      A,0                     ;!HARDCODE | ||||
|         ; OUT     (SYS_PORT.OFF),A | ||||
|         ; POP     AF | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| 	_mInfoBLOCK #3D00-$,#FF | ||||
| ;DOS_ON: | ||||
| 	NOP | ||||
| 	RET | ||||
| ;*************************************** | ||||
| 
 | ||||
| ;*************************************** | ||||
| ;       BLOCK #3D02-$,FF | ||||
| ;  !TODO ¬®¦® ®¯à¨å®¤®¢ âì âãâ 17 ¡ ©â®¢ | ||||
| ; | ||||
| ;*************************************** | ||||
| 
 | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3D13-$,#FF | ||||
| 	NOP | ||||
| 	JP      ToBIOS_18 | ||||
| ;*************************************** | ||||
| 
 | ||||
| ;*************************************** | ||||
| ;       BLOCK #3D17-$,FF | ||||
| ;  !TODO ¬®¦® ®¯à¨å®¤®¢ âì âãâ 233 ¡ ©â  | ||||
| ; | ||||
| ;*************************************** | ||||
| 
 | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3E00-$,#FF | ||||
| ;DOS_OFF: | ||||
| 	DI | ||||
| 	PUSH AF | ||||
| 	PUSH BC | ||||
| 	LD BC,(#5BFF)                                                   ; !HARDCODE | ||||
| 	LD A,#C9 | ||||
| 	LD (#5BFF),A                                                    ; !HARDCODE | ||||
| 	CALL #5BFF                                                      ; !HARDCODE | ||||
| 	LD (#5BFF),BC                                                   ; !HARDCODE | ||||
| 	POP BC | ||||
| 	POP AF | ||||
| 	RET | ||||
| ;*************************************** | ||||
| 
 | ||||
| 
 | ||||
| ;*************************************** | ||||
| ;       BLOCK #3E16-$,FF | ||||
| ;  !TODO ¬®¦® ®¯à¨å®¤®¢ âì âãâ 10 ¡ ©â®¢ | ||||
| ; | ||||
| ;*************************************** | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; | ||||
| ;*************************************** | ||||
| ;	_mInfoBLOCK #3FC6-$,#FF | ||||
| ;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ìë© ¢ë§®¢ äãªæ¨© ¡¨®á  (  ¥ ¢¬¥áâ® äãªæ¨© 4x äãªæ¨¨ 0x) | ||||
| @ -149,7 +550,7 @@ BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| ;         ; LD      C,A | ||||
| ;         POP	AF | ||||
| ;         SET     6,C | ||||
| ;         CALL    ToBIOS_FromEXT | ||||
| ;         RST_to_BIOS | ||||
| ;         JR	RET_TO_TRDOS | ||||
| ;*************************************** | ||||
| ; | ||||
| @ -158,7 +559,7 @@ BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| ; call BIOS from EXTENSION | ||||
| ;RST18h: | ||||
|         PUSH	AF | ||||
| 	LD	A,ROM.BIOS                                            ; set exp-rom to slot0 | ||||
| 	LD	A,ROM.BIOS                                              ; set exp-rom to slot0 | ||||
| 	OUT	(SYS_PORT.ROM),A | ||||
| 	POP	AF | ||||
| 	RET  | ||||
| @ -171,7 +572,7 @@ BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| TRDOS_HD_CMD: | ||||
|         POP	AF | ||||
|         SET     6,C     ;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ìë© ¢ë§®¢ äãªæ¨© ¡¨®á  (  ¥ ¢¬¥áâ® äãªæ¨© 4x äãªæ¨¨ 0x) | ||||
|         CALL    ToBIOS_FromEXT | ||||
|         RST_to_BIOS | ||||
|         JR	RET_TO_TRDOS | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
|  | ||||
| @ -356,7 +356,7 @@ SCL_X:  LD      A,(IX+K_LOCK) | ||||
| ;       RET     Z | ||||
| ;       XOR     A | ||||
| ;       LD      BC,#02FD | ||||
| ;       RST     ToBIOS_18 | ||||
| ;       RST_to_BIOS | ||||
| ;       RET  | ||||
| ;---------------------------- | ||||
| ;/////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| @ -121,7 +121,7 @@ GETTIME: | ||||
| 	PUSH    HL | ||||
| 	LD      D,4                                                     ;HOURS | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #24                                                     ;24 | ||||
| 	jp      nc,.error | ||||
| @ -130,7 +130,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,2                                                     ;MINUTES | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #5A                                                     ; 60 | ||||
| 	jp      nc,.error | ||||
| @ -139,7 +139,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,0                                                     ;SECONDS | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #5A                                                     ; 60 | ||||
| 	jp      nc,.error | ||||
| @ -148,7 +148,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,7                                                     ;DAY | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #32                                                     ;32 | ||||
| 	jp      nc,.error | ||||
| @ -157,7 +157,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,8                                                     ;MONTH | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #13                                                     ;13 | ||||
| 	jp      nc,.error | ||||
| @ -166,7 +166,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,#32                                                   ;CENTURY | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #1A                                                     ;20 | ||||
| 	jp      c,.error | ||||
| @ -177,7 +177,7 @@ GETTIME: | ||||
| 
 | ||||
| 	LD      D,9                                                     ;YEAR | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP      #9A                                                     ;100 | ||||
| 	jp      nc,.error | ||||
| @ -200,7 +200,7 @@ GETTIME: | ||||
| ; 	LD	(HL),A | ||||
| ; 	LD	D,#32							;CENTURY | ||||
| ; 	LD	C,#F7                                                   ; !HARDCODE | ||||
| ; 	RST ToBIOS_18 | ||||
| ; 	RST_to_BIOS_18 | ||||
| 
 | ||||
| 	POP HL | ||||
| 	RET  | ||||
| @ -246,14 +246,14 @@ GETTIME: | ||||
| CMOSINIT: | ||||
| 	LD	D,CMOS.Register.CTRLregA                                ; !FIXIT FREQ | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP	#26                                                     ; !FIXIT  | ||||
| 	JR	NZ,CMSERR | ||||
| 
 | ||||
| 	LD	D,CMOS.Register.CTRLregC | ||||
| 	;LD      C,BIOS.CMOS_RD | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_RD | ||||
| 	CP	#50 | ||||
| 	RET	Z | ||||
| @ -261,19 +261,19 @@ CMSERR: | ||||
| 	LD	D,CMOS.Register.CTRLregB | ||||
| 	LD	A,#82							;TIME FORMAT    ; !FIXIT CMOS | ||||
| 	;LD      C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	LD	D,CMOS.Register.CTRLregA | ||||
| 	LD	A,#26                                                   ; !FIXIT CMOS FREQ | ||||
| 	;LD      C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	LD	D,CMOS.Register.CTRLregC | ||||
| 	LD	A,#0                                                    ; !FIXIT CMOS | ||||
| 	;LD      C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	LD	HL,GETTIME.default_date | ||||
| @ -282,13 +282,13 @@ CMSERR: | ||||
| 	LD	D,CMOS.Register.CTRLregB | ||||
| 	LD	A,#02							;TIME FORMAT    ; !FIXIT CMOS | ||||
| 	;LD      C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	; LD	D,13 | ||||
| 	; LD	A,#80                                                   ; !FIXIT CMOS | ||||
| 	; LD	C,#F7                                                   ; !HARDCODE | ||||
| 	; RST	ToBIOS_18 | ||||
| 	; RST_to_BIOS | ||||
| 	RET | ||||
| 
 | ||||
| CLEARM: | ||||
| @ -317,7 +317,7 @@ MEMLOOP: | ||||
| 	CALL	NZ,RCHAIN | ||||
| 	DJNZ	MEMLOOP | ||||
| 	;LD	C,BIOS.InitMem | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    EMM.InitMem | ||||
| 	LD	BC,#400E        ;!HARDCODE | ||||
| 	CALL	G_VALUE | ||||
| @ -409,7 +409,7 @@ EXIT_SETUP: | ||||
| ; LD	(JMPHL),HL | ||||
| 
 | ||||
| 	;	LD	C,#F3 | ||||
| 	;	RST     ToBIOS_18 | ||||
| 	;	RST_to_BIOS | ||||
| ; JMPHL		EQU $+1 | ||||
| ; 			JP	#0000 | ||||
| ;-----------------------------------------------------------------------; | ||||
| @ -424,20 +424,20 @@ INSTALL: | ||||
| 	LD	HL,#0000 | ||||
| 	LD	E,1 | ||||
| 	;LD	C,BIOS.WIN_OPEN | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    WIN_OPEN | ||||
| 
 | ||||
| 	LD	DE,0 | ||||
| 	LD	HL,#2050 | ||||
| 	;LD	BC,7*256 + BIOS.LP_CLS_WIN | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,7 | ||||
|         CALL    LP_CLS_WIN | ||||
| 
 | ||||
| 	LD	DE,0 | ||||
| 	LD	HL,#0820 | ||||
| 	;LD	BC,0*256 + BIOS.LP_CLS_WIN | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,0 | ||||
|         CALL    LP_CLS_WIN | ||||
| 
 | ||||
| @ -503,10 +503,10 @@ START: | ||||
| 	ld (ERRSUM.ErrDateTime),a | ||||
| 
 | ||||
| ;	LD	C,#97 | ||||
| ;	RST ToBIOS_18 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;	XOR	A | ||||
| ;	LD	C,#F2 | ||||
| ;	RST ToBIOS_18 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;------------------------------ ;!!!!!  ¯®á¬®âà¥âì | ||||
| ;	CALL	KINIT | ||||
| ;------------------------------ ;!!!!!  ¯®á¬®âà¥âì | ||||
| @ -657,7 +657,7 @@ CHEKOK:	;CALL	ScreenPOS.GET_CUR | ||||
| 	LD	A,msgStrings.spMemory | ||||
| 	CALL	POSTMSG | ||||
| 	;LD	C,BIOS.GetMemSize | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    EMM.GetMemSize | ||||
| 	PUSH	BC | ||||
| 	CALL	PMEMORY | ||||
| @ -786,49 +786,49 @@ writeDateTimeToCmos: ;!FIXIT | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.hours | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.minutes | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.seconds | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR	 | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.date | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.month | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL) | ||||
| 	LD	D,CMOS.Register.century | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 
 | ||||
| 	INC	HL | ||||
| 	LD	A,(HL)	 | ||||
| 	LD	D,CMOS.Register.year | ||||
| 	;LD	C,BIOS.CMOS_WR | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    CMOS_WR | ||||
| 	RET | ||||
| 
 | ||||
| @ -859,31 +859,31 @@ RESCREEN: | ||||
| ; CMOSINIT: | ||||
| ; 	LD	D,10							;FREQ | ||||
| ; 	LD	C,#F6							;READ CMOS | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	CP	#26 | ||||
| ; 	JR	NZ,CMSERR | ||||
| ; 	LD	D,12 | ||||
| ; 	LD	C,#F6 | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	CP	#50 | ||||
| ; 	RET	Z | ||||
| ; CMSERR: | ||||
| ; 	LD	D,10 | ||||
| ; 	LD	A,#26							;FREQ | ||||
| ; 	LD	C,#F7 | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	LD	D,11 | ||||
| ; 	LD	A,#02							;TIME FORMAT | ||||
| ; 	LD	C,#F7 | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	LD	D,12 | ||||
| ; 	LD	A,#50 | ||||
| ; 	LD	C,#F7 | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	LD	D,13 | ||||
| ; 	LD	A,#80 | ||||
| ; 	LD	C,#F7 | ||||
| ; 	RST     ToBIOS_18 | ||||
| ; 	RST_to_BIOS | ||||
| ; 	RET | ||||
| 
 | ||||
| ;------------------- ;!!!!!  ¯®á¬®âà¥âì | ||||
| @ -911,14 +911,14 @@ RECOVERYstart: | ||||
| .killRAMdisk:   LD      A,SYS_PAGE.RAMD_KEYS.NUM-1 | ||||
|                 LD      (.RDkey),A | ||||
|                 ;LD      C,BIOS.FreeMemRMD | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 CALL    EMM.FreeMemRMD | ||||
|                 JR      NC,.setRAMdisk | ||||
|                 JR      Z,.setRAMdisk | ||||
|                 RET                                                     ; ¥¯®ïâ ï ®è¨¡ª  - ¢ë室¨¬ | ||||
| .setRAMdisk:    LD      A,(.RDkey) | ||||
|                 ;LD      BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 LD      B,ROM_DISK.Pages.Size | ||||
|                 CALL    EMM.GetMemRMD | ||||
|                 JR      NC,.IMGread                                     ; ᢮¡®¤ë© à ¬¤¨áª  ©¤¥ | ||||
| @ -926,7 +926,7 @@ RECOVERYstart: | ||||
|                 JR      Z,.FreeMem                                      ; ®è¨¡ª  - ¥¤®áâ â®ç® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ï⨠| ||||
|                 RET                                                     ; ¥¯®ïâ ï ®è¨¡ª  - ¢ë室¨¬                                                | ||||
| .FreeMem:       ;LD      C,BIOS.FullInit | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 CALL    EMM.FullInit | ||||
|                 JR      .killRAMdisk | ||||
| ; | ||||
| @ -986,7 +986,7 @@ FDSTART: | ||||
| 	CALL	POSTMSG | ||||
| 	POP	AF | ||||
| 	;LD	C,BIOS.DRV_RESET | ||||
| 	;RST     ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    FDD_5x.RESET | ||||
| 	POP	BC | ||||
| 	RET	C | ||||
| @ -1057,7 +1057,7 @@ OS_LOAD: | ||||
| 	LD	A,B | ||||
| 	LD	BC,1*256 + BIOS.DRV_READ | ||||
|         PUSH	AF | ||||
| 	RST     ToBIOS_18 | ||||
|         RST     ToBIOS_18 | ||||
|          | ||||
| 	POP	BC | ||||
| 	RET	C | ||||
| @ -1379,7 +1379,7 @@ PIDNUM:	LD	HL,memBUFFER.ID | ||||
| 
 | ||||
| PIDBOARD: | ||||
| 	;LD	BC,1*256 + BIOS.FN_CRIPT | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,1 | ||||
|         CALL    FN_CRIPT | ||||
| 
 | ||||
| @ -1412,13 +1412,13 @@ PIDBOARD: | ||||
| ;	RET	NZ | ||||
| ;	INC	HL | ||||
| ;	LD	BC,#0286 | ||||
| ;	RST ToBIOS_18 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;	INC	HL | ||||
| ;	LD	BC,#0586 | ||||
| ;	RST ToBIOS_18 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;	INC	HL | ||||
| ;	LD	BC,#0286 | ||||
| ;	RST ToBIOS_18 | ||||
| ;	RST_to_BIOS_18 | ||||
| ;	XOR	A | ||||
| ;	RET  | ||||
| 
 | ||||
| @ -1433,7 +1433,7 @@ PIDBOARD: | ||||
| ;	RET	NZ | ||||
| ;	INC	HL | ||||
| ;	LD	BC,#0A86 | ||||
| ;	JP	ToBIOS_18 | ||||
| ;	JP_to_BIOS | ||||
| 
 | ||||
| PRNHEX:	LD	D,A | ||||
| 	RRCA  | ||||
| @ -1520,7 +1520,7 @@ ZXCLS:	LD	HL,#4000 | ||||
| 
 | ||||
| GET_ID:	LD	HL,memBUFFER.ID | ||||
| 	;LD	C,BIOS.FN_VERSION | ||||
| 	;JP     ToBIOS_18 | ||||
| 	;JP_to_BIOS | ||||
|         JP      FN_VERSION | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -10,7 +10,7 @@ SETTINGS: | ||||
| 	LD	A,(NORCLR) | ||||
| 	LD	B,A | ||||
| 	;LD	C,BIOS.LP_CLS_WIN | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    LP_CLS_WIN | ||||
| 
 | ||||
| 
 | ||||
| @ -372,13 +372,13 @@ FSCREEN: | ||||
| FSC1: | ||||
| 	PUSH	DE | ||||
| 	;LD	C,BIOS.LP_SET_PLACE | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    LP_SET_PLACE | ||||
| 
 | ||||
| 	LD	A,(NORCLR) | ||||
| 	LD	E,A | ||||
| 	;LD	BC,#50*256+BIOS.LP_PRINT_ATR    ;#5083 | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,#50 | ||||
|         CALL    LP_PRINT_ATR | ||||
| 
 | ||||
| @ -661,16 +661,16 @@ TCHEKSM: | ||||
| 
 | ||||
| ; TSTCMOS: | ||||
| ; 	LD	C,BIOS.CMOS_TEST | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
| 
 | ||||
| 
 | ||||
| ; RDCMOS: | ||||
| ; 	LD	C,BIOS.CMOS_RD | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
| 
 | ||||
| ; WRCMOS: | ||||
| ; 	LD	C,BIOS.CMOS_WR | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
| 
 | ||||
| READING: | ||||
| 	LD	D,#0E                                                   ; !HARDCODE CMOS  | ||||
| @ -793,7 +793,7 @@ SetTime: | ||||
|         ld      de,#0C20 | ||||
|         ld      ix,memBUFFER.Shared | ||||
|         ;ld     c,BIOS.WIN_COPY | ||||
|         ;RST    ToBIOS_18 | ||||
|         ;RST_to_BIOS_18 | ||||
|         CALL    WIN_COPY | ||||
| 
 | ||||
| 	LD DE,#0C20                                                     ; !HARDCODE | ||||
| @ -807,7 +807,7 @@ SetTime: | ||||
|         ; ¯¥ç âì  âਡã⮢ | ||||
|         LD E,COLORS.INC.RED | ||||
|         ;LD BC,#0E * 256 + BIOS.LP_PRINT_ATR | ||||
|         ;RST ToBIOS_18 | ||||
|         ;RST_to_BIOS_18 | ||||
|         LD      B,#0E | ||||
|         CALL    LP_PRINT_ATR | ||||
| 
 | ||||
| @ -835,7 +835,7 @@ SetTime: | ||||
|         ; ld a,#46 | ||||
|         ; ex af,af' | ||||
|         ; ld c,BIOS.BLK_RD_WR | ||||
|         ; rst ToBIOS_18 | ||||
|         ; RST_to_BIOS_18 | ||||
| ;------------------[^] | ||||
| 
 | ||||
|         CALL KEY | ||||
| @ -844,7 +844,7 @@ SetTime: | ||||
|         ld de,#0C20 | ||||
|         ld ix,memBUFFER.Shared | ||||
|         ;ld c,BIOS.WIN_RESTORE | ||||
|         ;JP ToBIOS_18         | ||||
|         ;JP_to_BIOS         | ||||
|         ;RET | ||||
|         JP      WIN_RESTORE | ||||
| 
 | ||||
| @ -863,7 +863,7 @@ setXYpos: | ||||
| ;         dec a							;320 | ||||
| ; .set: | ||||
| ;         ld c,BIOS.FN_SYNC | ||||
| ;         jp ToBIOS_18 | ||||
| ;         JP_to_BIOS | ||||
| setVsinc: | ||||
|         ld a,@CMOS.Cell.ScreenSET | ||||
|         call READCMS | ||||
| @ -895,14 +895,14 @@ setInt: ld a,@CMOS.Cell.ScreenSET | ||||
|         SRA A | ||||
|         SRA A							; byte %00xx0000 --> %000000xx | ||||
| .set:   ;ld c,BIOS.FN_SYNC | ||||
|         ;rst ToBIOS_18 | ||||
|         ;RST_to_BIOS_18 | ||||
|         CALL    FN_SYNC | ||||
| 
 | ||||
|         LD	IX,win_descriptor.tab80x32 | ||||
|         LD	HL,#0000 | ||||
|         LD	E,1 | ||||
|         ;LD	C,BIOS.WIN_OPEN | ||||
|         ;RST	ToBIOS_18 | ||||
|         ;RST_to_BIOS | ||||
|         CALL    WIN_OPEN | ||||
| 
 | ||||
|         ld a,(ITEM) | ||||
|  | ||||
| @ -13,7 +13,7 @@ PIC_SET_PAL_FF		EQU def_pal_mask*256+BIOS.PIC_SET_PAL | ||||
| ScreenPOS: | ||||
| ;.GET_CUR: | ||||
| ; 	LD	C,BIOS.LP_GET_PLACE | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
| 
 | ||||
| .SUBNAME: | ||||
| 	;CALL	ScreenPOS.GET_CUR | ||||
| @ -21,7 +21,7 @@ ScreenPOS: | ||||
| 	LD	E,#24 | ||||
| ;.LOCAT: | ||||
| ;       LD	C,BIOS.LP_SET_PLACE | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
|         JP      LP_SET_PLACE | ||||
| 
 | ||||
| .CRLF:  ;CALL	ScreenPOS.GET_CUR | ||||
| @ -61,12 +61,12 @@ PRINTDW: | ||||
| 
 | ||||
| PRINTA: LD	E,A | ||||
| ;       LD	C,BIOS.LP_PRINT_ATR | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
|         JP      LP_PRINT_ATR | ||||
| 
 | ||||
| PRINT_CHAR: | ||||
| ; 	LD	BC,1*256 + BIOS.LP_PRINT_SYM | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
|         LD      B,1 | ||||
|         JP      LP_PRINT_SYM | ||||
| ;   | ||||
| @ -78,14 +78,14 @@ TPRINTZ: | ||||
| PRINTZ: | ||||
|         LD      B,0 | ||||
| 	LD	D,B | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
|         JP      LP_PRINT_LINE6 | ||||
| 
 | ||||
| ; PRINTZ: | ||||
| ; ; 	LD	BC,0*256 + BIOS.LP_PRINT_LINE6 | ||||
| ;         LD      B,0 | ||||
| ; 	LD	D,B | ||||
| ; ; 	JP	ToBIOS_18 | ||||
| ; ; 	JP_to_BIOS | ||||
| ;         JP      LP_PRINT_LINE6 | ||||
| 
 | ||||
| HPRINTZ: | ||||
| @ -93,7 +93,7 @@ HPRINTZ: | ||||
|         LD      B,0 | ||||
| 	LD	D,B | ||||
| 	LD	E,#0F | ||||
| 	;JP	ToBIOS_18 | ||||
| 	;JP_to_BIOS | ||||
|         JP      LP_PRINT_LINE5 | ||||
| 
 | ||||
| CPRINTZ: | ||||
| @ -101,7 +101,7 @@ CPRINTZ: | ||||
|         LD      B,0 | ||||
| 	LD	D,B | ||||
| 	LD	E,A | ||||
| 	;JP	ToBIOS_18   | ||||
| 	;JP_to_BIOS   | ||||
|         JP      LP_PRINT_LINE5 | ||||
| 
 | ||||
| ;HL - NUMBER | ||||
| @ -250,12 +250,12 @@ PBORDER: | ||||
| 	RET  | ||||
| 
 | ||||
| PRSYM:  ;LD	BC,1*256 + BIOS.LP_PRINT_SYM | ||||
| 	;JP	ToBIOS_18 | ||||
| 	;JP_to_BIOS | ||||
|         LD      B,1 | ||||
|         JP      LP_PRINT_SYM | ||||
| 
 | ||||
| ; PRSYMB: LD	C,BIOS.LP_PRINT_SYM | ||||
| ; 	JP	ToBIOS_18 | ||||
| ; 	JP_to_BIOS | ||||
| 
 | ||||
| LOGOTYP: | ||||
| 	CALL	LOGOX | ||||
| @ -292,13 +292,13 @@ NOWLOGO: | ||||
| 	EI  | ||||
| 	HALT  | ||||
| 	DI  | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    WIN_OPEN | ||||
| 
 | ||||
| 	LD	DE,0 | ||||
| 	LD	HL,#0920                                                ;LOGOTYPE SIZE | ||||
| 	;LD	BC,7*256 + BIOS.LP_CLS_WIN | ||||
| 	;JP	ToBIOS_18 | ||||
| 	;JP_to_BIOS | ||||
|         LD      B,7 | ||||
|         JP      LP_CLS_WIN | ||||
| 
 | ||||
| @ -314,7 +314,7 @@ LOGOX:	LD	IX,win_descriptor.tab320x256 | ||||
| 	LD	HL,#0000 | ||||
| 	LD	E,1 | ||||
| 	;LD	C,BIOS.WIN_OPEN | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    WIN_OPEN | ||||
| 
 | ||||
| 	SAFE_PORTY | ||||
| @ -339,7 +339,7 @@ LOGOX:	LD	IX,win_descriptor.tab320x256 | ||||
|         LD      D,A                                                     ; SET DESKTOP PALETTE & CURSOR COLORS | ||||
|         LD      E,A | ||||
| 	;LD	BC,PIC_SET_PAL_FF | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,def_pal_mask | ||||
|         CALL    PIC_SET_PAL | ||||
| 
 | ||||
| @ -413,7 +413,7 @@ FADE:   XOR     A | ||||
|         LD      D,A | ||||
|         LD      E,A | ||||
| 	;LD	BC,PIC_SET_PAL_FF   ; !HARDCODE #EE,#EF | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         LD      B,def_pal_mask | ||||
|         CALL    PIC_SET_PAL | ||||
| 
 | ||||
| @ -435,7 +435,7 @@ go_setup:								; !FIXIT  | ||||
| 	LD	HL,#0000 | ||||
| 	LD	E,1 | ||||
| 	;LD	C,BIOS.WIN_OPEN | ||||
| 	;RST	ToBIOS_18 | ||||
| 	;RST_to_BIOS | ||||
|         CALL    WIN_OPEN | ||||
| 	JP      CSETUP | ||||
| 
 | ||||
| @ -532,7 +532,7 @@ SET_CGA: | ||||
| 	 LD	HL,memBUFFER.Shared | ||||
| 	 LD	DE,#0000                                                ; D - ELEMENTS,E - COLOR | ||||
| 	 ;LD	BC,PIC_SET_PAL_FF                                       ; #FFA4 | ||||
| 	 ;RST	ToBIOS_18 | ||||
| 	 ;RST_to_BIOS | ||||
|          LD     B,def_pal_mask | ||||
|          CALL   PIC_SET_PAL | ||||
| 
 | ||||
| @ -540,7 +540,7 @@ SET_CGA: | ||||
| 	 LD	HL,memBUFFER.Shared | ||||
| 	 LD	DE,#0000						;D - ELEMENTS,E	- COLOR | ||||
| 	 ;LD	BC,PIC_SET_PAL_FF                                       ; #FFA4 | ||||
| 	 ;RST	ToBIOS_18 | ||||
| 	 ;RST_to_BIOS | ||||
|          LD     B,def_pal_mask | ||||
|          CALL   PIC_SET_PAL | ||||
| 
 | ||||
| @ -548,7 +548,7 @@ SET_CGA: | ||||
| 	 LD	HL,#80*4+memBUFFER.Shared | ||||
| 	 LD	DE,#8080						;D - ELEMENTS,E	- COLOR | ||||
| 	 ;LD	BC,PIC_SET_PAL_FF                                       ; #FFA4 | ||||
| 	 ;RST	ToBIOS_18 | ||||
| 	 ;RST_to_BIOS | ||||
|          LD     B,def_pal_mask | ||||
|          CALL   PIC_SET_PAL | ||||
|         ; | ||||
| @ -558,7 +558,7 @@ SET_CGA: | ||||
| 	 LD	HL,memBUFFER.Shared | ||||
| 	 LD	DE,#0000						;D - ELEMENTS,E	- COLOR | ||||
| 	 ;LD	BC,PIC_SET_PAL_FF                                       ; #FFA4 | ||||
| 	 ;RST	ToBIOS_18 | ||||
| 	 ;RST_to_BIOS | ||||
|          LD     B,def_pal_mask | ||||
|          CALL   PIC_SET_PAL | ||||
| 
 | ||||
| @ -566,7 +566,7 @@ SET_CGA: | ||||
| 	 LD	HL,memBUFFER.Shared | ||||
| 	 LD	DE,#8000						;D - ELEMENTS,E	- COLOR | ||||
| 	 ;LD	BC,PIC_SET_PAL_FF                                       ; #FFA4 | ||||
| 	 ;RST	ToBIOS_18 | ||||
| 	 ;RST_to_BIOS | ||||
|          LD     B,def_pal_mask | ||||
|          CALL   PIC_SET_PAL | ||||
|         ; | ||||
|  | ||||
| @ -63,7 +63,7 @@ | ||||
|                 LD      (RECOVERYstart.RDkey),A | ||||
|                 PUSH    BC | ||||
|                 ;LD      BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 LD      B,ROM_DISK.Pages.Size | ||||
|                 CALL    EMM.GetMemRMD | ||||
|                 POP     BC | ||||
| @ -83,7 +83,7 @@ | ||||
| 
 | ||||
|                 LD      HL,TEMP | ||||
|                 ;LD      C,BIOS.GetMemBlkPages | ||||
|                 ;RST     ToBIOS_18                                       ; ª¨¤ ¥¬ ¢ ¡ãä¥à ®¬¥à  áâà ¨æ RAM disk | ||||
|                 ;RST_to_BIOS                                       ; ª¨¤ ¥¬ ¢ ¡ãä¥à ®¬¥à  áâà ¨æ RAM disk | ||||
|                 CALL    EMM.GetMemBlkPages | ||||
| 
 | ||||
|                 IN      A,(SLOT3) | ||||
| @ -143,7 +143,7 @@ | ||||
|                 EX      AF,AF' | ||||
|                 LD      HL,TEMP                                         ; ¤à¥á ¡ãä¥à  ¤ ëå | ||||
|                 ;LD      BC,2*256 + BIOS.BLK_RD_WR                      ;ç¨á«® ᥪâ®à®¢ ¨ ®¬¥à äãªæ¨¨ | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 LD      B,2 | ||||
|                 CALL    BLK_RD_WR | ||||
| 
 | ||||
| @ -158,7 +158,7 @@ | ||||
|                 EX      AF,AF' | ||||
|                 LD      HL,TEMP                                         ; ¤à¥á ¡ãä¥à  ¤ ëå | ||||
|                 ;LD      BC,2*256 + BIOS.BLK_RD_WR                      ;ç¨á«® ᥪâ®à®¢ ¨ ®¬¥à äãªæ¨¨ | ||||
|                 ;RST     ToBIOS_18 | ||||
|                 ;RST_to_BIOS | ||||
|                 LD      B,2                                             ;ç¨á«® ᥪâ®à®¢ | ||||
|                 CALL    BLK_RD_WR       | ||||
| 
 | ||||
| @ -171,4 +171,25 @@ | ||||
|                 ASSERT 0, Invalid 'RECOVERYmountTYPE' variant - RECOVERYmountTYPE | ||||
|         ENDIF  | ||||
|  ENDM | ||||
| ; | ||||
| ; | ||||
| 
 | ||||
| ; | ||||
|  MACRO RST_to_BIOS | ||||
|   IF    (IsInBIOS = 0) && ($ < #4000) | ||||
|         CALL    ToBIOS_FromEXT | ||||
|   ELSE | ||||
|         RST     ToBIOS_18 | ||||
|   ENDIF           | ||||
|  ENDM | ||||
| 
 | ||||
| ; | ||||
| 
 | ||||
| ; | ||||
|  MACRO JP_to_BIOS | ||||
|   IF    (IsInBIOS = 0) && ($ < #4000) | ||||
|         JP      ToBIOS_FromEXT | ||||
|   ELSE | ||||
|         JP      ToBIOS_18 | ||||
|   ENDIF           | ||||
|  ENDM | ||||
| ; | ||||
|  | ||||
| @ -15,7 +15,7 @@ | ||||
| 
 | ||||
|         DEFINE  SP2000_ConfID         #FEFF | ||||
| 
 | ||||
|         DEFINE  BIOS_ZXMODE           0 | ||||
|         DEFINE  BIOS_ZXMODE           1 | ||||
| 
 | ||||
|         ; ‡ ¤¥à¦ª  ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯  (0 = 256) | ||||
|         DEFINE  LOGO_DELAY_MIN         25 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anatoliy Belyanskiy
						Anatoliy Belyanskiy