Login

Subversion Repositories NedoOS

Rev

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"