bug fixes

This commit is contained in:
Tolik 2025-07-11 01:54:35 +10:00
parent 2db8eaa037
commit 29d51ab763
5 changed files with 183 additions and 154 deletions

View File

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

View File

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

View File

@ -1,58 +1,62 @@
APOINT EQU 8 ;#3D13
GO DI
;APOINT: EQU 8 ;#3D13
GO: ;DI
LD IX,TAB00
LD HL,#0000
LD E,1
LD C,#B0
CALL APOINT
RST 8
;
LD IX,TAB01
LD HL,#0703
LD E,1
LD C,#B0
CALL APOINT
RST 8
;
LD IX,TAB02
LD HL,#0826
LD E,1
LD C,#B0
CALL APOINT
RST 8
;
LD IX,TAB03
LD HL,#0000
LD E,1
LD C,#B0
CALL APOINT
RST 8
;
LD IX,TAB04
LD HL,#0000
LD E,1
LD C,#B0
CALL APOINT
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
SETNWIN: DI
LD IX,NORTAB
LD HL,#0F07
LD E,1
LD C,#B0
CALL IPOINT
RST 8
EI
RET
SETAWIN DI
SETAWIN: DI
LD IX,SECTAB
LD HL,#0F07
LD E,1
LD C,#B0
CALL IPOINT
RST 8
EI
RET

View File

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

View File

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