The P65 assembler is an assembler for the 6502 microprocessor (such as is
used in the Commodore 64, Apple II, and Nintendo Entertainment System)
written entirely in Perl. It is designed to be able to support a wide variety
of output formats, since many people will be using this to produce code that
an emulator would like to see.
Features of P65 :
- Highly portable
- Flexible output format
- Multiple file support
- Temporary label support
- Assemble-time expressions
- Symbol table management
- Optimal instruction selection
Often there are several possible providers of some functionality your
program needs, but you don't know which is available at the run site.
For example, one of the modules may be implemented with XS, or not in
the core Perl distribution and thus not necessarily installed.
Best.pm attempts to load modules from a list, stopping at the first
successful load and failing only if no alternative was found.
Carp::Assert::More is a set of wrappers around the Carp::Assert functions
to make the habit of writing assertions even easier.
Everything in here is effectively syntactic sugar. There's no technical
reason to use
assert_isa( $foo, 'HTML::Lint' );
instead of
assert( defined $foo );
assert( ref($foo) eq 'HTML::Lint' );
other than readability and simplicity of the code.
My intent here is to make common assertions easy so that we as programmers
have no excuse to not use them.
This module makes it easy to build classes using array based objects.
It's main goal is to allow one to create less memory hungry programs,
notably in memory-sensitive contexts such as mod_perl.
This module is little more than a cute way of defining constant subs in
your own package. Constant subs are very useful when dealing with array
based objects because they allow one to access array slots by name
instead of by index.
This is a multi-CPU macro assembler for many major 8-bit and 16-bit CPUs
which can assemble code for multiple CPUs in the same source file.
Current CPUs supported:
* RCA 1802
* MOS Technology 6502, 65C02 and 6502 with undocumented instructions
* WDC 65816 (lacks some addressing mode support)
* Motorola 6809
* Motorola 6800/6801/68HC11 and Hitachi 6303
* Motorola 6805/68HSC08
* Motorola 68HC16
* Motorola 68000/68010
* Intel 8051
* Intel 8080, 8085, and 8085 with undocumented instructions
* Fairchild F8
* Atari Jaguar "Tom" and "Jerry" coprocessors
* Zilog Z-80 and Nintendo Gameboy Z-80 variant
The GNU Autoconf Archive is a collection of more than 450 macros for GNU
Autoconf that have been contributed as free software by friendly supporters
of the cause from all over the Internet. Every single one of those macros
can be re-used without imposing any restrictions whatsoever on the licensing
of the generated configure script. In particular, it is possible to use all
those macros in configure scripts that are meant for non-free software.
Class::ObjectTemplate::DB extends Class::ObjectTemplate in one
simple way: the undefined() method.
The author finds this useful when representing classes based on
objects stored in databases (hence the name of the module).
That way an object can be created, without triggering a DB lookup.
Later if data is accessed and it is not currently present in the object,
it can be retrieved on an as-need basis.
This module provides an API for loading and saving of simple configuration
file records. Entries in the configuration file are essentially key,value
pairs, with the key and values separated by a single equals symbol. The
key consists only of alphanumeric characters. There are three types of
values, scalar values can contain anything except newlines. Trailing
whitespace will be trimmed unless the value is surrounded in double
quotes.
From Date::Simple(3) man page:
Dates are complex enough without times and timezones. This module may be used to
create simple date objects. It handles:
Validation:
Reject 1999-02-29 but accept 2000-02-29.
Interval arithmetic:
How many days were between two given dates? What date comes N days after
today?
Day-of-week calculation:
What day of the week is a given date?
It does NOT deal with hours, minutes, seconds, and time zones.
Date::Business provides the functionality to perform simple date manipulations
quickly. Support for calendar date and business date math is provided.
Business dates are weekdays only. Adding 1 to a weekend returns Monday,
subtracting 1 returns Friday.
The difference in business days between Friday and the following
Monday (using the diffb function) is one business day. The
number of business days between Friday and the following
Monday (using the betweenb function) is zero.