Rev 917 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
;╨Ч╨░╨│╤А╤Г╨╖╨║╨░/╨╖╨░╨┐╨╕╤Б╤М ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╤П ╨╕╨│╤А╤Л
;╨Ч╨░╨│╤А╤Г╨╖╨║╨░ ╨╛╤В╨╗╨╛╨╢╨╡╨╜╨╜╨╛╨│╨╛ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╤П
LOAD ;-> GAME
if 1==1
ld a,PG_MAP
call setpg
ld de,savefn
OS_OPENHANDLE
push bc
ld de,0xc000;VIDEOS ;0x9000 ╤Б╨╡╨╣╤З╨░╤Б ╨╛╨▒╨╝╨╡╨╜╤П╨╜╨╛
LD hl,0x3000
OS_READHANDLE
pop bc ;b=handle
push bc
ld de,VARS
LD hl,0x600
OS_READHANDLE
pop bc ;b=handle
OS_CLOSEHANDLE
LD HL,MUSNUM
DEC (HL) ;???
else ;TR-DOS
;╨Ш╤Й╨╡╨╝ ╤Д╨░╨╣╨╗
CALL FILE
LD C,#18
CALL TRDOS
JP NZ,ERROR
LD C,10
CALL TRDOS
LD A,C
INC C
JP Z,ERROR ;╨Э╨╡╤В ╤Д╨░╨╣╨╗╨░
;╨Т╤Л╤Б╤З╨╕╤В╤Л╨▓╨░╨╡╨╝ ╨░╨┤╤А╨╡╤Б ╤Д╨░╨╣╨╗╨░ (╤Б╨╡╨║╤В╨╛╤А,╨┤╨╛╤А╨╛╨╢╨║╨░)
LD C,8
CALL TRDOS
LD A,(#5CDD+13)
CP 57 ;╤А╨░╨╖╨╝╨╡╤А ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╤П ╨▓ ╤Б╨╡╨║╤В╨╛╤А╨░╤Е
JP NZ,ERROR
LD DE,(#5CDD+14)
;╨б╤З╨╕╤В╤Л╨▓╨░╨╡╨╝ ╨║╨░╤А╤В╤Г ╨╕ ╨╝╨░╤Б╤Б╨╕╨▓
LD HL,VIDEOS
LD BC,#3005
CALL TRDOS
JP NZ,ERROR ;╨╛╤И╨╕╨▒╨║╨░
;╨б╤З╨╕╤В╤Л╨▓╨░╨╡╨╝ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡
LD DE,(#5CF4)
LD HL,VARS
LD BC,#0605
CALL TRDOS
JP NZ,ERROR ;╨╛╤И╨╕╨▒╨║╨░
;╨б╤З╨╕╤В╤Л╨▓╨░╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В ╨┤╨╜╤П/╨╜╨╛╤З╨╕
; LD A,PG_VIEW
CALL PAGE_PG_VIEW
LD DE,(#5CF4)
LD HL,NG
LD BC,#0305
CALL TRDOS
JP NZ,ERROR ;╨╛╤И╨╕╨▒╨║╨░
ld a,(...)
ld (daynightphase),a
endif
xor a
ld (DAY_NGT),a ;╨╛╨▒╨╜╨╛╨▓╨╕╤В╤М ╤Б╨┐╤А╨░╨╣╤В ╨┤╨╜╤П ╨╕ ╨╜╨╛╤З╨╕ ╤Б╤А╨░╨╖╤Г
JP GAME
;╨б╨╛╤Е╤А╨░╨╜╨╡╨╜╨╕╨╡ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╤П
SAVE
if 1==1
ld a,PG_MAP
call setpg
ld de,savefn
OS_CREATEHANDLE
push bc
ld de,0xc000;VIDEOS ;0x9000 ╤Б╨╡╨╣╤З╨░╤Б ╨╛╨▒╨╝╨╡╨╜╤П╨╜╨╛
LD hl,0x3000
OS_WRITEHANDLE
pop bc ;b=handle
push bc
ld de,VARS
LD hl,0x600
OS_WRITEHANDLE
pop bc ;b=handle
OS_CLOSEHANDLE
else ;TR-DOS
;╨Ш╤Й╨╡╨╝ ╤Д╨░╨╣╨╗
LD A,PG_MAP
CALL PAGE
CALL FILE
LD C,#18
CALL TRDOS
JP NZ,ERROR2
LD C,10
CALL TRDOS
LD A,C
INC C
JR Z,NOFILE
;╨Т╤Л╤Б╤З╨╕╤В╤Л╨▓╨░╨╡╨╝ ╨░╨┤╤А╨╡╤Б ╤Д╨░╨╣╨╗╨░ (╤Б╨╡╨║╤В╨╛╤А,╨┤╨╛╤А╨╛╨╢╨║╨░)
LD C,8
CALL TRDOS
LD A,(#5CDD+13)
CP 57 ;╤А╨░╨╖╨╝╨╡╤А ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╤П ╨▓ ╤Б╨╡╨║╤В╨╛╤А╨░╤Е
JP NZ,ERROR2
LD DE,(#5CDD+14)
;╨Ч╨░╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ ╨║╨░╤А╤В╤Г ╨╕ ╨╝╨░╤Б╤Б╨╕╨▓
LD HL,MAP
LD BC,#3006
CALL TRDOS
JP NZ,ERROR2 ;╨╛╤И╨╕╨▒╨║╨░
;╨Ч╨░╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡
LD DE,(#5CF4)
SAVE2 LD HL,VARS
LD BC,#0606
CALL TRDOS
JP NZ,ERROR2 ;╨╛╤И╨╕╨▒╨║╨░
;╨Ч╨░╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В ╨┤╨╜╤П/╨╜╨╛╤З╨╕
; LD A,PG_VIEW
CALL PAGE_PG_VIEW
LD DE,(#5CF4)
LD HL,NG
LD BC,#0306
CALL TRDOS
JP NZ,ERROR2 ;╨╛╤И╨╕╨▒╨║╨░
endif
JP SAVE_OK
if 1==0
;╨з╨╕╤В╨░╨╡╨╝ ╤Б╨╕╤Б╤В╨╡╨╝╨╜╤Л╨╣ ╤Б╨╡╨║╤В╨╛╤А
NOFILE LD DE,#0008
LD HL,CAT
LD BC,#0105
CALL TRDOS
JP NZ,ERROR2 ;╨╛╤И╨╕╨▒╨║╨░
LD A,(CAT+228) ;╨║╨╛╨╗-╨▓╨╛ ╤Д╨░╨╣╨╗╨╛╨▓
CP 128
JP NC,ERROR2
LD HL,(CAT+229);╨║╨╛╨╗-╨▓╨╛ ╤Б╨▓╨╛╨▒. ╤Б╨╡╨║╤В╨╛╤А╨╛╨▓
LD DE,57
AND A
SBC HL,DE
JP C,ERROR2
;╨Ч╨░╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ ╨║╨░╤А╤В╤Г ╨╕ ╨╝╨░╤Б╤Б╨╕╨▓+╨╝╤Г╤Б╨╛╤А
LD HL,MAP
LD DE,#3900
LD C,#0B
CALL TRDOS
JP NZ,ERROR2 ;╨╛╤И╨╕╨▒╨║╨░
;╨г╨▓╨╡╨╗╨╕╤З╨╕╨▓╨░╨╡╨╝ ╨░╨┤╤А╨╡╤Б ╨╜╨░ ╨┤╨╕╤Б╨║╨╡ ╨▓╨┐╨╡╤А╨╡╨┤ ╨╜╨░ 48 ╤Б╨╡╨║╤В╨╛╤А╨╛╨▓ (3 ╤В╤А╨╡╨║╨░)
LD DE,(CAT+225)
INC D,D,D
JR SAVE2
FILE LD HL,FILENAM
LD DE,#5CDD
LD BC,9
LDIR
RET
TRDOS EX AF,AF' ;'
XOR A
LD (23823),A ;╨Ю╨▒╨╜╤Г╨╗╤П╨╡╨╝ ╨║╨╛╨┤
LD (23824),A ;╨╛╤И╨╕╨▒╨║╨╕ TR-DOS
LD (23570),A ;╨С╨╗╨╛╨║╨╕╤А╤Г╨╡╨╝ ╨┐╨╛╤В╨╛╨║
EX AF,AF' ;'
PUSH HL
LD HL,(23613)
LD (DOS_ERR+1),HL
LD HL,DOS_ERR ;╨г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝
EX (SP),HL ;╤Б╨▓╨╛╨╣ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║
LD (23613),SP
JP #3D13
DOS_ERR LD HL,0
LD (23613),HL
LD A,6 ;╨Т╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝
LD (23570),A ;╨┐╨╛╤В╨╛╨║
LD A,(23838)
LD B,A
LD A,(23823) ;╨Я╤А╨╛╨▓╨╡╤А╤П╨╡╨╝
AND A ;╨▒╤Л╨╗╨░ ╨╗╨╕ ╨╛╤И╨╕╨▒╨║╨░
RET Z
CP B
RET Z
INC A
RET Z
ERR LD B,10
LD A,2
OUT (254),A
HALT
DJNZ $-1
XOR A
OUT (254),A
RET
FILENAM DB "VERASAVEC" ;TODO HDD
CAT
endif