TempleOSCDV5.02.ISO
This commit is contained in:
1 parent
320c7ee98a
commit
4b32f058d5
137 files changed
+3474
-3293
No files matched your search
+30
-3
@@ -2,7 +2,34 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
|
||||
|
||||
Use $LK,"R",A="MN:R"$() to rename if I change a label.
|
||||
|
||||
$IV,1$----01/19/17 07:21:14----$IV,0$
|
||||
$IV,1$----01/25/17 20:44:17----$IV,0$
|
||||
* $LK,"R",A="MN:R"$("DocLineNumGoto","DocGoToLine");
|
||||
* $LK,"R",A="MN:R"$("Clipboard","Clip");
|
||||
* $LK,"R",A="MN:R"$("AutoMountIDE","MountIDEAuto");
|
||||
* $LK,"R",A="MN:R"$("ChgExt","ExtChg");
|
||||
* $LK,"R",A="MN:R"$("DftExt","ExtDft");
|
||||
* $LK,"R",A="MN:R"$("CurDir","DirCur");
|
||||
* $LK,"R",A="MN:R"$("MkDir","DirMk");
|
||||
* $LK,"R",A="MN:R"$("ChkDsk","DskChk");
|
||||
* $LK,"R",A="MN:R"$("ChgDsk","DskChg");
|
||||
* $LK,"R",A="MN:R"$("PrtDsk","DskPrt");
|
||||
* $LK,"R",A="MN:R"$("RBlks","BlkRead");
|
||||
* $LK,"R",A="MN:R"$("WBlks","BlkWrite");
|
||||
* $LK,"R",A="MN:R"$("FRBlks","FBlkRead");
|
||||
* $LK,"R",A="MN:R"$("FWBlks","FBlkWrite");
|
||||
* $LK,"R",A="MN:R"$("Cluster","Clus");
|
||||
* $LK,"R",A="MN:R"$("RClusters","ClusRead");
|
||||
* $LK,"R",A="MN:R"$("WClusters","ClusWrite");
|
||||
|
||||
|
||||
$IV,1$----01/24/17 21:56:06----$IV,0$
|
||||
* Improved $LK,"::/Apps/Psalmody/JukeBox.HC"$
|
||||
* $LK,"R",A="MN:R"$("TreeBranch","Tree");
|
||||
* Added $LK,"DocTreeWrite",A="MN:DocTreeWrite"$() and $LK,"DocTreeAppend",A="MN:DocTreeAppend"$().
|
||||
|
||||
$IV,1$----01/22/17 06:08:00----$IV,0$
|
||||
* $BK,1$TempleOS version 5.02 Released$BK,0$
|
||||
* Changed polling of $LK,"KbdMsHndlr",A="MN:KbdMsHndlr"$() in $LK,"WinMgrSleep",A="MN:WinMgrSleep"$(), increased fifos.
|
||||
|
||||
$IV,1$----01/17/17 18:11:53----$IV,0$
|
||||
* Fixed $FG,2$$$$FG$ class offset so $FG,2$#assert$FG$'s don't lag a token.
|
||||
@@ -46,7 +73,7 @@ $IV,1$----01/10/17 11:45:41----$IV,0$
|
||||
* Added $LK,"::/Adam/InsReg.HC"$ with $LK,"InsReg",A="MN:InsReg"$(), $LK,"InsRereg",A="MN:InsRereg"$() and $LK,"InsUnreg",A="MN:InsUnreg"$().
|
||||
* Added $LK,"::/Adam/Host.HC"$ with $LK,"HostChgDsk",A="MN:HostChgDsk"$().
|
||||
* Added $LK,"::/Adam/Opt/Utils/TOS.HC"$ with $LK,"TOSStdIns",A="MN:TOSStdIns"$().
|
||||
* Added cmd line args for partition % to $LK,"PrtDsk",A="MN:PrtDsk"$().
|
||||
* Added cmd line args for partition % to $LK,"DskPrt",A="MN:DskPrt"$().
|
||||
|
||||
$IV,1$----01/09/17 21:48:34----$IV,0$
|
||||
* $LK,"R",A="MN:R"$("a1","arg1");
|
||||
@@ -62,7 +89,7 @@ $IV,1$----01/09/17 02:30:59----$IV,0$
|
||||
* Moved AfterEgypt to the supplemental disk.
|
||||
|
||||
$IV,1$----01/06/17 06:07:19----$IV,0$
|
||||
* Fixed $LK,"ChgDsk",A="MN:ChgDsk"$().
|
||||
* Fixed $LK,"DskChg",A="MN:DskChg"$().
|
||||
* Improved $LK,"::/Misc/OSTestSuite.HC"$.
|
||||
|
||||
$IV,1$----01/05/17 04:53:21----$IV,0$
|
||||
|
||||
+84
-68
@@ -5,11 +5,6 @@ it in your start-up scripts.
|
||||
|
||||
#help_index "Comm"
|
||||
|
||||
#define COM1_BASE 0x3F8
|
||||
#define COM2_BASE 0x2F8
|
||||
#define COM3_BASE 0x3E8
|
||||
#define COM4_BASE 0x2E8
|
||||
|
||||
#define UART_THR 0
|
||||
#define UART_RDR 0
|
||||
#define UART_BRDL 0
|
||||
@@ -21,96 +16,117 @@ it in your start-up scripts.
|
||||
#define UART_LSR 5
|
||||
#define UART_MSR 6
|
||||
|
||||
I64 comm_base[5]={0,0x3F8,0x2F8,0x3E8,0x2E8};
|
||||
#define COMf_ENABLED 0
|
||||
class CComm
|
||||
{
|
||||
I64 base,
|
||||
flags;
|
||||
CFifoU8 *RX_fifo;
|
||||
CFifoU8 *TX_fifo;
|
||||
} comm_ports[5];
|
||||
|
||||
CFifoU8 *comm_fifos[5]={NULL,NULL,NULL,NULL,NULL};
|
||||
U0 CommHndlr(I64 port)
|
||||
{
|
||||
CComm *c=&comm_ports[port];
|
||||
I64 b=0,stat;
|
||||
if (Bt(&c->flags,COMf_ENABLED)) {
|
||||
stat=InU8(c->base+UART_IIR);
|
||||
if (stat & 4) //RX
|
||||
FifoU8Ins(c->RX_fifo,InU8(c->base+UART_RDR));
|
||||
if (stat & 2) { //TX
|
||||
if (FifoU8Rem(c->TX_fifo,&b))
|
||||
OutU8(c->base+UART_THR,b);
|
||||
else
|
||||
OutU8(c->base+UART_IER,1); //RX but no THR empty
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interrupt U0 IRQComm3()
|
||||
{
|
||||
I64 base=comm_base[2];
|
||||
if (comm_fifos[2] && (InU8(base+UART_IIR) & 0xFE)==4) //RX IRQ
|
||||
FifoU8Ins(comm_fifos[2],InU8(base+UART_RDR));
|
||||
|
||||
base=comm_base[4];
|
||||
if (comm_fifos[4] && (InU8(base+UART_IIR) & 0xFE)==4) //RX IRQ
|
||||
FifoU8Ins(comm_fifos[4],InU8(base+UART_RDR));
|
||||
CommHndlr(2);
|
||||
CommHndlr(4);
|
||||
OutU8(0x20,0x20);
|
||||
}
|
||||
|
||||
interrupt U0 IRQComm4()
|
||||
{
|
||||
I64 base=comm_base[1];
|
||||
if (comm_fifos[1] && (InU8(base+UART_IIR) & 0xFE)==4) //RX IRQ
|
||||
FifoU8Ins(comm_fifos[1],InU8(base+UART_RDR));
|
||||
|
||||
base=comm_base[3];
|
||||
if (comm_fifos[3] && (InU8(base+UART_IIR) & 0xFE)==4) //RX IRQ
|
||||
FifoU8Ins(comm_fifos[3],InU8(base+UART_RDR));
|
||||
CommHndlr(1);
|
||||
CommHndlr(3);
|
||||
OutU8(0x20,0x20);
|
||||
}
|
||||
|
||||
IntEntrySet(0x23,&IRQComm3);
|
||||
IntEntrySet(0x24,&IRQComm4);
|
||||
|
||||
public U0 CommInit8n1(I64 port,I64 baud)
|
||||
U0 CommInit()
|
||||
{
|
||||
I64 base=comm_base[port];
|
||||
MemSet(&comm_ports,0,sizeof(comm_ports));
|
||||
comm_ports[1].base=0x3F8;
|
||||
comm_ports[2].base=0x2F8;
|
||||
comm_ports[3].base=0x3E8;
|
||||
comm_ports[4].base=0x2E8;
|
||||
IntEntrySet(0x23,&IRQComm3);
|
||||
IntEntrySet(0x24,&IRQComm4);
|
||||
}
|
||||
CommInit;
|
||||
|
||||
public CComm *CommInit8n1(I64 port,I64 baud)
|
||||
{
|
||||
CComm *c=&comm_ports[port];
|
||||
|
||||
PUSHFD
|
||||
CLI
|
||||
if (comm_fifos[port])
|
||||
FifoU8Del(comm_fifos[port]);
|
||||
comm_fifos[port]=FifoU8New(256);
|
||||
OutU8(base+UART_LCR,0); //Set for IER
|
||||
OutU8(base+UART_IER,0); //Disable all IRQ
|
||||
OutU8(base+UART_LCR,0x80); //Enable baud rate control
|
||||
OutU8(base+UART_BRDL,(0x180/(baud/300)) & 0xFF); //LSB
|
||||
OutU8(base+UART_BRDH,(0x180/(baud/300)) / 256); //MSB
|
||||
OutU8(base+UART_LCR,3); // 8-none-1
|
||||
if (LBts(&c->flags,COMf_ENABLED)) {
|
||||
FifoU8Del(c->RX_fifo);
|
||||
FifoU8Del(c->TX_fifo);
|
||||
}
|
||||
c->RX_fifo=FifoU8New(256);
|
||||
c->TX_fifo=FifoU8New(256);
|
||||
OutU8(c->base+UART_LCR,0); //Set for IER
|
||||
OutU8(c->base+UART_IER,0); //Disable all IRQ
|
||||
OutU8(c->base+UART_LCR,0x80); //Enable baud rate control
|
||||
OutU8(c->base+UART_BRDL,(0x180/(baud/300)) & 0xFF); //LSB
|
||||
OutU8(c->base+UART_BRDH,(0x180/(baud/300)) / 256); //MSB
|
||||
OutU8(c->base+UART_LCR,3); //8-none-1
|
||||
|
||||
InU8(base+UART_RDR); //read garbage
|
||||
InU8(base+UART_LSR);
|
||||
InU8(c->base+UART_RDR); //read garbage
|
||||
InU8(c->base+UART_LSR);
|
||||
|
||||
OutU8(base+UART_MCR,4);
|
||||
OutU8(base+UART_IER,0); //Disable all IRQ
|
||||
OutU8(base+UART_MCR,0xA); //out2 and rts
|
||||
OutU8(0x21,InU8(0x21) & (0xFF-0x18)); //Enable 8259 IRQ 3 & 4
|
||||
OutU8(base+UART_IER,1); //Enable RX IRQ
|
||||
OutU8(c->base+UART_MCR,4);
|
||||
OutU8(c->base+UART_IER,0); //Disable all IRQ
|
||||
OutU8(c->base+UART_MCR,0xA); //out2 and rts
|
||||
OutU8(0x21,InU8(0x21) & (0xFF-0x18)); //Enable 8259 IRQ 3 & 4
|
||||
OutU8(c->base+UART_IER,1); //RX but no THR empty
|
||||
POPFD
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
public U0 CommBusyPutChar(I64 port,U8 b)
|
||||
public U0 CommPutChar(I64 port,U8 b)
|
||||
{
|
||||
I64 base=comm_base[port];
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
OutU8(base+UART_THR,b);
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
CComm *c=&comm_ports[port];
|
||||
PUSHFD
|
||||
CLI
|
||||
FifoU8Ins(c->TX_fifo,b);
|
||||
OutU8(c->base+UART_IER,3); //RX and THR empty
|
||||
POPFD
|
||||
Sleep(10); //!!! Remove this line!!! Linux echo_socket is too slow.
|
||||
}
|
||||
|
||||
public U0 CommBusyPutS(I64 port,U8 *st)
|
||||
U0 CommPutS(I64 port,U8 *st)
|
||||
{
|
||||
I64 b,base=comm_base[port];
|
||||
while (b=*(st++)) {
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
OutU8(base+UART_THR,b);
|
||||
}
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
I64 b;
|
||||
while (b=*st++)
|
||||
CommPutChar(port,b);
|
||||
}
|
||||
|
||||
public U0 CommBusyWriteBlk(I64 port,U8 *buf,I64 count)
|
||||
public U0 CommPutBlk(I64 port,U8 *buf,I64 cnt)
|
||||
{
|
||||
I64 base=comm_base[port];
|
||||
while (count--) {
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
OutU8(base+UART_THR,*(buf++));
|
||||
}
|
||||
while (!(InU8(base+UART_LSR) & 0x20))
|
||||
Yield;
|
||||
while (cnt--)
|
||||
CommPutChar(port,*buf++);
|
||||
}
|
||||
|
||||
#help_index ""
|
||||
public U0 CommPrint(I64 port,U8 *fmt,...)
|
||||
{
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
CommPutS(port,buf);
|
||||
Free(buf);
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Adam/Opt/Boot/DskISORed
|
||||
$LK,"::/Kernel/BlkDev/FileSysFAT.HC"$ :974 lines for FAT32 gets eliminated.
|
||||
$LK,"::/Kernel/BlkDev/FileSysISO.HC"$ :233 lines for ISO9660 gets eliminated.
|
||||
$LK,"::/Adam/Opt/Boot/DskISO9660.HC"$ :507 lines for making ISO files.
|
||||
$LK,"::/Kernel/BlkDev/DskCluster.HC"$ :152 All the cluster operations become blk.
|
||||
$LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk.
|
||||
|
||||
* Microsoft must cancel SecureBoot because it makes dual booting impossible. TempleOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement. It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image. God said the C64/Apple II generation owned ancestral lands. VMware is like being taken off of our land and moved onto a reservation. In this case, however, it will not stand.
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ You might want to use $LK,"DocPrintAtomic",A="MN:DocPrintAtomic"$().
|
||||
|
||||
See $LK,"::/Demo/DolDoc/TreeDemo.HC"$.
|
||||
$ID,-2$$TR,"SP Sprite"$
|
||||
$ID,2$Insert a sprite into text with $FG,2$<CTRL-r>$FG$. The cursor location at the time you press $FG,2$<CTRL-r>$FG$ is critical because the sprite will be offset from that location. This is important when adding images to programs. Numbers for sprites are automatically chosen because copying to and from the clipboard requires this. You can insert another sprite with the same image by hitting $FG,2$<CTRL-t>$FG$ and manually adding a $FG,2$$$SP...$$$FG$ entry with the same $FG,2$BI=$FG$ num.
|
||||
$ID,2$Insert a sprite into text with $FG,2$<CTRL-r>$FG$. The cursor location at the time you press $FG,2$<CTRL-r>$FG$ is critical because the sprite will be offset from that location. This is important when adding images to programs. Numbers for sprites are automatically chosen because copying to and from the clip requires this. You can insert another sprite with the same image by hitting $FG,2$<CTRL-t>$FG$ and manually adding a $FG,2$$$SP...$$$FG$ entry with the same $FG,2$BI=$FG$ num.
|
||||
|
||||
You can add a text tag to the $FG,2$$$SP...$$$FG$ cmd by manually adding text into the $FG,2$$$SP...$$$FG$ cmd, as in $FG,2$$$SP,"pic 2",BI=2$$$FG$. If you enter a tag of the form $FG,2$"<1>"$FG$ then the number in the tag will be updated to match the $FG,2$BI=$FG$ number.
|
||||
$ID,-2$$TR,"IB Insert Binary"$
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
|
||||
* ATAPI PIO $FG,2$CD/DVD$FG$ support with $FG,2$ISO9660$FG$ file system. Can make bootable $FG,2$ISO9660$FG$ ISO files so you can roll-your-own distro's.
|
||||
|
||||
* $LK,"Partitioning",A="MN:PrtDsk"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk.
|
||||
* $LK,"Partitioning",A="MN:DskPrt"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk.
|
||||
|
||||
* $FG,2$Editor/Browser$FG$ for a new $LK,"Document Format",A="FI:::/Doc/DolDocOverview.DD"$. Source files and the command line window can have graphics, links, icons, trees, colors, super/sub scripts, margins. Everything is seamless through-out the tool chain. No need for separate resource files.
|
||||
|
||||
|
||||
Binary file not shown.
+5
-5
@@ -3,14 +3,14 @@ $WW,1$$FG,5$$TX+CX,"File Manager"$$FG$
|
||||
$FG,2$<SHIFT CURSOR>$FG$
|
||||
$ID,2$Select files.
|
||||
$ID,-2$
|
||||
$FG,2$<CTRL-y> or <DELETE>$FG$
|
||||
$FG,2$<CTRL-y> or <DEL>$FG$
|
||||
$ID,2$Delete file or tree.
|
||||
$ID,-2$
|
||||
$FG,2$<CTRL-c> or <CTRL-INS>$FG$
|
||||
$ID,2$Copy select files to clipboard.
|
||||
$ID,2$Copy select files to clip.
|
||||
$ID,-2$
|
||||
$FG,2$<CTRL-v> or <SHIFT-INS>$FG$
|
||||
$ID,2$Paste clipboard.
|
||||
$ID,2$Paste clip.
|
||||
$ID,-2$
|
||||
$FG,2$LEFT-CLICK,drag-drop$FG$
|
||||
$ID,2$Move a file or tree to a dir.
|
||||
@@ -37,7 +37,7 @@ $FG,2$'d'$FG$
|
||||
$ID,2$Make Dir.
|
||||
$ID,-2$
|
||||
$FG,2$'c'$FG$
|
||||
$ID,2$ChgDsk (Remount removable media). Do not do this on blank disks.
|
||||
$ID,2$DskChg (Remount removable media). Do not do this on blank disks.
|
||||
$ID,-2$
|
||||
$FG,2$'f'$FG$
|
||||
$ID,2$Format drive.
|
||||
@@ -59,7 +59,7 @@ $ID,2$Burn CD/DVD ISO file. This burns a CD/DVD using the image file, $FG,2$$TX
|
||||
$ID,-2$
|
||||
|
||||
$FG,5$Instructions on Using CD/DVD's$FG$
|
||||
$ID,2$If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use $LK,"Mount",A="MN:Mount"$ to define your CD/DVD drive. Place a CD/DVD in the drive and press $FG,2$'c'$FG$ when on top of the CD/DVD drive letter to mount the drive. It will call $LK,"ChgDsk",A="MN:ChgDsk"$(), the TempleOS cmd to mount removable media.
|
||||
$ID,2$If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use $LK,"Mount",A="MN:Mount"$ to define your CD/DVD drive. Place a CD/DVD in the drive and press $FG,2$'c'$FG$ when on top of the CD/DVD drive letter to mount the drive. It will call $LK,"DskChg",A="MN:DskChg"$(), the TempleOS cmd to mount removable media.
|
||||
$ID,-2$
|
||||
|
||||
$FG,5$Instructions on Burning CD/DVD's$FG$
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
File
|
||||
{
|
||||
Rename(,'r');
|
||||
MkDir(,'d');
|
||||
DirMk(,'d');
|
||||
FmtDrv(,'f');
|
||||
UnmountDrv(,'u');
|
||||
Abort(,CH_SHIFT_ESC);
|
||||
@@ -19,7 +19,7 @@ Edit
|
||||
|
||||
CDDVD
|
||||
{
|
||||
ChgDsk(,'c');
|
||||
DskChg(,'c');
|
||||
MountISOC(,'i');
|
||||
MakeRedSeaISOC(,'m');
|
||||
MakeISO9660ISO(,'M');
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ Flags are either text or int values.
|
||||
$LK,"FUF_FLATTEN_TREE",A="MN:FUF_FLATTEN_TREE"$ $FG,2$+f$FG$ use with '$FG,2$+F$FG$'. Just use $FG,2$+F$FG$, probably.
|
||||
$LK,"FUF_JUST_DIRS",A="MN:FUF_JUST_DIRS"$ $FG,2$+D$FG$ just directories
|
||||
$LK,"FUF_JUST_FILES",A="MN:FUF_JUST_FILES"$ $FG,2$+F$FG$ just files (Flattens trees)
|
||||
$LK,"FUF_CLUSTER_ORDER",A="MN:FUF_CLUSTER_ORDER"$ $FG,2$+O$FG$ sort by cluster (move head one direction)
|
||||
$LK,"FUF_CLUS_ORDER",A="MN:FUF_CLUS_ORDER"$ $FG,2$+O$FG$ sort by clus (move head one direction)
|
||||
$LK,"FUF_JUST_TXT",A="MN:FUF_JUST_TXT"$ $FG,2$+T$FG$ just text files : $LK,"FILEMASK_TXT",A="MN:FILEMASK_TXT"$
|
||||
$LK,"FUF_JUST_DD",A="MN:FUF_JUST_DD"$ $FG,2$+$$$FG$ just $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ files : $LK,"FILEMASK_DD",A="MN:FILEMASK_DD"$
|
||||
$LK,"FUF_JUST_SRC",A="MN:FUF_JUST_SRC"$ $FG,2$+S$FG$ just src files : $LK,"FILEMASK_SRC",A="MN:FILEMASK_SRC"$
|
||||
|
||||
+4
-2
@@ -25,11 +25,13 @@ $FG,2$CB$FG$ Call-Back, Code Block
|
||||
$FG,2$Cfg$FG$ Config
|
||||
$FG,2$Chg$FG$ Change
|
||||
$FG,2$Chk$FG$ Check
|
||||
$FG,2$Const$FG$ Consant
|
||||
$FG,2$Cont$FG$ Continue
|
||||
$FG,2$Clip$FG$ Clipboard
|
||||
$FG,2$Clus$FG$ Cluster
|
||||
$FG,2$Cmd$FG$ Command
|
||||
$FG,2$Cmp$FG$ Compiler
|
||||
$FG,2$Cnt$FG$ Count
|
||||
$FG,2$Const$FG$ Consant
|
||||
$FG,2$Cont$FG$ Continue
|
||||
$FG,2$Ctrl$FG$ Control. The ctrl key is indicated with "$FG,2$^$FG$" in documentation.
|
||||
$FG,2$Cur$FG$ Current
|
||||
$FG,2$Cvt$FG$ Convert
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ Two TempleOS partitions are highly recommended, so you can boot to a back-up and
|
||||
$ID,2$$LK,"Mount",A="MN:Mount"$() use if the drive is partitioned.
|
||||
$ID,2$This command mounts a drive making it accessible. For simplicity, sel $FG,2$'C'$FG$ as the first drive letter for your hard drive. The first partition will be $FG,2$'C'$FG$, second, $FG,2$'D'$FG$, etc. TempleOS needs 3 numbers to utilize a hard drive -- base0, base1, and unit. When you enter a hexadecimal number, do it like in $FG,2$C$FG$ with a $FG,2$0x$FG$ prefix. If the probe was successful, you can just enter the number in the probe box instead of base0.
|
||||
$ID,-2$
|
||||
$LK,"PrtDsk",A="MN:PrtDsk"$($FG,2$'C'$FG$) use if drive is not partitioned
|
||||
$LK,"DskPrt",A="MN:DskPrt"$($FG,2$'C'$FG$) use if drive is not partitioned
|
||||
|
||||
$ID,2$This will perform a special $LK,"Mount",A="MN:Mount"$() automatically.
|
||||
|
||||
|
||||
+2
-2
@@ -8,9 +8,9 @@ $WW,1$* You run a risk of problems if you do file operations on the same files s
|
||||
|
||||
* The syntax highlighting occassionally glitches. The compiler doesn't.
|
||||
|
||||
* Call $LK,"ChgDsk",A="MN:ChgDsk"$() when you insert a new removable media.
|
||||
* Call $LK,"DskChg",A="MN:DskChg"$() when you insert a new removable media.
|
||||
|
||||
* Accessing CD/DVD's is flacky. Try $LK,"Drv",A="MN:Drv"$() or $LK,"ChgDsk",A="MN:ChgDsk"$() twice.
|
||||
* Accessing CD/DVD's is flacky. Try $LK,"Drv",A="MN:Drv"$() or $LK,"DskChg",A="MN:DskChg"$() twice.
|
||||
|
||||
* You can only $FG,2$extern$FG$ something once. There is a varient called $FG,2$_extern$FG$ which binds a HolyC definition to a asm sym. This, too, can only be done once.
|
||||
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
$WW,1$$FG,5$$TX+CX,"RedSea File System"$$FG$
|
||||
|
||||
The RedSea file system is a simple, 64-bit, file system which is similar to FAT32, but with absolute block addresses instead of clusters, fixed-sized 64-byte directory entries and no FAT table, just an allocation bitmap. A cluster is just one 512 byte sector. Files are stored in contiguous blocks and cannot grow in size.
|
||||
The RedSea file system is a simple, 64-bit, file system which is similar to FAT32, but with absolute block addresses instead of clus, fixed-sized 64-byte directory entries and no FAT table, just an allocation bitmap. A clus is just one 512 byte sector. Files are stored in contiguous blocks and cannot grow in size.
|
||||
|
||||
$HL,1$#define CDIR_FILENAME_LEN 38 //Must include terminator zero
|
||||
|
||||
@@ -13,7 +13,7 @@ public class CDirEntry //64-byte fixed-size
|
||||
{
|
||||
U16 attr; //See $LK,"RS_ATTR_DIR",A="MN:RS_ATTR_DIR"$. I would like to change these.
|
||||
U8 name[CDIR_FILENAME_LEN]; //See $LK,"char_bmp_filename",A="MN:char_bmp_filename"$, $LK,"FileNameChk",A="MN:FileNameChk"$
|
||||
I64 cluster; (blk) //One sector per cluster.
|
||||
I64 clus; (blk) //One sector per clus.
|
||||
I64 size; //In bytes
|
||||
CDate datetime; //See $LK,"DateTime",A="::/Doc/TimeDate.DD"$, $LK,"Implementation of DateTime",A="FI:::/Kernel/KDate.HC"$
|
||||
};
|
||||
@@ -24,7 +24,7 @@ public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
|
||||
U8 signature,reserved[4]; //MBR_PT_REDSEA=0x88. Distinguish from real FAT32.
|
||||
I64 drv_offset; //For CD/DVD image copy.
|
||||
I64 sects;
|
||||
I64 root_cluster; (root_blk)
|
||||
I64 root_clus; (root_blk)
|
||||
I64 bitmap_sects;
|
||||
I64 unique_id;
|
||||
U8 code[462];
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@ $WW,1$A $LK,"CSprite",A="MN:CSprite"$ is an ordered list of $LK,"these",A="MN:SP
|
||||
|
||||
See $LK,"::/Demo/Graphics/SpritePlot.HC"$, $LK,"::/Demo/Graphics/SpritePlot3D.HC"$, $LK,"::/Demo/Graphics/SpritePut.HC"$, $LK,"::/Demo/Graphics/SpriteRaw.HC"$ and $LK,"SpriteMeshEd",A="MN:SpriteMeshEd"$().
|
||||
|
||||
Be aware that copying $FG,2$SP$FG$, $FG,2$IB$FG$, or $FG,2$IS$FG$ entries with the clipboard results in duplicate entries with different nums. You can manually remove dups by editing with $FG,2$<CTRL-t>$FG$ and setting to the original num.
|
||||
Be aware that copying $FG,2$SP$FG$, $FG,2$IB$FG$, or $FG,2$IS$FG$ entries with the clip results in duplicate entries with different nums. You can manually remove dups by editing with $FG,2$<CTRL-t>$FG$ and setting to the original num.
|
||||
|
||||
See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.$FG$
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
$WW,1$$FG,5$$TX+CX,"Sprite BitMap Menu Help"$$FG$
|
||||
|
||||
BitMaps have a background color. If you delete to the clipboard, what's left will be background colored.
|
||||
BitMaps have a background color. If you delete to the clip, what's left will be background colored.
|
||||
|
||||
While drawing, you can usually press $FG,2$'c'$FG$ to eye-dropper the color under the mouse. Press $FG,2$'t'$FG$ for transparent.
|
||||
+1
-1
@@ -4,4 +4,4 @@ Order of elements matters. They are executed in the order they appear in the si
|
||||
|
||||
You can set the current insert point element by clicking the element in the side-bar and making it RED.
|
||||
|
||||
$FG,2$Insert Shift Suborigin$FG$ is an element which shifts subsequent elements. Perhaps, you inserted a sprite's elements from the clipboard and want to shift it around? This command is also useful if you call $LK,"SpriteInterpolate",A="MN:SpriteInterpolate"$() in programs.
|
||||
$FG,2$Insert Shift Suborigin$FG$ is an element which shifts subsequent elements. Perhaps, you inserted a sprite's elements from the clip and want to shift it around? This command is also useful if you call $LK,"SpriteInterpolate",A="MN:SpriteInterpolate"$() in programs.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
$WW+H,1$$FG,5$$TX+CX,"TempleOS V5.01",D="DD_OS_NAME_VERSION"$$FG$
|
||||
$WW+H,1$$FG,5$$TX+CX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$$FG$
|
||||
|
||||
$TX+CX,"Public Domain Operating System"$
|
||||
|
||||
|
||||
+2
-2
@@ -71,7 +71,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
|
||||
|
||||
* Use $FG,2$<CTRL-ALT-f>$FG$ to toggle between $LK,"Std Font",A="FI:::/Kernel/FontStd.HC"$ and $LK,"Cyrillic Font",A="FI:::/Kernel/FontCyrillic.HC"$.
|
||||
|
||||
* Use $FG,2$<CTRL-ALT-s>$FG$ will capture the scrn as a sprite on the clipboard. You can save the cmd line doc as text with $FG,2$<CTRL-a>$FG$.
|
||||
* Use $FG,2$<CTRL-ALT-s>$FG$ will capture the scrn as a sprite on the clip. You can save the cmd line doc as text with $FG,2$<CTRL-a>$FG$.
|
||||
|
||||
* You can save a sprite as a $FG,2$.BMP$FG$ file in $FG,2$<CTRL-r>$FG$ on the Sprite BitMap Menu.
|
||||
|
||||
@@ -145,7 +145,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
|
||||
|
||||
* With $FG,2$start$FG$/$FG,2$end$FG$, common trailing code is fast. Common leading code is slow.$FG$
|
||||
|
||||
* The first line of the $MA-X+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\"\n"$ $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ song files is a comment with a category recognized by $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$(). The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$. The third character in the song comment is a digit rating number, shown in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$(). You can set the song rating in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$() by pressing $FG,2$0$FG$-$FG,2$9$FG$. You can press $FG,2$<DELETE>$FG$ to delete songs.
|
||||
* The first line of the $MA-X+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\"\n"$ $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ song files is a comment with a category recognized by $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$(). The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$. The third character in the song comment is a digit rating number, shown in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$(). You can set the song rating in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$() by pressing $FG,2$0$FG$-$FG,2$9$FG$. You can press $FG,2$<DEL>$FG$ to delete songs.
|
||||
|
||||
$FG,8$
|
||||
* "Linux" is a trademark owned by Linus Torvalds.
|
||||
|
||||
+2
-2
@@ -75,9 +75,9 @@ There are no object files in TempleOS and, normally, you don't make executable f
|
||||
|
||||
Tasks have no priority and are never removed from the queue. Instead, they often poll whatever they are waiting on and swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See $LK,"Scheduler",A="FL:::/Kernel/Sched.HC,1"$. Polling keeps it simple. It might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order of the tasks in the queue determines front-to-back window order.
|
||||
|
||||
The $FG,2$FAT32$FG$ filesystem is supported to makes exchanging files with a dual booted other operating system easy and there is the simple, 64-bit TempleOS $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ filesystem. The $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ has allocation bitmap for clusters and all files are stored contiguously. You can't grow files.
|
||||
The $FG,2$FAT32$FG$ filesystem is supported to makes exchanging files with a dual booted other operating system easy and there is the simple, 64-bit TempleOS $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ filesystem. The $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ has allocation bitmap for clus and all files are stored contiguously. You can't grow files.
|
||||
|
||||
TempleOS is geared toward reading and writing whole files. Since whole files are processed, compression is possible. Filenames ending in "$FG,2$.Z$FG$" are automatically compressed or uncompressed when stored and fetched. TempleOS does support direct block random access into files, however -- $LK,"FRBlks",A="MN:FRBlks"$() and $LK,"FWBlks",A="MN:FWBlks"$().
|
||||
TempleOS is geared toward reading and writing whole files. Since whole files are processed, compression is possible. Filenames ending in "$FG,2$.Z$FG$" are automatically compressed or uncompressed when stored and fetched. TempleOS does support direct block random access into files, however -- $LK,"FBlkRead",A="MN:FBlkRead"$() and $LK,"FBlkWrite",A="MN:FBlkWrite"$().
|
||||
|
||||
If a file is not found, "$FG,2$.Z$FG$" is added or removed and a search is done, again. There is no $FG,2$PATH$FG$, but parent directories are searched when a file is not found. This feature is especially useful for default account files.
|
||||
|
||||
|
||||
Reference in new issue
Block a user