Previous

Next

Bottom

Contents

Glossary

Index

 

Persistor CF1 User's Manual

Index

May 1999

Revision 1.00

 Persistor Instruments Inc.
© 1998 All rights reserved.

void

ASM_BIOS_CALL(vptr f)

<cf1bios.h>

MACRO DESC

void

ASM_BIOS_JMP(vptr)

<cf1bios.h>

MACRO DESC

void

ASM_PICO_CALL(vptr f)

<cf1pico.h>

MACRO DESC

void

ASM_PICO_JMP(vptr)

<cf1pico.h>

MACRO DESC

short

ATACapacity(ATADvr iodvr, ulong *sectors, ushort *spt, ushort *heads, struct ATADriveID **info)

<cf1bios.h>

Return the PC Card capacity in total sectors

short

ATAFormatSectors(ATADvr iodvr, ulong sector, void *buffer, short count)

<cf1bios.h>

Format sector(s)

bool

ATAMediaCheck(ATADvr iodvr)

<cf1bios.h>

Return true if hardware and media are available

short

ATAReadSectors(ATADvr iodvr, ulong sector, void *buffer, short count)

<cf1bios.h>

Read logical drive sector(s)

short

ATASectorInfo(ATADvr iodvr, ulong sector, void *buffer)

<cf1bios.h>

Read sectors hot count and erase status

short

ATASetPower(ATADvr iodvr, short reqPwr, short *cardMin, short *cardMax)

<cf1bios.h>

Set power versus performance values

short

ATASpecial(ATADvr iodvr, ulong sector, void *buffer, short count, short cmd, short iswrite, short feature)

<cf1bios.h>

Perform special ATA command

short

ATAWriteSectors(ATADvr iodvr, ulong sector, void *buffer, short count)

<cf1bios.h>

Write logical drive sector(s)

char*

AttribCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

BackROMCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

BaudCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

bool

BIACheckReady(bool waitready)

<cf1pico.h>

Return the current drive ready status, optionally wait

void

BIADrivePower(bool on)

<cf1pico.h>

Turn the BigIDEA switched power supply on or off

void

BIADriveReset(bool assert)

<cf1pico.h>

Assert/release the /DRVRES line

void*

BIAExp1(void *vp)

<cf1pico.h>

DESC

void*

BIAExp2(void *vp)

<cf1pico.h>

DESC

ATADvr

BIAGetDriver(BIADEV device)

<cf1pico.h>

Return the low level BigIDEA driver (for the ATA driver)

BIAST

BIAGetStatus(void)

<cf1pico.h>

Return the current drive status flags

char*

BIAGetStatusString(void)

<cf1pico.h>

Return the current drive status flags as 18 char string

bool

BIAInit(BIADEV device, ushort scms, ushort index, short nsAccess)

<cf1pico.h>

Initialize the BigIDEA hardware

vfptr

BIAInstallPreIOFunction(vfptr pf)

<cf1pico.h>

Install a function to call prior to low-level operations

bool

BIAPowerUp(bool waitready)

<cf1pico.h>

Power up the BigIDEA and spin up the drive

void

BIAReviseTiming(BIADEV device, ulong chkBsyDelay, ulong spinUpTimeout)

<cf1pico.h>

Setup the main delays and timeouts

void

BIAShutDown(void)

<cf1pico.h>

Turn off the drive and power down the BigIDEA

float

BIATempC(void)

<cf1pico.h>

Return BigIDEA temperature in degrees C

bool

BIOSAddChore(BIOSChore list[], ushort max, vfptr chore, ushort intReqLevel)

<cf1bios.h>

Add a bios interrupt chore

long*

BIOSGetSerNum(void)

<cf1bios.h>

Return the CF1 Serial Number

vptr

BIOSHandlerAddress(short drvrid)

<cf1bios.h>

Return a BIOS handlers actual address

void

BIOSInit(void)

<cf1bios.h>

Initialize the BIOS (performed automatically by PicoDOS)

vptr

BIOSPatchInsert(short drvrid, vptr newf)

<cf1bios.h>

Insert a new handler in the BIOS table

bool

BIOSRemoveChore(BIOSChore list[], ushort max, vfptr chore)

<cf1bios.h>

Remove a bios interrupt chore (NULL vfptr for all)

void

BIOSReset(void)

<cf1bios.h>

Reset the CF1

void

BIOSResetToAddress(ulong target)

<cf1bios.h>

Reset the CF1 and jump to specified address

void

BIOSResetToPBM(void)

<cf1bios.h>

Reset the CF1 and force to PBM

void

BIOSResetToPicoDOS(void)

<cf1bios.h>

Reset the CF1 and jump to 0xE10000 (PicoDOS)

void

BIOSReturn(void)

<cf1bios.h>

Simple BIOS call to test and compare call timing overhead

bool

BIOSVersionCheck(short ver, short rel, char *id, bool reset)

<cf1bios.h>

Confirm application and BIOS compatibility

char*

BootCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

BSDCapacity(ushort bsdid, ulong *sectors, ushort *spt, ushort *heads, struct ATADriveID **info)

<cf1pico.h>

Fetch the logical device capacity and geometry

short

BSDGetPartition(ushort bsdid)

<cf1pico.h>

Return the partition number associated with this BSD

short

BSDGetSSD(ushort bsdid)

<cf1pico.h>

Return the SSD ID associated with this BSD

ulong

BSDHiddenSectors(ushort bsdid)

<cf1pico.h>

Return the number of hidden sectors before data sectors

bool

BSDMediaCheck(ushort bsdid)

<cf1pico.h>

Return true if hardware and media are available

short

BSDReadSectors(ushort bsdid, ulong sector, void *buffer, short count)

<cf1pico.h>

Read logical device (LBA) sector(s)

short

BSDRegisterDevice(ushort ssdid, ushort prtn, ulong firstSect, ulong lastSect)

<cf1pico.h>

Register a new Block Storage Device

void

BSDReset(void)

<cf1pico.h>

Reset BSD tables and clear all registered devices

