|C1, C2, C3||220pF||505-FKP2220/100/10||.30||3||.90|
|Q1, Q4, Q7||2N3906||512-2N3906TA||.20||3||.60|
|Q2, Q5, Q8||MJE15030||863-MJE15030G||1.60||3||4.80|
|Q3, Q6, Q9, Q10||2N3904||512-2N3904BU||.19||4||.76|
|R1, R5, R15||2K2||594-5073NW2K200JA100||.06||3||.18|
|R2, R12, R22||3K3||594-5073NW3K300J||.16||3||.48|
|R3, R13, R23||1K||594-5073NW1K000JA100||.06||3||.18|
|R4, R14, R24||82R||594-5073NW82R00J||.16||3||.48|
|R6, R16, R25||10K||594-5083NW10K00J||.10||3||.30|
|R7, R17, R26||220R||594-5073NW220R0JA100||.06||3||.18|
|R9, R19, R28||3K9||594-5073NW3K900J||.16||3||.48|
|R10, R20, R29||2K7||594-5073NW2K700JA100||.06||3||.18|
|R8, R18, R27||500R||72-T70YE-500||.81||3||2.43|
|R11, R21, R30||10K Trimpot, 0.5W||72-T70YE-10K||.81||3||2.43|
|L1, L2, L3||330uH||652-RLB9012-330KL||.55||3||1.65|
|C1, C2, C7, C10||100µF||647-UPW1V101MPD1TD||.18||4||.72|
|C3, C4, C6, C9, C14, C15, C17, C18, C20, C28, C34||0.1µF||594-A104K15X7RF5UAA||.08||11||.88|
|C22, C23, C24, C25||0.47µF||81-RDER71H474K1M1C03||.42||4||1.68|
|C33, C37, C38||0.001µF||594-H102K25X7RN63J5R||.07||3||.21|
|C19, C21, C26, C27||.47µF||505-MKS4.47/100/10P||.36||4||1.44|
|CR1, CR2, CR3, CR4||plastic rectifier||625-P600D-E3/73||.56||4||2.24|
|CR5, CR6, CR7, CR13, CR14, CR16, CR17, CR18, CR19, CR20, CR21, CR22, CR23, CR24||1N914||78-1N914-TAP||.06||14||.84|
|CR9, CR10, CR11, CR12, CR40, CR41, CR42, CR43, (CR48 optional)||1N4007||583-1N4007-B||.03||9||.27|
|CR15, CR25, CR31, CR32, CR33, CR34||LED||696-SLX-LX5093ID||.06||6||.36|
|CR26, CR44, CR45||1N754A||610-1N754A||.34||3||1.02|
|Q1, Q3, Q6, Q7, Q8, Q10, Q11, Q12, Q17, Q18, Q25, Q27||2N3904||512-2N3904BU||.19||12||2.28|
|Q2, Q4, Q5, Q9||2N3906||512-2N3906TA||.20||4||.80|
|Q15, Q21, Q14, Q20||2N5884G||863-2N5884G||4.29||4||17.16|
|Q16, Q22, Q26||MJE15030||863-MJE15030G||1.60||3||4.80|
|R5, R42, R43, R46||680R||594-5073NW680R0JA100||.06||4||.24|
|R6, R12||1K5, Resistor, 0.5W||594-5073NW1K500JA100||.06||2||.12|
|R70, R73||1K5, 2W||594-5083NW1K500J||.10||2||.20|
|R7, R49, R61||1K||594-5073NW1K000JA100||.06||3||.18|
|R8, R9, R11, R52||22K||594-5073NW22R00JA100||.06||4||.24|
|R14, R16, R27, R29||390R||594-5073NW390R0J||.16||4||.64|
|R18, R30||1R5||N/I not available||.00||2||.00|
|R22, R32, R57||4K7||594-5073NW4K700J||.16||3||.48|
|R26, R53, R55, R58||2K2||594-5073NW2K200JA100||.06||4||.24|
|R35, R37, R45, R48||22R||594-5083NW22R00J||.10||4||.40|
|R39, R50, R71, R72||1K2||594-5073NW1K200JA100||.06||4||.24|
|Fuse 3, Fuse 4||3A FB||504-BK/AGC-3-R||.45||2||.90|
|Fuse 1, Fuse 2||5A SB||693-8020.5018||.73||2||1.46|
I’d planned to skip the obvious Goodwill route, expecting to pay $8.99 for something that might have an incompatible tube inside. I figured garage sales and curbside throwaways would be a better bet. But on a whim – I had just dropped the kids off for a sleepover at Grandma’s farm – I stopped by Goodwill.
The place was so packed it was hard to maneuver through the aisles. That familiar Goodwill smell smacked me in the brain in my first few steps. I pondered how sometimes I find that smell repugnant, and other times vaguely comforting. I wasn’t sure how I felt about it that day, but I suspected I would make a beeline around the electronics wall then straight the frick out of there.
A 4 foot wall of shelves, that once held TVs, was picked over and now mostly empty. I quickly discovered why: 99¢ for all TVs, any size. All that remained were off brands, “Symphonics” and the like, tiny 9″ sets, ones with blurry screens, and one late 80’s RCA with woodgrain plastic, now mine.
I pulled out the $2 I had in my wallet to cover tax and then got a little bonus thrill to see the register light up the total amount including tax: 54¢.
Most people would put a modern switch mode PSU and trash this old dusty linear PSU. But most people are dongs. I, on the other hand, installed 4 new caps to prepare for another 20 years of gaming power! If this was original to the cabinet, this is from a 1983 Astron Belt.
I’ve been working on an arcade cabinet that I hope to make attractive enough for indoor use. Currently, I’m perfecting a home brew stenciling method with paper and x-acto blade. Currently, it looks like crap because spray color pass #2 didn’t meet my quality standards so I’m stripping and starting attempt #2.
Updated build info is hosted at the arcade controls forum: /topic,140477.msg1454480.html
Everyone has their own style when it comes to essential wordpress plug-ins. And although it’s subjective and entirely dependent on your site purpose and blogging style, everyone seems to consider their list definitive.
Well mine’s not definitive, but it’s pretty fucking good. With dozens of WP installs under my jockstrap, I’ve learned to separate the yolks from the whites.
For improved admin usability without bloat:
WP Best Tree By Rafael Marques
Category hierarchy on the back end. So obvious it should be built into WP.
Show Current Template by JOTAKI Taisuke
For theme modifications, this comes in handy.
WP All Import Pro By Soflyy
If your content comes from anywhere but your fingers.
Using custom post types?
Post Types Column Editor by Pippin Williamson
Custom Post Type UI by WebDevStudios.com
Advanced Custom Fields by Elliot Condon
External Permalinks Redux
By Erick Hitter & Oomph, Inc.
Are you read to program? Can you answer these questions?
Who’s mom makes the best mustard pie?
Memory locations are expressed in hexadecimal notation. While data and variables are often expressed in decimal notation.
$ indicates hex value
Each memory location is one byte and can hold only one thing. Each is individually numbered in hexadecimal. They can hold either data, or program instructions.
You’ve got 32k to work with, that’s 32768 “lockers” sequentially numbered from
$0000 to $7FFF
$C880 to $CBFF or $C800 to $C8FF if you’d like to direct address all your RAM using double plays.
6809 built-in instructions
Locker # instruction ;for example
$1000 deca ;deca is a mnemonic for a numbered instruction.
?: is the locker # essentially a line number?
Most locker ##’s are left out for the assembler to deal with. It can count, and account for instructions that take up more than one byte. We just tell it where to start.
ORG $0000 ;tells assembler to begin putting program code in mem location $0000
user_RAM EQU $C880 ;"EQU
EQU simply means equals. In this example, user_RAM is now a defined constant.
Registers are Vecto’s pockets. When data are in lockers, you can’t manipulate them, but once inside your pockets, you can play pool.
A,B,D,X,Y,U,S,PC,DP and CC
A = 1 byte, general-purpose register
B = 1 byte, general-purpose register
D = 2 byte combo of A & B
X & Y, both 2 byte registers used as pointers for for indexed-mode instructions
U & S, stack pointers
PC = program counter
DP = double play for direct addressing
CC = condition code (0, negative, carry, or borrow.)
LD = load
LDA means load a value into register A
Putting the number “3” in register A would be done thusly: LDA #3
ST = store
STA $C880 means store contents of register A into mem loc $C880
DECA decreases the value of Reg A by 1
INCA increases Reg A by 1
These only work directly on registers A and B, in so-called “inherent” addressing mode.”
Addressing modes for instruction data handling
(alternate targets for the instruction)
- Inherent (self-contained and takes no further arguments)
- Immediate (target of the instruction is an actual value that will follow the instruction immediately)
- Extended (means target is a memory location)
- Direct (uses a 1 byte shortcut)
Addressing mode examples:
LDA #$00 = immediate (loads value 0 into register A)
LDA $C880 = extended (loads contents of locker $C880 into register A)
DECA = inherent (decreases the A register by 1)
the above code demonstrates the use of direct mode. By transferring the memory location prefix $C8 into double play mode (DP,) LDA$80 saves two strokes and is equivalent to LDA $C880.
Program counter flow-altering instructions
JMP is jump. BRA is branch. Both are unconditional jumps. BRA is preferred when possible because it saves 1byte (jump takes 3, branch takes 2) but BRA only works for locations 127 bytes ahead or behind.
My gut is telling me to always use JMP because as the program expands locations close to the 127 limit may later get pushed beyond that 127. I would save changing JMP to BRA for final code optimization if the finished .bin maxes out 32k.
JSR = “jump to subroutine.”
BSR = “branch to subroutine.” (has same 127 byte ‘ahead or behind’ limit as BRA)
RTS = “return from subroutine.”
All the remaining program counter manoeuvre’s are conditional.
Condition code bits are: Half Carry (H), Negative (N), Zero (Z), Overflow (V) and
BEQ = Branch on equal
BNE = Branch if NOT EQUAL
Relative vs. Absolute
BRA, BEQ, and anything that starts with “B” or “LB” for long branch is RELATIVELY positioned while JMP and JSR are ABSOLUTEly positioned.
The number of bytes to jump is determined at the time of assembly.
You cannot branch (BRA) and jump (JMP) to the same labeled address within the same program. Chose one or the other but don’t mix. The assembler can’t deal. Chris T saved you from a mindless troubleshooting nightmare with that tip.
Here are Chris’s instructions for performing a loop 5 times.
loop_variable EQU $C880 ;Create a variable for looping LDA #$05 ;Initialise our loop STA loop_variable ;variable with a value of 5 loop_start: ;This is the label at the start of the loop LDA $C880 ;These are the instructions we want to repeat 5 times STA $C881 ;These are the instructions we want to repeat 5 times DEC loop_variable ;Subtract the loop_variable by 1 BNE loop_start ;If the loop variable is not Zero, jump to loop_start
I’m guessing line 2 doesn’t need the dollar sign and it should really be LDA #05 (?)
The goal: build a Vectrex controller using arcade-style pushbuttons and joystick & incorporate an auto-fire feature.
The result: Great stick! But as for the auto-fire, it’s back to the drawing board.