Loading ...
Sorry, an error occurred while loading the content.

Re: [cosmacelf] Bootstrapping a new system from scratch

Expand Messages
  • Lee Hart
    ... Sounds pretty ambitious, but also a lot of fun! I think experience is a key ingredient. If you re doing it for the first time, there is a lot of
    Message 1 of 29 , Apr 24, 2013
    • 0 Attachment
      country_robot wrote:
      > Over the next several months I plan to bring up a whole 1802 system
      > from elf-equivalent with toggle switches to a system with a full
      > ASCII keyboard, video display, and 5-1/4" floppy disks...
      >
      > it is an ambitious project, but I've done most of the bits and
      > pieces before, though for other processors. Have I missed anything
      > important?

      Sounds pretty ambitious, but also a lot of fun!

      I think experience is a key ingredient. If you're doing it for the first
      time, there is a lot of "exploring" to do. A *lot* of time is spent
      researching, finding parts, building, debugging, backtracking, etc. If
      you're doing it a *second* time, and have full knowledge and information
      from the first, things go much faster! We can help with this.

      > 1) Build Baseline Elf (BE0) system with enough battery-backed RAM to
      > be useful for further development;

      This one is easy. The PE Elf articles are very clear and well debugged.
      If you're in a hurry, my Membership Card is the same thing on a PC
      board, with all the parts from one source.

      > 2) Add a hex keypad & write a brain-dead monitor (BDM) program kept
      > in RAM;

      Here you can copy one of the classic Elfs (Quest or Netronics). The
      Quest had a 32-byte "brain dead" monitor, for example.

      > 3) Using BDM, write & debug program to burn EPROMs;

      I can document that for you. The schematic to burn EPROMs on an Elf is
      almost trivial. Basically, it just adds a 555 timer (to wait-state the
      1802), and a transistor to switch the high programming voltage on/off.

      > 4) Program a BDM EPROM and incorporate into system (now BE1);

      An alternative approach is possible if you're using battery backed up
      RAM. Simply use it to store your program as you are developing it.

      > 5) Build a cheap-video-style interface for a small (5-1/2") B/W
      > monitor;

      The 1861 is the classic, but they are pretty limited and hard to get.
      There are in fact a dozen other ways to get video that aren't that much
      harder. For instance, use a serial terminal (PC running a terminal program).

      > 6) Upgrade the BDM to use video monitor & ASCII keyboard for simple
      > line editing;
      >
      > 7) Add Hex/ASCII dump facility to BDM
      >
      > 8) Upgrade BDM with single-line assembler/disassembler (no more hand
      > assembly!);
      >
      > 9) Add cursor-based screen editing capability (now BE2);
      >
      > 10) Bootstrap EPROM-based Forth kernel;

      If you're heading in the direction of FORTH, many of these steps will
      happen automatically. Incrementally bring up FORTH (or my old 8TH, which
      is half the size). Each FORTH "word" you write is a perfectly good
      subroutine in its own right, callable for general purpose use. When you
      have dozen of them, you have your brain-dead monitor. When you have a
      couple dozen, you have a more sophisticated monitor. When you get to 40
      or so, you have the entire FORTH kernal, and it can bring up the rest of
      the FORTH system. It is trivial to write an editor or assembler in FORTH.

      > 11) Write floppy disk I/O primitives;
      > 12) Write macro assembler in Forth;
      > 13) Write disk-based screen editor in Forth (now BE3);

      I don't think I would bother with mechanical disks. The drives you find
      today are likely to be old and buggy. Disks were also rare on 1802 systems.

      Aim for memory cartridges instead, like the old video games. With a
      modern chip inside, you have more memory than an 1802 could ever need
      anyway!

      For an operating system, look at ElfOS.

      --
      There ain't no rules around here. We're trying to accomplish something!
      -- Thomas A. Edison
      --
      Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
    • David W. Schultz
      ... EEPROM clearly meets the requirement of parts available in the time frame of 1975 to 1985. I don t know when the 28C16 first appeared but I purchased my
      Message 2 of 29 , Apr 25, 2013
      • 0 Attachment
        On 04/23/2013 07:38 PM, joshbensadon wrote:
        > Hi David, I think he doesn't want to take any short cuts. I believe
        > his goal is to experience the slow rocky road. I will admit he's got
        > more guts than me!
        >
        > :)J
        >

        EEPROM clearly meets the requirement of parts available in the time
        frame of 1975 to 1985. I don't know when the 28C16 first appeared but I
        purchased my stock of 2KX8 52B13s around 1982.

        --
        David W. Schultz
        http://home.earthlink.net/~david.schultz
        Returned for Regrooving
      • country_robot
        ... I ... I first became aware of -- relatively -- inexpensive EEPROMs around 1983-1984, about the same time 28-pin CMOS static RAM chips became commonly
        Message 3 of 29 , Apr 25, 2013
        • 0 Attachment
          --- In cosmacelf@yahoogroups.com, "David W. Schultz" wrote:
          >
          >
          > EEPROM clearly meets the requirement of parts available in the time
          > frame of 1975 to 1985. I don't know when the 28C16 first appeared but I
          > purchased my stock of 2KX8 52B13s around 1982.
          >
          > --
          > David W. Schultz

          I first became aware of -- relatively -- inexpensive EEPROMs around 1983-1984, about the same time 28-pin CMOS static RAM chips became commonly available. I remember modifying a VIC-20 RAM cartridge for battery backup about that time; it was 8K which I bumped up to 16K by fully populating the board. I somehow never got around to adding write-protection gating for it, so I was forever having to reinitialise the darned thing, which was painful because I was using the Datasette for "mass" storage. A mate of mine had a Rabbit fast-loader cartridge, and I attempted -- and failed -- to relocate the code to operate from my RAM cartridge. I never did find out what the trouble was.

          I guess I had bigger fish to fry, because my first floppy drive arrived around the same time, too. It was a hulking surplus single-side 8-inch drive I hoped to interface to a Xerox 820 board (also bought surplus, as a bare PCB) so I could run CP/M. The 820 board was about 14 inches square of pure awesomeness that really taught me how to solder. The boards were reputed to have been nickel-plated so they would store well, but that made 'em harder to solder. This was right before Just In Time Manufacturing methodologies made the notion of warehousing components hopelessly old fashioned. I suppose, given that the boards were surplus to begin with and Xerox went on the rocks in the computer market not long after, maybe JIT had something to it.

          I was as astonished as I could be when the thing worked first time, and I let out a whoop when it displayed (and passed) its power-on self-test on an open-frame TTL monitor -- also surplus.

          -Bobby
        • Lee Hart
          ... That sound about right. There were earlier serial EEPROMs in 8-pin packages, with tiny amounts of storage like 256 bits (not bytes). Intel s first bytewide
          Message 4 of 29 , Apr 26, 2013
          • 0 Attachment
            country_robot wrote:
            > I first became aware of -- relatively -- inexpensive EEPROMs around
            > 1983-1984, about the same time 28-pin CMOS static RAM chips became
            > commonly available.

            That sound about right. There were earlier serial EEPROMs in 8-pin
            packages, with tiny amounts of storage like 256 bits (not bytes).
            Intel's first bytewide versions appeared in their 1983 data book. Others
            came out with theirs around the same time.

            The early ones were a bit screwy. They still needed a high voltage 21v
            external supply for programming. You had to give it a write command and
            then wait for 10 msec or so, during which time you could not do anything
            else. Power consumption was quite high; like 100ma. If you use a real
            1983 chip, you will have to deal with all these "features".

            The more recent ones are far easier to use. So you may want to cheat,
            and use one of them. :-)

            > modifying a VIC-20 RAM cartridge...
            > built a Xerox 820 board...

            Great stuff! Brings back lots of memories.

            --
            The greatest pleasure in life is to create something that wasn't there
            before. -- Roy Spence
            --
            Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
          • country_robot
            ... quite high; like 100ma. If you use a real ... For the development environment I ll stick to period-available parts, though I m not going to try for correct
            Message 5 of 29 , Apr 27, 2013
            • 0 Attachment
              --- In cosmacelf@yahoogroups.com, Lee Hart wrote:
              >
              > country_robot wrote:
              > > ...
              > > 1983-1984, about the same time 28-pin CMOS static RAM chips became
              > > commonly available.
              >
              > ...
              > The early ones were a bit screwy. ...
              > Power consumption was quite high; like 100ma. If you use a real
              > 1983 chip, you will have to deal with all these "features".
              >
              > The more recent ones are far easier to use. So you may want to cheat,
              > and use one of them. :-)

              For the development environment I'll stick to period-available parts, though I'm not going to try for correct date codes. I draw the line there -- unless it's a part that's big, with a highly visible date-code, and it will also be seen in the final installation. (Frankly, I can't think of any such parts, off the top of my head, but you never know.)

              For the robot itself I am willing to be more flexible when using a part that would normally be hidden from view anyway, if it will save me a lot of grief. Low power, ease of programming/erasing/re-programming, low cost, good availability are all more important in the robot than the desktop.

              Back to the desktop development environment, though. I'm seriously considering using Group Code Recording for the floppy drives, variants of which Apple and Commodore used for their drives. I'll quote from Wikipedia article:

              "For the Apple II floppy drive, Steve Wozniak invented a floppy
              controller which (along with the drive itself) imposed two
              constraints:
                • Between any two one bits, there may be a maximum of one zero bit.
                • Each 8-bit byte must start with a one bit. The simplest
              scheme to ensure compliance with these limits is to records an
              extra "clock" transition before each data bit. This scheme is
              called differential Manchester encoding or FM (Frequency
              Modulation) or "4 and 4", and allows only 10 256-byte sectors
              per track to be recorded on a single-density 5¼ floppy.

              Wozniak realized that a more complex encoding scheme would allow
              each 8-bit byte on disk to hold 5 bits of useful data rather
              than 4 bits. This is because there are 34 bytes which have the
              top bit set and no two zero bits in a row. This encoding scheme
              became known as "5 and 3" encoding, and allowed 13 sectors per
              track; it was used for Apple DOS 3.1, 3.2, and 3.2.1, as well as
              for the earliest version of Apple CP/M. Later, the design of the
              floppy drive controller was modified to allow a byte on disk to
              contain up to one pair of zero bits in a row. This allowed each
              8-bit byte to hold 6 bits of useful data, and allowed 16 sectors
              per track. This scheme is known as "6 and 2", and was used on
              Apple Pascal, Apple DOS 3.3 and ProDOS, and later on the 400K
              and 800K 3½ disks on the Macintosh and Apple II. Apple did not
              originally call this scheme "GCR", but the term was later
              applied to it to distinguish it from IBM PC floppies which used
              the MFM encoding scheme.

              Independently, Commodore Business Machines created a Group Code
              Recording scheme for their Commodore 2040 floppy disk drive
              (launched in the spring of 1979). The relevant constraints on
              the 2040 drive were that no more than two zero bits could occur
              in a row, nor more than eight one bits in a row; the drive
              imposed no special constraint on the first bit in a byte. This
              allowed the use of a scheme similar to that used in 6250 tape
              drives. Every 4 bits of data are translated into 5 bits on disk,
              according to the following table:

                Nibble  Code   Nibble Code
                    0000  01010   1000  01001
                    0001  01011   1001  11001
                    0010  10010   1010  11010
                    0011  10011   1011  11011
                    0100  01110   1100  01101
                    0101  01111   1101  11101
                    0110  10110   1110  11110
                    0111  10111   1111  10101

              Note no code starts with two zero bits, nor ends with two zero
              bits. This ensures that regardless of the input data, the
              encoded data will never contain more than two zero bits in a
              row. Also note that with this encoding not more than eight one
              bits in a row are possible. Therefore Commodore used sequences
              of ten or more one bits in a row as synchronization mark.

              This more efficient GCR scheme, combined with an approach at
              constant bit-density recording by gradually increasing the clock
              rate (ZCAV) and storing more physical sectors on the outer
              tracks than on the inner ones (ZBR), enabled Commodore to fit
              170 KB on a standard single-sided single-density 5.25" floppy,
              where Apple fit 140 KB (with 6 and 2 GCR) or 114 KB (with 5 and
              3 GCR) and an FM-encoded floppy held only 88 KB.

              Similar, the 5.25" floppy drives of the Victor 9000 aka Sirius
              1, designed by Chuck Peddle, used a combination of 10-bit GCR
              and constant bit-density recording by gradually decreasing a
              drive's rotational speed for the outer tracks to achieve
              formatted capacities of 606 KB (single sided) / 1188 KB
              (double-sided) on 96 tpi media."

              (Apologies for such a long quote; I wanted to be sure I got the details right)

              The first two examples, Apple and Commodore, used the 6502, and information on their code & hardware is readily accessible. My question is: has anyone ever heard of someone trying a similar approach on a 1802 platform? The 1802 has the advantage of having DMA more or less built in, but I'm not sure if a direct translation of either Apple's or Commodore's techniques would be appropriate.

              In any case, I've just bought an old Apple Disk II (no controller) for experiments. For the robot side, though, I've got something else up my sleeve: I've also bought a (purportedly) working Coleco Adam system, complete with printer. I reckon my fictional 1975-1985 hacker will have had no qualms at all about smooshing an Adam into a sort of FrankenElf.

              I've been aching to muck around with the Datadrive tape system since I first heard about it. If nothing else, the tape drives will go on the robot, with the drive doors modified so the tapes can be clearly seen operating. It'd be great to use a few old Teac metal reel cassettes in the Datadrives; too bad collectors have driven up their cost beyond sanity on ebay.

              I don't know what the Datadrives will be doing, exactly, but I'm sure I can come up with something, maybe canned robotics speech segments.

              -Bobby
            • joshbensadon
              Hi Bobby, LoL @ FrankenELF. It s the Home Brew with Hindsight. ... Funny you should bring this up, I m currently working on a project using the Apple disk II.
              Message 6 of 29 , Apr 27, 2013
              • 0 Attachment
                Hi Bobby,


                LoL @ FrankenELF. It's the Home Brew with Hindsight.

                > "For the Apple II floppy drive, Steve Wozniak invented a floppy
                > controller

                Funny you should bring this up, I'm currently working on a project using the Apple disk II. Yes, Woz's design of the controller was very creative, using a ROM to create a microcode program.

                Chapter 9 of "Understanding the Apple II" by Jim Sather gives a very good and detailed technical description of the disk system.

                > I've also bought a (purportedly) working Coleco Adam system,
                > complete with printer.

                Good thing you have the printer. The power supply for the Adam is in the printer. Beware, I have heard that the printer produces some nasty EMI pulses, keep it away from other magnetic media.

                > I don't know what the Datadrives will be doing, exactly, but I'm sure I
                > can come up with something, maybe canned robotics speech segments.

                Let them do what they do best, collect data!

                :)J
              • David W. Schultz
                ... Between rolling my own drive electronics and purchasing a Western Digital 2797 floppy disk controller I know which way I would go. For double density data
                Message 7 of 29 , Apr 27, 2013
                • 0 Attachment
                  On 04/27/2013 04:18 AM, country_robot wrote:
                  > Back to the desktop development environment, though. I'm seriously
                  > considering using Group Code Recording for the floppy drives, variants
                  > of which Apple and Commodore used for their drives. I'll quote from
                  > Wikipedia article:
                  >

                  Between rolling my own drive electronics and purchasing a Western
                  Digital 2797 floppy disk controller I know which way I would go.

                  For double density data the bit rate is 250Kb/sec so you have to handle
                  a byte of data every 32 us. On an 1802 with a 2MHz clock that is once
                  every four 2 cycle instructions.

                  The fastest way to check for data in software is to connect the DRQ pin
                  to an EF line and use a nice short one instruction loop to wait for it.
                  In order to do this you must use interrupts to get you out of the loop.
                  Otherwise connect that pin to another EF line and make it a 2
                  instruction loop.

                  Reading the data requires an input instruction plus a register increment
                  for two more instructions. Finish up with a branch to the beginning. (If
                  really pressed for time as opposed to space, you could unroll this part
                  of the loop.)

                  So that looks like a four instruction read loop as required. But because
                  the actual read rate can vary a bit it would be really nice to have some
                  margin.

                  dloop: B1 dloop
                  INP 1
                  IRX
                  BR dloop

                  Writing data is a three instruction loop because the OUT instruction
                  does the increment of R(X) for you.

                  --
                  David W. Schultz
                  http://home.earthlink.net/~david.schultz
                  Returned for Regrooving
                • joshbensadon
                  Hi, A local electronics surplus store is having a contest to build a switch that turns on with a single click and off with a double click. No programmable
                  Message 8 of 29 , Apr 27, 2013
                  • 0 Attachment
                    Hi,

                    A local electronics surplus store is having a contest to build a switch that turns on with a single click and off with a double click. No programmable devices allowed, must all be done through regular logic.

                    It's open to the public. It sounds like a fun challenge, nothing big.

                    I plan to enter, although I don't enter to win, but for the fun.

                    Please see "Starwars Contest.pdf" in the files section.

                    Cheers,
                    Josh
                  • jdrose_8_bit
                    That seems like a lot of fun. Seems fairly simple too. Mr. Hart could design the winning circuit in his sleep. What is the first thing to do. Make the logic
                    Message 9 of 29 , Apr 27, 2013
                    • 0 Attachment
                      That seems like a lot of fun.

                      Seems fairly simple too. Mr. Hart could design the winning circuit in his sleep.

                      What is the first thing to do. Make the logic truth table?

                      Operation:

                      Button Push. LED on.
                      Button Push. No change.
                      Button Push. LED off.



                      Is there something like a 3 position 4017 counter?

                      1, 2 pins connected to LED and the number 3 pin not.

                      Each push button would cycle 1 step through the counter.
                      1 LED, IC, pushbutton and dropping resistor.



                      --- In cosmacelf@yahoogroups.com, "joshbensadon" <joshbensadon@...> wrote:
                      >
                      > Hi,
                      >
                      > A local electronics surplus store is having a contest to build a switch that turns on with a single click and off with a double click. No programmable devices allowed, must all be done through regular logic.
                      >
                      > It's open to the public. It sounds like a fun challenge, nothing big.
                      >
                      > I plan to enter, although I don't enter to win, but for the fun.
                      >
                      > Please see "Starwars Contest.pdf" in the files section.
                      >
                      > Cheers,
                      > Josh
                      >
                    • Lee Hart
                      ... It does sound entertaining. Part of the fun is that they excluded the automatic knee-jerk first choice of every young engineer by excluding microcomputers.
                      Message 10 of 29 , Apr 27, 2013
                      • 0 Attachment
                        "joshbensadon" wrote:
                        >> A local electronics surplus store is having a contest to build a
                        >> switch that turns on with a single click and off with a double
                        >> click. No programmable devices allowed, must all be done through
                        >> regular logic.

                        jdrose_8_bit wrote:
                        > That seems like a lot of fun. Seems fairly simple too. Mr. Hart could
                        > design the winning circuit in his sleep.

                        It does sound entertaining. Part of the fun is that they excluded the
                        automatic knee-jerk first choice of every young engineer by excluding
                        microcomputers. It's a classic think-outside-the-box problem! :-)

                        However, that still leaves you with dozens of ways to do it. I'll bet
                        you could pick every possible technology (mechanical, pneumatic,
                        hydraulic, electrical switch, relays, vacuum tubes, neon lamps,
                        transistors, ICs, even microcomputers *without* a program) and solve the
                        problem with every single one of them. Even a mad Rube Goldberg / Heath
                        Robinson solution could do it.

                        --
                        Failure is only the opportunity to begin again more intelligently.
                        -- Henry Ford
                        --
                        Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
                      • Charles Richmond
                        If the double-click is like the double-click of a mouse, then the clicks have to occur within a certain time of each other to count. Otherwise it s just two
                        Message 11 of 29 , Apr 27, 2013
                        • 0 Attachment
                          If the "double-click" is like the double-click of a mouse, then the
                          clicks have to occur within a certain time of each other to count.
                          Otherwise it's just two single clicks.

                          In most GUI systems (Windows, Mac OS, etc.) there is a place to set
                          the double-click time limit. Now, for this special-purpose digital
                          circuitry, I'd think that such an adjustment would *not* be
                          necessary... but I think you still should set a time limit between
                          clicks for the clicks to count as a double-click.


                          On Apr 27, 2013, at 3:43 PM, jdrose_8_bit wrote:

                          > That seems like a lot of fun.
                          >
                          > Seems fairly simple too. Mr. Hart could design the winning circuit
                          > in his sleep.
                          >
                          > What is the first thing to do. Make the logic truth table?
                          >
                          > Operation:
                          >
                          > Button Push. LED on.
                          > Button Push. No change.
                          > Button Push. LED off.
                          >
                          > Is there something like a 3 position 4017 counter?
                          >
                          > 1, 2 pins connected to LED and the number 3 pin not.
                          >
                          > Each push button would cycle 1 step through the counter.
                          > 1 LED, IC, pushbutton and dropping resistor.
                          >
                          > --- In cosmacelf@yahoogroups.com, "joshbensadon" <joshbensadon@...>
                          > wrote:
                          > >
                          > > Hi,
                          > >
                          > > A local electronics surplus store is having a contest to build a
                          > switch that turns on with a single click and off with a double
                          > click. No programmable devices allowed, must all be done through
                          > regular logic.
                          > >
                          > > It's open to the public. It sounds like a fun challenge, nothing
                          > big.
                          > >
                          > > I plan to enter, although I don't enter to win, but for the fun.
                          > >
                          > > Please see "Starwars Contest.pdf" in the files section.
                          > >
                          > > Cheers,
                          > > Josh
                          > >
                          >
                          >
                          > <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial;
                          > margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid
                          > #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-
                          > weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads
                          > { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-
                          > mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-
                          > decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; }
                          > #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700;
                          > font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad
                          > { margin-bottom: 10px; padding: 0 0; } #actions { font-family:
                          > Verdana; font-size: 11px; padding: 10px 0; } #activity { background-
                          > color: #e0ecee; float: left; font-family: Verdana; font-size: 10px;
                          > padding: 10px; } #activity span { font-weight: 700; } #activity
                          > span:first-child { text-transform: uppercase; } #activity span a
                          > { color: #5085b6; text-decoration: none; } #activity span span
                          > { color: #ff7900; } #activity span .underline { text-decoration:
                          > underline; } .attach { clear: both; display: table; font-family:
                          > Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach
                          > div a { text-decoration: none; } .attach img { border: none;
                          > padding-right: 5px; } .attach label { display: block; margin-
                          > bottom: 5px; } .attach label a { text-decoration: none; }
                          > blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-
                          > size: 13px; font-weight: 700; } .bold a { text-decoration: none; }
                          > dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p
                          > span { margin-right: 10px; font-family: Verdana; font-weight:
                          > 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-
                          > table div div a { text-decoration: none; } div.attach-table
                          > { width: 400px; } div.file-title a, div.file-title a:active,
                          > div.file-title a:hover, div.file-title a:visited { text-decoration:
                          > none; } div.photo-title a, div.photo-title a:active, div.photo-
                          > title a:hover, div.photo-title a:visited { text-decoration: none; }
                          > div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family:
                          > Verdana; font-size: 10px; font-weight: normal; } .green { color:
                          > #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; }
                          > #photos div { float: left; width: 72px; } #photos div div { border:
                          > 1px solid #666666; height: 62px; overflow: hidden; width: 62px; }
                          > #photos div label { color: #666666; font-size: 10px; overflow:
                          > hidden; text-align: center; white-space: nowrap; width: 64px; }
                          > #reco-category { font-size: 77%; } #reco-desc { font-size:
                          > 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /*
                          > border-right: 0px solid #000;*/ margin-right: 2px; padding-right:
                          > 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial,
                          > helvetica,clean, sans-serif; *font-size: small; *font: x-small; }
                          > #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg
                          > select, input, textarea { font: 99% Arial, Helvetica, clean, sans-
                          > serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:
                          > 100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo
                          > { padding-bottom: 10px; } #ygrp-msg p a { font-family: Verdana; }
                          > #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; }
                          > #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-
                          > reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a
                          > { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li
                          > { font-size: 77%; list-style-type: square; padding: 6px 0; } #ygrp-
                          > sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-
                          > family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text
                          > tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-
                          > right: none !important; } -->

                          --
                          +----------------------------------------+
                          |.....Charles and Francis Richmond.......|
                          |........................................|
                          |..plano dot net at aquaporin4 dot com...|
                          +----------------------------------------+
                        • William Donnelly
                          Yes. Otherwise the simplest solution is a 3-throw 3-pole pushbutton switch. That would actually pass their rules (I think), but isn t an ideal solution, and
                          Message 12 of 29 , Apr 27, 2013
                          • 0 Attachment
                            Yes.

                            Otherwise the simplest solution is a 3-throw 3-pole pushbutton switch.

                            That would actually pass their rules (I think), but isn't an ideal solution, and
                            kind of goes against the intrinsic nature of the contest and its ultimate goal. (?)

                            You could have a tiny rheostat that can be accessed with a tiny flat-blade screwdriver
                            to set the double-click timeout.

                            – Bill
                             
                            On 4/27/2013 10:48 PM, Charles Richmond wrote:
                            If the "double-click" is like the double-click of a mouse, then the  
                            clicks have to occur within a certain time of each other to count.   
                            Otherwise it's just two single clicks.
                            
                            In most GUI systems (Windows, Mac OS, etc.) there is a place to set  
                            the double-click time limit.  Now, for this special-purpose digital  
                            circuitry, I'd think that such an adjustment would *not* be  
                            necessary... but I think you still should set a time limit between  
                            clicks for the clicks to count as a double-click.
                            
                            

                          • Andrew Wasson
                            Yes, I was thinking that as well because if our young Jedi can bump the switch once in combat, he could most certainly bump it twice. I thought that rather
                            Message 13 of 29 , Apr 27, 2013
                            • 0 Attachment
                              Yes, I was thinking that as well because if our young Jedi can bump the switch once in combat, he could most certainly bump it twice. I thought that rather than specifically time the double click, I would discard the first off click if the second click didn't occur after a reasonable amount of time. Same sort of idea.

                              Andrew

                              On 2013-04-27, at 10:48 PM, Charles Richmond <old_computers@...> wrote:

                              > If the "double-click" is like the double-click of a mouse, then the
                              > clicks have to occur within a certain time of each other to count.
                              > Otherwise it's just two single clicks.
                              >
                              > In most GUI systems (Windows, Mac OS, etc.) there is a place to set
                              > the double-click time limit. Now, for this special-purpose digital
                              > circuitry, I'd think that such an adjustment would *not* be
                              > necessary... but I think you still should set a time limit between
                              > clicks for the clicks to count as a double-click.
                              >
                              >
                              > On Apr 27, 2013, at 3:43 PM, jdrose_8_bit wrote:
                              >
                              >> That seems like a lot of fun.
                              >>
                              >> Seems fairly simple too. Mr. Hart could design the winning circuit
                              >> in his sleep.
                              >>
                              >> What is the first thing to do. Make the logic truth table?
                              >>
                              >> Operation:
                              >>
                              >> Button Push. LED on.
                              >> Button Push. No change.
                              >> Button Push. LED off.
                              >>
                              >> Is there something like a 3 position 4017 counter?
                              >>
                              >> 1, 2 pins connected to LED and the number 3 pin not.
                              >>
                              >> Each push button would cycle 1 step through the counter.
                              >> 1 LED, IC, pushbutton and dropping resistor.
                              >>
                              >> --- In cosmacelf@yahoogroups.com, "joshbensadon" <joshbensadon@...>
                              >> wrote:
                              >>>
                              >>> Hi,
                              >>>
                              >>> A local electronics surplus store is having a contest to build a
                              >> switch that turns on with a single click and off with a double
                              >> click. No programmable devices allowed, must all be done through
                              >> regular logic.
                              >>>
                              >>> It's open to the public. It sounds like a fun challenge, nothing
                              >> big.
                              >>>
                              >>> I plan to enter, although I don't enter to win, but for the fun.
                              >>>
                              >>> Please see "Starwars Contest.pdf" in the files section.
                              >>>
                              >>> Cheers,
                              >>> Josh
                              >>>
                              >>
                              >>
                              >> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial;
                              >> margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid
                              >> #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-
                              >> weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads
                              >> { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-
                              >> mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-
                              >> decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; }
                              >> #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700;
                              >> font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad
                              >> { margin-bottom: 10px; padding: 0 0; } #actions { font-family:
                              >> Verdana; font-size: 11px; padding: 10px 0; } #activity { background-
                              >> color: #e0ecee; float: left; font-family: Verdana; font-size: 10px;
                              >> padding: 10px; } #activity span { font-weight: 700; } #activity
                              >> span:first-child { text-transform: uppercase; } #activity span a
                              >> { color: #5085b6; text-decoration: none; } #activity span span
                              >> { color: #ff7900; } #activity span .underline { text-decoration:
                              >> underline; } .attach { clear: both; display: table; font-family:
                              >> Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach
                              >> div a { text-decoration: none; } .attach img { border: none;
                              >> padding-right: 5px; } .attach label { display: block; margin-
                              >> bottom: 5px; } .attach label a { text-decoration: none; }
                              >> blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-
                              >> size: 13px; font-weight: 700; } .bold a { text-decoration: none; }
                              >> dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p
                              >> span { margin-right: 10px; font-family: Verdana; font-weight:
                              >> 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-
                              >> table div div a { text-decoration: none; } div.attach-table
                              >> { width: 400px; } div.file-title a, div.file-title a:active,
                              >> div.file-title a:hover, div.file-title a:visited { text-decoration:
                              >> none; } div.photo-title a, div.photo-title a:active, div.photo-
                              >> title a:hover, div.photo-title a:visited { text-decoration: none; }
                              >> div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family:
                              >> Verdana; font-size: 10px; font-weight: normal; } .green { color:
                              >> #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; }
                              >> #photos div { float: left; width: 72px; } #photos div div { border:
                              >> 1px solid #666666; height: 62px; overflow: hidden; width: 62px; }
                              >> #photos div label { color: #666666; font-size: 10px; overflow:
                              >> hidden; text-align: center; white-space: nowrap; width: 64px; }
                              >> #reco-category { font-size: 77%; } #reco-desc { font-size:
                              >> 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /*
                              >> border-right: 0px solid #000;*/ margin-right: 2px; padding-right:
                              >> 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial,
                              >> helvetica,clean, sans-serif; *font-size: small; *font: x-small; }
                              >> #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg
                              >> select, input, textarea { font: 99% Arial, Helvetica, clean, sans-
                              >> serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:
                              >> 100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo
                              >> { padding-bottom: 10px; } #ygrp-msg p a { font-family: Verdana; }
                              >> #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; }
                              >> #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-
                              >> reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a
                              >> { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li
                              >> { font-size: 77%; list-style-type: square; padding: 6px 0; } #ygrp-
                              >> sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-
                              >> family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text
                              >> tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-
                              >> right: none !important; } -->
                              >
                              > --
                              > +----------------------------------------+
                              > |.....Charles and Francis Richmond.......|
                              > |........................................|
                              > |..plano dot net at aquaporin4 dot com...|
                              > +----------------------------------------+
                              >
                              >
                              >
                              >
                              >
                              >
                              > ------------------------------------
                              >
                              > ========================================================
                              > Visit the COSMAC ELF website at http://www.cosmacelf.comYahoo! Groups Links
                              >
                              >
                              >
                            • Kevin
                              Honestly, this sounds like a job for an analog design.
                              Message 14 of 29 , Apr 28, 2013
                              • 0 Attachment
                                Honestly, this sounds like a job for an analog design.


                                --- In cosmacelf@yahoogroups.com, "joshbensadon" <joshbensadon@...> wrote:
                                >
                                > Hi,
                                >
                                > A local electronics surplus store is having a contest to build a switch that turns on with a single click and off with a double click. No programmable devices allowed, must all be done through regular logic.
                                >
                                > It's open to the public. It sounds like a fun challenge, nothing big.
                                >
                                > I plan to enter, although I don't enter to win, but for the fun.
                                >
                                > Please see "Starwars Contest.pdf" in the files section.
                                >
                                > Cheers,
                                > Josh
                                >
                              • Lee Hart
                                ... Let s see... *simplest* solution... Obviously, you can build an alternate-action pushbutton. Push once, it s on. Push again, it s off. Use a mechanism like
                                Message 15 of 29 , Apr 28, 2013
                                • 0 Attachment
                                  William Donnelly wrote:
                                  > the simplest solution is a 3-throw 3-pole pushbutton switch.

                                  Let's see... *simplest* solution...

                                  Obviously, you can build an alternate-action pushbutton. Push once, it's
                                  on. Push again, it's off. Use a mechanism like the clicker in a
                                  ballpoint pen, but modify it so it takes 3 clicks to make a cycle. The
                                  cycles would be off-on-on, so it only takes 1 click to turn it on, but 2
                                  clicks to turn off.

                                  If you want a simple electrical solution, build a voltage doubler with
                                  two diodes and two capacitors. The pushbutton connects either 0v or 5v
                                  to the input. Have some sensing circuit that needs more than 5v to turn
                                  on. Pick a load resistor to set the RC time constant for how closely
                                  together the two button pushes have to be.

                                  The sensing circuit can be almost anything; latching relay coil, vacuum
                                  tube, transistor, IC, etc.
                                  --
                                  The principal defect in a storage battery is its modesty. It does not
                                  spark, creak, groan, nor slow down under overload. It does not rotate.
                                  It works where it is, and will silently work up to the point of
                                  destruction without making any audible or visible signs of distress.
                                  -- Electrical Review, 1902
                                  --
                                  Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
                                • jdrose_8_bit
                                  ... That is an interesting idea. It violates the letter of the contest but not the spirit of the contest. Seems like the 1802 would be ideally suited for the
                                  Message 16 of 29 , Apr 28, 2013
                                  • 0 Attachment
                                    --- In cosmacelf@yahoogroups.com, Lee Hart <leeahart@...> wrote:

                                    >
                                    > Part of the fun is that they excluded the
                                    > automatic knee-jerk first choice of every young engineer by excluding
                                    > microcomputers. It's a classic think-outside-the-box problem! :-)
                                    >
                                    > However, that still leaves you with dozens of ways to do it... even microcomputers *without* a program)...
                                    >

                                    That is an interesting idea. It violates the letter of the contest but not the spirit of the contest.

                                    Seems like the 1802 would be ideally suited for the exercise. No program, no RAM, only the 1802 and external components.


                                    --- In cosmacelf@yahoogroups.com, William Donnelly <william@...> wrote:
                                    >
                                    > Yes.
                                    >
                                    > Otherwise the simplest solution is a 3-throw 3-pole pushbutton switch.
                                    >
                                    > That would actually pass their rules (I think)
                                    >

                                    I think so.


                                    --- In cosmacelf@yahoogroups.com, Andrew Wasson <awasson@...> wrote:
                                    >
                                    > Yes, I was thinking that as well because if our young Jedi can bump the switch once in combat, he could most certainly bump it twice. I thought that rather than specifically time the double click, I would discard the first off click if the second click didn't occur after a reasonable amount of time. Same sort of idea.
                                    >


                                    Indeed.

                                    After a relatively small lapse of time, the second setting essentially becomes the defacto ON setting from the perspective of the fencer.

                                    I think it is a very serious oversight by the contest designers to not include that function in the circuit.
                                  • jdrose_8_bit
                                    ... OK. The author of the contest does write but to turn it off, you have to push the button twice in succession. They do not define time limits of
                                    Message 17 of 29 , Apr 28, 2013
                                    • 0 Attachment
                                      --- In cosmacelf@yahoogroups.com, "jdrose_8_bit" <rarecoinbuyer@...> wrote:

                                      > --- In cosmacelf@yahoogroups.com, Andrew Wasson <awasson@> wrote:
                                      > >
                                      > > Yes, I was thinking that as well because if our young Jedi can bump the switch once in combat, he could most certainly bump it twice.
                                      >> I thought that rather than specifically time the double click, I would discard the first off click if the second click didn't occur after a reasonable amount of time.
                                      >>Same sort of idea.
                                      >
                                      >
                                      > I think it is a very serious oversight by the contest designers to not include that function in the circuit.
                                      >

                                      OK. The author of the contest does write "but to turn it off, you have to push the button twice in succession."

                                      They do not define time limits of "succession" but I guess it is implied that the second push must happen in a very short time.
                                    • Lee Hart
                                      ... For example, hard-wire the data bus for a Long Branch instruction. The pushbutton single-steps the 1802. The 1802 will do a Fetch, Execute, Execute, Fetch,
                                      Message 18 of 29 , Apr 28, 2013
                                      • 0 Attachment
                                        >> However, that still leaves you with dozens of ways to do it... even
                                        >> microcomputers *without* a program)...

                                        jdrose_8_bit wrote:
                                        > That is an interesting idea. It violates the letter of the contest
                                        > but not the spirit of the contest.
                                        >
                                        > Seems like the 1802 would be ideally suited for the exercise. No
                                        > program, no RAM, only the 1802 and external components.

                                        For example, hard-wire the data bus for a Long Branch instruction. The
                                        pushbutton single-steps the 1802. The 1802 will do a Fetch, Execute,
                                        Execute, Fetch, Execute, Execute... machine cycle sequence. So State
                                        Code output SC0 will be low, high, high, low, high high... Define
                                        low=off, and high=on and you have a solution. :-)

                                        --
                                        The most dangerous enemy of a better solution is an existing one that
                                        is just good enough. -- Eric S. Raymond
                                        --
                                        Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
                                      • Kevin
                                        But then you would have a program.
                                        Message 19 of 29 , Apr 28, 2013
                                        • 0 Attachment
                                          But then you would have a program.

                                          --- In cosmacelf@yahoogroups.com, Lee Hart <leeahart@...> wrote:
                                          >
                                          > For example, hard-wire the data bus for a Long Branch instruction.
                                        • jdrose_8_bit
                                          That is an interesting observation. Is the hard wiring basically a ROM program made of discrete components? Or is it a hardware extension of the logic gates
                                          Message 20 of 29 , Apr 28, 2013
                                          • 0 Attachment
                                            That is an interesting observation.

                                            Is the hard wiring basically a ROM program made of discrete components? Or is it a hardware extension of the logic gates built into the microprocessor?


                                            --- In cosmacelf@yahoogroups.com, "Kevin" <kriceslo@...> wrote:
                                            >
                                            > But then you would have a program.
                                            >
                                            > --- In cosmacelf@yahoogroups.com, Lee Hart <leeahart@> wrote:
                                            > >
                                            > > For example, hard-wire the data bus for a Long Branch instruction.
                                            >
                                          • Kevin
                                            It s both.
                                            Message 21 of 29 , Apr 28, 2013
                                            • 0 Attachment
                                              It's both.

                                              --- In cosmacelf@yahoogroups.com, "jdrose_8_bit" <rarecoinbuyer@...> wrote:
                                              >
                                              > That is an interesting observation.
                                              >
                                              > Is the hard wiring basically a ROM program made of discrete components? Or is it a hardware extension of the logic gates built into the microprocessor?
                                              >
                                              >
                                              > --- In cosmacelf@yahoogroups.com, "Kevin" <kriceslo@> wrote:
                                              > >
                                              > > But then you would have a program.
                                              > >
                                              > > --- In cosmacelf@yahoogroups.com, Lee Hart <leeahart@> wrote:
                                              > > >
                                              > > > For example, hard-wire the data bus for a Long Branch instruction.
                                              > >
                                              >
                                            • Lee Hart
                                              ... Yeah, it skirts the edge of the rules. I could see a judge deciding it either way. It s either a 1-instruction program , or just a way to connect logic
                                              Message 22 of 29 , Apr 28, 2013
                                              • 0 Attachment
                                                Lee Hart wrote:
                                                >>> For example, hard-wire the data bus for a Long Branch instruction.

                                                "Kevin" wrote:
                                                >> But then you would have a program.

                                                jdrose_8_bit wrote:
                                                > Is the hard wiring basically a ROM program made of discrete components? Or is it a hardware extension of the logic gates built into the microprocessor?

                                                Yeah, it skirts the edge of the rules. I could see a judge deciding it
                                                either way. It's either a 1-instruction "program", or just a way to
                                                connect logic gates and flip-flops to achieve the desired result. :-)

                                                --
                                                The trouble ain't that there's too many fools, but that lightning ain't
                                                distributed right. -- Mark Twain
                                                --
                                                Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
                                              • Lee Hart
                                                ... Actually, I think the way to go is to use the 1802 s DMA! -- You never change things by fighting the existing reality. To change something, build a new
                                                Message 23 of 29 , Apr 28, 2013
                                                • 0 Attachment
                                                  On 4/27/2013 11:21 AM, David W. Schultz wrote:
                                                  > Between rolling my own drive electronics and purchasing a Western
                                                  > Digital 2797 floppy disk controller I know which way I would go.
                                                  >
                                                  > For double density data the bit rate is 250Kb/sec so you have to handle
                                                  > a byte of data every 32 us. On an 1802 with a 2MHz clock that is once
                                                  > every four 2 cycle instructions.
                                                  >
                                                  > The fastest way to check for data in software is to connect the DRQ pin
                                                  > to an EF line and use a nice short one instruction loop to wait for it.

                                                  Actually, I think the way to go is to use the 1802's DMA!
                                                  --
                                                  You never change things by fighting the existing reality. To change
                                                  something, build a new model that makes the existing model obsolete. --
                                                  Buckminster Fuller
                                                  --
                                                  Lee A. Hart, http://www.sunrise-ev.com/LeesEVs.htm
                                                Your message has been successfully submitted and would be delivered to recipients shortly.