mirror of
https://github.com/RevCurtisP/C02.git
synced 2025-02-17 21:30:34 +00:00
Removed shiftl, shiftr, and swap functions from stdlib
This commit is contained in:
parent
abe031958f
commit
88bd0605bb
@ -1,5 +1,8 @@
|
|||||||
Function Library Name Description
|
Function Library Name Description
|
||||||
abs stdlib Absolute Value Return absolute value of byte.
|
abs stdlib Absolute Value Return absolute value of byte.
|
||||||
|
adddst stddef Add Destination Add value to Destination Pointer.
|
||||||
|
addsrc stddef Add Source Add value to Source Pointer.
|
||||||
|
addzpw stddef Add Zero Page Word Add value to word in zero page
|
||||||
anykey stdiox Any Key Display "Any Key" prompt and wait for keypress.
|
anykey stdiox Any Key Display "Any Key" prompt and wait for keypress.
|
||||||
atoc stdlib ASCII to Character Convert numeric string to byte.
|
atoc stdlib ASCII to Character Convert numeric string to byte.
|
||||||
blkbgn block Block Begin Set beginning of block address.
|
blkbgn block Block Begin Set beginning of block address.
|
||||||
@ -15,30 +18,33 @@ blkstr block Block String Search block for segment beginning with
|
|||||||
blkswp block Block Swap Swap bytes of array with the current segment.
|
blkswp block Block Swap Swap bytes of array with the current segment.
|
||||||
blksrt block Block Sort Sort segments in block by initial string.
|
blksrt block Block Sort Sort segments in block by initial string.
|
||||||
button paddle Button Read paddle button controller status.
|
button paddle Button Read paddle button controller status.
|
||||||
|
chdir direct Change Directory Change to specified directory
|
||||||
|
chdrv direct Change Drive Change to specified drive
|
||||||
ctoa stdlib Character to ASCII Convert byte to numeric string.
|
ctoa stdlib Character to ASCII Convert byte to numeric string.
|
||||||
div stdlib Divide Divide two bytes.
|
div stdlib Divide Divide two bytes.
|
||||||
|
drvnam direct Drive Name Return name of specified drive
|
||||||
failed test Failed Write " Fail" to screen.
|
failed test Failed Write " Fail" to screen.
|
||||||
failln test Failed Line Write " Fail" plus newline to screen.
|
failln test Failed Line Write " Fail" plus newline to screen.
|
||||||
fclall file File Close All Close all files.
|
fclose fileio File Close Close file.
|
||||||
fclose file File Close Close file.
|
feof fileio File End of File Check for end of file condition.
|
||||||
feof file File End of File Check for end of file condition.
|
ferror fileio File Error Get file error information.
|
||||||
ferror file File Error Get file error information.
|
fflush fileio File Flush Flush output buffer to file.
|
||||||
fgetc file File Get Character Read character from file.
|
fgetc fileio File Get Character Read character from file.
|
||||||
fgets file File Get String Read string from file.
|
fgets fileio File Get String Read string from file.
|
||||||
fopen file File Open Open file.
|
fopen fileio File Open Open file.
|
||||||
florps test Fail or Pass Write " Fail" or " Pass" to screen.
|
florps test Fail or Pass Write " Fail" or " Pass" to screen.
|
||||||
flpsln test Fail or Pass Line Write " Fail" or " Pass" plus newline to screen.
|
flpsln test Fail or Pass Line Write " Fail" or " Pass" plus newline to screen.
|
||||||
fputc file File Put Character Write character to file.
|
fputc fileio File Put Character Write character to file.
|
||||||
fputs file File Put String Write string to file.
|
fputln fileio File Put Line Write line to file.
|
||||||
fread file File Read Read bytes from file.
|
fputs fileio File Put String Write string to file.
|
||||||
fschk file File System Check Check for valid file pointer
|
fread fileio File Read Read bytes from file.
|
||||||
fsdst file File Set Destination Set destination array for fread.
|
fsaddr fileio File Set Address Set address for fread, fwrite, fsave, or fload.
|
||||||
fsinit file File System Init Initialize file system.
|
fsinit fileio File System Init Initialize file system.
|
||||||
fsptr file File System Pointer Get unused file pointer.
|
fsname fileio File Set Name Set filename for fopen, fsave, or fload.
|
||||||
fssrc file File Set Source Set source array for fwrite.
|
fwrite fileio File Write Write bytes to file.
|
||||||
fstat file File System Status Get file pointer status.
|
|
||||||
fwrite file File Write Write bytes to file.
|
|
||||||
getc stdio Get Character Read character from keyboard.
|
getc stdio Get Character Read character from keyboard.
|
||||||
|
getcwd direct Get CWD Return current working directory
|
||||||
|
getdrv direct Get Drive Return current drive identifier
|
||||||
getdst stddef Get Destination Get address in Destination Pointer.
|
getdst stddef Get Destination Get address in Destination Pointer.
|
||||||
getprc stdiox Get Prompt Character Display prompt and wait for keypress.
|
getprc stdiox Get Prompt Character Display prompt and wait for keypress.
|
||||||
gets stdio Get String Read string from keyboard.
|
gets stdio Get String Read string from keyboard.
|
||||||
@ -71,11 +77,14 @@ mflush memio Memory Flush Flush memory file.
|
|||||||
mgetc memio Memory Get Character Read single character from memory file.
|
mgetc memio Memory Get Character Read single character from memory file.
|
||||||
mgets memio Memory Get String Read string from memory file.
|
mgets memio Memory Get String Read string from memory file.
|
||||||
min stdlib Minimum Return lesser of two byte.
|
min stdlib Minimum Return lesser of two byte.
|
||||||
|
mkdir direct Make Directory Create specified directory
|
||||||
mopen memio Memory Open Open memory file.
|
mopen memio Memory Open Open memory file.
|
||||||
mputc memio Memory Put Character Write single character to memory file.
|
mputc memio Memory Put Character Write single character to memory file.
|
||||||
mputln memio Memory Put String Write string followed by newline to memory file.
|
mputln memio Memory Put String Write string followed by newline to memory file.
|
||||||
mputs memio Memory Put String Write string to memory file.
|
mputs memio Memory Put String Write string to memory file.
|
||||||
mult stdlib Multiply Multiply two bytes.
|
mult stdlib Multiply Multiply two bytes.
|
||||||
|
opndir dirent Open Directory Open directory for reading
|
||||||
|
pack bitlib Pack nybbles Pack two nybbles into a single byte.
|
||||||
paddle paddle Paddle Read paddle controller position.
|
paddle paddle Paddle Read paddle controller position.
|
||||||
passed test Passed Write " Pass" to screen.
|
passed test Passed Write " Pass" to screen.
|
||||||
passln test Passed Line Print " Pass" plus newline to screen.
|
passln test Passed Line Print " Pass" plus newline to screen.
|
||||||
@ -106,10 +115,16 @@ putsub stdio Put Substring Write substring to screen.
|
|||||||
putwrd stdiox Put Word Write address to screen as hexadecimal number.
|
putwrd stdiox Put Word Write address to screen as hexadecimal number.
|
||||||
rand stdlib Random Generate pseudorandom number.
|
rand stdlib Random Generate pseudorandom number.
|
||||||
rands stdlib Random Seed Seed random number generator.
|
rands stdlib Random Seed Seed random number generator.
|
||||||
ressrc stddef Restore Destination Restore Destination Pointer from TEMP variables.
|
rddir dirent Read Directory Read Directory Entry
|
||||||
|
rdhdr dirent Read Header Read Directory Header
|
||||||
|
rmdir direct Remove Directory Remove specified directory
|
||||||
|
resdst stddef Restore Destination Restore Destination Pointer from TEMP variables.
|
||||||
resreg stddef Restore Registers Restore A, X, and Y registers from TEMP variables.
|
resreg stddef Restore Registers Restore A, X, and Y registers from TEMP variables.
|
||||||
resrxy stddef Restore Reg. X and Y Restore X, and Y registers from TEMP variables.
|
resrxy stddef Restore Reg. X and Y Restore X, and Y registers from TEMP variables.
|
||||||
ressrc stddef Restore Source Restore Source Pointer from TEMP variables.
|
ressrc stddef Restore Source Restore Source Pointer from TEMP variables.
|
||||||
|
rotl bitlib Rotate Left Rotate byte left specified number of bits.
|
||||||
|
rotr bitlib Rotate Right Rotate byte right specified number of bits.
|
||||||
|
savdst stddef Save Destination Save Destination Pointer in TEMP variables.
|
||||||
savreg stddef Save Registers Save A, X, and Y registers in TEMP variables.
|
savreg stddef Save Registers Save A, X, and Y registers in TEMP variables.
|
||||||
savrxy stddef Save Reg. X and Y Save X, and Y registers in TEMP variables.
|
savrxy stddef Save Reg. X and Y Save X, and Y registers in TEMP variables.
|
||||||
savsrc stddef Save Source Save Source Pointer in TEMP variables.
|
savsrc stddef Save Source Save Source Pointer in TEMP variables.
|
||||||
@ -117,8 +132,8 @@ setdss stddef Set Dest. Source Set Destination Pointer to Source Pointe
|
|||||||
setdst stddef Set Destination Set Destination Pointer to address.
|
setdst stddef Set Destination Set Destination Pointer to address.
|
||||||
setsrc stddef Set Source Set Source Pointer to address.
|
setsrc stddef Set Source Set Source Pointer to address.
|
||||||
setsrd stddef Set Source Dest. Set Source Pointer to Destination Pointer.
|
setsrd stddef Set Source Dest. Set Source Pointer to Destination Pointer.
|
||||||
shiftl stdlib Shift Left Shift byte left specified number of bits.
|
shiftl bitlib Shift Left Shift byte left specified number of bits.
|
||||||
shiftr stdlib Shift Right Shift byte right specified number of bits.
|
shiftr bitlib Shift Right Shift byte right specified number of bits.
|
||||||
stkbgn stack Stack Begin Set start of stack address.
|
stkbgn stack Stack Begin Set start of stack address.
|
||||||
stkdup stack Stack Duplicate Duplicate top entry of stack.
|
stkdup stack Stack Duplicate Duplicate top entry of stack.
|
||||||
stkend stack Stack End Set end of stack address.
|
stkend stack Stack End Set end of stack address.
|
||||||
@ -144,7 +159,8 @@ strpbk stringx String Pointer Break Find first character in destination foun
|
|||||||
strrch string String Reverse Char Search for character from end of string.
|
strrch string String Reverse Char Search for character from end of string.
|
||||||
strspn stringx String Span Return length of span in destination found in string.
|
strspn stringx String Span Return length of span in destination found in string.
|
||||||
strstr string String String Search for string in destination string.
|
strstr string String String Search for string in destination string.
|
||||||
swap stdlib Swap nybbles Swaps the upper and lower nybbles in a byte.
|
swap bitlib Swap nybbles Swaps left and right nybbles in byte.
|
||||||
tolowr ctype To Lowercase Convert character to lowercase.
|
tolowr ctype To Lowercase Convert character to lowercase.
|
||||||
touppr ctype To Uppercase Convert character to uppercase.
|
touppr ctype To Uppercase Convert character to uppercase.
|
||||||
trufls test True or False Convert value to #TRUE or #FALSE.
|
trufls test True or False Convert value to #TRUE or #FALSE.
|
||||||
|
unpack bitlib Unpack nybbles Unpack byte into two nybbles.
|
||||||
|
@ -24,42 +24,57 @@ module. The available modules are as follows:
|
|||||||
|
|
||||||
stddef Standard Definitions
|
stddef Standard Definitions
|
||||||
|
|
||||||
Contains commonly used constants, as well as base
|
Commonly used constants, as well as base functions
|
||||||
functions common to nearly every other module.
|
common to nearly every other module.
|
||||||
|
|
||||||
stdlib Standard Library
|
stdlib Standard Library
|
||||||
|
|
||||||
Includes the most commonly used functions, including
|
The most commonly used functions, including eight bit
|
||||||
mathematical operations and string/numeric conversions.
|
mathematical operations and string/numeric conversions.
|
||||||
|
|
||||||
|
bitlib Bit Library
|
||||||
|
|
||||||
|
Bit shift, rotate, and nybble manipulation functions
|
||||||
|
for 8-bit values.
|
||||||
|
|
||||||
|
intlib Integer Library
|
||||||
|
|
||||||
|
Mathematical, bit shifting and string/numeric
|
||||||
|
conversion functions for 16-bit values.
|
||||||
|
|
||||||
|
ctype Characted Type
|
||||||
|
|
||||||
|
Functions to detect character types and convert
|
||||||
|
between lower and upper case.
|
||||||
|
|
||||||
stdio Standard Input/Output
|
stdio Standard Input/Output
|
||||||
|
|
||||||
Contains functions for reading and writing characters
|
Functions for reading and writing characters
|
||||||
and strings from the keyboard and to the screen.
|
and strings from the keyboard and to the screen.
|
||||||
|
|
||||||
stdiox Standard Input/Output Extended
|
stdiox Standard Input/Output Extended
|
||||||
|
|
||||||
Contains functions for writing formatted data to the
|
Functions for writing formatted data to the
|
||||||
screen, including decimal and hexadecimal numbers.
|
screen, including decimal and hexadecimal numbers.
|
||||||
|
|
||||||
string String functions
|
string String functions
|
||||||
|
|
||||||
Contains functions for copying, searching, comparing,
|
Functions for copying, searching, comparing,
|
||||||
and concatenating strings.
|
and concatenating strings.
|
||||||
|
|
||||||
stringx String Extended
|
stringx String Extended
|
||||||
|
|
||||||
Contains the more powerful, but less frequently used
|
The more powerful, but less frequently used
|
||||||
string manipulation functions.
|
string manipulation functions.
|
||||||
|
|
||||||
memory Memory functions
|
memory Memory functions
|
||||||
|
|
||||||
Contains functions for copying, searching, and comparing
|
Functions for copying, searching, and comparing
|
||||||
arrays.
|
arrays.
|
||||||
|
|
||||||
block Block functions
|
block Block functions
|
||||||
|
|
||||||
Contains functions for reading, writing, and searching
|
Functions for reading, writing, and searching
|
||||||
for fixed length segments of data to an arbitrarily large
|
for fixed length segments of data to an arbitrarily large
|
||||||
section of memory.
|
section of memory.
|
||||||
|
|
||||||
@ -70,11 +85,22 @@ module. The available modules are as follows:
|
|||||||
|
|
||||||
memio Memory Input/Ouput
|
memio Memory Input/Ouput
|
||||||
|
|
||||||
Provides functions to simulate reading and writing to
|
Functions to simulate reading and writing to
|
||||||
a section of memory as though it were a file.
|
a section of memory as though it were a file.
|
||||||
|
|
||||||
fileio File Input/Ouput
|
fileio File Input/Ouput
|
||||||
|
|
||||||
Provides functions to access, read from, and write to
|
Functions to access, read from, and write to
|
||||||
files on cassette and/or disk.
|
files on cassette and/or disk.
|
||||||
|
|
||||||
|
dirent Directory Entry
|
||||||
|
|
||||||
|
Functions to read directories from disk, disk
|
||||||
|
like devices, and possibly tapes.
|
||||||
|
|
||||||
|
direct Directory Access
|
||||||
|
|
||||||
|
Functions to switch between, create and remove
|
||||||
|
directories, and to switch between devices.
|
||||||
|
|
||||||
|
|
@ -13,7 +13,7 @@ The following functions are defined:
|
|||||||
0 - 127 are considered positive, while the unsigned
|
0 - 127 are considered positive, while the unsigned
|
||||||
values 128 - 255 are considered negative.
|
values 128 - 255 are considered negative.
|
||||||
|
|
||||||
c = atoc(&s); Returns the numeric value of the string in array s.
|
c = atoc(s); Returns the numeric value of the string in array s.
|
||||||
|
|
||||||
Does not skip leading white-space characters and
|
Does not skip leading white-space characters and
|
||||||
stops when first non-digit character is encountered.
|
stops when first non-digit character is encountered.
|
||||||
@ -21,7 +21,7 @@ The following functions are defined:
|
|||||||
Overflows are ignored, so numbers greater than 255
|
Overflows are ignored, so numbers greater than 255
|
||||||
will be returned modulo 256.
|
will be returned modulo 256.
|
||||||
|
|
||||||
ctoa(c, &s); Stores the ASCII representation of usigned byte c
|
ctoa(c, &s); Stores the ASCII representation of unsigned byte c
|
||||||
as a null-terminated string in array s.
|
as a null-terminated string in array s.
|
||||||
|
|
||||||
The array must be dimensioned to at least 4 bytes.
|
The array must be dimensioned to at least 4 bytes.
|
||||||
@ -59,28 +59,6 @@ The following functions are defined:
|
|||||||
or getchr() function must called at least once before
|
or getchr() function must called at least once before
|
||||||
a rands(0) call.
|
a rands(0) call.
|
||||||
|
|
||||||
c = shiftl(b, n); Returns byte b shifted n bits to the left, filling
|
|
||||||
with 0's from the right.
|
|
||||||
|
|
||||||
If n is greater than 8, all bits will be shifted out,
|
|
||||||
and a value of 0 is treated as 256.
|
|
||||||
|
|
||||||
c = shiftr(b, n); Returns byte b shifted n bits to the right, filling
|
|
||||||
with 0's from the left.
|
|
||||||
|
|
||||||
If n is greater than 8, all bits will be shifted out,
|
|
||||||
and a value of 0 is treated as 256.
|
|
||||||
|
|
||||||
Note: Using the shiftl() or shiftr() functions with
|
|
||||||
an asignment generates 9 to 12 bytes of code, whereas
|
|
||||||
the << and >> post-operators generate either 2 or 3
|
|
||||||
bytes each. So for a constant number of shifts, the
|
|
||||||
post-operators will generate smaller code for less
|
|
||||||
than 5 shifts and will always be faster.
|
|
||||||
|
|
||||||
c = swap(b); Returns the byte b with the high and low nybbles
|
|
||||||
swapped.
|
|
||||||
|
|
||||||
Note: This library expects the following function to be defined
|
Note: This library expects the following function to be defined
|
||||||
|
|
||||||
setsrc(&s); Set source string pointer and initialize index
|
setsrc(&s); Set source string pointer and initialize index
|
||||||
|
@ -108,67 +108,6 @@ RANDS: ORA #$00 ;If Passed Value not 0
|
|||||||
ADC #$01 ;Else Add 1 or 2
|
ADC #$01 ;Else Add 1 or 2
|
||||||
BNE .RANDX ; then Store and Return
|
BNE .RANDX ; then Store and Return
|
||||||
|
|
||||||
;swap(byte) - Swap Low and High Nybbles in Byte
|
|
||||||
;Args: A = Byte to Swap
|
|
||||||
;Affects Y,N,Z,C
|
|
||||||
;Returns: A = Swapped Byte
|
|
||||||
SWAP: LDY #4 ;Set Count to 4 and Rotate Left
|
|
||||||
|
|
||||||
;rotatl(byte,count) - Rotate byte by count Bits to the Left
|
|
||||||
;Args = Byte to Rotate
|
|
||||||
;Y = Number of Bits to Rotate
|
|
||||||
;Affects X,Y,N,Z,C
|
|
||||||
;Returns: A = Rotated Byte
|
|
||||||
ROTATL: INY ;Pre-Increment Counter
|
|
||||||
.ROTALL DEY ;Decrement Counter
|
|
||||||
BEQ .ROTATX ;If Not Zero
|
|
||||||
ASL ; Shift Left One Bit
|
|
||||||
ADC #0 ; Copy Carry into Bit 0
|
|
||||||
BNE .ROTALL ; If Not Zero, Loop
|
|
||||||
.ROTATX RTS
|
|
||||||
|
|
||||||
;rotatr(byte,count) - Shift byte by count Bits to the Right
|
|
||||||
;Args = Byte to Rotate
|
|
||||||
;Y = Number of Bits to Rotate
|
|
||||||
;Affects Y,N,Z,C
|
|
||||||
;Returns: A = Rotated Byte
|
|
||||||
ROTATR: INY ;Pre-Increment Counter
|
|
||||||
.ROTALR DEY ;Decrement Counter
|
|
||||||
BEQ .ROTATX ;If Not Zero
|
|
||||||
LSR ; Shift Right One Bit
|
|
||||||
BCC .ROTATS ; If Carry Set
|
|
||||||
ORA #$80 ; Copy Carry into Bit 7
|
|
||||||
.ROTATS BNE .ROTALR ; If Not Zero, Loop
|
|
||||||
RTS
|
|
||||||
|
|
||||||
SHFTL4: LDY #4; ;Set Count to 4 and Shift Left
|
|
||||||
|
|
||||||
;shiftl(byte,count) - Shift byte by Count bits to the Left
|
|
||||||
;Args = Byte to Shift
|
|
||||||
;Y = Number of Bits to Rotate
|
|
||||||
;Affects Y,N,Z,C
|
|
||||||
;Returns: A = Shifted Byte
|
|
||||||
SHIFTL: INY ;Pre-Increment Counter
|
|
||||||
.SHIFLL DEY ;Decrement Counter
|
|
||||||
BEQ .SHIFTX ;If Not Zero
|
|
||||||
ASL ; Shift Byte to Left
|
|
||||||
BNE .SHIFLL ; and Loop if Not 0
|
|
||||||
.SHIFTX RTS
|
|
||||||
|
|
||||||
SHFTR4: LDY #4; ;Set Count to 4 and Shift Right
|
|
||||||
|
|
||||||
;shiftr(byte,count) - Shift byte by Count bits to the Right
|
|
||||||
;Args = Byte to Shift
|
|
||||||
;Y = Number of Bits to Rotate
|
|
||||||
;Affects Y,N,Z,C
|
|
||||||
;Returns: A = Shifted Byte
|
|
||||||
SHIFTR: INY ;Pre-Increment Counter
|
|
||||||
.SHIFLR DEY ;Decrement Counter
|
|
||||||
BEQ .SHIFTX ;If Not Zero
|
|
||||||
LSR ; Shift Byte to Right
|
|
||||||
BNE .SHIFLR ; and Loop if Not 0
|
|
||||||
RTS
|
|
||||||
|
|
||||||
;atoc(&s) - ASCII string TO Character
|
;atoc(&s) - ASCII string TO Character
|
||||||
;Args: Y,X = Address of String to Convert
|
;Args: Y,X = Address of String to Convert
|
||||||
;Uses: TEMP0, TEMP1
|
;Uses: TEMP0, TEMP1
|
||||||
@ -205,7 +144,7 @@ ATOC: JSR SETSRC ;Initialize Source String
|
|||||||
; TEMP2 = Hundreds Digit
|
; TEMP2 = Hundreds Digit
|
||||||
;Affects: C,N.Z
|
;Affects: C,N.Z
|
||||||
;Returns: A,Y = Length of String
|
;Returns: A,Y = Length of String
|
||||||
CTOA: JSR SETDST ;Initialize Source String
|
CTOA: JSR SETDST ;Initialize Destination String
|
||||||
LDY #0 ;Initialize Index into String
|
LDY #0 ;Initialize Index into String
|
||||||
JSR CUBCD ;Convert Accumulator to Unpacked BCD
|
JSR CUBCD ;Convert Accumulator to Unpacked BCD
|
||||||
LDA TEMP2 ;Get MSB
|
LDA TEMP2 ;Get MSB
|
||||||
@ -274,3 +213,5 @@ CVBCDT: LDA #0 ;Clear BCD Bytes
|
|||||||
BNE .CVBCDL ; Process Next Bit
|
BNE .CVBCDL ; Process Next Bit
|
||||||
PLP ;Restore Status Register
|
PLP ;Restore Status Register
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
ENDSUBROUTINE
|
||||||
|
@ -53,18 +53,6 @@ char mult();
|
|||||||
* Returns: Random number between 1 and 255 */
|
* Returns: Random number between 1 and 255 */
|
||||||
char rand();
|
char rand();
|
||||||
|
|
||||||
/* Shift Byte Left *
|
|
||||||
* Args: b - Byte to Shift *
|
|
||||||
* n - Number of Bits to Shift *
|
|
||||||
* Returns: Shifted Byte */
|
|
||||||
char shiftl();
|
|
||||||
|
|
||||||
/* Shift Byte Right *
|
|
||||||
* Args: b - Byte to Shift *
|
|
||||||
* n - Number of Bits to Shift *
|
|
||||||
* Returns: Shifted Byte */
|
|
||||||
char shiftr();
|
|
||||||
|
|
||||||
/* Seed Pseudo-Random Number Generator *
|
/* Seed Pseudo-Random Number Generator *
|
||||||
* Args: n - Seed number */
|
* Args: n - Seed number */
|
||||||
void srand();
|
void srand();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**************************************************
|
/*********************************
|
||||||
* TESTSLIB - Test Library stdlib.h02 for py65mon *
|
* SLIBTEST - Test Module stdlib *
|
||||||
**************************************************/
|
*********************************/
|
||||||
|
|
||||||
//Specify System Header using -H option
|
//Specify System Header using -H option
|
||||||
#include <stddef.h02>
|
#include <stddef.h02>
|
||||||
@ -119,50 +119,6 @@ char countr, rndnum, rndtbl[255];
|
|||||||
tstros: //Test rotatl(), rotatr(), swap()
|
tstros: //Test rotatl(), rotatr(), swap()
|
||||||
char lbyte, rbyte, obyte, sbyte, tbyte, scount;
|
char lbyte, rbyte, obyte, sbyte, tbyte, scount;
|
||||||
|
|
||||||
putstr("ROTATL(), SHIFTL()");
|
|
||||||
obyte = 0;
|
|
||||||
do {
|
|
||||||
if (!obyte & $F) putchr('.');
|
|
||||||
scount = 0; sbyte = obyte; tbyte = obyte;
|
|
||||||
do {
|
|
||||||
rbyte = rotatl(obyte, scount); if (rbyte <> tbyte) goto rtlerr;
|
|
||||||
lbyte = shiftl(obyte, scount); if (lbyte <> sbyte) goto shlerr;
|
|
||||||
sbyte<<;
|
|
||||||
temp0 = tbyte; tbyte<<; if (temp0:-) tbyte++;
|
|
||||||
scount++; if (scount == 8) scount = $F8;
|
|
||||||
} while (scount);
|
|
||||||
obyte ++;
|
|
||||||
} while (obyte);
|
|
||||||
prtok();
|
|
||||||
|
|
||||||
putstr("ROTATR(), SHIFTR()");
|
|
||||||
obyte = 0;
|
|
||||||
do {
|
|
||||||
if (!obyte & $F) putchr('.');
|
|
||||||
scount = 0; sbyte = obyte; tbyte = obyte;
|
|
||||||
do {
|
|
||||||
rbyte = rotatr(obyte, scount); if (rbyte <> tbyte) goto rtrerr;
|
|
||||||
lbyte = shiftr(obyte, scount); if (lbyte <> sbyte) goto shrerr;
|
|
||||||
sbyte>>;
|
|
||||||
temp0 = tbyte; tbyte>>; if (temp0 & 1) tbyte = tbyte | $80;
|
|
||||||
scount++; if (scount == 8) scount = $F8;
|
|
||||||
} while (scount);
|
|
||||||
obyte ++;
|
|
||||||
} while (obyte);
|
|
||||||
prtok();
|
|
||||||
|
|
||||||
putstr("SWAP()");
|
|
||||||
lbyte=0; do {
|
|
||||||
rbyte = 0; do {
|
|
||||||
obyte = lbyte & $f0; obyte = rbyte & $0f + lbyte;
|
|
||||||
tbyte = lbyte & $0f; tbyte = rbyte & $f0 + lbyte;
|
|
||||||
sbyte = swap(obyte);
|
|
||||||
if (sbyte <> tbyte) goto swperr;
|
|
||||||
rbyte = rbyte + $11;
|
|
||||||
} while (rbyte & $0f);
|
|
||||||
} while (lbyte & $0f);
|
|
||||||
prtok();
|
|
||||||
|
|
||||||
tstc2a: //Test ctoa();
|
tstc2a: //Test ctoa();
|
||||||
char srcchr, dstchr, tststr[4];
|
char srcchr, dstchr, tststr[4];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user