mirror of
https://github.com/Tolik-Trek/Shared_Includes.git
synced 2026-06-15 09:01:33 +03:00
1435 lines
59 KiB
NASM
1435 lines
59 KiB
NASM
; Sprinter.
|
||
|
||
; ”ãªæ¨¨ BIOS.
|
||
|
||
; ‚ë§®¢ äãªæ¨© ¯à®¨§¢®¤¨âáï ç¥à¥§ ¢å®¤ ¢ TR-DOS #3D13. <20>®¬¥à ª®¬ ¤ë
|
||
; § ¤ ¥âáï ¢ ॣ¨áâॠC. “áâ ®¢«¥ë© ¢ë室¥ ä« £ C ®§ ç ¥â § ¢¥à襨¥
|
||
; à ¡®âë äãªæ¨¨ á ®è¨¡ª®©.
|
||
; <20>à¨ à ¡®â¥ ç á⨠äãªæ¨© ¡¨®á ¥®¡å®¤¨¬® çâ® ¡ë á⥪ 室¨«áï ¢
|
||
; ®¡« á⨠#8000..#BFFF, â ª ª ª ®¨ ¨á¯®«ì§ãîâ ¤«ï ᢮¥© à ¡®âë ¯¥à¥ª«î票¥
|
||
; áâà ¨æ PAGE1 ¨ PAGE3. „«ï ãáâà ¥¨ï ª ª¨å «¨¡® ¥¯à¨ïâ®á⥩ á¢ï§ ëå á®
|
||
; á⥪®¬ ¥£® á«¥¤ã¥â ¢á¥£¤ ãáâ ¢«¨¢ âì ¢ íâ®â ¤¨ ¯ §® ¯à¨ ¢ë§®¢¥ äãªæ¨©
|
||
; ¡¨®á ‘¯à¨â¥à .
|
||
|
||
; ‚ë§®¢ äãªæ¨© ¡¨®á â ª ¦¥ ¬®¦¥â ¡ëâì ®áãé¥á⢫¥ ç¥à¥§ ¢å®¤ ¯®
|
||
; RST #18 ¯à¨ ¯®¤ª«î祮¬ á¨á⥬®¬ <20>‡“, â ª ¦¥ ç¥à¥§ RST 8 ¯à¨
|
||
; ¯®¤ª«î祮¬ އ“ ¢ ã«¥¢®© ¡ ª¥ ¯ã⥬ ãáâ ®¢ª¨ ¤à¥á RST 8 ¥¡®«ì让
|
||
; ¯à®£à ¬¬ë, ¯¥à¥ª«îç î饩áï ¢ <20>‡“ ¡¨®á
|
||
|
||
; „«ï ¯®¤ª«î票ï á¨á⥬®£® <20>‡“ ¬®¦® ¢®á¯®«ì§®¢ âìáï â ª®©
|
||
; ¯®á«¥¤®¢ ⥫ì®áâìî ª®¬ ¤:
|
||
DI
|
||
LD A,0
|
||
OUT (#7C),A
|
||
; ¯®á«¥ í⮣® ¢ 0-¬ ¤à¥á¥ ¡ã¤¥â ¢ª«îç¥ <20>‡“ ¡¨®á
|
||
; ¨ ¯à®£à ¬¬ ¬®¦¥â ¢ë§ë¢ âì äãªæ¨¨ ç¥à¥§ RST #18,
|
||
; ¯à®áâ® § ¬¥ïï í⨬ ¢ë§®¢®¬ ¢ë§®¢ CALL #3D13
|
||
; * Ž¡ëçë¥ äãªæ¨¨ TR-DOS ¢ íâ®â ¬®¬¥â ¥¤®áâã¯ë
|
||
|
||
; —â®¡ë ¢¥àãâìáï ª ®¡ë箬ã <20>‡“ á«¥¤ã¥â ¢ë¯®«¨âì ¯à®£à ¬¬ã:
|
||
LD A,0
|
||
OUT (#3C),A
|
||
|
||
; ‚ë§®¢ ¨§ އ“ ®áãé¥á⢫ï¥âáï ç¥à¥§ RST 8. <20>ਠí⮬ ¤à¥á¥ 8 ¤®«¦
|
||
; à ᯮ« £ âìáï â ª ï ¯à®£à ¬¬ :
|
||
PUSH AF
|
||
LD A,0
|
||
OUT (#7C),A ; ¢ í⮬ ¬¥á⥠¢¬¥áâ® Ž‡“ ¯®¤ª«îç¨âáï <20>‡“ ¡¨®á ¨
|
||
; ¯à®£à ¬¬ 㩤¥â ¢ ¥£®.
|
||
POP AF ; <20> íâã ª®¬ ¤ã ¯à®¨á室¨â ¢®§¢à ⠯ਠ⠪®¬
|
||
; ¢ë§®¢¥ ¡¨®á .
|
||
RET
|
||
; Ž¯â¨¬¨§ æ¨ï ª®¤ ¢ í⮬ ¬¥á⥠¥¤®¯ãá⨬ . ‚¬¥áâ® LD A,0 ¬®¦® ãáâ ®¢¨âì
|
||
; ¤¢¥ ª®¬ ¤ë XOR A ¨ DI
|
||
; „ «¥¥ ¢ë§®¢ äãªæ¨© ®áãé¥á⢫ï¥âáï «®£¨ç® RST #18, ® á«¥¤ã¥â ¯®¬¨âì,
|
||
; çâ® ¤à¥á®¥ ¯áâà á⢮ 0000..#3FFF ¢® ¢à¥¬ï à ¡®âë ¡¨®á § ïâ® <20>‡“ ¨ ¢ ¥¬
|
||
; ¥ ¬®£ãâ à ᯮ« £ âìáï ¤ ë¥ ¤«ï à ¡®âë äãªæ¨©.
|
||
|
||
; ‚ë§®¢ ®¢ëå äãªæ¨© ç¥à¥§ #3D13 ¢â®¬ â¨ç¥áª¨ ®âª«îç ¥â ¯à¥àë¢ ¨ï.
|
||
; <20>®á«¥ ¨á¯®«¥¨ï äãªæ¨¨ ¯à®£à ¬¬ ¤®«¦ ¢ª«îç¨âì ¨å ¯à¨ ¥®¡å®¤¨¬®áâ¨.
|
||
; …᫨ ¥®¡å®¤¨¬® çâ® ¡ë ¯à¥àë¢ ¨ï ¡ë«¨ ¢ª«îç¥ë ¢á¥ ¢à¥¬ï, á«¥¤ã¥â
|
||
; ¨á¯®«ì§®¢ âì ०¨¬ IM 2, á â ¡«¨æ¥©, á⥪®¬ ¨ ®¡à ¡®â稪®¬ à ᯮ«®¦¥ë¬ ¢
|
||
; ®¡« á⨠#8000..#BFFF ¨ ¯®«ì§®¢ âìáï ¢ë§®¢®¬ ç¥à¥§ RST #18 ¨«¨ RST 8
|
||
; ‚ í⮬ á«ãç ¥ ¯à¥àë¢ ¨ï ¢ ¡¨®á¥ ¥ ®âª«îç îâáï.
|
||
|
||
; ‚ ¡«¨¦ ©è¥¥ ¢à¥¬ï ¢ ®¯¨á ¨¥ ¡¨®á ¡ã¤ãâ ¤®¡ ¢«¥ë äãªæ¨¨ à ¡®âë á FDD ¨
|
||
; CD-ROM
|
||
; * ‚ ¤ ë© ¬®¬¥â ®¨ ¨¬¥îâáï, ® ¯à¥¤¯®« £ ¥âáï ¨å á¥à쥧 ï ¯¥à¥¤¥«ª .
|
||
; <20>¥ª®â®àë¥ äãªæ¨¨ § १¥à¢¨à®¢ ë ¤«ï ¤ «ì¥©è¥£® à §¢¨â¨ï. ’ ª ¦¥ ¥
|
||
; ®¯¨á ç áâì £à ä¨ç¥áª¨å äãªæ¨©, â ª ª ª ®¨ ¢ ¤ ë© ¬®¬¥â ¯®¤¢¥à£ îâáï
|
||
; á¥àì¥§ë¬ ¯¥à¥¤¥«ª ¬.
|
||
|
||
;==============================================================================
|
||
; 1. <20> ¡®â á ¯ ¬ïâìî.
|
||
;==============================================================================
|
||
EMM:
|
||
.GetMemSize: ; ®¯à¥¤¥«¥¨¥ ®¡ê¥¬®¢ އ“
|
||
LD C,#C0 ; äãªæ¨ï ®¬¥à #C0
|
||
RST ToBIOS ; HL - ®¡é¨© ®¡ê¥¬ ¯ ¬ï⨠¢ áâà ¨æ å ¯® 16kb
|
||
; BC - ®¡ê¥¬ ᢮¡®¤®© ¯ ¬ï⨠¢ áâà ¨æ å ¯® 16kb
|
||
;
|
||
|
||
.InitMem: ; ¨¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨
|
||
; áâ¨à ¥âáï ¢áï ¨ä®à¬ æ¨ï ® ¢ë¤¥«¥ëå à ¥¥ ¡«®ª å
|
||
; އ“. “áâ ¢«¨¢ îâáï ª ª § ïâë¥ ¡«®ª¨ á
|
||
; á¨á⥬®© ¨ä®à¬ 樥©, â ª ¦¥ ¯¥à¢ë¥ 256kb އ“ ;!FIXIT
|
||
LD C,#C1 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¢ë室ëå ¯ à ¬¥â஢ ¥â
|
||
;
|
||
|
||
.GetMem: ; ¢ë¤¥«¥¨¥ ¡«®ª އ“
|
||
LD B,num_pages ; § ¯à 訢 ¥¬®¥ ç¨á«® áâà ¨æ Ž‡“
|
||
LD C,#C2 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> € - ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
; CF -> A=1 - ¥â ¯ ¬ïâ¨
|
||
;
|
||
|
||
.FreeMem: ; ®á¢®¡®¤¨âì ¡«®ª އ“
|
||
LD A,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
LD C,#C3 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
; ¯à ¢¨«ì®áâì ¨¤¥â¨ä¨ª â®à ®âá«¥¦¨¢ ¥âáï ¥ ¢á¥£¤
|
||
;
|
||
|
||
.GetMemPage: ; ¯®«ãç¨âì 䨧¨ç¥áª¨© ®¬¥à áâà ¨æë ¨§ ¡«®ª
|
||
LD A,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
LD B,page ; «®£¨ç¥áª ï áâà ¨æ ¢ ¡«®ª¥
|
||
LD C,#C4 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> € - 䨧¨ç¥áª¨© ®¬¥à áâà ¨æë
|
||
; CF -> €=0 - ¥â â ª®£® ¡«®ª , A=FF - ª®¥æ ¡«®ª
|
||
;
|
||
|
||
.GetMemBlkPages:; ¯®«ãç¨âì ᯨ᮪ 䨧¨ç¥áª¨å áâà ¨æ ¡«®ª
|
||
LD A,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
LD HL,bufer ; ¡ãä¥à ¤«¨®© 256 ¡ ©â ¤«ï à §¬¥é¥¨ï ᯨáª
|
||
; ¡ãä¥à ¤®«¦¥ ¡ëâì ¤«¨®© ¥¤¨¨æã ¡®«ìè¥ ç¨á«
|
||
; áâà ¨æ ¢ ¡«®ª¥
|
||
LD C,#C5 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> HL - â®â ¦¥ ¡ãä¥à, B - ç¨á«® áâà ¨æ ¢ ¡«®ª¥,
|
||
; ¤ ë¥ ¯® ¤à¥áã HL - ᯨ᮪ 䨧¨ç¥áª¨å áâà ¨æ ¯®
|
||
; ¯®à浪ã. ‘¯¨á®ª § ª 稢 ¥âáï ¡ ©â®¬ FF
|
||
; CF -> ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ¡«®ª . ‘â à ï
|
||
; ¨ä®à¬ æ¨ï ¢ ¡ãä¥à¥ ¬®¦¥â ¡ëâì § â¥àâ
|
||
;
|
||
|
||
.GetBanksPorts: ; <20>®«ã票¥ ¤à¥á®¢ ¯®à⮢ ®ª®
|
||
LD A,win_num ; ®¬¥à ®ª ¯à®¥æ¨à®¢ ¨ï 0,1,2 ¨«¨ 3
|
||
LD C,#C6 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> C - 8-¬¨¡¨âë© ¤à¥á ¯®àâ , B - ®¬¥à
|
||
; ¯®¤ª«î祮© ¢ ¤ ë© ¬®¬¥â áâà ¨æë އ“
|
||
; CF -> ®è¨¡ª ®¬¥à ®ª
|
||
; ”ãªæ¨ï ä ªâ¨ç¥áª¨ ¥ ¨á¯®«ì§ã¥âáï ¢ ¤ ë© ¬®¬¥â. €¤à¥á ¯®à⮢ ®ª®
|
||
; ¥ ¨§¬¥ï«¨áì á á ¬®£® ç « à §à ¡®âª¨ ª®¬¯ìîâ¥à ¨, ¤¥îáì, ¥ ¡ã¤ãâ
|
||
; ¬¥ïâìáï. „«ï ᮡ«î¤¥¨ï ¯à¨«¨ç¨© ¯à®£à ¬¬¨áâã á«¥¤ã¥â å®âï ¡ë ®¤¨ à §
|
||
; ¢ë§¢ âì í⨠äãªæ¨¨ ¨ áà ¢¨âì ¤à¥á ¯®à⮢ á ⥬¨, çâ® ¨á¯®«ì§ãîâáï ¢
|
||
; ¯à®£à ¬¬¥ ¨, ¥á«¨ ®¨ ¥ ᮢ¯ ¤ îâ, ¢ë¤ âì ᮮ⢥âáâ¢ãî饥 ¯à¥¤ã¯à¥¦¤¥¨¥.
|
||
; ‚ ¤ ë© ¬®¬¥â í⨠¯®àâë â ª®¢ë: PAGE0=#82, PAGE1=#A2, PAGE2=#C2, PAGE3=#E2
|
||
;
|
||
|
||
.GetMemPageNext:; ¯®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¡«®ª ¯® ¯à¥¤ë¤ã饬ã
|
||
LD A,page ; 䨧¨ç¥áª ï áâà ¨æ ¡«®ª
|
||
LD C,#C7 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - á«¥¤ãîé ï 䨧¨ç¥áª ï áâà ¨æ ¡«®ª
|
||
; A=FF - ¨¤¨æ¨àã¥â ª®¥æ ¡«®ª
|
||
; CF -> ®è¨¡ª ®¬¥à áâà ¨æë
|
||
; ˆä®à¬ æ¨ï ® à á¯à¥¤¥«¥¨¨ ¯ ¬ï⨠åà ¨âáï ¢ ¢¨¤¥ RAM Allocation Table,
|
||
; ¯®å®¦¥© ¤¨áª®¢ë© FAT. <20>®í⮬ã 宦¤¥¨¥ 䨧¨ç¥áª®£® ®¬¥à á«¥¤ãî饩
|
||
; áâà ¨æë ¯® ¯à¥¤ë¤ã饬ã 䨧¨ç¥áª®¬ã ®¬¥à㠯நá室¨â § ç¨â¥«ì® ¡ëáâ॥,
|
||
; 祬 ¯®¨áª ¯® 㢥«¨ç¥®¬ã ¥¤¨¨æã «®£¨ç¥áª®¬ã ®¬¥àã.
|
||
;
|
||
|
||
.MergeMemBlocks:; ᫨逸 ¡«®ª®¢
|
||
LD A,id_blk1 ; ¡«®ª ®¬¥à 1
|
||
LD B,id_blk2 ; ¡«®ª ®¬¥à 2
|
||
LD C,#9E ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - ¡«®ª १ã«ìâ â
|
||
; CF -> ®è¨¡ª , ¥¢¥àë© ®¬¥à ¡«®ª
|
||
;
|
||
|
||
.DivMemBlocks ; à §¤¥«¥¨¥ ¡«®ª
|
||
LD A,id_blk1 ; ¡«®ª
|
||
LD B,len_blk ; ®¢ ï ¤«¨ ¡«®ª
|
||
LD C,#9D ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - ¡«®ª १ã«ìâ â , B - ¡«®ª ®áâ âª
|
||
; CF -> ®è¨¡ª , ¥¢¥àë© ®¬¥à ¡«®ª
|
||
;
|
||
|
||
;==============================================================================
|
||
; 2. <20> ¡®â á ¡«®ª ¬¨ ª ª á RAM-Disk- ¬¨
|
||
;==============================================================================
|
||
|
||
.GetMemRMD: ; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes ¤«ï RAM-Disk'
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk- 0..15
|
||
LD B,ram_blocks; ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢
|
||
LD C,#92 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> L, A - Š‹ž— RAM-Disk'
|
||
; CF -> ®è¨¡ª ,
|
||
; A - ª®¤ ®è¨¡ª¨: 1 - ¥â ¯ ¬ïâ¨
|
||
; 2 - RAM-Disk § ïâ
|
||
;
|
||
|
||
.FreeMemRMD: ; Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠¤«ï RAM-Disk'
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk' 0..15
|
||
LD C,#93 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ®è¨¡ª , €=0 - ¥â â ª®£® ¡«®ª , A=2 - ®è¨¡ª 楯®çª¨
|
||
;
|
||
|
||
.GetMemPageRMD: ; <20>®«ãç¨âì 䨧¨ç¥áª¨© ®¬¥à áâà ¨æë RAM-Disk'
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk' 0..15
|
||
LD B,page ; «®£¨ç¥áª ï áâà ¨æ RAM-Disk'
|
||
LD C,#94 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> € - 䨧¨ç¥áª¨© ®¬¥à áâà ¨æë
|
||
; CF -> €=0 - ¥â â ª®£® ¡«®ª , A=FF - ª®¥æ ¡«®ª
|
||
;
|
||
|
||
.CheckInit: ; …᫨ ®¡ à㦥 ¯¥à¢ë© áâ àâ, â® ¨¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬ëå ¯¥à¥¬¥ëå
|
||
LD C,#97 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ;
|
||
;
|
||
|
||
RAMD_CALC_PAGE: ; ‚ëç¨á«¥¨¥ áâà ¨æë ¨ ¤à¥á ¢ RAM-Disk ¯® ¡á®«î⮬㠮¬¥àã ᥪâ®à
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk' 0..15
|
||
LD DE,sector ; ¡á®«îâë© ®¬¥à ᥪâ®à
|
||
LD C,#98 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; A - áâà ¨æ , HL - ¤à¥á ¢ áâà ¨æ¥
|
||
;
|
||
|
||
.FullInit: ; ¨¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬ëå ¯¥à¥¬¥ëå
|
||
LD C,#9F ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ;
|
||
;
|
||
|
||
BLK_RD_WR: ; ç⥨¥/§ ¯¨áì ¨§/¢ ¡«®ª( ) ¯ ¬ï⨠ᥪâ®à ¬¨
|
||
; ¯® 256 ¡ ©â (¢ á«ãç ¥ á ROM ¤¨áª®¬ ¬®¦® ¯® 512)
|
||
LD HL,bufer ; ¤à¥á ¡ãä¥à ¤ ëå
|
||
LD DE,sector ; ¡á®«îâë© ®¬¥à ᥪâ®à (áç¨â âì ¯® 256b ᥪâ®à)
|
||
LD B,sec_num ; ç¨á«® ᥪâ®à®¢
|
||
LD A,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª (¤«ï rom disk à §¬¥à ᥪâ®à : 1 - 256b, 2 - 512 b)
|
||
LD A',command ; ª®¬ ¤ 0 - ç⥨¥, #FF - § ¯¨áì, #46 ç⥨¥ ¨§ ROM-Disk
|
||
LD C,#C8 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª ¨¤¥â¨ä¨ª â®à
|
||
;
|
||
|
||
BLK_TO_RAMD: ; § ç¨âì ¡«®ª ¯ ¬ï⨠RAM-Disk-ã
|
||
; «î¡®© ¡«®ª ¯ ¬ï⨠¬®¦¥â ᮤ¥à¦ âì ¤ ë¥
|
||
; RAM-Disk- ¢ ä®à¬ ⥠TR-DOS ¤«ï ¯®¤ª«î票ï íâ¨å
|
||
; ¤ ëå ¢ ª ç¥á⢥ ¤¨áª ¨ á«ã¦¨â íâ äãªæ¨ï
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk- 0..15 - ᮮ⢥âáâ¢ã¥â
|
||
; RAM-Disk- ¬ ®â e: ¤® t:
|
||
LD B,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
LD C,#C9 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª : ¥¢¥àë© ®¬¥à RAM-Disk- ¨«¨ RAM-Disk § ïâ
|
||
;
|
||
|
||
RAMD_CLEAR: ; ®á¢®¡®¤¨âì RAM-Disk
|
||
; ®á¢®¡®¦¤¥¨¥ RAM-Disk- ¥ ¥áâì ®á¢®¡®¦¤¥¨¥
|
||
; ¡«®ª އ“. <20>â® ¯à®áâ® ®âª«î票¥ ¡«®ª އ“ ®â
|
||
; RAM-Disk-
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk- - 0..15
|
||
LD C,#CA ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥, B - ¨¤¥â¨ä¨ª â®à
|
||
; ¡«®ª ®âª«î祮£® ®â RAM-Disk-
|
||
; CF -> ®è¨¡ª : ¥¢¥àë© ®¬¥à RAM-Disk- ¨«¨
|
||
; RAM-Disk ¡ë« ᢮¡®¤¥
|
||
;
|
||
|
||
GET_RAMD_ST: ; ¯®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£®
|
||
; RAM-Disk
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk- 0..15
|
||
LD C,#CE ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - ¨¤¥â¨ä¨ª â®à ¡«®ª .
|
||
; A=0 - ¡«®ª ¥ § ç¥.
|
||
; CF -> ®è¨¡ª ®¬¥à RAM-Disk-
|
||
;
|
||
|
||
GET_RAMD_NUM: ; ¯®«ãç¨âì ®¬¥à RAM-Disk- (0..15) ¯® ¥£® block id
|
||
LD A,id_blk ; ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
LD C,#9B ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - ®¬¥à RAM-Disk- (0..15).
|
||
; CF -> ®è¨¡ª ¢ ¨¤¥â¨ä¨ª â®à¥ ¡«®ª ¨«¨ ¡¨®á ¨¦¥ 2.55
|
||
;
|
||
; [x] 4/11/23
|
||
SWAP_RAM_DRIVES:; ¯®¬¥ïâì ¬¥áâ ¬¨ ID RAM ¤à ©¢®¢ (ZX/Sp)
|
||
LD B,func ; 0 - swap to Sp, #FF - swap to ZX, #FE - no swap, only get info
|
||
LD C,#9C ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; A - current RAM Drives set
|
||
;==============================================================================
|
||
; 3. “¯à ¢«¥¨¥ § 票¥¬ ¤¨áª®¢®¤ë
|
||
;==============================================================================
|
||
|
||
; Š ¦¤ë© ¨§ 4-å ¤¨áª®¢®¤®¢ TR-DOS ¬®¦¥â ¡ëâì ¯¥à¥ § ç¥ ¤«ï à ¡®âë
|
||
; á RAM-Disk- ¬¨, ¢¨ç¥áâ¥à®¬ ¨ ॠ«ì묨 ¤¨áª®¢®¤ ¬¨.
|
||
SET_DISK_REDIR: ; ãáâ ®¢¨âì ⥪ã騩 ¤à ©¢ ¯¥à¥ § 票¥ (áâ à ï äãªæ¨ï ¤«ï TR-DOS!)
|
||
LD E,drv_type ; 䨧¨ç¥áª¨© ⨯ ¨ ®¬¥à ãáâனáâ¢
|
||
LD C,#99 ;
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥.
|
||
;
|
||
|
||
GET_DISK_REDIR: ; ¯®«ãç¨âì ⨯ § 票ï ⥪ã騩 ¤à ©¢ (áâ à ï äãªæ¨ï ¤«ï TR-DOS!)
|
||
LD C,#9A ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥. A - ⨯ § 票ï
|
||
; A=0..3 - § ç¥ à¥ «ìë© ¤¨áª®¢®¤ A:, B:, C:, D:
|
||
; A=4..19 - § ç¥ RAM-Disk, A = ram_disk + 4
|
||
; A=#40..#4F - § ç¥ ¢¨ç¥áâ¥à (#40+hdd_drive)
|
||
;
|
||
|
||
RAMD_TO_DRV: ; § 票¥ RAM-Disk ¤¨áª®¢®¤.
|
||
LD A,ram_disk ; ®¬¥à RAM-Disk-
|
||
LD B,drive ; ®¬¥à ¤¨áª®¢®¤ 0..3 - ᮮ⢥âáâ¢ã¥â ¤¨áª®¢®¤ ¬
|
||
; A:, B:, C:, D:
|
||
LD C,#CB ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª : ¥¢¥àë© ®¬¥à ¤à ©¢ ¨«¨ à ¬¤¨áª
|
||
;
|
||
|
||
FDD_TO_DRV: ; § 票¥ ॠ«ì®£® ¤¨áª®¢®¤
|
||
LD €,disk_drive; ®¬¥à 䨧¨ç¥áª®£® ¤¨áª®¢®¤ 0..3
|
||
LD B,drive ; ®¬¥à ¤à ©¢ 0..3
|
||
; <20>®¬¥à 䨧¨ç¥áª®£® ¤¨áª®¢®¤ ¨ ®¬¥à ¤à ©¢ ¤®«¦ë
|
||
; ᮢ¯ ¤ âì, â ª ª ª ª®¬¯ìîâ¥à ¥ ¨¬¥¥â
|
||
; í«¥ªâà¨ç¥áª®© áå¥¬ë ¯¥à¥ª«îç¥¨ï ¤¨áª®¢®¤®¢
|
||
; à §ë¥ ¡ãª¢ë. ‚ ¡ã¤ãé¨å ¢¥àá¨ïå ¦¥«¥§ , ¢®§¬®¦®,
|
||
; íâ® ¯®ï¢¨âáï.
|
||
LD C,#CC ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª : ¥¢¥àë© ®¬¥à ¤à ©¢ ¨«¨ ¤¨áª®¢®¤
|
||
;
|
||
|
||
HDD_TO_DRV: ; § 票¥ ¢¨ç¥áâ¥à ¤¨áª®¢®¤
|
||
LD A,hdd_drive ; <20>®¬¥à ¢¨ç¥áâ¥à .
|
||
; à §«¨çëå à §¤¥«®¢ ¨ master/slave
|
||
LD B,drive ; ®¬¥à ¤à ©¢ 0..3
|
||
LD C,#CD ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª : ¥¢¥àë© ®¬¥à ¤à ©¢ ¨«¨ ¢¨ç¥áâ¥à
|
||
;
|
||
|
||
GET_DRV_ST: ; ¯®«ãç¨âì ⨯ § ç¥¨ï ¤à ©¢ ; !TODO ¯à®¢¥à¨âì
|
||
LD A,drive ; ®¬¥à ¤à ©¢ 0..3
|
||
LD C,#CF ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥. A - ⨯ § 票ï
|
||
; A=0..3 - § ç¥ à¥ «ìë© ¤¨áª®¢®¤ A:, B:, C:, D:
|
||
; A=4..19 - § ç¥ RAM-Disk, A = ram_disk + 4
|
||
; A=#40..#4F - § ç¥ ¢¨ç¥áâ¥à (#40+hdd_drive)
|
||
; CF -> ®è¨¡ª ®¬¥à ¤à ©¢
|
||
;
|
||
|
||
;==============================================================================
|
||
; 4. ”ãªæ¨¨ ã¯à ¢«¥¨ï ¦¥«¥§®¬ ¨ ®¯à¥¤¥«¥¨¥ ¢¥àᨨ.
|
||
;==============================================================================
|
||
|
||
;!TODO
|
||
FN_SEND_BYTE
|
||
LD C,#E8
|
||
RST ToBIOS
|
||
;
|
||
;!TODO
|
||
FN_RESEIVE_B
|
||
LD C,#E9
|
||
RST ToBIOS
|
||
;
|
||
;!TODO
|
||
FN_KBD_OUT
|
||
LD C,#EA
|
||
RST ToBIOS
|
||
;
|
||
|
||
FN_CRIPT
|
||
LD B,func ; 1: HL - ROM_NUMBER part1
|
||
; A - ROM_NUMBER part2
|
||
; BC - BoardID start
|
||
; DE - BoardID end
|
||
; [x] 28/01/2024
|
||
; ; 2: HL - ¤à¥á ¡ãä¥à ¤«ï §¢ ¨ï 稯 (⥪áâ). ¬ ªá¨¬ã¬ 5 ¡ ©â®¢, § ª 稢 îâáï ã«ñ¬
|
||
LD HL,buff ; CF = 0:
|
||
; ; A: 0 - K30, 1 - K50, ®á⠫쮥 ¢ १¥à¢¥ ¡ã¤ã饥
|
||
; ; DE: ¢¥àá¨ï ¡¨âáâਬ
|
||
LD C,#ED
|
||
RST ToBIOS
|
||
;
|
||
|
||
RST_CONF.AY8910:; ¯¥à¥ª«î票¥ ¢ ª®ä¨£ãà æ¨î Spectrum. AY8910
|
||
LD C,#EE ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> äãªæ¨ï ¥ ¨á¯®«¥ , ä â «ì ï ®è¨¡ª
|
||
; ¬ è¨ã á«¥¤ã¥â ¯¥à¥§ ¯ãáâ¨âì ¯® RESET
|
||
;
|
||
|
||
FN_VERSION: ; ¢ë¤ ç ¨ä®à¬ 樨 ® ¢¥àᨨ ¡¨®á ¨ ¦¥«¥§
|
||
LD HL,bufer ; ¡ãä¥à, ªã¤ ¡ã¤¥â ¯®¬¥é¥ ASCIIZ áâப á
|
||
; §¢ ¨¥¬ ¨ ®¬¥à®¬ ¢¥àᨨ, ª®¥æ áâப¨ ®â¬¥ç¥
|
||
; ã«¥¬.
|
||
LD C,#EF ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> HL - â®â ¦¥ ¡ãä¥à á § ¯¨á ®© áâப®©:
|
||
; " §¢ ¨¥ ¯à®è¨¢ª¨ | Sprinter | ¢¥àá¨ï_ª®äë"
|
||
; A - ç¨á«® ¯®«¥© áâப¨ ¢ ¡ãä¥à¥ HL
|
||
; DE - ¢¥àá¨ï ¡¨®á
|
||
; BC - ¢¥àá¨ï ¦¥«¥§ (;!TODO âãâ ¢ë¤ ñâáï CONFIG_BYTE)
|
||
; BC=#FFFF - not identifyed
|
||
; BC=#FFFE - Sprinter-1
|
||
; BC=#FFFD - Sprinter-2
|
||
; BC=#FFFC - Spectrum + AY8910
|
||
; BC=#FFFB - Game-1
|
||
; BC=#FFFA - Video-1
|
||
; BC=#FFF9 - DooM
|
||
; BC=#FEFF - Sprinter 2000
|
||
; ˆë¥ § 票ï BC - ®¢ë¥ ¯à®è¨¢ª¨
|
||
; ¢¥àá¨ï ¦¥«¥§ ¢ë¤ ¥âáï ⮫쪮
|
||
; ¢ ¡¨®á å ¢¥àᨩ 1.16 ¨ ¢ëè¥
|
||
; CF -> ®è¨¡ª . Žç¥ì áâ à ï ¢¥àá¨ï, ¥ ¨¬¥îé ï
|
||
; ¤ ®© äãªæ¨¨
|
||
;!!!!! ‘â à ï ¢¥àá¨ï ¢ë¤ ¢ « :
|
||
; ; L - ¯¥à¢ë¥ 4 ¡¨â - ¡¨âë ¯®àâ All_Mode.
|
||
; ; ¢ FN ¥áâì â ª®© ª®¤:
|
||
;
|
||
; LD A,%0000'1101 ; ã¦ë¥ ¡¨âë ¤«ï ¯®àâ All_Mode
|
||
; AND L
|
||
; SUB %0000'1101
|
||
; JR Z,InitVM1
|
||
; IN A,(SCREEN_SWITCH)
|
||
; PUSH AF
|
||
; LD C,BIOS.RST_CONF.SP97_2
|
||
; RST ToBIOS
|
||
; SUB A
|
||
; OUT (BORDER),A
|
||
; POP AF
|
||
; OUT (SCREEN_SWITCH),A
|
||
;
|
||
|
||
|
||
;!FIXIT
|
||
RST_CONF.SP97_1:; ¯¥à¥ª«î票¥ ¢ ª®ä¨£ãà æ¨î Sprinter-1. SPRINTER_1
|
||
LD C,#F0 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> äãªæ¨ï ¥ ¨á¯®«¥ , ä â «ì ï ®è¨¡ª
|
||
; ¬ è¨ã á«¥¤ã¥â ¯¥à¥§ ¯ãáâ¨âì ¯® RESET
|
||
;
|
||
|
||
;!FIXIT
|
||
RST_CONF.SP97_2:; ¯¥à¥ª«î票¥ ¢ ª®ä¨£ãà æ¨î Sprinter-2. SPRINTER_2
|
||
LD C,#F1 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> äãªæ¨ï ¥ ¨á¯®«¥ , ä â «ì ï ®è¨¡ª
|
||
; ¬ è¨ã á«¥¤ã¥â ¯¥à¥§ ¯ãáâ¨âì ¯® RESET
|
||
;
|
||
|
||
RST_CONF.CUSTOM:; ¯¥à¥ª«î票¥ ª®ä¨£ãà æ¨¨ ¯®«ì§®¢ ⥫ï. SPRINTER_ALL
|
||
LD A,page_cnf ; áâà ¨æ á ä ©«®¬ ¯à®è¨¢ª¨ ¤«ï <20>‹Œ EPF10K10 (áâ ஥ ¯®¢¥¤¥¨¥ ®â Sp97)
|
||
; áâà ¨æ ¥ ¬®¦¥â ¨¬¥âì ®¬¥à ¡®«ìè¥ 127 (áâ ஥ ¯®¢¥¤¥¨¥ ®â Sp97)
|
||
; ” ©« ¯à®è¨¢ª¨, ¥áâ¥á⢥® ¤®«¦¥ ¡ëâì 㦥
|
||
; § £à㦥 ¢ íâã áâà ¨æã
|
||
LD B,ramblk ; [x] ¯à¨ A = #FE ¯¥à¥§ «¨¢ª ª®äë á ¢®§¢à ⮬. B 㪠§ë¢ ¥â RAM Block ID á ¡¨âáâਬ®¬ ¤«ï § £à㧪¨, ¥á«¨ B=0, â® § £à㧪 ¨§ ROM
|
||
; [x] ¯à¨ A = #FD ¯à®¨á室¨â २¨â. €ªá¥«ì ¢ª«îç ¥âáï ¨ â¤... ¬®¦® ¯¨å âì â㤠¥éñ çâ®-¨¡ã¤ì
|
||
; [x] ¯à¨ A = #FC á®äâ-à¥á¥â á ¢®§¢à ⮬
|
||
; [x] ¯à¨ A = #FB ãáâ ®¢ª ¯¥à¥å¢ â稪 á®äâ-à¥á¥â , DE - ¤à¥á ¯à®æ¥¤ãàë
|
||
; [x] ¯à¨ A = #FA ãáâ ®¢ª ¯¥à¥å¢ â稪 å à¤-à¥á¥â , DE - ¤à¥á ¯à®æ¥¤ãàë, B - RAM_BLK_ID á ª®ä®©, «¨¡® 0, ¥á«¨ ¨§ ¯§ã
|
||
LD C,#F3 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥
|
||
; CF -> äãªæ¨ï ¥ ¨á¯®«¥ , ä â «ì ï ®è¨¡ª
|
||
; ¬ è¨ã á«¥¤ã¥â ¯¥à¥§ ¯ãáâ¨âì ¯® RESET
|
||
;
|
||
|
||
; ; [x] free zx pages
|
||
GOTO_SPEC: ; ‚室 ¢ ०¨¬ ᯥªâàã¬
|
||
; ‚室: D: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128,
|
||
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
|
||
; 4 - TR-DOS, 5 - BASIC 48
|
||
; E: § 票¥ ¤«ï SYS_PORT/CNF_PORT
|
||
; L: Block_ID.vROM
|
||
; H: Block_ID.vRAM
|
||
; B: Port All Mode
|
||
;A [1..0]: 1 - int scorp, 2 - int pent, 3 - int ZX
|
||
; A'[2]: 0 - set default palette, 1 - don't change palette
|
||
; A'[7]: 0 - 320, 1 - 312 áâப
|
||
LD C,#FB
|
||
RST ToBIOS
|
||
;
|
||
|
||
ZX_MEMORY_MANAGER:; ‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥/¨¨â áâà ¨æ ᯥªâàã¬
|
||
;¢å®¤: ॣ B:
|
||
; FN 0x
|
||
; 0 - § १¥à¢¨à®¢ ®
|
||
; 1 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 48k. 3 áâà ¨æë
|
||
; 2 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 128k. 2+6 áâà ¨æë
|
||
; 3 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 512k. 2+30 áâà ¨æë
|
||
; 4 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Scorpion 256k. 2+6+8 áâà ¨æë
|
||
; 5..15 - § १¥à¢¨à®¢ ë
|
||
; FN 1x
|
||
; 16 - ¯®«ãç¨âì à ¬¡«®ª¨ ¨¨æ¨ «¨§¨à®¢ ëå vROM ¨ VRAM
|
||
; 17..31 - § १¥à¢¨à®¢ ë
|
||
;
|
||
; FN 2x..3x § १¥à¢¨à®¢ ® ;!TODO
|
||
;
|
||
; FN 4x
|
||
; 64 - ®á¢®¡®¤¨âì à ¬¡«®ª¨ vROM ¨ vRAM
|
||
; 65 - ®á¢®¡®¤¨âì à ¬¡«®ª vRAM
|
||
; 66 - ®á¢®¡®¤¨âì à ¬¡«®ª vROM
|
||
; 65..127 - § १¥à¢¨à®¢ ë
|
||
; FN 8x
|
||
; 128 - ¨¨æ¨ «¨§¨à®¢ âì ᢮© ¡®à áâà ¨æ vROM
|
||
;
|
||
; ॣ HL: ¯à¨ ॣ B[7]=1 ¤à¥á ᯨ᪠áâà ¨æ (11 èâ):
|
||
; byte1 - RAM block ID, byte2..11 - áâà ¨æë ¤«ï vROM - ZXSlot: 1,2,3(=0),à áè¨à¥ ï
|
||
;¢ë室: CF = 0: HL - ®¬¥à à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM
|
||
; CF = 1: A - ®¬¥à ®è¨¡ª¨
|
||
;
|
||
;¥á«¨ áâíª å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«îç¥ë¬¨ ¯à¥àë¢ ¨ï¬¨
|
||
LD C,#FC
|
||
RST ToBIOS
|
||
;
|
||
|
||
REINIT: ; [x] ‘¡à®á, ¯¥à¥§ £à㧪 , à¥áâ àâ, ®ç¨á⪠¯ ¬ïâ¨ á ¢®ááâ ®¢«¥¨¥¬ ZX pages ; [ ] free zx pages!
|
||
LD B,res_type ; 1 - à¥áâ àâ, 2 - soft reset, 3 - hard reset. 4 - clear RAM except zx pages
|
||
LD C,#FD ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; CF -> äãªæ¨ï ¥ ¨á¯®«¥ , ¢®§¬®¦ë¥ ¯à¨ç¨ë:
|
||
; - ¥ª®à४⮥ § 票¥ res_type
|
||
; - ®¤ ¨§ ZX áâà ¨æ § ïâ (¯à¨ res_type=4),
|
||
; ⮣¤ ¯®¤ zx ®â¤ áâáï ⮫쪮 ç áâì áâà ¨æ
|
||
; - áâ à ï ¢¥àá¨ï BIOS
|
||
;
|
||
|
||
;[x]
|
||
FN_SYNC: ; ãáâ ®¢ª á¨åந§ 樨, ®ç¨á⪠०¨¬ íªà , ãáâ ®¢ª § ¤¥à¦¥ª
|
||
; äãªæ¨ï ¬®¦¥â ¡ëâì ®â¥á¥ ¨ ª £à㯯¥ äãªæ¨©
|
||
; ¢ë¢®¤ íªà , â ª ª ª ¯®«®áâìî ®ç¨é ¥â
|
||
; áâà ¨æë ०¨¬ íªà . <20> ¢á¥¬ íªà ¥ ®áâ ¥âáï
|
||
; ⮫쪮 ¡®à¤îà
|
||
LD A,sync_mode ; ०¨¬ á¨åந§ 樨
|
||
; Reg A bit7 = 0 - ०¨¬ ®ç¨á⪨ íªà ¨ ãáâ ®¢ª¨ INT:
|
||
; A = 0: ०¨¬ ¯® 㬮«ç ¨î - ¨á¯®«ì§ã¥âáï ¤«ï ®ç¨á⪨
|
||
; áâà ¨æ ०¨¬ (®âª«îç¥¨ï ¢ë¢®¤ ¢á¥å ®ª®)
|
||
; A = 1: ०¨¬ Scorpion - 312 áâப ¢ íªà ¥,
|
||
; ¯®«®¦¥¨¥ INT- , ª ª ¢ Scorpion-256
|
||
; A = 2: ०¨¬ Pentagon - 320 áâப ¢ íªà ¥,
|
||
; ¯®«®¦¥¨¥ INT-a ª ª ¢ Pentagon-128
|
||
; A = 3: ०¨¬ Spectrum
|
||
; ¯®«®¦¥¨¥ INT-a ª ª ¢ ®à¨£¨ «ì®¬ ZX Spectrum
|
||
; A = 4: ãáâ ®¢ª INT ¨§ áâ஥ª ¯®«ì§®¢ â¥«ï ¢ CMOS
|
||
; A = 5: ãáâ ®¢ª INT ¨§ â ¡«¨æë ¯®«ì§®¢ ⥫ï
|
||
; 㪠§ â¥«ì ¢ IX, ¤ ë¥ ¢ SLOT1..2
|
||
;
|
||
; Reg A bit7 = 1 - ०¨¬ ãáâ ®¢ª¨ ¢¥à⨪ «ì®© á¨åந§ 樨 ¨/¨«¨ wait:
|
||
; bit1,bit0:
|
||
; %00 - á¨åà ¢ëáâ ¢«ï¥âáï ¨§ á¨á⥬®© ¯¥à¥¬¥®©
|
||
; %01 - á¨åà ¢ëáâ ¢«ï¥âáï ¨§ CMOS
|
||
; %10 - á¨åà 320 lines 49 Hz
|
||
; %11 - á¨åà 312 lines 50 Hz
|
||
; bit2:
|
||
; %0 - ¨£®à¨à®¢ âì bit1..bit0
|
||
; %1 - ¥ ¨£®à¨à®¢ âì bit1..bit0
|
||
; bit3:
|
||
; %0 - no waits (port all_mode bit2 set)
|
||
; %1 - original waits (port all_mode bit2 res)
|
||
; bit4:
|
||
; %0 - ¨£®à¨à®¢ âì bit3
|
||
; %1 - ¥ ¨£®à¨à®¢ âì bit3
|
||
; bit5,bit6 - reserved ;!TODO use for HOLD port?
|
||
;
|
||
LD C,#F2 ; <20>®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ¥¢¥àë© ®¬¥à ०¨¬ á¨åந§ 樨
|
||
; ¨§¬¥¥¨¥ ०¨¬ á¨åந§ 樨 ¬®¦¥â ¯à¨¢¥á⨠ª ¢à¥¬¥®¬ã á¡®î
|
||
; á¨åந§ 樨 ¬®¨â®à .
|
||
|
||
; !TODO ¯®¤à®¡®¥ ®¯¨á ¨¥
|
||
DCP_CONFIG: ; [x] äãªæ¨ï ã¯à ¢«¥¨ï ¤¥è¨äà â®à®¬ ¯®à⮢.
|
||
;A - ¥á«¨ ®«ì, â® ¢ë§®¢ äãªæ¨¨ ¯¥à¥¨¨æ¨ «¨§ 樨 ¯®à⮢ PORTS_INIT
|
||
;HL - ¤à¥á
|
||
;DE - ¬ ᪠- 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥
|
||
;B - ¯®àâ
|
||
;C - #F4 ®¬¥à äãªæ¨¨
|
||
; ”ãªæ¨ï ¯®§¢®«ï¥â ®âªàë¢ âì/§ ªàë¢ âì ¤®¯®«¨â¥«ìë¥ ¯®àâë ª®¬¯ìîâ¥à .
|
||
;
|
||
|
||
; ”ãªæ¨¨ SET_PORTS ¨ READ_PORTS ¯®§¢®«ïîâ ¨¬¥âì ¤®áâã¯
|
||
; ª «î¡ë¬ ¯®àâ ¬ ª®¬¯ìîâ¥à ¥§ ¢¨á¨¬® ®â ⮣®, ®âªàëâë ®¨ ¨«¨ ¥â.
|
||
; ‘ ¯®¬®éìî íâ¨å äãªæ¨© ¢®§¬®¦® ¯à®ç¨â âì ᮤ¥à¦¨¬®¥ ¯®à⮢ 1FFD ¨
|
||
; 7FFD, ¯à¨¬¥à, â ª ¦¥ ãáâ ®¢¨âì ã¦ë¥ § ç¥¨ï ¢ § ªàëâë¥ á¨á⥬ë¥
|
||
; ¯®àâë. <20>®àâë User- ¯®§¢®«ïâ í¬ã«¨à®¢ âì ¥ª®â®àë¥ ãáâனá⢠,
|
||
; ®âáãâáâ¢ãî騥 ¢ ‘¯à¨â¥à¥, â ª ¦¥ ¬®£ãâ ¤ âì ®á®¡ë© á¯®á®¡
|
||
; ¯¥à¥¤ ç¨ ¤ ëå ¬¥¦¤ã ¯à®£à ¬¬ ¬¨, ¬¨ãï Ž‡“.
|
||
|
||
;
|
||
SET_PORTS: ; £«®¡ «ì ï ãáâ ®¢ª ¯®à⮢.
|
||
LD A,port_num ; ¢ãâ२© ®¬¥à ¯®àâ
|
||
; F0..FF - áâà ¨æë Scorpion 0..15, ¯®¤ª«îç ¥¬ë¥ ¢
|
||
; ¤à¥á #C000, áâà ¨æ ¨¬¥® â , ª®â®à ï
|
||
; ¯®¤ª«îç¥ ¢ ¤ ë© ¬®¬¥â ç¥à¥§ 7FFD,1FFD
|
||
; E0=EXPANSION, …1=TR-DOS, E2=BASIC-128, E3=BASIC-48
|
||
; E4=EXPANSION',…5=TR-DOS',E6=BASIC-128',E7=BASIC-48'
|
||
; E8=RAM0, E9=RAM1, EA=RAM2, EB=SYS0, EC=CASH
|
||
; ED,EE - reserv, EF=SYS1
|
||
; C0=COPY_1FFD, C1=COPY_7FFD, C2=COPY_BRD, C3-reserv
|
||
; C4-reserv, C5=COPY_V_MODE, C6=COPY_SYS, C7-reserv
|
||
; C8..CF - «ìâ¥à â¨¢ë© ¡®à ¤«ï C0..C7
|
||
; D0..DF-reserv - ¤®¯. áâà ¨æë ¤«ï Pentagon-512
|
||
; 80..BF-user_ports!
|
||
; 00..7F-¢¥è¨¥ ¯®àâë, ¨á¯®«ì§®¢ âì ¥ ४®¬¥¤ã¥âáï
|
||
LD B,port_data ; ¤ ë¥, § ¯¨áë¢ ¥¬ë¥ ¢® ¢ãâ२© ¯®àâ
|
||
LD C,#F8 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; B - ¯à¥¤ë¤ã饥 ᮤ¥à¦ ¨¥ ¯®àâ
|
||
;
|
||
|
||
; [x] 26/01/2024 ¤®¡ ¢«¥ .
|
||
READ_PORTS: ; £«®¡ «ì®¥ ç⥨¥ ¯®à⮢
|
||
LD A,port_num ; ¢ãâ२© ®¬¥à ¯®àâ
|
||
LD C,#F9 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; B - ᮤ¥à¦ ¨¥ ¯®àâ
|
||
;
|
||
|
||
; [x] 26/01/2024 ¯à®æ¥¤ãà ¤ã¡«¨àã¥â äãªæ¨® « SET_PORTS. “¡à .
|
||
;WRITE_PORTS: ; £«®¡ «ì ï § ¯¨áì ¯®à⮢
|
||
; LD A,port_num ; ¢ãâ२© ®¬¥à ¯®àâ
|
||
; LD B,data_port ; § ¯¨áë¢ ¥¬ë¥ ¤ ë¥
|
||
; LD C,#FA ; ®¬¥à äãªæ¨¨
|
||
; RST ToBIOS ;
|
||
;;;
|
||
|
||
|
||
CMOS_RD: ; ç¨â âì ¨§ ॣ¨áâà CMOS
|
||
LD D,cmos_reg ; ®¬¥à ॣ¨áâà CMOS
|
||
LD C,#F6 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC - ç áë ¥áâì
|
||
; CF - ç ᮢ ¥â
|
||
; A - § 票¥ ï祩ª¨
|
||
;
|
||
|
||
CMOS_WR: ; ¯¨á âì ¢ ॣ¨áâà CMOS
|
||
LD D,cmos_reg ; ®¬¥à ॣ¨áâà CMOS
|
||
LD A,Value ; § 票¥
|
||
LD C,#F7 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC - ç áë ¥áâì
|
||
; CF - ç ᮢ ¥â
|
||
; ”ãªæ¨¨ CMOS_RD,CMOS_WR à ¡®â î⠢ᥣ¤ . …᫨ ¢ ¬ 訥 ¥â ¬¨ªà®á奬ë CMOS,
|
||
; ® í¬ã«¨àã¥âáï. <20> «¨ç¨¥ ¬¨ªà®áå¥¬ë ®¯à¥¤¥«ï¥âáï äãªæ¨¥© CMOS_TEST.
|
||
;
|
||
|
||
CMOS_TEST: ; ¯à®¢¥à¨âì «¨ç¨¥ CMOS
|
||
LD C,#F5 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC - ç áë ¥áâì
|
||
; CF - ç ᮢ ¥â
|
||
;
|
||
|
||
FN_TURBO: ; äãªæ¨ï ã¯à ¢«¥¨ï âãà¡® ०¨¬®¬ ¨ ¯«®â®áâìî ‚ƒ93
|
||
LD A,turbo_mode; ०¨¬ âãà¡®: 2 - off, 3 - on
|
||
; ¯«®â®áâì ‚ƒ93: 18 - 720, 19 - 1440
|
||
LD C,#8F ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ¨á¯®«¥¨¥
|
||
; CF -> ¥¢¥àë© à¥¦¨¬ âãà¡®
|
||
; * ¯¥à¥ª«î票¥ ०¨¬ âãà¡® ¬®¦¥â ¥ ¯à®¨§®©â¨, ¥á«¨ ¯à®è¨¢ª ¥
|
||
; ¯®¤¤¥à¦¨¢ ¥â íâ® ¯¥à¥ª«î票¥. <20>ਠí⮬ ®è¨¡ª¨ ¥ ¯à®¨á室¨â.
|
||
;
|
||
|
||
;==============================================================================
|
||
; 5. ”ãªæ¨¨ ¯¥ç ⨠¨ ã¯à ¢«¥¨ï ०¨¬®¬ íªà .
|
||
;==============================================================================
|
||
|
||
;!TODO ƒà ä¨ç¥áª¨¥ äãªæ¨¨
|
||
;-----------------------;
|
||
;PIC_FN0 ; #A0 Ž’Š<E28099>›’ˆ… ŽŠ<C5BD>€
|
||
;PIC_FN1 ; #A1 ‚›‚…‘’ˆ ’Ž—Š“
|
||
;PIC_FN2 ; #A2 ‚›‚Ž„ ‹ˆ<E280B9>ˆˆ COPY
|
||
;PIC_FN3 ; #A3 ‚›‚Ž„ ‹ˆ<E280B9>ˆˆ FILL
|
||
;PIC_FN4 ; #A4 ‚›‚Ž„ <20>€‹ˆ’<CB86>› ;!FIXIT ãáâ ®¢ª ¯ «¨âàë
|
||
;PIC_FN5 ; #A5 “‘’€<E28099>ނЀ SCREEN_SWITCH
|
||
;PIC_FN6 ; #A6 A - page_pal, E - ®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë
|
||
;PIC_FN7 ; #A7 <20>¨á®¢ ¨¥ «¨¨¨ ®¤®£® 梥â
|
||
;PIC_FN8 ; #A8 <20>¨á®¢ ¨¥ à §®æ¢¥â®© «¨¨¨
|
||
;-----------------------;
|
||
|
||
WIN_OPEN: ; äãªæ¨ï ®âªàëâ¨ï ®ª .
|
||
LD IX,win_descriptor ; ®¯¨á â¥«ì ®ª
|
||
; IX - 32-å¡ ©â®¢ë© ®¯¨á â¥«ì ®ª
|
||
; (IX+0) - £®à¨§®â «ìë© à §¬¥à ®ª ¢ § ª®¬¥áâ å
|
||
; (IX+1) - ¢¥à⨪ «ìë© à §¬¥à ¢ § ª®¬¥áâ å
|
||
; (IX+2) - ¯®«®¦¥¨¥ ®ª ¯® £®à¨§®â «¨ íªà ¥
|
||
; (IX+3) - ¯®«®¦¥¨¥ ®ª ¯® ¢¥à⨪ «¨ íªà ¥
|
||
; (IX+4) - ०¨¬ § ª®¬¥áâ
|
||
; bit4=1 - text_mode bit4=0 - graf_mode
|
||
; bit5=0 - 16, bit5=1 - 8 â®ç¥ª ¢ § ª®¬¥áâ¥
|
||
; graf_mode
|
||
; bit7..6 - ®¬¥à ¯ «¨âàë
|
||
; bit3..0 - ¥ áãé¥á⢥ë
|
||
; text_mode
|
||
; bit7..6,3..0 - ®¬¥à § ª®£¥¥à â®à
|
||
; ¨áª«î票¥: bit7..6=B"11" -> ¡®à¤¥à
|
||
; (IX+5) - ¤®¯®«¨â¥«ìë© à¥¦¨¬ § ª®¬¥áâ
|
||
; bit0=1 - 㪠§ë¢ ¥â ¢ª«î票¥ ᯥªâà㬮¢áª®©
|
||
; ¤à¥á 樨 íªà
|
||
; (IX+6) - ¯®«®¦¥¨¥ ¯® X ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ ¬)
|
||
; (IX+7) - ¯®«®¦¥¨¥ ¯® Y ¢ ¯®«¥ £à 䨪¨ (¯® § ª®¬¥áâ ¬)
|
||
; à §êïá¥¨ï ® ¯®«®¦¥¨¨ ¢ ¯®«¥ £à 䨪¨ - ¨¦¥
|
||
; (IX+8..31) - § १¥à¢¨à®¢ ® (¯¥à¥¬¥ë¥ ®ª )
|
||
LD E,win_flag ; ä« £¨ ®ª :
|
||
; ¡¨â 0 - 㪠§ë¢ ¥â ª ªãî áâà ¨æã ०¨¬ ¢ª«îç âì
|
||
; ¯®á«¥ ¨á¯®«¥¨ï äãªæ¨¨. bit0=0 - íªà 0, bit0=1 - íªà 1
|
||
; ¡¨â 4 - 㪠§ë¢ ¥â ª ª®© áâà ¨æ¥ à¥¦¨¬
|
||
; ®âªàë¢ âì ®ª®. bit4=1 - íªà 0, bit4=0 - íªà 1
|
||
;LD HL,win_place ; HL - ¬¥áâ® íªà ¥ ¯® § ª®¬¥áâ ¬ (ª®¯¨ï ¢ IX+2,3),
|
||
; ¢ ®¢ëå ¢¥àá¨ïå ¡¨®á § 票¥ HL ¥ áãé¥á⢥®
|
||
LD C,#B0 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> A - ®¬¥à ®ª
|
||
; CF -> ®è¨¡ª ᫨誮¬ ¬®£® ®ª®
|
||
LD (id_win),A ; á®åà ¨âì ¨¤¥â¨ä¨ª â®à ®ª
|
||
|
||
; * <20>ਠ®âªàë⨨ ®ª ®¯¨á â¥«ì ª®¯¨àã¥âáï ¢ á¨á⥬ãî áâà ¨æã އ“ ¨
|
||
; ¯à®£à ¬¬ ¬®¦¥â ¥ á®åà ïâì ¥£®.
|
||
; ** ‚ ¤ ë© ¬®¬¥â ¨¤¥â¨ä¨ª â®à ®ª ¢á¥£¤ à ¢¥ 0
|
||
|
||
; ‚¨¤¥®-އ“ ‘¯à¨â¥à ¬®¦® ¯à¥¤áâ ¢¨âì ª ª ®¤® ᯫ®è®¥ ¯®«¥ £à 䨪¨
|
||
; à §¬¥à®¬ 1024 â®çª¨ ¯® £®à¨§®â «¨ 256 â®ç¥ª ¯® ¢¥à⨪ «¨
|
||
; <20>®«®¦¥¨¥ ¢ ¯®«¥ £à 䨪¨ ¯®ª §ë¢ ¥â £¤¥ ¡ã¤¥â 室¨âìáï ¢ í⮬ ¯®«¥
|
||
; ¢¥à娩 «¥¢ë© 㣮« ®ª . <20>®«®¦¥¨¥ ¨áç¨á«ï¥âáï ¢ § ª®¬¥áâ å. ’.¥.
|
||
; …᫨ 㪠§ ® ¯®«®¦¥¨¥ ¯® X - 2, ¯® Y - 6, íâ® ®§ ç ¥â, çâ® ¢¥à娩 㣮«
|
||
; ®ª ¡ã¤¥â à ᯮ«®¦¥ ¯® ª®®à¤¨ â ¬ X=16, Y=48 ¢ ¯®«¥ £à 䨪¨ ¢¨¤¥®-އ“
|
||
; ’ ª¨¬ ®¡à §®¬, ¥á«¨, ¯à¨¬¥à, ®âªàëâì ¤¢ ®ª ¢ à §ëå ¬¥áâ å, ® á
|
||
; ®¤¨ ª®¢ë¬¨ ª®®à¤¨ â ¬¨ ¢ ¯®«¥ £à 䨪¨, íªà ¥ ®ª ¦ãâáï ¤¢
|
||
; ¨¤¥â¨çëå ®ª , ¤ ë¥ ¢ ª®â®àë¥ ¡ã¤ãâ ¯®¯ ¤ âì ®¤®¢à¥¬¥®.
|
||
|
||
; ‡ ª®£¥¥à â®àë ⥪á⮢ëå ०¨¬®¢ â ª ¦¥ à ᯮ« £ îâáï ¢ ¢¨¤¥®-އ“ ¨
|
||
; ¨¬¥îâ ª®ªà¥âë¥ ¤à¥á ¢ ¯®«¥ £à 䨪¨. <20>ਠ¥®¡å®¤¨¬®á⨠¨¬¥âì íªà ¥
|
||
; ª ª £à ä¨ç¥áª®¥, â ª ¨ ⥪á⮢®¥ ¨§®¡à ¦¥¨¥ ¤® á«¥¤¨âì, çâ® ¡ë
|
||
; ¤ ë¥ £à ä¨ç¥áª¨å ®ª® ¥ ¯®¯ ¤ «¨ ¢ ¯®«¥ £à 䨪¨, £¤¥ à ᯮ«®¦¥ë
|
||
; § ª®£¥¥à â®àë
|
||
|
||
; <20>ਠ¨á¯®«ì§®¢ ¨¨ ª ª®£® «¨¡® § ª®£¥¥à â®à , ® § ¨¬ ¥â ç áâì ¯®«ï
|
||
; £à 䨪¨ ¯® ª®®à¤¨ â ¬
|
||
; (ª®®à¤¨ âë ¢ § ª®¬¥áâ å, â.¥. ¢ § 票ïå ¡ ©â IX+6 ®¯¨á â¥«ï ®ª )
|
||
; X = (8 * ( bit3..0 ०¨¬ ))..(8 * ( bit3..0 ०¨¬ ) + 7)
|
||
; <20>® Y § ¨¬ îâáï ¢á¥ ¯®«®¦¥¨ï.
|
||
; ’ ª¨¬ ®¡à §®¬, ¯à¨ ¨á¯®«ì§®¢ ¨¨ ¥áª®«ìª¨å § ª®£¥¥à â®à®¢ á ç «
|
||
; á«¥¤ã¥â ¨á¯®«ì§®¢ âì § ª®£¥¥à â®àë á ®¬¥à ¬¨ ¬¥ïî騬¨áï ¢ Bit7..6,
|
||
; â ª ª ª ®¨ ¯®¯ ¤ îâ ¢ ®¤¨ ¨ ⥠¦¥ ª®®à¤¨ âë ¯®«ï £à 䨪¨
|
||
|
||
; <20>ਠ®âªàë⨨ £à ä¨ç¥áª¨å ®ª® á«¥¤ã¥â ¯®¬¨âì, çâ® ¢ íâ®â ¬®¬¥â
|
||
; ¨ä®à¬ æ¨ï ⥪á⮢®£® íªà 室ïé ïáï ¢ í⮬ ¬¥á⥠¡ã¤¥â ãâ¥àï .
|
||
; <20>ਠ®âªàë⨨ ⥪á⮢®£® ®ª ¨§¬¥ï¥âáï ¨ä®à¬ æ¨ï ⮫쪮 ¢ ¯®«¥ £à 䨪¨
|
||
; § ª®£¥¥à â®à ᮮ⢥âáâ¢ãî饬ã í⮬ã ⥪á⢮¢®¬ã íªà ã. …᫨ íâ
|
||
; ¨ä®à¬ æ¨ï ¨ ¨ä®à¬ æ¨ï £à ä¨ç¥áª®£® ®ª ¥ ¯¥à¥á¥ª «¨áì, â® ¯à¨
|
||
; ¯®¢â®à®¬ ®âªàë⨨ £à ä¨ç¥áª®£® íªà , ¥¬ ¢â®¬ â¨ç¥áª¨
|
||
; ¢®ááâ ®¢¨âáï £à ä¨ç¥áª ï ª à⨪
|
||
;
|
||
|
||
WIN_CLOSE: ; § ªàë⨥ ®ª
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD C,#B1 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ãᯥ讥 § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª - ¥¢¥àë© ¨¤¥â¨ä¨ª â®à
|
||
; Žª® á ®¬¥à®¬ 0 ¨ª®£¤ ¥ § ªàë¢ ¥âáï ¨ ¯®¯ëâª
|
||
; § ªàëâ¨ï ¯à¨¢®¤¨â ª ®è¨¡ª¥
|
||
|
||
|
||
LP_OPEN_S: ; Žâªàë⨥ áâ ¤ àâëå ®ª®.
|
||
LD E,win_flag ; ä« £¨ ®ª
|
||
; bit 0 ®¯à¥¤¥«ï¥â áâà ¨æã ०¨¬ , ª®â®à ï ¡ã¤¥â
|
||
; ®âªàëâ ¯®á«¥ ¨á¯®«¥¨ï äãªæ¨¨
|
||
LD B,win_type ; ⨯ ®âªàë¢ ¥¬®£® ®ª :
|
||
; 0 - ᯥªâà㬮¢áª®¥ ®ª® 32x24
|
||
; 1 - ⥪á⮢®¥ ®ª® 64x24
|
||
; 2 - ⥪á⮢®¥ ®ª® 40x32
|
||
; 3 - ⥪á⮢®¥ ®ª® 80x32
|
||
; 4 - ᯥªâà㬮¢áª®¥ ®ª®, HL - ¯®«®¦¥¨¥ ®ª
|
||
; 5 - ⥪á⮢®¥ ®ª® 64x24, HL - ¯®«®¦¥¨¥ ®ª
|
||
; 6 - ⥪á⮢®¥ ®ª® 40x32, HL - ¯®«®¦¥¨¥ ®ª
|
||
; 7 - ⥪á⮢®¥ ®ª® 80x32, HL - ¯®«®¦¥¨¥ ®ª
|
||
; 8 - £à ä¨ç¥áª®¥ ®ª® 0, HL - ¯®«®¦¥¨¥ ®ª
|
||
; 9 - £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª
|
||
LD HL,win_place; ¯®«®¦¥¨¥ ®ª ¤«ï 4..9 ⨯®¢
|
||
LD C,#80 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¢ë¯®«¨âì äãªæ¨î
|
||
; ** ”ãªæ¨ï áâ à ï, ¨á¯®«ì§®¢ âì ¥ ४®¬¥¤ã¥âáï.
|
||
|
||
; „ «¥¥, ¢ äãªæ¨ïå § ¯®¬¨ ¨ï, ¢®ááâ ®¢«¥¨ï, ¯¥à¥¬¥é¥¨ï ¨ áâ¨à ¨ï
|
||
; ¯®¤à §ã¬¥¢ îâáï «®ª «ìë¥ ®ª ¢ á¬ëá«¥ "®ª® ¢ ®ª¥". ˆ¤¥â¨ä¨ª â®à ®ª
|
||
; ®â®á¨âáï ª £«®¡ «ì®¬ã ®ªã, ®â¨á¨â¥«ì® ª®â®à®£® ¤à¥áãîâáï «®ª «ìë¥
|
||
;
|
||
|
||
WIN_COPY: ; ª®¯¨à®¢ ¨¥ ¤ ëå ⥪á⮢®£® ®ª ¢ ¯ ¬ïâì
|
||
; § ¯®¬¨ ¨¥ ®ª
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à £«®¡ «ì®£® ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD H,ver_size ; HL - à §¬¥à «®ª «ì®£® ®ª ¢¥à⨪ «ì/£®à¨§®â «ì
|
||
LD L,hor_size ; à §¬¥à ¢ ᨬ¢®« å
|
||
LD D,ver_place ; DE - ¯®«®¦¥¨¥ «®ª «ì®£® ®ª ¢ £«®¡ «ì®¬ ®ª¥
|
||
LD E,hor_place ; ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨ ¢ ᨬ¢®« å
|
||
LD IX,bufer ; ¤à¥á ¡ãä¥à ¤«ï § ¯®¬¨ ¨ï ¤ ëå «®ª «ì®£® ®ª . (¤«ï ०¨¨¬ 80x32)
|
||
LD B,bufer_page; áâà ¨æ ¡ãä¥à ¤ ëå ®ª (⮫쪮 SLOT3 ¨«¨ SLOT2)
|
||
; ¤à¥á ¡ãä¥à 㪠§ë¢ ¥âáï ¤«ï ®ª #C000
|
||
; ¥á«¨ ¤à¥á 㪠§ á #8000, ®¬¥à áâà ¨æë ¡ãä¥à
|
||
; ¥ ¤¥©á⢨⥫¥
|
||
LD C,#B2 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª - ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ®ª
|
||
; ¯à¨ à ¡®â¥ í⮩ äãªæ¨¨ ç¥à¥§ RST #18 ¨«¨ RST 8, ®¡ï§ ⥫ì ãáâ ®¢ª
|
||
; DI, â ª ª ª äãªæ¨ï ¯®«ì§ã¥âáï á⥪®¬ ¤«ï ã᪮२ï ᢮¥© à ¡®âë.
|
||
;
|
||
|
||
WIN_RESTORE: ; ª®¯¨à®¢ ¨¥ ¤ ëå ¨§ ¯ ¬ï⨠¢ ⥪á⮢®¥ ®ª®
|
||
; ¢®ááâ ®¢«¥¨¥ ®ª
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à £«®¡ «ì®£® ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD H,ver_size ; HL - à §¬¥à «®ª «ì®£® ®ª ¢¥à⨪ «ì/£®à¨§®â «ì
|
||
LD L,hor_size ; à §¬¥à ¢ ᨬ¢®« å
|
||
LD D,ver_place ; DE - ¯®«®¦¥¨¥ «®ª «ì®£® ®ª
|
||
LD E,hor_place ; ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨ ¢ ᨬ¢®« å
|
||
LD IX,bufer ; ¤à¥á ¡ãä¥à ¤ ëå ¤«ï «®ª «ì®£® ®ª
|
||
LD B,bufer_page; áâà ¨æ ¡ãä¥à ¤ ëå ®ª (⮫쪮 SLOT3 ¨«¨ SLOT2)
|
||
; ¤à¥á ¡ãä¥à 㪠§ë¢ ¥âáï ¤«ï ®ª #C000
|
||
; ¥á«¨ ¤à¥á 㪠§ á #8000, ®¬¥à áâà ¨æë ¡ãä¥à
|
||
; ¥ ¤¥©á⢨⥫¥.
|
||
LD C,#B3 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª - ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ®ª
|
||
; ¯à¨ à ¡®â¥ í⮩ äãªæ¨¨ ç¥à¥§ RST #18 ¨«¨ RST 8, ®¡ï§ ⥫ì ãáâ ®¢ª
|
||
; DI, â ª ª ª äãªæ¨ï ¯®«ì§ã¥âáï á⥪®¬ ¤«ï ã᪮२ï à ¡®âë.
|
||
|
||
; „ ë¥ ¤«ï äãªæ¨© WIN_COPY_WIN ¨ WIN_RESTORE_WIN ¨¬¥îâ ®¤¨ ª®¢ãî
|
||
; áâàãªâãàã ‚ ¤ ë© ¬®¬¥â íâ áâàãªâãà ¯®å®¦ áâàãªâãàã ⥪á⮢®£®
|
||
; íªà IBM, â.¥. ¤ ë¥ ¨¤ãâ ¢ ä®à¬ ⥠sym1,atr1,sym2,atr2,.. ᯫ®èë¬
|
||
; ¬ áᨢ®¬. ‘ ç « ¤ ë¥ ¤«ï ¯¥à¢®© áâப¨, § ⥬ áà §ã ¤«ï ¢â®à®© ¨ â.¤.
|
||
|
||
WIN_GET_SYM: ; ¢§ïâì ᨬ¢®« á íªà
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD DE,place ; ¯®«®¦¥¨¥ ᨬ¢®« : D - ¢¥à⨪ «ì, E - £®à¨§®â «ì
|
||
LD C,#B4 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; L - ᨬ¢®«, H - âਡãâ, B - § ª®£¥¥à â®à
|
||
; CF -> ®è¨¡ª ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ®ª
|
||
;
|
||
|
||
WIN_PUT_SYM: ; ¯®«®¦¨âì ᨬ¢®« íªà
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD DE,place ; ¯®«®¦¥¨¥ ᨬ¢®« : D - ¢¥à⨪ «ì, E - £®à¨§®â «ì
|
||
LD B,sym_zg ; § ª®£¥¥à â®à
|
||
LD L,symbol ; ᨬ¢®«
|
||
LD H,atribute ; âਡãâ ᨬ¢®«
|
||
LD C,#B5 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ®ª
|
||
;
|
||
|
||
;
|
||
WIN_GET_ZG: ; ¯®«ãç¨âì § ª®£¥¥à â®à
|
||
LD DE,zg_buff ; 㪠§ ⥫ì 2Kb ¡ãä¥à ¤«ï § ª®£¥¥à â®à
|
||
LD C,#B8 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> § ¢¥à襨¥
|
||
;
|
||
|
||
;
|
||
WIN_SET_ZG: ; ãáâ ®¢ª § ª®£¥¥à â®à
|
||
LD A,sym_zg ; á¨áâ¥¬ë© ®¬¥à § ª®£¥¥à â®à
|
||
LD DE,zg_form ; 㪠§ ⥫ì 2Kb ¤ ëå § ª®£¥¥à â®à
|
||
; „ ë¥ § ª®£¥¥à â®à ¤®«¦ë à ᯮ« £ âìáï ¢ â ª®¬ ¢¨¤¥, ¢ ª ª®¬ ®¨
|
||
; ¢ë£«ï¤¥«¨ ¡ë ª ª ¡®à ᨬ¢®«®¢ ᯥªâà㬮¢áª®¬ íªà ¥ ¯à¨ ¯¥à¥®á¥ 2Kb
|
||
; LDIR-om ¢ ¤à¥á #4000
|
||
; * ‚ ¡ã¤ã饬 ¢®§¬®¦® ¨§¬¥¥¨¥ í⮣® à ᯮ«®¦¥¨ï ®¡ë箥
|
||
LD C,#B6 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª (áâ à ï ¢¥àá¨ï, ¥â äãªæ¨¨)
|
||
;
|
||
|
||
WIN_MOVE: ; ¯¥à¥¬¥é¥¨¥ ®ª (‚¨¬ ¨¥! ¨á¯®«ì§ã¥â ª ª ¡ãä¥à áâà ¨æã #FF)
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à £«®¡ «ì®£® ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD H,ver_size ; HL - à §¬¥à «®ª «ì®£® ®ª ¢¥à⨪ «ì/£®à¨§®â «ì
|
||
LD L,hor_size ; à §¬¥à ¢ ᨬ¢®« å
|
||
LD D,ver_place ; DE - ¯®«®¦¥¨¥ «®ª «ì®£® ®ª
|
||
LD E,hor_place ; ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨ ¢ ᨬ¢®« å
|
||
LD IX,new_place; ®¢®¥ ¯®«®¦¥¨¥ «®ª «ì®£® ®ª
|
||
LD C,#B7 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª - ¥¢¥àë© ¨¤¥â¨ä¨ª â®à ®ª
|
||
; ¯à¨ à ¡®â¥ í⮩ äãªæ¨¨ ç¥à¥§ RST #18 ¨«¨ RST 8, ®¡ï§ ⥫ì ãáâ ®¢ª
|
||
; DI, â ª ª ª äãªæ¨ï ¯®«ì§ã¥âáï á⥪®¬ ¤«ï ã᪮२ï à ¡®âë.
|
||
|
||
; „ ««¥¥ á«¥¤ãîâ äãªæ¨¨ ¯¥ç ⨠¤«ï à ¡®âë á _⥪ã騬_ £«®¡ «ìë¬ ®ª®¬.
|
||
; ‚ ¤ ë© ¬®¬¥â ⥪ã騬 ¢á¥£¤ ï¥âáï ¯®á«¥¤¥¥ ®âªàë⮥ ®ª®
|
||
; <20> £à ä¨ç¥áª®¬ íªà ¥ äãªæ¨ï ¥ à ¡®â ¥â
|
||
;
|
||
|
||
LP_PRINT_ALL: ; ¯¥ç âì ᨬ¢®«®¢ á âਡã⮬
|
||
LD A,symbol ; ᨬ¢®«
|
||
LD E,atribute ; âਡãâ
|
||
LD B,num_sym ; ç¨á«® ¢ë¢®¤¨¬ëå ᨬ¢®«®¢
|
||
LD C,#81 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; íªà ¢ë¢®¤¨âáï áâப ¨§ B ®¤¨ ª®¢ëå
|
||
; ᨬ¢®«®¢
|
||
; ॣ¨áâàë HL,IX - á®åà ïîâáï
|
||
;
|
||
|
||
LP_PRINT_SYM: ; ‚뢮¤ ᨬ¢®«®¢ íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¡¥§ âਡãâ
|
||
LD A,symbol ; ᨬ¢®«
|
||
LD B,num_sym ; ç¨á«® ¢ë¢®¤¨¬ëå ᨬ¢®«®¢
|
||
LD C,#82 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; íªà ¢ë¢®¤¨âáï áâப ¨§ B ®¤¨ ª®¢ëå ᨬ¢®«®¢
|
||
; âਡãâ ®áâ ¥âáï â®â, ª®â®àë© ¡ë« íªà ¥
|
||
; ॣ¨áâàë HL,IX - á®åà ïîâáï
|
||
;
|
||
|
||
LP_PRINT_ATR: ; ¯¥ç âì âਡã⮢
|
||
LD E,atribute ; âਡãâ
|
||
LD B,num_sym ; ç¨á«® ¢ë¢®¤¨¬ëå ᨬ¢®«®¢
|
||
LD C,#83 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; íªà ¢ë¢®¤¨âáï áâப ¨§ B ®¤¨ ª®¢ëå
|
||
; âਡã⮢. ‘¨¬¢®«ë ¥ ¬¥ïîâáï.
|
||
; ॣ¨áâàë HL,IX - á®åà ïîâáï
|
||
;
|
||
|
||
LP_SET_PLACE: ; “áâ ®¢ª ⥪ã饣® § ª®¬¥áâ ¢ ®ª¥
|
||
LD E,hor_place ; ®¬¥à ᨬ¢®« ¯® £®à¨§®â «¨
|
||
LD D,ver_place ; ®¬¥à ᨬ¢®« ¯® ¢¥à⨪ «¨
|
||
; ** <20>ॢë襨¥ £à ¨æ ¯à¨¢®¤¨â ¥ ª ®è¨¡ª¥, ª
|
||
; ¯¥à¥ãáâ ®¢ª¥ á ç « , § ¢ëç¥â®¬ ¯®«®£®
|
||
; à §¬¥à ®ª
|
||
LD C,#84 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¯®§¨æ¨ï ¯¥ç ⨠ãáâ ¢«¨¢ ¥âáï ¢ ᮮ⢥âá⨨ á
|
||
; ॣ¨áâ஬ DE
|
||
; ¯®àâïâáï ⮫쪮 «ìâ¥à â¨¢ë¥ à¥£¨áâàë ¨ â¥,
|
||
; çâ® ª ª ¯ à ¬¥âàë ¢å®¤¥
|
||
|
||
LP_PRINT_LINE: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD E,atribute ; âਡãâ, á ª®â®àë¬ ¡ã¤¥â ¢ë¢¥¤¥ áâப
|
||
LD B,num_sym ; ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#85 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; "¨á¯®«¥¨¥ ¦¥« ¨©"
|
||
;
|
||
|
||
LP_PRINT_LINE2: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¡¥§ âਡã⮢
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD B,num_sym ; ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#86 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; áâப ¡ã¤¥â ¢ë¢¥¤¥ ¡¥§ ¨§¬¥¥¨ï âਡã⮢ ¢
|
||
; ¬¥á⥠¯¥ç â¨
|
||
;
|
||
|
||
LP_PRINT_LINE3: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤«¨®© B íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¤® à §¤¥«¨â¥«ï D. <20>®á«¥ à §¤¥«¨â¥«ï
|
||
; ¢ë¢®¤ïâáï ¯à®¡¥«ë çâ® ¡ë ¢ë¢¥á⨠B ᨬ¢®«®¢.
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD E,atribute ; âਡãâ, á ª®â®àë¬ ¡ã¤¥â ¢ë¢¥¤¥ áâப
|
||
LD D,delimiter ; à §¤¥«¨â¥«ì
|
||
LD B,num_sym ; ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#87 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ᨬ¢®«ë ¨§ (HL) ¢ë¢®¤ïâáï íªà , ¯®ª ¥
|
||
; ¢áâà¥â¨âáï ᨬ¢®« à ¢ë© D, ¤ «¥¥ ¯¥ç â îâáï
|
||
; ¯à®¡¥«ë, ª ª ¤®¯®«¥¨¥ áâப¨ ¤® B ᨬ¢®«®¢
|
||
;
|
||
|
||
LP_PRINT_LINE4: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ ¤«¨®© B íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¤® à §¤¥«¨â¥«ï D. <20>®á«¥ à §¤¥«¨â¥«ï
|
||
; ¢ë¢®¤ïâáï ¯à®¡¥«ë çâ® ¡ë ¢ë¢¥á⨠B ᨬ¢®«®¢.
|
||
; <20>¥§ âਡã⮢.
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD D,delimiter ; à §¤¥«¨â¥«ì
|
||
LD B,num_sym ; ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#88 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ᨬ¢®«ë ¨§ (HL) ¢ë¢®¤ïâáï íªà , ¯®ª ¥
|
||
; ¢áâà¥â¨âáï ᨬ¢®« à ¢ë© D, ¤ «¥¥ ¯¥ç â îâáï
|
||
; ¯à®¡¥«ë, ª ª ¤®¯®«¥¨¥ áâப¨ ¤® B ᨬ¢®«®¢
|
||
; âਡãâë ¥ ¨§¬¥ïîâáï
|
||
;
|
||
|
||
LP_CLS_WIN: ; ®ç¨á⪠íªà
|
||
LD DE,place ; ¯®«®¦¥¨¥ «®ª «ì®£® ®ª (£«®¡ «ì®¥ = ⥪ã饥)
|
||
LD H,ver_size ; HL - à §¬¥à «®ª «ì®£® ®ª ¢¥à⨪ «ì/£®à¨§®â «ì
|
||
LD L,hor_size ; à §¬¥à ¢ ᨬ¢®« å
|
||
LD B,atribute ; âਡãâ ®ç¨á⪨
|
||
LD C,#89 ; ®¬¥à äãæ¨¨
|
||
RST ToBIOS ; ¢ë¯®«¥¨¥. <20>ந§¢®à¨âáï ¢ë¢®¤®¬ ¯à®¡¥«®¢ á
|
||
; § ¤ ë¬ âਡã⮬
|
||
;
|
||
|
||
LP_SCROLL_UD: ; ‘ªà®««¨£ ç á⨠£«®¡ «ì®£® ®ª ¢¢¥àå/¢¨§
|
||
LD B,scrollType; ⨯ áªà®««¨£ 1 - ¢¢¥àå/ 2 - ¢¨§
|
||
LD D,beg_line ; ç «ì ï áâப áªà®««¨£
|
||
LD E,num_lines ; ç¨á«® áªà®««¨à㥬ëå áâப
|
||
LD C,#8A ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¢ë¯®«¥¨¥. ‘ªà®««¨àãîâáï ¯®«ë¥ áâப¨
|
||
; £«®¡ «ì®£® ®ª
|
||
;
|
||
|
||
LP_PRINT_LINE5: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¤® à §¤¥«¨â¥«ï ¯®á«¥ à §¤¥«¨â¥«ï
|
||
; ¢ë¢®¤ ®áâ ¢«¨¢ ¥âáï
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD D,stop_symb ; ᨬ¢®« ª®æ áâப¨
|
||
LD E,atribute ; âਡãâ, á ª®â®àë¬ ¡ã¤¥â ¢ë¢¥¤¥ áâப
|
||
LD B,num_sym ; ¬ ªá¨¬ «ì ï ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#8B ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ᨬ¢®«ë ¨§ (HL) ¢ë¢®¤ïâáï íªà , ¯®ª ¥
|
||
; ¢áâà¥â¨âáï ᨬ¢®« à ¢ë© D ¨«¨ ª®«¨ç¥á⢮
|
||
; ᨬ¢®«®¢ ¥ ¯à¥¢ëᨫ® B. „ «¥¥ ¯à®¨á室¨â
|
||
; ¢®§¢à â
|
||
;
|
||
|
||
LP_PRINT_LINE6: ; ‚뢮¤ áâப¨ ᨬ¢®«®¢ íªà á ⥪ã饣®
|
||
; § ª®¬¥áâ ¤® à §¤¥«¨â¥«ï ¯®á«¥ à §¤¥«¨â¥«ï
|
||
; ¢ë¢®¤ ®áâ ¢«¨¢ ¥âáï, ¡¥§ âਡã⮢
|
||
LD HL,line_adr ; ¤à¥á áâப¨. „®«¦¥ ¡ëâì ¬¥¦¤ã #4000 ¨ #BFFF
|
||
LD D,stop_symb ; ᨬ¢®« ª®æ áâப¨
|
||
LD B,num_sym ; ¬ ªá¨¬ «ì ï ¤«¨ ¢ë¢®¤¨¬®© áâப¨
|
||
LD C,#8C ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ᨬ¢®«ë ¨§ (HL) ¢ë¢®¤ïâáï íªà , ¯®ª ¥
|
||
; ¢áâà¥â¨âáï ᨬ¢®« à ¢ë© D ¨«¨ ª®«¨ç¥á⢮
|
||
; ᨬ¢®«®¢ ¥ ¯à¥¢ëᨫ® B. „ «¥¥ ¯à®¨á室¨â
|
||
; ¢®§¢à â. €âਡãâë ¥ ¢ë¢®¤ïâáï
|
||
;
|
||
; HL -> ¤à¥á á«¥¤ãî騩 ¯®á«¥ ª®æ áâப¨
|
||
;
|
||
|
||
LP_CLS_WIN2: ; ®ç¨á⪠íªà , 㪠§ ¨¥¬ ᨬ¢®« § ¯®«¥¨ï
|
||
LD DE,place ; ¯®«®¦¥¨¥ «®ª «ì®£® ®ª (£«®¡ «ì®¥ = ⥪ã饥)
|
||
LD H,ver_size ; HL - à §¬¥à «®ª «ì®£® ®ª ¢¥à⨪ «ì/£®à¨§®â «ì
|
||
LD L,hor_size ; à §¬¥à ¢ ᨬ¢®« å
|
||
LD A,symbol ; ᨬ¢®« ®ç¨á⪨
|
||
LD B,atribute ; âਡãâ ®ç¨á⪨
|
||
LD C,#8D ; ®¬¥à äãæ¨¨
|
||
RST ToBIOS ; ‚믮«¥¨¥. <20>ந§¢®à¨âáï ¢ë¢®¤®¬ ¯à®¡¥«®¢ á
|
||
; § ¤ ë¬ âਡã⮬ ¨ ᨬ¢®«®¬
|
||
;
|
||
|
||
LP_GET_PLACE: ; ¯®«ãç¨âì ⥪ã饥 ¯®«®¦¥¨¥ ¢ë¢®¤ íªà
|
||
; ¢ £«®¡ «ì®¬ ®ª¥
|
||
LD C,#8E ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¢ ॣ¨áâà DE ¡ã¤ãâ ¯®«®¦¥ë ª®®à¤¨ âë,
|
||
; ¢ ª®â®àëå ¡ã¤¥â ¯¥ç â á«¥¤ãî騩 ᨬ¢®«
|
||
; D - ¢¥à⨪ «ì, E - £®à¨§®â «ì
|
||
;
|
||
|
||
LP_PR_LINE_DIR ; <20>¥ç âì "¢ ª®á®«ì" áâப¨ ¤® à §¤¥«¨â¥«ï á ¢â®áªà®««®¬
|
||
; ¨ á ãçñ⮬ ã¯à ¢«ïîé¨å ᨬ¢®«®¢: BELL, Backspace, TAB, CR, LF, FF, VT.
|
||
.spets EQU spets1*256 + spets2
|
||
LD A,attrib ; âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ CF'
|
||
SCF ; XY-mode
|
||
EX AF,AF'
|
||
SCF ; ¢ë¢®¤¨âì ᨬ¢®« á âਡãâ ¬¨
|
||
LD A,scroll ; ¥á«¨ !=0 â® ¡¥§ áªà®««
|
||
EX AF,AF'
|
||
LD HL,text ; áâப ¤«ï ¯¥ç â¨. ¤®«¦ 室¨âìáï ¢ ¡ ª å 1..2 ;!TODO ¥áâì ®£à ¨ç¥¨¥ ¡ ªã?
|
||
LD DE,place ; ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ CF=1
|
||
LD IY,.spets ; ¤¢ ᯥæ.ᨬ¢®« ¤«ï ¢ë室 á CF=1. „®«¦ë ¡ëâì à ¢ë B, ¥á«¨ ¥ ã¦ë
|
||
LD B,color ; 梥⠪®á®«¨ (¨á¯®«ì§ã¥âáï ¯à¨ áªà®««¥ ¨ ®ç¨á⪥ ®ª )
|
||
LD C,#E0 ; ®¬¥à äãæ¨¨
|
||
RST ToBIOS ; ‚믮«¥¨¥.
|
||
;..............................................................................
|
||
; ƒà ä¨ç¥áª¨¥ äãªæ¨¨
|
||
; ª®®à¤¨ âë áç¨â îâáï ®â ¢¥à奣® «¥¢®£® 㣫 íªà
|
||
;..............................................................................
|
||
|
||
|
||
PIC_POINT: ; ãáâ ®¢¨âì â®çªã
|
||
LD DE,Y_coord ; ª®®à¤¨ â ¯® ¢¥à⨪ «¨
|
||
LD HL,X_coord ; ª®®à¤¨ â ¯® £®à¨§®â «¨
|
||
LD A,(id_win) ; ¨¤¥â¨ä¨ª â®à £à ä. ®ª (¯®ª ¤®«¦¥ ¡ëâì 0)
|
||
LD B,color ; 梥â â®çª¨
|
||
LD C,#A1 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ¯®áâ ¢¨âì â®çªã
|
||
|
||
; ‚ ¤¥©á⢨⥫ì®á⨠áâ ¢¨âì â®çª¨ íªà ¥ á ¯®¬®éìî äãªæ¨¨ ¡¨®á ,
|
||
; ᫨誮¬ ¬¥¤«¥®. „«ï í⮣® «ãçè¥ ¯®«ì§®¢ âìáï ¯àï¬ë¬ ¢ë¢®¤®¬ ¤ ëå
|
||
; £à ä¨ç¥áª¨© íªà . “áâனá⢮ íªà ¨ á¯®á®¡ë ¯àאַ£® ¢ë¢®¤
|
||
; £à ä¨ç¥áª¨å ¤ ëå ®¯¨á ë ¢ ä ©«¥ àå¨â¥ªâãàë ‘¯à¨â¥à .
|
||
;
|
||
|
||
|
||
PIC_SET_PAL: ; ãáâ ®¢ª ¯ «¨âàë
|
||
LD HL,pal_data ; ¤ ë¥ ¯ «¨âàë:
|
||
; ᯨ᮪ 梥⮢ ¯® ç¥âëॠ¡ ©â B,G,R,Y
|
||
LD E,beg_color ; ç «ìë© æ¢¥â
|
||
LD D,num_colors; ª®«¨ç¥á⢮ ãáâ ¢«¨¢ ¥¬ëå æ¢¥â®¢
|
||
LD B,pal_mask ; ¬ ᪠¯à¨ ãáâ ®¢ª¥ ¯ «¨âàë. „«ï ®à¬ «ì®£®
|
||
; ०¨¬ ¤®«¦a ¡ëâì FF
|
||
LD A,page_pal ; ®¬¥à ¯ «¨âàë (0..15, 8..15 १¥à¢ë¥)
|
||
LD C,#A4 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ãáâ ®¢ª ¯ «¨âàë
|
||
; ¤ ë¥ ¯ «¨âàë ¤®«¦ë ¯à¥¤áâ ¢«ïâì ᮡ®© ᯨ᮪ ¯à¨¡«¨§¨â¥«ì® â ª®£® ¢¨¤ :
|
||
DB blue1,green1,red1,0
|
||
DB blue2,green2,red2,0
|
||
;.....................
|
||
DB blueN,greenN,redN,0
|
||
|
||
; N = num_colors. ‡ 票¥ num_colors à ¢®¥ 0 ᮮ⢥âáâ¢ã¥â 256-⨠梥⠬
|
||
; ¯à¨ § ¯¨á¨ ¢ ¢¨¤¥®-އ“ ¢á¥ ¤ ë¥ ¯à¥¤¢ à¨â¥«ì® ¯à®å®¤ïâ äãªæ¨î AND á®
|
||
; § 票¥¬ pal_mask
|
||
|
||
; ‘âà ¨æë ¯ «¨âàë 0..3 ᮮ⢥âáâ¢ãîâ £à ä¨ç¥áª¨¬ ०¨¬ ¬. „«ï ¢ë¢®¤ ¢
|
||
; ᮮ⢥âáâ¢ãî饩 ¯ «¨âॠ㦮 § ¤ âì ᮮ⢥âáâ¢ãî饥 § 票¥ bit7..6 ¢
|
||
; ¡ ©â¥ ०¨¬ § ª®¬¥áâ
|
||
|
||
; ‘âà ¨æë 4..7 ᮮ⢥âáâ¢ãîâ ⥪á⮢®¬ã ०¨¬ã ¨ ०¨¬ã "‘¯¥ªâàã¬"
|
||
; ‚ áâà ¨æ¥ 4 § ¤ ¥âáï æ¢¥â paper ¤«ï ª ¦¤®£® âਡãâ . ‚ áâà ¨æ¥ 5
|
||
; § ¤ ¥âáï æ¢¥â ink ¤«ï ª ¦¤®£® âਡãâ .
|
||
; ‚ áâà ¨æ¥ 6 § ¤ ¥âáï æ¢¥â paper, ª®â®àë¬ ® ¡ã¤¥â ¬®à£ âì ¢ ०¨¬¥ flash
|
||
; ‚ áâà ¨æ¥ 7 § ¤ ¥âáï æ¢¥â ink, ª®â®àë¬ ® ¡ã¤¥â ¬®à£ âì ¢ ०¨¬¥ flash
|
||
; ’ ª¨¬ ®¡à §®¬, ¤«ï ª ¦¤®£® ¨§ 256-⨠âਡã⮢ § ¤ ¥âáï ç¥âëॠ梥â
|
||
; ¥á«¨ 梥â 4,5 ᮢ¯ ¤ îâ á æ¢¥â ¬¨ 6,7 ⮠०¨¬ flash ®ª §ë¢ ¥âáï
|
||
; ®âª«îç¥ë¬. „«ï ¥£® ¢ª«îç¥¨ï ¢ ᯥªâà㬮¢áª®¬ ०¨¬¥ ¤® ¯®¬¥ïâì
|
||
; ¬¥áâ ¬¨ 梥â 6 ¨ 7. …᫨ ¤® ¢ª«îç¨âì flash ¢ ०¨¬ IBM-CGA, á«¥¤ã¥â
|
||
; ãáâ ®¢¨âì æ¢¥â 6 ¨ 7 ®¤¨ ª®¢ë¬¨ ¨ à ¢ë¬¨ 梥âã 4
|
||
; ¯® áã⨠०¨¬ flash ¢á¥£¤ ¢ª«îç¥ ¨ íªà ¥ ¯®áâ®ï® ¬¥ïîâáï æ¢¥â
|
||
; paper á 4-£® 6-©, 梥â ink á 5 7-©. …᫨ í⨠¯ àë æ¢¥â®¢ ¤«ï
|
||
; âਡãâ § ª®¬¥áâ ãáâ ¢«¨¢ îâáï ®¤¨ ª®¢ë¬¨, â® flash ¢ í⮬ ¬¥áâ¥
|
||
; ¥ ¢¨¤¥.
|
||
; ˆá¯®«ì§ãï ¯®¤®¡®¥ § ¤ ¨¥ 梥⮢ ⥪á⮢®£® ०¨¬ ¬®¦® «¥£ª® ¤®¡¨âìáï
|
||
; ᮢ¬¥á⨬®á⨠¯® 梥⠬ ª ª á® ‘¯¥ªâà㬮¬, â ª ¨ á IBM
|
||
;
|
||
|
||
;[x] ®¢®¥?
|
||
PIC_GET_PAL: ; ¯®«ã票¥ ãáâ ®¢«¥®© ¯ «¨âàë
|
||
LD HL,pal_data ; ¡ãä¥à ¤«ï ¯ «¨âàë:
|
||
; ᯨ᮪ 梥⮢ ¯® ç¥âëॠ¡ ©â B,G,R,Y
|
||
LD E,beg_color ; ç «ìë© æ¢¥â
|
||
LD D,num_colors; ª®«¨ç¥á⢮ 梥⮢
|
||
LD A,page_pal ; #80 + ®¬¥à ¯ «¨âàë (0..15, 8..15 १¥à¢ë¥)
|
||
LD C,#A4 ; ®¬¥à äãªæ¨¨ (â ª®© ¦¥ ª ª ¨ ¤«ï PIC_SET_PAL)
|
||
RST ToBIOS ; ¯®«ã票¥ ¯ «¨âàë
|
||
;
|
||
|
||
SET_PAL_INIT: ; ãáâ ®¢ª ¢ãâ॥© ¯ «¨âàë.
|
||
LD A,PAL_PAGE ; áâà ¨æ ¯ «¨âàë (¤«ï £à ä¨ç¥áª®©)
|
||
LD E,PAL_N ; ®¬¥à ¯ «¨âàë (¤«ï £à ä¨ç¥áª®©)
|
||
LD B,type ; 3 - ãáâ ®¢ª CGA ¯ «¨âàë
|
||
; 2 - ãáâ ®¢ª ᯥªâà㬮¢áª®© ¯ «¨âàë
|
||
; 1 - ãáâ ®¢ª £à ä¨ç¥áª®© ¯ «¨âàë
|
||
LD C,#A6 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; ãáâ ®¢ª ¯ «¨âàë
|
||
;==============================================================================
|
||
|
||
; ”ãªæ¨¨ à ¡®âë á ¢¨ç¥áâ¥à®¬ à §¤¥«ïîâáï ¤¢¥ £à㯯ë:
|
||
; 1. äãªæ¨¨ á ®¬eà ¬¨ #4x à ¡®â îâ ¢ ¡®«¥¥ ¯à®á⮬ ०¨¬¥ ¨
|
||
; ¨á¯®«ì§ãîâáï ¢ TR-DOS. <20>⨠äãªæ¨¨ 室ïâ ⮫쪮 ®¤¨
|
||
; ¢¨ç¥áâ¥à ¨ à ¡®â îâ ⮫쪮 á ¥£® ¯¥à¢ë¬ à §¤¥«®¬. …᫨ ¥áâì
|
||
; master, â® äãªæ¨¨ ¨á¯®«ì§ãîâ ¥£®, ¥á«¨ master- ¥â, â®
|
||
; ®¯à¥¤¥«ï¥âáï slave, ¥á«¨ ¥â ¨ ⮣® ¨ ¤à㣮£®, ¢ë¤ ¥âáï ®è¨¡ª .
|
||
; ”ãªæ¨î ¯®¤£®â®¢ª¨ #43 ¥ âॡã¥âáï ¨á¯®«ïâì ¯¥à¥¤
|
||
; ®¯¥à æ¨ï¬¨ #44, #45 ¨ #46!
|
||
; <20>ਠ¨á¯®«¥¨¨ äãªæ¨¨ 43h ¯à®¨§¢®¤¨âáï ¢áï ¯®¤£®â®¢ª ª
|
||
; ®¯¥à æ¨ï¬ ç⥨ï/§ ¯¨á¨ ¢ëç¨á«¥¨¥ 樫¨¤à®¢/£®«®¢®ª/ᥪâ®à®¢ ¨
|
||
; § ¥á¥¨¥ ¨å ¢ ॣ¨áâàë ¢¨ç¥áâ¥à ¤ «¥¥ ¯à®£à ¬¬ ¬®¦¥â á ¬
|
||
; ⮫쪮 ¯®¤ âì ª®¬ ¤ã ç¨â âì/¯¨á âì ¨ á ¬®áâ®ïâ¥«ì® ¯à®¨§¢®¤¨âì
|
||
; áç¨âë¢ ¨¥/§ ¯¨áì ¤ ëå ¢ ¢¨ç¥áâ¥à. Š®¬ ¤ 㤮¡ ¤«ï à ¡®âë
|
||
; ¯à®£à ¬¬ ¢ ॠ«ì®¬ ¢à¥¬¥¨, ª®£¤ ¥®¡å®¤¨¬® ªà®¬¥
|
||
; ç⥨ï/§ ¯¨á¨ ¤ ëå ¯à®¨§¢®¤¨âì ª ª¨¥ «¨¡® ¨ë¥ ¤¥©á⢨ï.
|
||
; ‘âà ¨æ ¡ãä¥à ¤«ï äãªæ¨© #44..#46 ¨¬¥¥â § 票¥ ⮫쪮 ¯à¨
|
||
; ¯®¯ ¤ ¨¨ ¤à¥á®¢ ç⥨ï/§ ¯¨á¨ ¢ ¤¨ ¯ §® #C000..#FFFF. Šà®¬¥
|
||
; ⮣®, ¯à¨ ¯®¯ ¤ ¨¨ ¬¥¦á¥ªâ®à®£® ¯à®¬¥¦ã⪠¤à¥á 0 ¯à¨
|
||
; «¨ç¨¨ ¥áç¨â ëå/¥§ ¯¨á ëå ᥪâ®à®¢, ¯à®¨§¢®¤¨âáï
|
||
; ¢â®¬ â¨ç¥áª®¥ ¯¥à¥ª«î票¥ áâà ¨æë އ“ ¯® RAM Allocation Table
|
||
; ¨ ¯à®¤®«¦¥¨¥ ç⥨ï/§ ¯¨á¨ á ¤à¥á #C000, çâ® ¯®§¢®«ï¥â
|
||
; ¥¯à¥à뢮 ¯¨á âì/ç¨â âì ¤® 128kb ¯àאַ ¢ ¢ë¤¥«¥ë© ¡«®ª އ“.
|
||
|
||
; 2. ”ãªæ¨¨ á ®¬¥à ¬¨ #5x ¡®«¥¥ á«®¦ë, ¨á¯®«ì§ãîâáï ¢ Estex ¨
|
||
; à ¡®â îâ á ®¡®¨¬¨ ¢¨ç¥áâ¥à ¬¨, á® ¢á¥¬¨ à §¤¥« ¬¨, â ª ¦¥ á
|
||
; ¤¨áª®¢®¤ ¬¨, RAM-Disk- ¬¨ ¨ CD-ROM- ¬¨.
|
||
; ‚ íâ¨å äãªæ¨ïå ¢ ॣ¨áâॠA ®¡ëç® § ¤ ¥âáï ®¬¥à ¨ ⨯
|
||
; ãáâனá⢠:
|
||
; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனá⢠:
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
; ®áâ «ìë¥ ®¬¥à १¥à¢ë¥
|
||
; € â ª ¦¥ § ¤ îâáï áâà è ï ç áâì ®¬¥à ᥪâ®à ¢ ॣ¨á⥠HL,
|
||
; ¬« ¤è ï ç áâì ®¬¥à ᥪâ®à ¢ ॣ¨áâॠIX. Ž¡à â¨âì ¢¨¬ ¨¥,
|
||
; ¤à㣮© ¯®à冷ª à ᯮ«®¦¥¨ï ¡á®«î⮣® ®¬¥à ᥪâ®à ¢
|
||
; ॣ¨áâà å HL ¨ IX ¯® áà ¢¥¨î á äãæ¨ï¬¨ #4x!
|
||
|
||
;==============================================================================
|
||
; 6. <20> ¡®â á ¢¨ç¥áâ¥à®¬ ¨ ¤¨áª ¬¨ MS-DOS. ”ãªæ¨¨ 4x
|
||
;==============================================================================
|
||
|
||
; [x] 27/01/2024 ¤ ¯â¨à®¢ ¤«ï ª®à४⮩ à ¡®âë á FN_HDD_PART
|
||
HDD_INIT: ; ¨¨æ¨ «¨§ æ¨ï ¢¨ç¥áâ¥à . <20>®àâ¨â § 票¥ PORT_Y
|
||
LD C,#40 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ¢¨ç¥áâ¥à ¥ ©¤¥
|
||
;
|
||
|
||
; !FIXIT ¯®ª à ¡®â ¥â ⮫쪮 á ®¤¨¬ ª «®¬ (¯®-áâ ஬ã)
|
||
HDD_RECAL: ; ४ «¨¡à®¢ª ¢¨ç¥áâ¥à
|
||
LD C,#41 ; ®¬¥à äãªæ¨¨
|
||
; * ”ãªæ¨ï § १¥à¢¨à®¢ ¤«ï ¤ «ì¥©è¥£® ¨á¯®«ì§®¢ ¨ï ; !TODO
|
||
;
|
||
; [x] 28/01/2024 à ¡®â ¥â á® ¢á¥¬¨ ª « ¬¨ IDE ¨ Master/Slave
|
||
HDD_TEST_IDE: ; ’¥áâ «¨ç¨ï ¨â¥à䥩á IDE
|
||
LD C,#42 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; NC -> ®à¬ «ì¨¥ § ¢¥à襨¥
|
||
; ¢ ॣ¨áâॠB ¨ä®à¬ æ¨ï ® «¨ç¨¨ ãáâனáâ¢
|
||
; bit0=1 - ¥áâì ãáâனá⢮ "Primary master"
|
||
; bit1=1 - ¥áâì ãáâனá⢮ "Primary slave"
|
||
; bit2=1 - ¥áâì ãáâனá⢮ "Secondary slave"
|
||
; bit3=1 - ¥áâì ãáâனá⢮ "Secondary slave"
|
||
; CF -> ®è¨¡ª , ¯¯ à â ï ¥¨á¯à ¢®áâì
|
||
;
|
||
|
||
HDD_PREPARE: ; ¯®¤£®â®¢ª ¢¨ç¥áâ¥à ª ®¯¥à 樨 ç⥨ï/§ ¯¨á¨
|
||
LD A,bufer_page; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||
LD IX,sec_high ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||
LD DE,sec_low ; ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
||
LD HL,bufer_adr; ¤à¥á ¡ãä¥à ¤ ëå
|
||
LD B,sec_num ; ç¨á«® ᥪâ®à®¢
|
||
LD C,#43 ; ®¬¥à äãªæ¨¨
|
||
RST ToBIOS ; <20>ਠ¨á¯®«¥¨¨ ¯à®¨§¢®¤¨âáï ¢áï ¯®¤£®â®¢ª ª
|
||
; ®¯¥à æ¨ï¬ ç⥨ï/§ ¯¨á¨ ¢ëç¨á«¥¨¥
|
||
; 樫¨¤à®¢/£®«®¢®ª/ᥪâ®à®¢ ¨ § ¥á¥¨¥ ¨å ¢ ॣ¨áâàë ¢¨ç¥áâ¥à
|
||
; ¤ «¥¥ ¯à®£à ¬¬ ¬®¦¥â á ¬ ⮫쪮 ¯®¤ âì ª®¬ ¤ã ç¨â âì/¯¨á âì ¨
|
||
; á ¬®áâ®ïâ¥«ì® ¯à®¨§¢®¤¨âì áç¨âë¢ ¨¥/§ ¯¨áì ¤ ëå ¢ ¢¨ç¥áâ¥à.
|
||
; Š®¬ ¤ 㤮¡ ¤«ï à ¡®âë ¯à®£à ¬¬ ¢ ॠ«ì®¬ ¢à¥¬¥¨, ª®£¤ ¥®¡å®¤¨¬®
|
||
; ªà®¬¥ ç⥨ï/§ ¯¨á¨ ¤ ëå ¯à®¨§¢®¤¨âì ª ª¨¥ «¨¡® ¨ë¥ ¤¥©á⢨ï.
|
||
; <20> ¢ë室¥ ¢ ®ª¥ 3 á⮨â áâà ¨æ ¨§ A ¥á«¨ H >= #‘0.
|
||
; Žáâ ñâáï ⮫쪮 ç âì ç¨â âì á ¯®à⮢ HDD
|
||
;
|
||
|
||
; [x] 27/01/2024 ⥯¥àì à ¡®â ¥â á «î¡ë¬ à §¤¥«®¬ HDD
|
||
HDD_READ_BPB: ; ç¨â âì BPB. <20>®àâ¨â § 票¥ PORT_Y
|
||
LD C,#44 ; ®¬¥à äãªæ¨¨
|
||
LD HL,bufer_adr; ¤à¥á ¡ãä¥à ¤«ï BPB
|
||
LD A,bufer_page; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª
|
||
;
|
||
|
||
HDD_READ: ; ç¨â âì ᥪâ®à á ¢¨ç¥áâ¥à . <20>®àâ¨â § 票¥ PORT_Y
|
||
LD A,bufer_page; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||
; ¢ A ¬®¦¥â ¡ëâì BlockID, ⮣¤ ¡ã¤¥â ç¨â âìáï ¤ «¥¥
|
||
; ¢ á«¥¤ãî騥 áâà ¨æë á ¤à¥á #C000
|
||
LD IX,sec_high ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||
LD DE,sec_low ; ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
||
LD HL,bufer_adr; ¤à¥á ¡ãä¥à ¤ ëå
|
||
LD B,sec_num ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
||
LD C,#45 ; ®¬¥à ª®¬ ¤ë
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª
|
||
|
||
; ** <20>ਠ¯®¯ ¤ ¨¨ ¬¥¦á¥ªâ®à®£® ¯à®¬¥¦ã⪠¤à¥á 0
|
||
; ¯à®¨§¢®¤¨âáï ¢â®¬ â¨ç¥áª®¥ ¯¥à¥ª«î票¥ áâà ¨æë އ“ ¯®
|
||
; RAM Allocation Table.
|
||
;
|
||
|
||
HDD_WRITE: ; ¯¨á âì ᥪâ®à ¢¨ç¥áâ¥à
|
||
LD A,bufer_page; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||
LD HL,bufer_adr; ¤à¥á ¡ãä¥à ¤ ëå
|
||
LD B,sec_num ; ç¨á«® § ¯¨áë¢ ¥¬ëå ᥪâ®à®¢
|
||
LD DE,sec_low ; ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
||
LD IX,sec_high ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||
LD C,#46 ; ®¬¥à ª®¬ ¤ë
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª
|
||
|
||
; ** <20>ਠ¯®¯ ¤ ¨¨ ¬¥¦á¥ªâ®à®£® ¯à®¬¥¦ã⪠¤à¥á 0
|
||
; ¯à®¨§¢®¤¨âáï ¢â®¬ â¨ç¥áª®¥ ¯¥à¥ª«î票¥ áâà ¨æë އ“ ¯® RAM
|
||
; Allocation Table.
|
||
;
|
||
|
||
; !FIXIT ¨á¯®«ì§®¢ âì ¢ HDD_TO_DRV
|
||
; [x] 07/01/2024
|
||
HDD_PART: ; áâனª ª « IDE, master/slave, à §¤¥« HDD. <20>®àâ¨â § 票¥ PORT_Y
|
||
LD A,hdd_part ; bit0 - master/slave, bit1: Primary/Secondary, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
||
LD C,#47
|
||
RST ToBIOS
|
||
;
|
||
|
||
HDD_READ_NEXT: ; —¨â âì á«¥¤ãî騩 ᥪâ®à (⮫쪮 LBA!). <20>®àâ¨â § 票¥ PORT_Y
|
||
LD A,bufer_page; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||
LD B,sec_num ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
||
LD HL,bufer_adr; ¤à¥á ¡ãä¥à ¤ ëå
|
||
LD DE,add_par ; ¯à¨¡ ¢«ï¥âáï ª ®¬¥à㠯।ë¤ã饣® ¯à®ç¨â ®£® ᥪâ®à
|
||
LD C,#48 ; ®¬¥à ª®¬ ¤ë
|
||
RST ToBIOS ; NC -> ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF -> ®è¨¡ª
|
||
;
|
||
;==============================================================================
|
||
; 7. <20> ¡®â á ¢¨ç¥áâ¥à®¬ ¨ ¤¨áª ¬¨ MS-DOS. ”ãªæ¨¨ 5x
|
||
;==============================================================================
|
||
|
||
; !TODO
|
||
LD C,#50 ; § १¥à¢¨à®¢
|
||
;
|
||
|
||
DRV_RESET: ; ‘¡à®á ª®â஫«¥à ¨ áâனª ¤¨áª
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
; ®áâ «ìë¥ ®¬¥à १¥à¢ë¥
|
||
LD C,#51 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ¥â ¤¨áª ¨«¨ ¥â ãáâனáâ¢
|
||
;
|
||
|
||
DRV_READ_LONG: ; ç⥨¥ á ãáâனáâ¢ á ¯¥à¥ª«î票¥¬ áâà ¨æ. €¤à¥á çâ¥¨ï ¤®«¦¥ ¡ëâì ¢ë஢¥ ¯® à §¬¥àã ᥪâ®à
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
EX AF,AF' ;
|
||
LD A,Mem_BLK ; áâà ¨æ , ªã¤ ç¨â âì ¥á«¨ ¡ãä¥à ¢ SLOT3
|
||
EX AF,AF' ;
|
||
LD HL,sec_h ; áâ àè ï ç áâì ®¬¥à ᥪâ®à
|
||
LD IX,sec_l ; ¬« ¤è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD B,n_sec ; ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||
LD DE,bufer_adr; ¤à¥á ¡ãä¥à ¤«ï ç⥨ï
|
||
LD C,#52 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥:
|
||
; A' - ¯®á«¥¤ïï áâà ¨æ à ¬¡«®ª ¢ ª®â®àãî ç¨â «¨ ;!FIXIT ¯®ª ⮫쪮 ¤«ï ATA ¨ ATAPI
|
||
; CF - ®è¨¡ª çâ¥¨ï ¨«¨ ¥â ãáâனáâ¢
|
||
;
|
||
|
||
; !TODO à ᯨá âì
|
||
DRV_WRITE_LONG: ; § ¯¨á ¢ ãáâனá⢮ á ¯¥à¥ª«î票¥¬ áâà ¨æ. €¤à¥á § ¯¨á¨ ¤®«¦¥ ¡ëâì ¢ë஢¥ ¯® à §¬¥àã ᥪâ®à
|
||
LD C,#53 ; Long write
|
||
;
|
||
|
||
DRV_VERIFY: ; ¯à®¢¥àª ᥪâ®à®¢
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk ; !FIXIT
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD HL,sec_h ; áâà è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD IX,sec_l ; ¬« ¤è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD B,n_sec ; ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||
LD C,#54 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ¯à®¢¥àª á ®è¨¡ª®© ¨«¨ ¥â ãáâனáâ¢
|
||
;
|
||
|
||
DRV_READ: ; ç⥨¥ á ãáâனáâ¢
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD HL,sec_h ; áâ àè ï ç áâì ®¬¥à ᥪâ®à
|
||
LD IX,sec_l ; ¬« ¤è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD B,n_sec ; ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||
LD DE,bufer_adr; ¤à¥á ¡ãä¥à ¤«ï ç⥨ï
|
||
LD C,#55 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ®è¨¡ª çâ¥¨ï ¨«¨ ¥â ãáâனáâ¢
|
||
;
|
||
|
||
DRV_WRITE: ; § ¯¨áì ãáâனáâ¢
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD HL,sec_h ; áâà è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD IX,sec_l ; ¬« ¤è ï ç áâì ®¬¥à ᥪâ®à
|
||
LD B,n_sec ; ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||
LD DE,bufer_adr; ¤à¥á ¡ãä¥à ¤«ï § ¯¨á¨
|
||
LD C,#56 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; CF - ®è¨¡ª § ¯¨á¨ ¨«¨ ¥â ãáâனáâ¢
|
||
;
|
||
|
||
DRV_DETECT: ; ®¯à¥¤¥«¥¨¥ ¯ à ¬¥â஢ ãáâனáâ¢
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD C,#57 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; A - ¤«ï FDD bit7: 720/1.44
|
||
; ¤«ï HDD ¨ CD: drive type
|
||
; B - ¤«ï HDD ¨ CD:
|
||
; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved ; [ ]
|
||
; CF - ¥â ãáâனá⢠¨«¨ ¥â ®á¨â¥«ï
|
||
;
|
||
|
||
DRV_GET_PAR: ; ¯®«ãç¨âì ¯ à ¬¥âàë ®á¨â¥«ï
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD C,#58 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; [ ] A - HDD_INIT_TABLE.RemovableMedia
|
||
; L - ç¨á«® ᥪâ®à®¢ ( 楫¨¤à) ; [ ] ¤«ï ATAPI HL:DE - à §¬¥à ®á¨â¥«ï ¢ ᥪâ®à å
|
||
; H - ç¨á«® £®«®¢®ª
|
||
; DE - ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||
; IX - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||
; B - ¤®¯. ¯ à ¬¥âàë:
|
||
; FDD: ¡¨â7 - ⨯ 720/1.44
|
||
; IDE: ¡¨â0 - ª « IDE 0/1
|
||
; ¡¨â6 - CHS/LBA
|
||
; RMD: ramdrive block id ; [x]
|
||
;
|
||
; ATAPI: CF' = 1, A' = ®¬¥à ®è¨¡ª¨
|
||
;
|
||
; ¥á«¨ ¢ HL,DE ¢á¥ FF - ãáâனá⢠¥â
|
||
; CF - ¥â ãáâனáâ¢
|
||
;
|
||
|
||
DRV_SET_PAR: ; ãáâ ®¢¨âì ¯ à ¬¥âàë ®á¨â¥«ï
|
||
LD A,drv_type ; ¡¨â 0..3 - ®¬¥à ãáâனáâ¢
|
||
; ¡¨â 4..7 - ⨯ ãáâனáâ¢
|
||
; 0 - ¤¨áª®¢®¤
|
||
; 6 - ram-disk
|
||
; 8 - HDD
|
||
; C - CD-ROM
|
||
LD L,n_secs ; L - ç¨á«® ᥪâ®à®¢ ( 楫¨¤à)
|
||
LD H,n_heads ; H - ç¨á«® £®«®¢®ª
|
||
LD DE,n_cyls ; DE - ª®«¨ç¥á⢮ 樫¨¤à®¢
|
||
LD IX,sec_size ; IX - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||
LD B,ext_par ; B - ¤®¯. ¯ à ¬¥âàë
|
||
; ¤«ï ¤¨áª¥â ¡¨â7 - ⨯ 720/1.44
|
||
; ¤«ï ATAPI ⮫쪮 ¯ à ¬¥âà B à ¡®â ¥â - ãáâ ®¢¨âì HDD_INIT_TABLE.MediaParameters ; [ ] media changed
|
||
LD C,#59 ;
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
;
|
||
|
||
DRV_VERSION: ; ¯®«ãç¨âì ¢¥àá¨î ¤à ©¢¥à ¤¨áª®¢®© ¯®¤á¨á⥬ë
|
||
LD C,#5A ;
|
||
RST ToBIOS ; CF - áâ à ï ¢¥àá¨ï BIOS
|
||
; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; DE - ®¬¥à ¢¥àᨨ.
|
||
;
|
||
|
||
; !TODO
|
||
LD C,#5B ; § १¥à¢¨à®¢
|
||
;
|
||
|
||
; !TODO
|
||
LD C,#5C ; § १¥à¢¨à®¢
|
||
;
|
||
|
||
; !TODO
|
||
LD C,#5D ; § १¥à¢¨à®¢
|
||
;
|
||
|
||
DRV_EXTENDED: ; à áè¨à¥ë© ¡®à ¯®¤äãªæ¨©, ¬®¦¥â ®â«¨ç âìáï ¤«ï à §ëå ãáâனáâ¢
|
||
LD B,sub_func ; ®¬¥à ¯®¤äãªæ¨¨
|
||
LD C,#5E ; § १¥à¢¨à®¢
|
||
RST ToBIOS ; NC - ®à¬ «ì®¥ § ¢¥à襨¥
|
||
; <20>®¤äãªæ¨¨:
|
||
; „«ï CD-ROM:
|
||
; 0 - Eject
|
||
; 1 - Close tray
|
||
; 2 - ATAPI_REQUEST_SENSE.
|
||
; ¢å®¤: A' - áâà ¨æ ¡ãä¥à , ¥á«¨ ¡ãä¥à ¢ âà¥â쥬 á«®â¥
|
||
|
||
DRV_LIST: ; !TODO ¤®¡ ¢¨âì ®¯¨á ¨¥ ¨ ¯®¤¤¥à¦ªã RAM DRIVE ¢ í⮩ äãªæ¨¨
|
||
LD C,#5F ;
|
||
RST ToBIOS ;
|
||
;
|
||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ; |