I started on octal assembler, as well (PDP-8e; had several; used to run the neutrino beam line at Fermilab). 3-pass paper tape assembler. 1 MB 14" hard drive. TED editor. 32K x 12 of core memory. Woo hoo!
Here's a little program I kept from back in the day:
//
// Warning: do not compile; unpredictable results!
//
// Subject: *** Top Secret Microsoft Code ***
// Project: Version - Windows 95
//
// Microsoft marketing strategy (MARKET.EXE)
//
#include nothing.h /* MS Network Connectivity library (for the lawyers) */
#define say(x) lie(x)
#define computeruser ALL_WANT_TO_BUY_OUR_BUGWARE
#define next_year soon
#define the_product_is_ready_to_ship another_beta_version
void main()
{
if (latest_window_version > one_month_old)
{
if (there_are_still_bugs)
market(bugfix);
if (sales_drop_below_certain_point)
raise(rumors_about_a_new_bugless_version);
}
while (everyone_chats_about_new_version)
{
make_false_promise(it_will_be_multitasking);
if (rumors_grow_wilder)
make_false_promise(it_will_be_plug_n_play);
if (rumors_grow_even_wilder)
{
market_time = ripe;
say("It will be ready in one month");
order(programmers, stop_fixing_bugs_in_old_version);
order(programmers, start_brainstorming_about_new_version);
order(marketing, permission_to_spread_nonsense);
vaporware = TRUE;
break;
}
}
switch (nasty_questions_by_the_worldpress)
{
case WHEN_WILL_IT_BE_READY:
say("It will be ready in ", today+30, "days. We're just testing.");
break;
case WILL_THIS_PLUG_AND_PLAY_THING_WORK:
say("Yes it will work.");
ask(programmers, why_does_it_not_work);
pretend(there_is_no_problem);
break;
case WHAT_ARE_MINIMAL_HARDWARE_REQUIREMENTS:
say("It will run on an 80386 with lightning speed \
due to its 32-bit architecture.");
inform(INTEL, "Pentium sales will rise skyhigh.");
inform(SAMSUNG, "Start a new memory chip plant 'cause all \
those customers will need at least 32 MB.");
inform(QUANTUM, "Thanks to our fatware, your sales will triple.");
get_big_bonus(INTEL, SAMSUNG, QUANTUM);
break;
case DOES_MICROSOFT_HAVE_TOO_MUCH_INFLUENCE:
say("Oh no, we're just here to make a better world for everyone.");
register(journalist, Big_Bill_Book);
when (time_is_right)
{
arrest(journalist);
brainwash(journalist);
when (journalist_says_windows95_is_bugfree)
{
order(journalist, "Write a nice objective article.");
release(journalist);
}
}
break;
}
while (vaporware)
{
++introduction_date; /* delay */
if (no_one_believes_there_will_be_a_release_anymore)
break;
say("It will be ready in ", today+30, " days.");
}
release(beta_version);
while (everyone_is_dumb_enough_to_buy_our_bugware)
{
bills_bank_account += 150 * megabucks;
release(new_and_improved_beta_version);
if (customers_report_installation_problems)
{
say("That is a hardware problem, not a software problem.");
if (smart_customer_says_but_you_promised_plug_n_play)
{
ignore(customer);
order(microsoft_intelligence_agency, "Watch this bastard.");
}
}
if (bills_bank_account > skyhigh && bills_marriage > two_years)
{
divorce(woman_that_was_beautiful_when_I_married_her);
wave(dollars, at_lusty_young_chicks);
marry(young_blond_virgin_with_big_tits);
if (tits_start_to_droop)
dump(young_blond_former_virgin);
}
if (there_is_a_competing_company)
{
steal(their_ideas);
accuse(company, stealing_our_ideas);
hire(lots_of_lawyers); /* in process.h */
wait(until_company_cannot_afford_another_lawsuit);
buy_out(company);
}
}
/* Now everyone realizes that we sell bugware */
/* and they're all mad as hell. */
order(plastic_surgeon, make_bill_look_like_poor_bastard);
buy(nice_little_island);
hire(harem);
laugh_at(everyone, for_buying_another_unfinished_version);
}
void bugfix()
{
charge(a_lot_of_money);
if (customer_says_he_does_not_want_to_pay_for_bugfix)
say("It's not a bugfix. It's a new version.");
if (customer_still_complains)
{
ignore(customer);
register(customer, Big_Bill_Book);
/* we'll get him when everyone's using Billware!!! */
}
}