#include "d3m.hsp"
osname="OS_H"
osver="0.1.0"
year=gettime(0)
month=gettime(1)
day=gettime(3)
hour=gettime(4)
mimute=gettime(5)
second=gettime(6)
milliseconds=gettime(7)
gettimenow=d3timer()
cdir="A:\\"
screen 0,640,480,0,(ginfo_dispx-640)/2,(ginfo_dispy-480)/2
*start
cls 4
color 0,255,0
gosub *setupos
//-----------------------------
stop
*setupos
mes
mes osname+" "+osver+" start"
mes "-----------------------"
mes
mes " Press F3 to start COMMAND"
onkey gosub*setupkey
stop
*setupkey
onkey 0
if wparam=114 { goto*cmdline }
onkey 1
return
*exitsetupos
color 128,128,128
boxf ginfo_sx*1/7, ginfo_sy*1/7, ginfo_sx*6/7, ginfo_sy*6/7
color 0,0,0
pos ginfo_sx*1/7, ginfo_sy*1/7
mes "Exiting Setup"
mes
mes osname+" "+osver+" is not completely installed. If you exit"
mes "Setup now, you will need to run the Setup program"
mes "again."
mes
mes " ・ To exit, make sure Setup Disk 1 is in drive A."
mes " and then press F3."
mes
mes " ・ To return to the previous screen, press ESC."
onkey gosub*exitsetupkey
stop
*exitsetupkey
onkey 0
if wparam=114 { goto*cmdline }
if wparam=27 { goto*start }
onkey 1
return
*hintsetupos
color 128,128,128
boxf ginfo_sx*1/7, ginfo_sy*1/7, ginfo_sx*6/7, ginfo_sy*6/7
color 0,0,0
pos ginfo_sx*1/7, ginfo_sy*1/7
mes "Hint Setup"
onkey gosub*hintsetupkey
stop
*hintsetupkey
onkey 0
if wparam=112 { goto*start }
onkey 1
return
//----------------------------------------------------------------------
*cmdline
cls 4
sdim cmand
onkey gosub*cmdin
repeat
redraw 0
color 255,255,255
repeat 1,nexts
pos 0,18*cnt
mes cdir+">"+cmand
loop
redraw 1
if checkend=1{
nexts+1
sdim cmand
checkend=0
}
await 0
loop
*cmdin
onkey 0
if wparam='A' { cmand+"A" }
if wparam='B' { cmand+"B" }
if wparam='C' { cmand+"C" }
if wparam='D' { cmand+"D" }
if wparam='E' { cmand+"E" }
if wparam='F' { cmand+"F" }
if wparam='G' { cmand+"G" }
if wparam='H' { cmand+"H" }
if wparam='I' { cmand+"I" }
if wparam='J' { cmand+"J" }
if wparam='K' { cmand+"K" }
if wparam='L' { cmand+"L" }
if wparam='M' { cmand+"M" }
if wparam='N' { cmand+"N" }
if wparam='O' { cmand+"O" }
if wparam='P' { cmand+"P" }
if wparam='Q' { cmand+"Q" }
if wparam='R' { cmand+"R" }
if wparam='S' { cmand+"S" }
if wparam='T' { cmand+"T" }
if wparam='U' { cmand+"U" }
if wparam='V' { cmand+"V" }
if wparam='W' { cmand+"W" }
if wparam='X' { cmand+"X" }
if wparam='Y' { cmand+"Y" }
if wparam='Z' { cmand+"Z" }
if wparam=' ' { cmand+" " }
if iparam='\\' { cmand+"\\" }
if iparam=':' { cmand+":" }
if iparam='/' { cmand+"/" }
if wparam=13 { gosub*checkcmd}
onkey 1
return
*checkcmd
checkend=1
nexts+1
//break ディスク書き込みの中断の可不可
if strmid(cmand,0,5)="BREAK"{cok=1
//
}
//cd カレントディレクトリの変更
if strmid(cmand,0,2)="CD"{cok=1
if instr(cmand,3,":\\")!-1{
cdir=strmid(cmand,3,100)
cmand="変更後のカレントディレクトリ "+cdir
}else{
cok=2
}
}
//CHKDSK ディスクの状況
if strmid(cmand,0,6)="CHKDSK"{cok=1
if instr(cmand,7,"/F")!-1{
//ディスクの修復
}
if instr(cmand,7,"/V")!-1{
//ディスクの検査
}
}
//cls コマンドラインのリセット
if strmid(cmand,0,3)="CLS"{
nexts=0
checkend=0
goto*cmdline
}
//copy aをbにコピー
if strmid(cmand,0,4)="COPY"{cok=1
//
}
//Cvt fat16をfat32に書き換え
if strmid(cmand,0,3)="CVT"{cok=1
//
}
//date 日付の表示
if strmid(cmand,0,4)="DATE"{cok=1
cmand=""+year+"-"+month+"-"+day
}
//debug デバッグ
if strmid(cmand,0,6)="DEBUG"{cok=1
//
}
//exit 終了
if strmid(cmand,0,4)="EXIT"{cok=1
nexts=0
cok=0
checkend=0
goto *start
}
//fdisk
if strmid(cmand,0,5)="FDISK"{
sdim cmand
nexts=0
checkend=0
goto*fixdisksetup
}
//unknown
if cok=0{cmand="このコマンドは有効ではありません : "+cmand}
if cok=2{cmand="コマンド記述が間違っています : "+cmand}
cok=0
return
//----------------------------------------------------------------------
*fixdisksetup
cls 4
color 255,255,255
mes "FDISK Options"
mes
mes "Chooce one of the following:"
mes
mes "1. Create DOS partition or Logical DOS Drive"
mes "2. Set active partition"
mes "3. Delete partition or Logical DOS Drive"
mes "4. Display partition information"
mes
mes "Press Esc to exit FDISK"
onkey gosub*fixdisksetupkey
stop
*fixdisksetupkey
onkey 0
if wparam='1' { goto*cmdline }
if wparam='2' { goto*cmdline }
if wparam='3' { goto*cmdline }
if wparam='4' { goto*cmdline }
if wparam=27 { goto*cmdline }
onkey 1
return
形だけ作ってみたけど確かにosもどき作るの楽しいな…
隗より始めよ、自分はこれ作ろうかな