short

BSDValidate(ushort bsdid)

<cf1pico.h>

Validate the requested BSD ID

short

BSDWriteSectors(ushort bsdid, ulong sector, void *buffer, short count)

<cf1pico.h>

Write logical device (LBA) sector(s)

void

Byte2Swap(ushort x)

<cf1bios.h>

MACRO DESC

void

Byte4Swap(ulong x)

<cf1bios.h>

MACRO DESC

void

ByteBitClear(uchar byte, int bit)

<cf1bios.h>

MACRO DESC

void

ByteBitSet(uchar byte, int bit)

<cf1bios.h>

MACRO DESC

void

ByteBitTest(uchar byte, int bit)

<cf1bios.h>

MACRO DESC

char*

CaptureCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

CardChangeCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

void

cdrain(void)

<cf1bios.h>

MACRO uses CIOdrain()

void

CFAutoWrNoEra(bool on)

<cf1bios.h>

Enable automatic write to write without erase translation

bool

CFCardDetect(void)

<cf1bios.h>

Return true if a card is inserted

bool

CFDisallowWrite(void)

<cf1bios.h>

Return true if writing is disabled (always false

bool

CFEnable(bool on)

<cf1bios.h>

Enable or disable CompactFlash card to control power

ATADvr

CFGetDriver(void)

<cf1bios.h>

Return the low level CompactFlash driver (for ATA driver)

void

CFInit(void)

<cf1bios.h>

Initialize the CompactFlash hardware

short

cgetc(void)

<cf1bios.h>

MACRO uses CIOgetc()

short

cgetq(void)

<cf1bios.h>

MACRO uses CIOgetq()

short

cgets(char *buf, short len)

<cf1bios.h>

MACRO uses CIOgets

int

chdir(const char *path)

<unistd.h>

DESC

char*

CHDirCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

ushort

CheckSum16(uchar value, ushort runningSum)

<cf1bios.h>

Update a running 16 bit checksum

ushort

CheckSum16Block(const void *data, ulong len, ushort runningSum)

<cf1bios.h>

Compute a 16 bit checksum for a block of data

ulong

CheckSum32(uchar value, ulong runningSum)

<cf1bios.h>

Update a running 32 bit checksum

ulong

CheckSum32Block(const void *data, ulong len, ulong runningSum)

<cf1bios.h>

Compute a 32 bit checksum for a block of data

bool

chexdump(void *mem, ulong addr, short wsize, long bytecount)

<cf1bios.h>

MACRO uses CIOhexdump

char*

ChkdskCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

ciflush(void)

<cf1bios.h>

MACRO uses CIOiflush

void

CIOdrain(void)

<cf1bios.h>

Wait for all transmission to complete

short

CIOgetc(void)

<cf1bios.h>

Wait for, and return the next character

short

CIOgetq(void)

<cf1bios.h>

Return non-zero count if input data is available

short

CIOgets(char *buf, short len)

<cf1bios.h>

Input line with minimal editing features

bool

CIOhexdump(void *mem, ulong addr, short wsize, long bytecount)

<cf1bios.h>

Dump memory in hex and ASCII to the console

short

CIOiflush(void)

<cf1bios.h>

Flush any pending input data

void

CIOoflush(void)

<cf1bios.h>

Discard any queued transmit characters

short

CIOprintf(const char * format, ...)

<cf1bios.h>

Simple printf to console with no floating point

void

CIOputc(char c)

<cf1bios.h>

Send character (no '\n' to '\r'-'\n' translation)

void

CIOputs(const char *str)

<cf1bios.h>

Send string with C '\n' to '\r'-'\n' translation

short

CIOsprintf(char *s, const char *format, ...)

<cf1bios.h>

Simple sprintf to string with no floating point

void

CLEAR_OBJECT(void *obj)

<cf1bios.h>

Zero a variable, array, or structure

int

close(int fildes)

<unistd.h>

DESC

int

CmdCheckOptionChar(CmdInfoPtr cip, char c)

<cf1pico.h>

DESC

bool

CmdConfirm(char *prompt, char trueReply)

<cf1pico.h>

DESC

char*

CmdDispatch(CmdInfoPtr cip)

<cf1pico.h>

DESC

int

CmdExpectRange(CmdInfoPtr cip, short index, long *start, long *end)

<cf1pico.h>

DESC

int

CmdExpectValue(CmdInfoPtr cip, short index, long *value)

<cf1pico.h>

DESC

int

CmdExtractArgValues(CmdInfoPtr cip, short first, short last, short radix)

<cf1pico.h>

DESC

short

CmdExtractAVDosSwitches(short argc, char **argv, char *fmt, ...)

<cf1pico.h>

DESC

short

CmdExtractCIDosSwitches(CmdInfoPtr cip, char *fmt, ...)

<cf1pico.h>

DESC

int

CmdIsDigit(short c, short base, short *val)

<cf1pico.h>

DESC

int

CmdIsNumber(char **s, long *value, short base)

<cf1pico.h>

DESC

char*

CmdParse(CmdInfoPtr cip)

<cf1pico.h>

DESC

ulong

CmdSetDateTime(char *prompt, ulong nowsecs)

<cf1pico.h>

DESC

void

CmdSetNextCmd(CmdInfoPtr cip, char *nextcmd)

<cf1pico.h>

DESC

char*

CmdStdBreak(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

CmdStdCmdTest(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

CmdStdErrText(short errID)

<cf1pico.h>

DESC

char*

CmdStdHelp(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

CmdStdInteractive(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

CmdStdLPGets(char *linebuf, short linelen)

<cf1pico.h>

DESC

char*

CmdStdPicoRun(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

CmdStdRun(CmdInfoPtr cip)

<cf1pico.h>

DESC

void

CmdStdSetup(CmdInfoPtr cip, CmdTablePtr ctp, short (*altgets)(char *, short))

<cf1pico.h>

DESC

char*

CmdStringUpper(char *s)

<cf1pico.h>

DESC

void

coflush(void)

<cf1bios.h>

MACRO uses CIOoflush()

char*

CopyCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

cprintf(const char *format, ...)

<cf1bios.h>

MACRO uses CIOprintf with CF-LF

ushort

CPUReadInterruptMask(void):__d0

<cf1bios.h>

DESC

void*

CPUReadPC(void)

<cf1bios.h>

DESC

void*

CPUReadStackReg(void):__a0

<cf1bios.h>

DESC

ushort

CPUReadStatusReg(void):__d0

<cf1bios.h>

DESC

void*

CPUReadVBR(void):__a0

<cf1bios.h>

DESC

void

cputc(char c)

<cf1bios.h>

MACRO uses CIOputc(c)

bool

CPUTestAndSet(int x)

<cf1bios.h>

MACRO returns only 0 or 1

void

cputs(const char *str)

<cf1bios.h>

MACRO uses CIOputs with CF-LF

void

CPUWriteInterruptMask(ushort ipmask:__d0)

<cf1bios.h>

DESC

void

CPUWritePCjmp(void *jmp:__a0)

<cf1bios.h>

DESC

void

CPUWritePCjsr(void *jsr:__a0)

<cf1bios.h>

DESC

void

CPUWriteStackReg(ulong a7:__d0)

<cf1bios.h>

DESC

void

CPUWriteStatusReg(ushort sr:__d0)

<cf1bios.h>

DESC

void

CPUWriteVBR(void *vbr:__a0)

<cf1bios.h>

DESC

ushort

CRC16(uchar value, ushort runningCRC)

<cf1bios.h>

Update a running 16 bit CCITT CRC

ushort

CRC16Block(const void *data, ulong len, ushort runningCRC)

<cf1bios.h>

Compute a 16 bit CCITT CRC for a block of data

ulong

CRC32(uchar value, ulong runningCRC)

<cf1bios.h>

Update a running 32 bit CCITT CRC

ulong

CRC32Block(const void *data, ulong len, ulong runningCRC)

<cf1bios.h>

Compute a 32 bit CCITT CRC for a block of data

void

CRCInit(void)

<cf1bios.h>

Initialize the CRC tables

int

creat(const char *path, ulong mode)

<fcntl.h>

DESC

short

CS10GetWaits(void)

<cf1bios.h>

Return the wait states setting for CS10 at current clock

void

CS10isEClock(bool CS8isSync)

<cf1bios.h>

Define CS10 for its alternate ECLOCK function

void

CS10Options(bool canRead, bool canWrite, bool dsSync, short waits)

<cf1bios.h>

Define the CS10 R/W access and wait states

void

CS10Setup(ulong baseAddr, long size, bool is16bit)

<cf1bios.h>

Setup CS10 address range and access width

short

CS8GetWaits(void)

<cf1bios.h>

Return the wait states setting for CS8 at current clock

void

CS8Options(bool canRead, bool canWrite, bool dsSync, short waits)

<cf1bios.h>

Define the CS8 R/W access and wait states

void

CS8Setup(ulong baseAddr, long size, bool is16bit)

<cf1bios.h>

Setup CS8 address range and access width

short

CSCalcWait(ushort kHz, short nsAccess)

<cf1bios.h>

Return wait states at given freq. for device access time

void

CSGetSysAccessSpeeds(short *nsFlash, short *nsRAM, short *nsCF, short *nsBusAdj)

<cf1bios.h>

Return the device and bus wait timing

void

CSGetSysWaits(short *waitsFlash, short *waitsRAM, short *waitsCF)

<cf1bios.h>

Return the current wait states for the system memory

void

CSInit(void)

<cf1bios.h>

Setup automatic wait state adjustment

void

CSNotifyPostClockChange(void)

<cf1bios.h>

Adjust wait states after a clock change

void

CSNotifyPreClockChange(void)

<cf1bios.h>

Prepare wait states for a pending clock change

short

csprintf(char *s, const char *format, ...)

<cf1bios.h>

MACRO uses CIOsprintf no I/O, no CF-LF

void

CSSetSysAccessSpeeds(short nsFlash, short nsRAM, short nsCF, short nsBusAdj)

<cf1bios.h>

Define the device and bus wait timing

void

CSSetSysWaits(short waitsFlash, short waitsRAM, short waitsCF)

<cf1bios.h>

Set the system memory wait states

void

CSUpdateSysWaits(ushort kHz)

<cf1bios.h>

Update the Flash, RAM, and CS wait states

void

CTDAClearEventFlag(DoubleActionID sm)

<cf1bios.h>

Clear the counter event flag

vushort*

CTDADataRegA(DoubleActionID sm)

<cf1bios.h>

Return pointer to counter's data register A

vushort*

CTDADataRegB(DoubleActionID sm)

<cf1bios.h>

Return pointer to counter's data register B

void

CTDAEdgeSelect(DoubleActionID sm, bool posB)

<cf1bios.h>

Select the counter clock edge

void

CTDAFlipFlops(DoubleActionID sm, bool forceA, bool forceB)

<cf1bios.h>

Force the counter flip flop

bool

CTDAGetEventFlag(DoubleActionID sm)

<cf1bios.h>

Return the counter event flag

DoubleActionID

CTDAGetIDFromPin(short pin)

<cf1bios.h>

Return CF1 DASM ID associated with pin number

short

CTDAGetPinFromID(DoubleActionID sm)

<cf1bios.h>

Return CF1 pin number associated with DASM ID

void

CTDAInterruptFunction(DoubleActionID sm, vfptr ifp)

<cf1bios.h>

Insert the counter interrupt handler

void

CTDAInterruptLevel(DoubleActionID sm, short il, short iarb3)

<cf1bios.h>

Set the counter IRQ and ARB levels

vushort*

CTDAModeSelect(DoubleActionID sm, DASMModeID mode)

<cf1bios.h>

Select the counter operating mode

void

CTDAReloadOPWM(DoubleActionID sm, ushort le, ushort te)

<cf1bios.h>

Reload double action OPWM output

void

CTDASetupOPWM(DoubleActionID sm, bool busB, bool posB, short bits, ushort le, ushort te)

<cf1bios.h>

Setup double action OPWM output

void

CTDATimeBaseBusSelect(DoubleActionID sm, bool busB)

<cf1bios.h>

Select counters time base

void

CTDAWiredOrMode(DoubleActionID sm, bool wom)

<cf1bios.h>

Select wired or output mode

void

CTFRClearCOFFlag(void)

<cf1bios.h>

Clear the free running counter overflow flag

CounterClockSourceID

CTFRClockSource(void)

<cf1bios.h>

Return free running counter clock source

vushort*

CTFRCounterReg(void)

<cf1bios.h>

Return pointer to free running counter

TimeBaseBusID

CTFRDrivesBuses(void)

<cf1bios.h>

Return FRCSM bus driving status

void

CTFRDriveTimeBase(bool drive, bool busB)

<cf1bios.h>

FRC drives and select time base A or B

bool

CTFRGetCOFFlag(void)

<cf1bios.h>

Return the free running counter overflow flag

void

CTFRInterruptFunction(vfptr ifp)

<cf1bios.h>

Insert the free running counter interrupt handler

void

CTFRInterruptLevel(short il, short iarb3)

<cf1bios.h>

Set the free running counter IRQ and ARB levels

vushort*

CTFRSelectClockSource(CounterClockSourceID clksel)

<cf1bios.h>

Select free running counter clock source

void

CTMCClearCOFFlag(ModulusCounterID sm)

<cf1bios.h>

Clear the modulus counter overflow flag

CounterClockSourceID

CTMCClkSource(ModulusCounterID sm)

<cf1bios.h>

Return modulus counters Clock source

vushort*

CTMCCounterReg(ModulusCounterID sm)

<cf1bios.h>

Return pointer to modulus counter's counter reg

TimeBaseBusID

CTMCDrivesBuses(ModulusCounterID sm)

<cf1bios.h>

Return modulus counters buses driven

void

CTMCDriveTimeBase(ModulusCounterID sm, bool drive, bool busB)

<cf1bios.h>

MC drives and select time base A or B

bool

CTMCGetCOFFlag(ModulusCounterID sm)

<cf1bios.h>

Return the modulus counter overflow flag

void

CTMCInterruptFunction(ModulusCounterID sm, vfptr ifp)

<cf1bios.h>

Insert the modulus counter interrupt handler

void

CTMCInterruptLevel(ModulusCounterID sm, short il, short iarb3)

<cf1bios.h>

Set the modulus counter IRQ and ARB levels

vushort*

CTMCModulusReg(ModulusCounterID sm)

<cf1bios.h>

Return pointer to modulus counter's modulus reg

vushort*

CTMCSelectClockSource(ModulusCounterID sm, CounterClockSourceID clksel)

<cf1bios.h>

Select modulus counter clock source

void

CTMCSelectEdges(ModulusCounterID sm, bool pos, bool neg)

<cf1bios.h>

Select modulus counter clock edges

P6DivisorID

CTMGetPrescaleP6(void)

<cf1bios.h>

Return the prescaler ration selection

void

CTMInit(void)

<cf1bios.h>

Initialize the counter/timer module

bool

CTMPrescaleIsDiv3(void)

<cf1bios.h>

Return the prescaler divide by three flag

void

CTMPrescalerRun(bool run)

<cf1bios.h>

Start or stop the prescaler from running

void

CTMRun(bool run)

<cf1bios.h>

Start or stop the counter/timer module from running

void

CTMSetPrescale(CPSMDivisor div3, P6DivisorID p6select)

<cf1bios.h>

Set the clock sources and division ratios

vushort*

CTMTimeBaseReg(TimeBaseBusID timebase)

<cf1bios.h>

Select time base bus and return pointer

void

CTSAClearEventFlag(SingleActionID sm)

<cf1bios.h>

Clear the counter event flag

vushort*

CTSADataReg(SingleActionID sm)

<cf1bios.h>

Return pointer to counter's data register

void

CTSAEdgeSelect(SingleActionID sm, bool pos)

<cf1bios.h>

Select the counter clock edge

void

CTSAFlipFlop(SingleActionID sm, bool force)

<cf1bios.h>

Force the counter flip flop

bool

CTSAGetEventFlag(SingleActionID sm)

<cf1bios.h>

Return the counter event flag

SingleActionID

CTSAGetIDFromPin(short pin)

<cf1bios.h>

Return CF1 SASM ID associated with pin number

short

CTSAGetPinFromID(SingleActionID sm)

<cf1bios.h>

Return CF1 pin number associated with SASM ID

void

CTSAInterruptEnable(SingleActionID sm, bool enable)

<cf1bios.h>

Enable/disable counter interrupts

void

CTSAInterruptFunction(SingleActionID sm, vfptr ifp)

<cf1bios.h>

Insert the counter interrupt handler

void

CTSAInterruptLevel(SingleActionID sm, short il, short iarb3)

<cf1bios.h>

Set the counter IRQ and ARB levels

vushort*

CTSAModeSelect(SingleActionID sm, SASMModeID mode)

<cf1bios.h>

Select the counter operating mode

void

CTSATimeBaseBusSelect(SingleActionID sm, bool busB)

<cf1bios.h>

Select counters time base

char*

DateCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

DBRCalcFATType(ulong sectors, short nfats, short rsrvdsects)

<cf1pico.h>

Calculate FAT Type for partitions

void

DBRDisplayBootRecord(short logdrv)

<cf1pico.h>

Display the DOS Boot Record information

short

DBRFormat(short logdrv)

<cf1pico.h>

Format the DSD drive

short

DBRGetBootParamBlock(short logdrv, struct DPBPB *dpbpb)

<cf1pico.h>

Get the raw packed parameter block

short

DBRGetFatDirDatSectors(short logdrv, ulong *fatFirst, ulong *dirFirst, ulong *dataFirst, ulong *dataLast)

<cf1pico.h>

Fetch the DSD drive starting sectors for FATs, DIR, data

void

DBRPackParamBlock(struct DPBPB *dpbpb, struct DWBPB *dwbpb)

<cf1pico.h>

Pack and endian translate a working parameter block

void

DBRUnpackParamBlock(struct DWBPB *dwbpb, struct DPBPB *dpbpb)

<cf1pico.h>

Unpack and endian translate a raw parameter block

void

Delay100us()

<cf1bios.h>

MACRO DESC

void

Delay10us()

<cf1bios.h>

MACRO DESC

void

Delay1ms()

<cf1bios.h>

MACRO DESC

void

Delay1us()

<cf1bios.h>

MACRO DESC

void

Delay200us()

<cf1bios.h>

MACRO DESC

void

Delay20us()

<cf1bios.h>

MACRO DESC

void

Delay2us()

<cf1bios.h>

MACRO DESC

void

Delay500us()

<cf1bios.h>

MACRO DESC

void

Delay50us()

<cf1bios.h>

MACRO DESC

void

Delay5us()

<cf1bios.h>

MACRO DESC

char*

DelCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

DirCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

DIRFindEnd(struct dirent *dp)

<cf1pico.h>

Conclude directory search

short

DIRFindFirst(char *path, struct dirent *dp)

<cf1pico.h>

Find first directory entry starting at path

short

DIRFindNext(struct dirent *dp)

<cf1pico.h>

Find next directory entry

long

DIRFreeSpace(char *drive)

<cf1pico.h>

Return free space on specified drive

char*

DIRGetVolumeLabel(char *drive)

<cf1pico.h>

Return the drives volume label

bool

DIRMatchName(char *filename, char *pattern)

<cf1pico.h>

Return true if filename matches ambiguous pattern

ulong

DIRSerialNumber(char *drive)

<cf1pico.h>

Return the drives serial number

short

DIRSetVolumeLabel(short logdrv, char *label)

<cf1pico.h>

Set the drives volume label

long

DIRTotalSpace(char *drive)

<cf1pico.h>

Return total space on specified drive

bool

DIRValidChar(char c, bool dot, bool ambig)

<cf1pico.h>

Return true if valid char for filenames

short

DSDCapacity(short logdrv, ulong *sectors, ushort *spt, ushort *heads, struct ATADriveID **info)

<cf1pico.h>

Fetch the logical DOS drive capacity and geometry

short

DSDGetBSD(short logdrv)

<cf1pico.h>

Return the BSD ID associated with this BSD

short

DSDGetCurrentDrive(void)

<cf1pico.h>

Return the current default DOS drive

char*

DSDGetCurrentWorkingDir(short logdrv)

<cf1pico.h>

Return the current working directory

bool

DSDMediaCheck(short logdrv)

<cf1pico.h>

Return true if hardware and media are available

short

DSDMountATADevice(char *name, void *iodvr, ushort prtn, short logdrv)

<cf1pico.h>

Mount a DOS drive to a specific ATA drive and partition

short

DSDMountDrive(ushort bsdid, short logdrv)

<cf1pico.h>

Mount a logical DOS drive to an assigned drive letter

short

DSDReadSectors(short logdrv, ulong sector, void *buffer, short count)

<cf1pico.h>

Read logical device (LBA) sector(s)

void

DSDReset(void)

<cf1pico.h>

Reset DSD tables and dismount all logical drives

void

DSDResetOptimizations(short logdrv)

<cf1pico.h>

Reset any assumptions or optimizations

short

DSDSectorIO(bool write, short logdrv, ulong logsct, void *buffer, short count)

<cf1pico.h>

Read or write a DOS drive logical sector

short

DSDSetCurrentDrive(short logdrv)

<cf1pico.h>

Set the current default DOS drive

short

DSDSetCurrentWorkingDir(short logdrv, char *cwd)

<cf1pico.h>

Set the current working directory

short

DSDValidate(short logdrv)

<cf1pico.h>

Validate the requested logical drive number

short

DSDWriteSectors(short logdrv, ulong sector, void *buffer, short count)

<cf1pico.h>

Write logical device (LBA) sector(s)

char*

DumpCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

bool

EIAAssertTXX(bool set)

<cf1bios.h>

Assert /TXX

bool

EIACheckInvalid(void)

<cf1bios.h>

Return true if /INVALID is asserted (3223 only)

bool

EIACheckRXX(void)

<cf1bios.h>

Return true if /RXX is asserted (CMOS low, EIA positive)

bool

EIAEnableRx(bool enable)

<cf1bios.h>

Enable RS232 receivers

bool

EIAForceOff(bool forceoff)

<cf1bios.h>

Force RS232 transmitters off

bool

EIAForceOn(bool forceon)

<cf1bios.h>

Force MAX3223 on (ForceOff overrides)

short

EIAIdentifyDriver(void)

<cf1bios.h>

Identify the RS232 driver chip

void

EIAInit(void)

<cf1bios.h>

Initialize the RS232 driver chip

void

EIANotifyInvalid(vfptr who)

<cf1bios.h>

Notify function when /INVALID is asserted (3223 only)

void

EIANotifyRXXAsserts(vfptr who)

<cf1bios.h>

Notify function when /RXX is asserted

short

execstr(char *cmdstr)

<cf1pico.h>

Pass command string from running application to PicoDOS

void

ExitToPicoDOS(void)

<cf1bios.h>

DESC

int

fcntl(int fildes, int cmd, ...)

<fcntl.h>

DESC

char*

FdiskCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

ulong

FlashAutoSelect(void)

<cf1bios.h>

Return the flash manufacturers code word

void*

FlashBase(void)

<cf1bios.h>

Return the flash base address

void*

FlashCheckErased(void *flash, ulong len)

<cf1bios.h>

Return address of first non-erased word

bool

FlashCheckInFlash(void *testAddr)

<cf1bios.h>

Return true if address is in flash memory

void

FlashDisallowErase(void)

<cf1bios.h>

Disable flash routines from erasing until next reset

void

FlashDisallowWrite(void)

<cf1bios.h>

Disable flash routines from erasing until next reset

void

FlashEnableErrTrap(bool dotrap)

<cf1bios.h>

Enable/Disable flash error trapping

short

FlashEraseRange(void *flash, ulong len)

<cf1bios.h>

Erase blocks that fall in the specified range

short

FlashEraseSectors(uchar *sectorList)

<cf1bios.h>

Erase sectors specified in zero terminated list

short

FlashEraseWrite(void *flash, const void *source, ulong *bytecount)

<cf1bios.h>

Block write to the flash, erase if necessary

short*

FlashErasureCounts(void)

<cf1bios.h>

Return short[] array of flash sectors erase counts

short

FlashErrorSignal(short code, long offense)

<cf1bios.h>

Return error or take FlashErrorTrap

void

FlashErrorTrap(long code:__d0, long offense:__d1)

<cf1bios.h>

DESC

short

FlashGetWaits(void)

<cf1bios.h>

Return the current number of wait states for the flash

char*

FlashInfoString(void)

<cf1bios.h>

Return string describing flash "Am29LV800B-100"

short

FlashInit(void)

<cf1bios.h>

Initialize the flash chip selects and variables

ulong

FlashLastEraseTime(void)

<cf1bios.h>

Return last calendar time any part of flash was erased

void

FlashPostWrite(vushort saveSR)

<cf1bios.h>

Conclude flash write operation

short

FlashPreWrite(vushort *saveSR, void *firstAddr, void *lastAddr)

<cf1bios.h>

Prepare flash for write operation

short

FlashReservedSectors(void)

<cf1bios.h>

Return the number of reserved flash sectors

long

FlashSectorSize(short sector)

<cf1bios.h>

Return the sectors size in bytes

void**

FlashSectorStarts(void)

<cf1bios.h>

Return long[] array of flash sector start addresses

void

FlashSetWaits(short waits)

<cf1bios.h>

Set the number of wait states for the flash

long

FlashSize(void)

<cf1bios.h>

Return the flash size in bytes

short

FlashSpeedNanoSecs(void)

<cf1bios.h>

Return the flash access time in nanoseconds

short

FlashTotalSectors(void)

<cf1bios.h>

Return the total number of flash sectors

void*

FlashVerify(const void *flash, const void *source, ulong bytecount)

<cf1bios.h>

Block verify the flash

short

FlashWriteBlock(void *flash, const void *source, ulong *bytecount)

<cf1bios.h>

Block write to the flash (must be erased)

short

FlashWriteByte(uchar *flash, uchar byte)

<cf1bios.h>

Write a single byte to flash (must be ones to zeros)

short

FlashWriteWord(ushort *flash, ushort word)

<cf1bios.h>

Write a single word to flash (must be ones to zeros)

short

flogf(char *format, ...)

<cf1pico.h>

printf to console and log file (after Initflogf())

char*

FormatCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

int

fstat(int fd, struct stat *buf)

<stat.h>

DESC

short

getch(void)

<cf1bios.h>

MACRO uses CIOgetc()

char*

getcwd(char *buf, size_t size)

<unistd.h>

DESC

short

getstr(char *buf, short len)

<cf1bios.h>

MACRO uses CIOgets

char*

GoCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

HelpCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

bool

hexdump(void *mem, ulong addr, short wsize, long bytecount)

<cf1bios.h>

MACRO uses CIOhexdump

void

IEVCoreDump(long stmem:__d0)

<cf1bios.h>

Dump the decoded interrupt/exception captured information

void

IEVFillVectorTable(vfptr fp, short firstv, short lastv)

<cf1bios.h>

Fill interrupt/exception table range with whatever

void

IEVInit(void)

<cf1bios.h>

Fill interrupt/exception table with default catch

vfptr

IEVInsertAsmFunct(vfptr afp, short vector)

<cf1bios.h>

Install an assembler function into the vector table

vfptr

IEVInsertCFunct(IEVCWrapper *cfp, short vector)

<cf1bios.h>

Install a C function into the vector table

ushort

IEVSaveSRThenDisable(void):__d0

<cf1bios.h>

DESC

ushort

IEVSaveSRThenWriteSR(ushort ipmask:__d0):__d0

<cf1bios.h>

DESC

vfptr

IEVUnknownExceptionFunct(void)

<cf1bios.h>

Return generic unknown exception function

(void)

IEV_C_FUNCT(cef)

<cf1bios.h>

Define C Interrupt Handler Function

(void)

IEV_C_PROTO(cef)

<cf1bios.h>

Declare C Interrupt Handler Function Prototype

void

Initflog(char *fname, bool echoToConsole)

<cf1pico.h>

Setup for future flogf operations

int

isatty(int fildes)

<unistd.h>

DESC

short

kbflush(void)

<cf1bios.h>

MACRO uses CIOiflush

short

kbhit(void)

<cf1bios.h>

MACRO uses CIOgetq()

ushort

LEDGetState(ushort lrLED)

<cf1bios.h>

Return the current LED state

void

LEDInit(void)

<cf1bios.h>

Setup the LED drivers (turns both off)

void

LEDOrbit(bool ccw)

<cf1bios.h>

Orbit the LEDs on each call

void

LEDSetState(ushort lrLED, ushort state)

<cf1bios.h>

Set the LED state

void

LEDToggleRG(ushort lrLED)

<cf1bios.h>

Toggle LED between Red and Green

void

LEDToggleRGOff(ushort lrLED)

<cf1bios.h>

Toggle LED between Red, Green, and Off

char*

LoadMxCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

LoadSRecCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

void

LongBitClear(ulong lwrd, int bit)

<cf1bios.h>

MACRO DESC

void

LongBitSet(ulong lwrd, int bit)

<cf1bios.h>

MACRO DESC

void

LongBitTest(ulong lwrd, int bit)

<cf1bios.h>

MACRO DESC

void

LoopModeDelay (short count:__d0)

<cf1bios.h>

DESC

void

LoopModeMemCopyBytes(void *dst:__a1, void *src:__a0, short bytecount:__d0)

<cf1bios.h>

DESC

void

LoopModeMemCopyLongs(void *dst:__a1, void *src:__a0, short longcount:__d0)

<cf1bios.h>

DESC

void

LoopModeMemCopyWords(void *dst:__a1, void *src:__a0, short wordcount:__d0)

<cf1bios.h>

DESC

void

LoopModeMemSetBytes(void *dst:__a1, uchar b:__d1, short bytecount:__d0)

<cf1bios.h>

DESC

void

LoopModePortReadBytes(void *dst:__a1, void *src:__a0, short wordcount:__d0)

<cf1bios.h>

DESC

void

LoopModePortReadWords(void *dst:__a1, void *src:__a0, short wordcount:__d0)

<cf1bios.h>

DESC

void

LoopModePortWriteBytes(void *dst:__a1, void *src:__a0, short wordcount:__d0)

<cf1bios.h>

DESC

void

LoopModePortWriteWords(void *dst:__a1, void *src:__a0, short wordcount:__d0)

<cf1bios.h>

DESC

short

LoopModeWaitBitClear(void *addr:__a0, short bit:__d1, short timeout:__d0):__d0

<cf1bios.h>

DESC

short

LoopModeWaitBitSet(void *addr:__a0, short bit:__d1, short timeout:__d0):__d0

<cf1bios.h>

DESC

void

LPStop (void)

<cf1pico.h>

LPStop executes LPSTOP with options previously setup

long

lseek(int fildes, long offset, int whence)

<unistd.h>

DESC

void

MBRCalcHSC(ulong sector, ushort spt, ushort heads, uchar *head, ushort *sectcyl)

<cf1pico.h>

Calculate Head, Sector, and Cylinder from logical sector

void

MBRDisplayBootRecord(ushort ssdid)

<cf1pico.h>

Display the Master Boot Record information

short

MBRGetPartitionSectors(ushort ssdid, ulong sector, ushort prtn, bool onlyDOS, ulong *firstSect, ulong *lastSect)

<cf1pico.h>

Return partition type with start and end (LBA) sectors

long

MBRGetUsableSectors(ushort ssdid)

<cf1pico.h>

Return the number of sectors available for data

short

MBRMakePartitions(ushort ssdid, ulong sector, void *ptab)

<cf1pico.h>

Partition the drive from working table

short

MBRReadPartitionSector(ushort ssdid, ulong sector, uchar *psectbuf)

<cf1pico.h>

Read the partition sector containing the MBR

short

MBRReadPartitionTable(ushort ssdid, ulong sector, void *ptab)

<cf1pico.h>

Get the partition information

short

MBRWritePartitionSector(ushort ssdid, ulong sector, uchar *psectbuf)

<cf1pico.h>

Write the partition sector containing the MBR

short

MBRWritePartitionTable(ushort ssdid, ulong sector, void *ptab)

<cf1pico.h>

Write the partition information

char*

MemDispCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

MemListCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

MemModCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

MemReadCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

MemWriteCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

int

mkdir(const char *path, int mode)

<stat.h>

DESC

char*

MKDirCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

MountCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

void

NOP(void)

<cf1bios.h>

DESC

char*

NothingCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

int

open(const char *path, int oflag)

<fcntl.h>

DESC

short

pdcfinfo(char *drive, long *size, long *free)

<cf1pico.h>

Return PicoDOS file system size information

short

pdx_attrib(const char *path, uchar setatrb, uchar clratrb)

<cf1pico.h>

DESC

short

pdx_chdir(const char *path)

<cf1pico.h>

DESC

short

pdx_close(short fd)

<cf1pico.h>

DESC

ulong

pdx_copy(char *dst, char *src, short oflag, short vflag, void *buf, ulong bufsize)

<cf1pico.h>

DESC

short

pdx_creat(const char *path, long mode)

<cf1pico.h>

DESC

short

pdx_errno(bool clear)

<cf1pico.h>

DESC

short

pdx_fcntl(short fildes, short cmd, ...)

<cf1pico.h>

DESC

short

pdx_fstat(int fd, struct stat *buf)

<cf1pico.h>

DESC

char*

pdx_getcwd(char *buf, size_t size)

<cf1pico.h>

DESC

short

pdx_isatty(short fd)

<cf1pico.h>

DESC

long

pdx_lseek(short fd, long offset, short whence)

<cf1pico.h>

DESC

short

pdx_mkdir(const char *path, short mode)

<cf1pico.h>

DESC

short

pdx_open(const char *path, short oflag)

<cf1pico.h>

DESC

ulong

pdx_read(short fd, void *buf, ulong nbyte)

<cf1pico.h>

DESC

short

pdx_rename(const char *old, const char *nwn)

<cf1pico.h>

DESC

short

pdx_rmdir(const char *path)

<cf1pico.h>

DESC

short

pdx_stat(const char *path, struct stat *buf)

<cf1pico.h>

DESC

short

pdx_unlink(const char *path)

<cf1pico.h>

DESC

ulong

pdx_write(short fd, void *buf, ulong nbyte)

<cf1pico.h>

DESC

char*

picodosver(void)

<cf1pico.h>

Return a string containing PicoDOS version information

vptr

PICOHandlerAddress(short drvrid)

<cf1pico.h>

MACRO DESC

void

PICOInit(void *_pre_main_:__d0)

<cf1pico.h>

DESC

void

PICOMemAllocRegister(Callocf *callocf, Freef *freef)

<cf1pico.h>

Give PicoDOS access to application memory

vptr

PICOPatchInsert(short drvrid, vptr newf)

<cf1pico.h>

MACRO DESC

bool

PICOVersionCheck(short ver, short rel, char *id, bool reset)

<cf1pico.h>

Confirm application and PicoDOS compatibility

char*

PicoZoomCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

short

PinBus(short pin)

<cf1bios.h>

MACRO Make an I/O pin perform its alternate function

short

PinClear(short pin)

<cf1bios.h>

MACRO Configure I/O pin as output and set low

short

PinMirror(short pin)

<cf1bios.h>

MACRO Read an I/O pin, then configure as an output

short

PinRead(short pin)

<cf1bios.h>

MACRO Configure I/O pin as input and read level

short

PinSet(short pin)

<cf1bios.h>

MACRO Configure I/O pin as output and set high

short

PinTestAssertClear(short pin)

<cf1bios.h>

MACRO Return true if I/O pin is an output asserting low

short

PinTestAssertSet(short pin)

<cf1bios.h>

MACRO Return true if I/O pin is an output asserting high

short

PinTestIsItBus(short pin)

<cf1bios.h>

MACRO Return true if I/O pin is a bus function

short

PinToggle(short pin)

<cf1bios.h>

MACRO Configure I/O pin as output and toggle

short

PinWrite(short pin, short value)

<cf1bios.h>

MACRO Configure I/O pin as output and write level

short

PIOBusFunct(short pin)

<cf1bios.h>

Make an I/O pin perform its alternate function (varies)

short

PIOClear(short pin)

<cf1bios.h>

Configure I/O pin as output and set low

void

PIOEnableErrTrap(bool dotrap)

<cf1bios.h>

Enable/Disable PIO error trapping

short

PIOErrorSignal(short code, long offense)

<cf1bios.h>

Return error or take PIOErrorTrap

void

PIOErrorTrap(long code:__d0, long offense:__d1)

<cf1bios.h>

DESC

void

PIOInit(void)

<cf1bios.h>

Initialize I/O Pins States

short

PIOMaxPin(short code)

<cf1bios.h>

Return the maximum pin number

short

PIOMirror(short pin)

<cf1bios.h>

Read an I/O pin, then configure as an output

void

PIOMirrorList(uchar *pinlist)

<cf1bios.h>

MACRO Read I/O pins from list, then configure as output

void

PIOMirrorList(uchar *pinlist)

<cf1bios.h>

Read I/O pins from list, then configure as an output

short

PIORead(short pin)

<cf1bios.h>

Configure I/O pin as input and read level

short

PIOSet(short pin)

<cf1bios.h>

Configure I/O pin as output and set high

short

PIOTestAssertClear(short pin)

<cf1bios.h>

Return true if I/O pin is currently an asserting low

short

PIOTestAssertSet(short pin)

<cf1bios.h>

Return true if I/O pin is currently an asserting high

short

PIOTestIsItBus(short pin)

<cf1bios.h>

Return true if I/O pin is currently a bus function

short

PIOToggle(short pin)

<cf1bios.h>

Configure I/O pin as output and toggle current level

short

PIOWrite(short pin, short value)

<cf1bios.h>

Configure I/O pin as output and write level

bool

PITAddChore(vfptr chore, ushort intReqLevel)

<cf1bios.h>

Add a periodic interrupt chore

void

PITInit(ushort intReqLevel)

<cf1bios.h>

Initialize the periodic interrupt timer

ulong

PITPeriod(void)

<cf1bios.h>

Return PIT period setting in microseconds, zero if off

bool

PITRemoveChore(vfptr chore)

<cf1bios.h>

Remove a periodic interrupt chore (NULL vfptr for all)

void

PITSet100usPeriod(uchar per100us)

<cf1bios.h>

Set periodic interrupt timer period in 100us ticks

void

PITSet51msPeriod(uchar per51ms)

<cf1bios.h>

Set periodic interrupt timer period in 51ms ticks

char*

PortClrCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

PortMirrorCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

PortReadCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

PortSetCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

char*

PortToggleCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

long

PPBCheckRdAvail(void *ppb)

<cf1pico.h>

Return the number of bytes waiting to be read

long

PPBCheckWrFree(void *ppb)

<cf1pico.h>

Return the free space left before a wrap

void

PPBClose(void *ppb)

<cf1pico.h>

Close a ping-pong buffer (does not automatically flush)

short

PPBErrorCode(void *ppb, bool clear)

<cf1pico.h>

Return (and optionally clear) the ppb error code

short

PPBFlush(void *ppb)

<cf1pico.h>

Flush a ping-pong buffer and force a ping-pong flip

void*

PPBGetMemBuf(void *ppb, long *size, bool flush)

<cf1pico.h>

Return the read buffer and optionally zero the size

void*

PPBOpen(long totSize, void *buf, PPBRdf rdf, PPBWrf wrf, vfptr ppnotify)

<cf1pico.h>

Open and initialize a ping-pong buffer

short

PPBPutByte(void *ppb, uchar byte)

<cf1pico.h>

Write 8-bit byte into the ping-pong buffer

short

PPBPutWord(void *ppb, ushort word)

<cf1pico.h>

Write 16-bit word into the ping-pong buffer

long

PPBRead(void *ppb, void *buf, long nbyte)

<cf1pico.h>

Read data from the ping-pong buffer

long

PPBWrite(void *ppb, void *buf, long nbyte)

<cf1pico.h>

Write data into the ping-pong buffer

char*

PromptCmd(CmdInfoPtr cip)

<cf1pico.h>

DESC

void

putch(char c)

<cf1bios.h>

MACRO uses CIOputc(c)

void

putflush(void)

<cf1bios.h>

MACRO uses CIOoflush()

void

putstr(const char *str)

<cf1bios.h>

MACRO uses CIOputs with CF-LF

void

PWRLPStopSetup(bool stcpu, bool stsim, bool stext)

<cf1pico.h>

Setup LPSTOP, stcpu just cpu, stsim VCO, stext CLKOUT

bool

PWRPostChgAddChore(vfptr chore, ushort priority)

<cf1pico.h>

Add a power post-change chore

bool

PWRPostChgRemoveChore(vfptr chore)

<cf1pico.h>

Remove a power post-change chore

bool

PWRPreChgAddChore(vfptr chore, ushort priority)

<cf1pico.h>

Add a power pre-change chore

bool

PWRPreChgRemoveChore(vfptr chore)

<cf