Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
DEVICE ZXSPECTRUM128
include "../_sdk/sys_h.asm"
;COMMANDLINE EQU #80
org PROGSTART
cmd_begin
ld hl,COMMANDLINE
call skipword
call skipspaces
ld (par1addr),hl
ld de,FILE_NAME
call getname
inc hl
ld (hl),0
; ld a,0
; ld (de),a
; jr $
ld de,FILE_NAME
OS_CREATEHANDLE
or a
jp nz,ERR_EXIT ;╨╛╨▒╤А╨░╨▒╨╛╤В╨║╨░ ╨╛╤И╨╕╨▒╨╛╨║
ld a,b
ld (handle),a ;╤Б╨╛╤Е╤А╨░╨╜╤П╨╡╨╝ ╨┤╨╡╤Б╨║╤А╨╕╨┐╤В╨╛╤А
;╨Ч╨░╨┐╨╛╨╗╨╜╤П╤О ╨┐╤Г╤Б╤В╨╛╤В╨╛╨╣ ╨▓╨╜╤Г╤В╤А╨╡╨╜╨╜╨╕╨╣ ╨╝╨╕╤А ╤Д╨░╨╣╨╗╨░
ld b,160
t1: push bc
ld a,(handle)
ld b,a
ld de,Empt
ld hl,4096
OS_WRITEHANDLE
or a
jp nz,ERR_EXIT ;╨╛╨▒╤А╨░╨▒╨╛╤В╨║╨░ ╨╛╤И╨╕╨▒╨╛╨║
pop bc
djnz t1
;╨Ш╤Й╤Г ╨▓ ╨╜╨╡╨╝ ╤Б╨▓╨╛╤С ╨╝╨╡╤Б╤В╨╛
ld a, (handle)
ld b,a
ld de,#0000
ld hl,#0800
OS_SEEKHANDLE
;╨╕ ╨╖╨░╨┐╨╛╨╗╨╜╤П╤О ╨╡╨│╨╛ ╤Б╨╝╤Л╤Б╨╗╨╛╨╝
ld a,(handle)
ld b,a
ld de, SYSTEM_TRACK
ld hl,BUF_SIZE
OS_WRITEHANDLE
or a
jp nz,ERR_EXIT ;╨╛╨▒╤А╨░╨▒╨╛╤В╨║╨░ ╨╛╤И╨╕╨▒╨╛╨║
CLOSE_ERR_EXIT
ld a,(handle)
ld b,a
OS_CLOSEHANDLE
ERR_EXIT
QUIT
skipword
;hl=string
;out: hl=terminator/space addr
getword0
ld a,(hl)
or a
ret z
cp 0x20
ret z
inc hl
jr getword0
skipspaces
;hl=string
;out: hl=after last space
ld a,(hl)
cp ' '
ret nz
inc hl
jr skipspaces
getname:
ld a,(hl)
cp 0
ret z
cp ' '
ret z
ld (de),a
inc hl
inc de
jr getname
handle:
DEFB 0
;╨Э╤Г ╨┐╤А╨╛╤Й╨╡ ╤П ╨╜╨╡ ╨┐╤А╨╕╨┤╤Г╨╝╨░╨╗ :-(
;╨Я╤А╨╕╨┤╤Г╨╝╨░╤О ╨┐╨╡╤А╨╡╨┤╨╡╨╗╨░╤О.
Empt:
DEFS 16*256
SYSTEM_TRACK:;╤Б╨╕╤Б╤В╨╡╨╝╨╜╨░╤П ╨┤╨╛╤А╨╛╨╢╨║╨░
BUFF_ADDR:
DEFB 0
DCU_SEC:
DEFS 224
FR_SEC_NEXT:;╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╕╨╣ ╤Б╨▓╨╛╨▒╨╛╨┤╨╜╤Л╨╣ ╤Б╨╡╨║╤В╨╛╤А
DEFB 0
FR_TRK_NEXT:;╤Б╨╗╨╡╨┤╤Г╤О╤Й╨░╤П ╤Б╨▓╨╛╨▒╨╛╨┤╨╜╨░╤П ╨┤╨╛╤А╨╛╨╢╨║╨░
DEFB 1
TYPE_DISC:; ╤В╨╕╨┐ ╨┤╨╕╤Б╨║╨░
DEFB #10
N_FILES:; ╨║╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛ ╤Д╨░╨╣╨╗╨╛╨▓ ╨╜╨░ ╨┤╨╕╤Б╨║╨╡
DEFB 0
; ╨║╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛ ╤Б╨▓╨╛╨▒╨╛╨┤╨╜╤Л╤Е ╤Б╨╡╨║╤В╨╛╤А╨╛╨▓ ╨╜╨░ ╨┤╨╕╤Б╨║╨╡
;(╤Н╤В╨╛ ╨╝╨░╨║╤Б╨╕╨╝╨░╨╗╤М╨╜╨╛╨╡ ╨║╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛, ╨▒╤Г╨┤╨╡╨╝ ╨╕╨╖ ╨╜╨╡╨│╨╛ ╨▓╤Л╤З╨╕╤В╨░╤В╤М)
N_FREE_SEC:
DEFW #09F0
MAIN_BYTE:
DEFB #10
ZERO:
DEFB 0,0
BLANK9:
DEFB #20,#20,#20,#20,#20,#20,#20,#20,#20,0; ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╕╨╣ ╨╜╨╛╨╗╤М ╨╜╤Г╨╢╨╡╨╜!
N_DEL_FILES:
DEFB 0
;╨╖╨░╨│╨╛╨╗╨╛╨▓╨╛╨║ ╨┤╨╕╤Б╨║╨░
DISC_TITLE:
DEFB "RESULT",0,0
ZERO_N:
DEFS 3
BUF_SIZE EQU $-SYSTEM_TRACK
FILE_NAME:
DEFB "dist.trd"
END: DEFB 0
DEFB 0
par1addr:
DEFB 0
par2addr:
DEFB 0
cmd_end
;display "Size ",/d,cmd_end-cmd_begin," bytes"
savebin "mktrd.com",cmd_begin,cmd_end-cmd_begin
LABELSLIST "../../us/user.l"