diff --git a/2DSTUDIO.ASM b/2DSTUDIO.ASM index 9d928bf..7e91ab0 100644 --- a/2DSTUDIO.ASM +++ b/2DSTUDIO.ASM @@ -1,40 +1,64 @@ ;ORG_ ORG #8100 INTA: EQU #80 MSH: EQU 19 -IPOINT: EQU 8 +;IPOINT: EQU 8 ;DOSPAGE EQU #00 -WINPAGE: EQU #08 ;#20 -DIRPAGE: EQU #09 ;#21 +; WINPAGE: EQU #08 ;#20 +; DIRPAGE: EQU #09 ;#21 ;[BEGIN] ; ; 2DSTUDIO.EXE ; - ORG #8100-512 + ORG #8100-23 ; INCLUDE "dos_equ.asm" INCLUDE "SYS_EQU.ASM" - DB "EXE" ;EXE ID +EXE_HEADER: DB "EXE" ;EXE ID DB #00 ;EXE VERSION - DW #0200 ;CODE OFFSET LOW + DW EXE_HEADER.Size ;CODE OFFSET LOW DW #0000 ;CODE OFFSET HIGH DW #0000 ;END-BEG ;PRIMARY LOADER DW #0000 ; DW #0000 ;RESERVED DW #0000 ; - DW BEGIN ;LOAD ADDRESS + DW _DATA_ ;LOAD ADDRESS DW BEGIN ;START ADDRESS - DW #8000 ;STACK ADDRESS - DS 490 + DW STACK_POINT ;STACK ADDRESS + DB 0 +.Size EQU $ - EXE_HEADER + ;DS 490-1 + + +_DATA_: BLOCK 128 +STACK_POINT EQU $+1 + + +WINPAGE: DB #FF +DIRPAGE: DB #FF BEGIN: DI - JP START_2DS - JP IKEYBOARD + ;JP START_2DS + ;JP IKEYBOARD -START_2DS: LD (_SP+1),SP - LD SP,#80F0 +START_2DS: ;LD (_SP+1),SP + ;LD SP,#80F0 PUSH IX + ; + LD BC,1*256 + #3D ; getmem + RST #10 + JR NC,.ok_1 + ; +.exit: LD BC,#1E*256 + #41 ; Exit - недостаточно памяти + RST #10 + ; +.ok_1: LD (WINPAGE),A + LD BC,1*256 + #3D ; getmem + RST #10 + JR C,.exit + LD (DIRPAGE),A + ; POP HL INC HL INC HL @@ -65,8 +89,7 @@ GETFNAME: JR NC,CONT_2DS XOR A LD (LOADING),A -CONT_2DS: - LD C,#51 +CONT_2DS: LD C,#51 RST #10 LD (CURRMODE),A LD A,#81 @@ -82,40 +105,35 @@ CONT_2DS: LD C,PAGE0 IN B,(C) - PUSH BC + ;PUSH BC LD A,B LD (DOSPAGE),A - LD A,WINPAGE + LD A,(WINPAGE) + DI OUT (C),A LD HL,WN_FACE - LD DE,#100 + LD DE,0 LD BC,WN_FACE.Size LDIR - POP BC - OUT (PAGE0),A - + ;POP BC + ;LD A,B + ;OUT (PAGE0),A CALL GO -; LD A,DOSPAGE -; OUT (PAGE0),A - -; LD A,2 -; LD C,0 -; RST #18 - - LD A,WINPAGE + ; + LD A,(WINPAGE) OUT (PAGE0),A LD C,#93 LD A,#0E - CALL IPOINT ;CLEAR + RST 8 ;CLEAR LD BC,#0592 LD A,#0E - CALL IPOINT ;GET MEMORY + RST 8 ;GET MEMORY LD BC,#0094 LD HL,PIXPAGE SLEPAGE: LD A,#0E PUSH HL PUSH BC - CALL IPOINT ;GET PAGES + RST 8 ;GET PAGES POP BC POP HL LD (HL),A @@ -128,17 +146,17 @@ SLEPAGE: LD A,#0E ; LD HL,#4000 ; LD BC,#0880 ; LD E,1 -; CALL IPOINT +; RST 8 LD HL,PALCOL ;SET DESKTOP PALETTE LD DE,#12EE ;& CURSOR COLORS LD BC,#FFA4 ;#EE,#EF XOR A - CALL IPOINT + RST 8 LD HL,PALCOL ;SET DESKTOP PALETTE LD DE,#12EE ;& CURSOR COLORS LD BC,#FFA4 ;#EE,#EF LD A,1 - CALL IPOINT + RST 8 POP DE POP HL @@ -175,20 +193,13 @@ SLEPAGE: LD A,#0E ; OUT (PAGE3),A LD A,0 OUT (Y_PORT),A -EXIT: ;LD BC,#0080 -; LD E,0 -; CALL #3D13 - DI -; LD IY,#5C3A +EXIT: DI LD A,(DOSPAGE) OUT (PAGE0),A -;_SP LD SP,#0000 EI - LD A,(CLEARRAM) OR A JR NZ,NOCLEAR0 - ;GET ID 1-ST RAMDISK LD A,#0D ;RAM DISK NUMBER LD C,#CE ;GET RAM DISK'S ID @@ -202,7 +213,6 @@ EXIT: ;LD BC,#0080 LD C,#CA ;FREE DRIVE LD A,#0D RST #08 - SKK1: ;GET ID 2-ND RAMDISK LD A,#0E ;RAM DISK NUMBER @@ -218,9 +228,7 @@ SKK1: LD A,#0E RST #08 - SKK2: - NOCLEAR0: LD C,2 RST #30 @@ -233,13 +241,16 @@ NOCLEAR0: LD C,#5C RST #10 - DI -_SP: LD SP,#0000 - EI - LD B,0 - LD C,#41 +; DI +; _SP: LD SP,#0000 +; EI + LD BC,#41 RST #10 - RET + ;RET + + + + PALCOL: ; B G R DB #00,#00,#00,#00 ;CURSOR @@ -264,8 +275,8 @@ PALCOL: ; B G R INCLUDE "GRAFOPEN.ASM" -IKEYBOARD: - RET +;IKEYBOARD: +; RET DO_LOADING: XOR A @@ -409,7 +420,7 @@ OPEN2DS: LD HL,SPRITE_ LD DE,#12EE ;& CURSOR COLORS LD BC,#FFA4 ;#EE,#EF LD A,1 - CALL IPOINT + RST 8 LD HL,PALCOL ;SET DESKTOP PALETTE LD DE,#EE*4+NEWPAL LD BC,#12*4 @@ -1165,7 +1176,7 @@ PB1: CALL PUSHBUT LD DE,#12EE ;& CURSOR COLORS LD BC,#FFA4 ;#EE,#EF LD A,1 - CALL IPOINT + RST 8 LD HL,PALCOL ;SET DESKTOP PALETTE LD DE,#EE*4+NEWPAL LD BC,#12*4 @@ -2086,7 +2097,7 @@ PRMBUFF: DB 0 WN_FACE: MODULE _INTERFACE_ - DISP #100 + DISP 0 INCLUDE "interface/face.asm" ;INCLUDE "interface/face_alt.asm" ENT diff --git a/2DS_DISK.ASM b/2DS_DISK.ASM index 748179d..b9b4129 100644 --- a/2DS_DISK.ASM +++ b/2DS_DISK.ASM @@ -118,7 +118,7 @@ ADI LD BC,#0020 GETH IN A,(#E2) PUSH AF - LD A,DIRPAGE + LD A,(DIRPAGE) OUT (#E2),A GETH1 LD A,(HL) OR A @@ -639,22 +639,22 @@ AREApix EQU #C000 CONVERT DI LD C,#93 LD A,#0E - CALL IPOINT ;CLEAR "S" + RST 8 ;CLEAR "S" ; LD C,#93 ; LD A,#0D -; CALL IPOINT ;CLEAR "R" +; RST 8 ;CLEAR "R" ;; LD BC,#0592 ;; LD A,#0E -;; CALL IPOINT ;CREATE "S" +;; RST 8 ;CREATE "S" ; LD BC,#0592 ; LD A,#0D -; CALL IPOINT ;CREATE "R" +; RST 8 ;CREATE "R" LD BC,#0094 LD HL,FLEPAGE SL2PAGE LD A,#0D PUSH HL PUSH BC - CALL IPOINT ;GET PAGES + RST 8 ;GET PAGES POP BC POP HL LD (HL),A @@ -667,13 +667,13 @@ SL2PAGE LD A,#0D JP NZ,SL2PAGE EDP001 LD C,#92 LD A,#0E - CALL IPOINT ;CREATE "S" + RST 8 ;CREATE "S" LD BC,#0094 LD HL,PIXPAGE SL3PAGE LD A,#0E PUSH HL PUSH BC - CALL IPOINT ;GET PAGES + RST 8 ;GET PAGES POP BC POP HL LD (HL),A @@ -689,7 +689,7 @@ EDP002 CALL TURNBMP LD DE,#0000 ;! EE (00) AMOUNT COLORS LD BC,#FFA4 LD A,1 ;PALETTE FOR MODE 8(!) - CALL IPOINT ;SET PALETTE + RST 8 ;SET PALETTE EI AND A RET @@ -1142,13 +1142,13 @@ ROVNO2 POP BC MAKEBMP DI ; LD C,#93 ; LD A,#0E -; CALL IPOINT ;CLEAR "S" +; RST 8 ;CLEAR "S" LD C,#93 LD A,#0D - CALL IPOINT ;CLEAR "R" + RST 8 ;CLEAR "R" ; LD BC,#0592 ; LD A,#0E -; CALL IPOINT ;CREATE "S" +; RST 8 ;CREATE "S" LD HL,(FLSIZE) LD (SIZE0),HL @@ -1158,14 +1158,14 @@ MAKEBMP DI ; LD BC,#0592 ; LD A,#0D -; CALL IPOINT ;CREATE "R" +; RST 8 ;CREATE "R" LD BC,#0094 LD HL,PIXPAGE SLXPAGE LD A,#0E PUSH HL PUSH BC - CALL IPOINT ;GET PAGES + RST 8 ;GET PAGES POP BC POP HL LD (HL),A @@ -1179,7 +1179,7 @@ SLXPAGE LD A,#0E SX2PAGE LD A,#0D PUSH HL PUSH BC - CALL IPOINT ;GET PAGES + RST 8 ;GET PAGES POP BC POP HL LD (HL),A diff --git a/GRAFOPEN.ASM b/GRAFOPEN.ASM index 357bcbc..0aaeb15 100644 --- a/GRAFOPEN.ASM +++ b/GRAFOPEN.ASM @@ -1,60 +1,64 @@ -APOINT EQU 8 ;#3D13 -GO DI - LD IX,TAB00 - LD HL,#0000 - LD E,1 - LD C,#B0 - CALL APOINT - LD IX,TAB01 - LD HL,#0703 - LD E,1 - LD C,#B0 - CALL APOINT - LD IX,TAB02 - LD HL,#0826 - LD E,1 - LD C,#B0 - CALL APOINT - LD IX,TAB03 - LD HL,#0000 - LD E,1 - LD C,#B0 - CALL APOINT - LD IX,TAB04 - LD HL,#0000 - LD E,1 - LD C,#B0 - CALL APOINT - RET +;APOINT: EQU 8 ;#3D13 +GO: ;DI + LD IX,TAB00 + LD HL,#0000 + LD E,1 + LD C,#B0 + RST 8 + ; + LD IX,TAB01 + LD HL,#0703 + LD E,1 + LD C,#B0 + RST 8 + ; + LD IX,TAB02 + LD HL,#0826 + LD E,1 + LD C,#B0 + RST 8 + ; + LD IX,TAB03 + LD HL,#0000 + LD E,1 + LD C,#B0 + RST 8 + ; + LD IX,TAB04 + LD HL,#0000 + LD E,1 + LD C,#B0 + RST 8 + RET -TAB00 DEFB 40,32,#00,#00,#20,#00,#08,#00 -TAB01 DEFB 33,23,#03,#07,#60,#00,#0B,#07 -TAB02 DEFB 01,21,038,#08,#60,#00,046,#08 +TAB00: DEFB 40,32,#00,#00,#20,#00,#08,#00 +TAB01: DEFB 33,23,#03,#07,#60,#00,#0B,#07 +TAB02: DEFB 01,21,038,#08,#60,#00,046,#08 -TAB03 DEFB 08,02,028,#04,#60,#00,#24,#04 -TAB04 DEFB 02,02,037,#04,#60,#00,#2D,#04 +TAB03: DEFB 08,02,028,#04,#60,#00,#24,#04 +TAB04: DEFB 02,02,037,#04,#60,#00,#2D,#04 -NORTAB DEFB 12,23,#0F,#07,#20,#00,#17,#07 -SECTAB DEFB 12,23,#0F,#07,#60,#00,#17,#07 +NORTAB: DEFB 12,23,#0F,#07,#20,#00,#17,#07 +SECTAB: DEFB 12,23,#0F,#07,#60,#00,#17,#07 -SETNWIN DI - LD IX,NORTAB - LD HL,#0F07 - LD E,1 - LD C,#B0 - CALL IPOINT - EI - RET +SETNWIN: DI + LD IX,NORTAB + LD HL,#0F07 + LD E,1 + LD C,#B0 + RST 8 + EI + RET -SETAWIN DI - LD IX,SECTAB - LD HL,#0F07 - LD E,1 - LD C,#B0 - CALL IPOINT - EI - RET +SETAWIN: DI + LD IX,SECTAB + LD HL,#0F07 + LD E,1 + LD C,#B0 + RST 8 + EI + RET diff --git a/INTERFACE/FACE.ASM b/INTERFACE/FACE.ASM index 1994948..09d0da8 100644 --- a/INTERFACE/FACE.ASM +++ b/INTERFACE/FACE.ASM @@ -1,30 +1,48 @@ -;ORG_ ORG #0000 -; DISP #0000 INTA EQU #80 -; ROM__ -; A0000 JP NULL_0 -; DB #FF,#FF,#FF,#FF,#FF -; A0008 PUSH AF ;INT BIOS -; LD A,#00 -; OUT (#7C),A -; POP AF -; RET -; RET -; A0010 JP NULL_0 ;INT DOS -; DB #FF,#FF,#FF,#FF,#FF -; A0018 JP NULL_0 ;INT DISK -; DB #FF,#FF,#FF,#FF,#FF -; A0020 JP RST_20 ; -; DB #FF,#FF,#FF,#FF,#FF -; A0028 JP NULL_0 ; -; DB #FF,#FF,#FF,#FF,#FF -; A0030 JP NULL_0 ;INT MOUSE -; DB #FF,#FF,#FF,#FF,#FF -; A0038 JP RST_38 ;INTERRUPT -; -; BLOCK #100-$,#FF + +; ORG 0 + JP NULL_0 + + ;INT BIOS + BLOCK 8-$,#FF + PUSH AF + LD A,#00 + OUT (#7C),A + POP AF + RET + + + ;INT DOS + BLOCK #10-$,#FF + JP NULL_0 + + + ;INT DISK + BLOCK #18-$,#FF + JP NULL_0 + + + BLOCK #20-$,#FF + JP RST_20 + + + BLOCK #28-$,#FF + JP NULL_0 + + + ;INT MOUSE + BLOCK #30-$,#FF + JP NULL_0 + + + ;INTERRUPT + BLOCK #38-$,#FF +A0038 JP RST_38 + + + BLOCK #100-$,#FF JP INIT JP DLGinit JP GETPARM @@ -367,8 +385,4 @@ ADRST20; DB I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256 DB I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256,I500/256 DS #F0 - -; ENT -_______ - - +; \ No newline at end of file diff --git a/WINDOS2.ASM b/WINDOS2.ASM index 9e065f2..0334066 100644 --- a/WINDOS2.ASM +++ b/WINDOS2.ASM @@ -50,7 +50,7 @@ RDOS: DI PUSH DE PUSH HL - LD A,WINPAGE + LD A,(WINPAGE) OUT (PAGE0),A POP HL @@ -359,7 +359,7 @@ GET_DIR: CALL SDOS IN A,(#E2) PUSH AF - LD A,DIRPAGE + LD A,(DIRPAGE) OUT (#E2),A LD HL,#C000 LD DE,#C001