Team Ai
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes847downloads
OSInstall.txt221 linesDownload Raw Back to Misc
1 2U0 InstallDrv(U8 drv_let)3{4  U8 *st;5  ExePrint("CopyTree(\"::/\",\"%C:/\");",drv_let);6  ExePrint("DirMk(\"%C:/Tmp\");",drv_let);7  ExePrint("DirMk(\"%C:/Tmp/ScrnShots\");",drv_let);8  ExePrint("DirMk(\"%C:/Home\");",drv_let);9 10  st=MStrPrint("%C:/Home/DoDistro.HC.Z",drv_let);11  if (!FileFind(st))12    Copy("::/Misc/DoDistro.HC.Z",st);13  Free(st);14 15  st=MStrPrint("%C:/Home/MakeHome.HC.Z",drv_let);16  if (!FileFind(st))17    Copy("::/MakeHome.HC.Z",st);18  Free(st);19}20 21Bool VMPrtDsk(CTask *task,CATARep *ata_drv)22{23  if (ata_drv) {24    XTalkWait(task,"DskPrt(,0.5,0.5);\nC\np%d\nY",ata_drv->num);25    return TRUE;26  } else27    return FALSE;28}29 30U0 VMInstallDrv(CTask *task,U8 drv_let,31        CATARep *ata_drv,CATARep *atapi_drv)32{33  InstallDrv(drv_let);34  XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n",drv_let);35  if (ata_drv)36    XTalkWait(task,"C\np%d\n",ata_drv->num);37  if (atapi_drv)38    XTalkWait(task,"Tp%d\n",atapi_drv->num);39  XTalkWait(task,"\n\n\n"); //Exit Drives,Dsk Cache,Options40}41 42U0 VMInstallWiz()43{44  CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL;45  CTask *task;46  "\nIt's normal for this to freeze for a moment or two.\n";47  PressAKey;48 49  task=User;50  TaskWait(task);51  task->border_src=BDS_CONST;52  task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;53  task->text_attr  =LTGRAY<<4+BLUE;54  task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;55  WinHorz(Fs->win_left,Fs->win_right,task);56  WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);57  WinVert(task->win_bottom+3,Fs->win_bottom);58  WinToTop(Fs);59 60  ATARep(FALSE,TRUE,&head);61  ATAIDDrvs(head,&ata_drv,&atapi_drv);62  if (VMPrtDsk(task,ata_drv)) {63    VMInstallDrv(task,'C',ata_drv,atapi_drv);64    VMInstallDrv(task,'D',ata_drv,atapi_drv);65    BootMHDIns('C');66  }67  LinkedLstDel(head);68  WinVert(task->win_top,Fs->win_bottom);69  Kill(task);70}71 72U0 RegularInstallWiz()73{74  I64 unit,drv_let;75  U8 *st,*base0,*base1;76  CATARep *head=NULL,*tmpha;77  I64 ch,num_hints;78  CTask *task;79 80  "\nIt's normal for this to freeze for a moment or two.\n";81  PressAKey;82 83  task=User;84  TaskWait(task);85  task->border_src=BDS_CONST;86  task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;87  task->text_attr  =LTGRAY<<4+BLUE;88  task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;89  WinHorz(Fs->win_left,Fs->win_right,task);90  WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);91  WinVert(task->win_bottom+3,Fs->win_bottom);92  WinToTop(Fs);93  XTalk(task,"Mount;\nC\np");94 95  num_hints=ATARep(FALSE,,&head);96  "\nInclude '$PURPLE$0x$FG$' for hexidecimal numbers.\n\n";97  while (TRUE) {98    base0=GetStr("Hard Drive I/O Port Base0  : ");99    if (0<Str2I64(base0)<=0xFFFF)100      break;101    Free(base0);102  }103  if (1<=Str2I64(base0)<=num_hints) {104    tmpha=ATARepFind(&head,Str2I64(base0));105    Free(base0);106    base0=MStrPrint("0x%X",tmpha->base0);107    base1=MStrPrint("0x%X",tmpha->base1);108    st   =MStrPrint("0x%X",tmpha->unit);109    unit=Str2I64(st);110    Free(st);111  } else {112    while (TRUE) {113      base1=GetStr("Hard Drive I/O Port Base1  : ");114      if (0<Str2I64(base1)<=0xFFFF)115        break;116      Free(base1);117    }118    do {119      st =GetStr("Unit--$PURPLE$0$FG$=Master or $PURPLE$1$FG$=Slave: ","0");120      unit=Str2I64(st);121      Free(st);122    } while (!(0<=unit<=1));123  }124  LinkedLstDel(head);125  XTalkWait(task,"%s\n%s\n%C\n",base0,base1,'0'+unit);126  DrvRep;127  do {128    st=GetStr("\nDestination Partition Letter: ");129    if (*st)130      drv_let=Let2Let(*st);131    else132      drv_let=0;133    Free(st);134  } while (!('A'<=drv_let<='Z'));135  '\n';136 137  "$RED$Format %C Partition?$FG$\n",drv_let;138  if (YorN) {139    '\n';140    do {141      "$PURPLE$1$FG$) Use FAT32\n"142            "$PURPLE$2$FG$) Use RedSea\n"143            "\nFile System Type: ";144      ch=GetChar;145      '\n';146    } while (!('1'<=ch<='2'));147    if (ch=='1')148      Fmt(drv_let,,FALSE,FSt_FAT32);149    else150      Fmt(drv_let,,FALSE,FSt_REDSEA);151  }152  InstallDrv(drv_let);153  XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n"154        "C\ns%s\n%s\n%C\n\n\n", //Exit Drives,Dsk Cache,Options155        drv_let,base0,base1,'0'+unit);156  "$RED$Install Master Boot loader?$FG$";157  if (YorN) {158    '\n';159    BootMHDIns(drv_let);160  }161  Free(base0);162  Free(base1);163 164  WinVert(task->win_top,Fs->win_bottom);165  Kill(task);166}167 168U0 DoInstructions()169{170  CTask *task;171  AutoComplete;172  task=Fs->next_task;173  while (task!=Fs) {174    if (task!=adam_task && task!=sys_winmgr_task && task!=ac.task) {175      XTalk(task,"Ed(\"::/Doc/Install.DD.Z\");\n");176      break;177    }178    task=task->next_task;179  }180}181 182Bool DoInstall(Bool pmt_reboot)183{184  I64 res=FALSE,vm_install;185  "\n\n\n\n\nAre you installing inside VMware, QEMU, VirtualBox "186        "or a similar virtual machine? ";187  vm_install=YorN;188  DocBottom;189 190  if (vm_install) {191    VMInstallWiz();192    res=TRUE;193  } else {194    "\n\nThis wizard works if you have a partition ready.  "195          "You can partition the drive or BootHDIns() "196          "with more options if you do it by hand, not using this wizard.\n\n"197          "Continue Install Wizard ";198    if (YorN) {199      RegularInstallWiz();200      res=TRUE;201    } else202      pmt_reboot=FALSE;203  }204  if (pmt_reboot) {205    "Reboot Now ";206    if (YorN)207      Reboot;208  }209  return res;210}211 212Bool OSInstall(Bool pmt_reboot=TRUE)213{214  DoInstructions;215  return DoInstall(pmt_reboot);216}217 218#if __CMD_LINE__219OSInstall(TRUE);220#endif221