Project: Vulpotron 1000 Microcomputer
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Project: Vulpotron 1000 Microcomputer
"The Vulpotron 1000.
Your world, one byte at a time."
A little project of mine that I came up with recently. Has a bit of a story though.
The other day, I was going through the stock list of the campus electronic component store. They got all sorts of things; from the basics like resistors, capacitors and inductors, all the way to stuff like transistors and ICs. One of the entries caught my eye: TMP8085AP 8bit microprocessor, of which there were two available for the meager price of R12 each.
Curiosity ensued, and I found out that these, in fact, are Toshiba equivalents of the Intel 8085 microprocessor, designed in 1976. (The chips I got were manufactured in the 8th week of 1984, in Japan, no less.) The 8085 is software-compatible with the Intel 8080 microprocessor, used in computers like the Altair 8800, IMSAI 8080 and the MYCRO-I. The main difference is that the 8085 was made using the newer CMOS process instead of the NMOS process of the 8080. This meant that the 8085 required less support circuitry, and only needed a +5V power supply, opposed to needing +12V and -5V as well.
So this got me thinking... I had seen a couple homebrew computers that people made, why don't I make my own? I looked up what I might need, and searched around for components. Managed to source most of what I need: CPU, RAM, clock crystals and some support circuitry. What's still missing is the ROM and a keypad decoder for input. Output will initially be handled by two 7-segment LED displays, and eventually a 1602 LCD.
ROM is tricky business, due to requiring special equipment to program them, especially in the case of UV-EPROMs. I've found about three of these chips, but still need the programmer. What would be most ideal, would have been EEPROM or even nonvolatile RAM, due to not requiring 15 minutes under a UV light every time I want to erase them. But these are rare and/or expensive. (Nearly got some NV-RAM, but the eBay shop suddenly demanded $99 shipping on $2 parts, insta-nope.)
The keypad decoder is another tricky matter. The one I'm after is the 74C922. However, the campus component store asks an insane amount of money for such an old, discontinued part. I can get one of eBay for less, but it'd take forever to get here. So, I figured I'd try replicating its function using a PIC microcontroller (PIC16F628A) that cost me a quarter of what the decoder would. This would mean developing firmware that does the decoding, which isn't too complicated. This also opens the possibility of adding additional features the 74C922 could never offer, such as extra button inputs, status LEDs and so on.
That's about it really. Need to source/make those remaining parts and start building the computer. Might do the basic "free-running" circuit sometime soon. Everything will be done on breadboard for the time being, eventually moving over to semi-permanent stripboard. If things go well enough, I may even have PCBs made once the design is finalized and all bugs worked out. I'm also planning on having it run at various clock speeds, hence multiple crystals. Planned frequencies include: 2MHz, 3MHz, 5MHz and 6MHz. (Note, in the pictures that the crystals are marked to have a frequency double of what is mentioned. This is due to the TMP8085AP halving its input frequency for its internal frequency.)
Things like the operating system and applications will be addressed once the hardware has been finalized.
For those who are curious, the name is a combination of "Vulpes", Latin for fox, and "-tron", often used to denote electronics.
TL;DR: Lurigo gonna build a computer.
Here's some photos of some of the parts I have already.
Your world, one byte at a time."
A little project of mine that I came up with recently. Has a bit of a story though.
The other day, I was going through the stock list of the campus electronic component store. They got all sorts of things; from the basics like resistors, capacitors and inductors, all the way to stuff like transistors and ICs. One of the entries caught my eye: TMP8085AP 8bit microprocessor, of which there were two available for the meager price of R12 each.
Curiosity ensued, and I found out that these, in fact, are Toshiba equivalents of the Intel 8085 microprocessor, designed in 1976. (The chips I got were manufactured in the 8th week of 1984, in Japan, no less.) The 8085 is software-compatible with the Intel 8080 microprocessor, used in computers like the Altair 8800, IMSAI 8080 and the MYCRO-I. The main difference is that the 8085 was made using the newer CMOS process instead of the NMOS process of the 8080. This meant that the 8085 required less support circuitry, and only needed a +5V power supply, opposed to needing +12V and -5V as well.
So this got me thinking... I had seen a couple homebrew computers that people made, why don't I make my own? I looked up what I might need, and searched around for components. Managed to source most of what I need: CPU, RAM, clock crystals and some support circuitry. What's still missing is the ROM and a keypad decoder for input. Output will initially be handled by two 7-segment LED displays, and eventually a 1602 LCD.
ROM is tricky business, due to requiring special equipment to program them, especially in the case of UV-EPROMs. I've found about three of these chips, but still need the programmer. What would be most ideal, would have been EEPROM or even nonvolatile RAM, due to not requiring 15 minutes under a UV light every time I want to erase them. But these are rare and/or expensive. (Nearly got some NV-RAM, but the eBay shop suddenly demanded $99 shipping on $2 parts, insta-nope.)
The keypad decoder is another tricky matter. The one I'm after is the 74C922. However, the campus component store asks an insane amount of money for such an old, discontinued part. I can get one of eBay for less, but it'd take forever to get here. So, I figured I'd try replicating its function using a PIC microcontroller (PIC16F628A) that cost me a quarter of what the decoder would. This would mean developing firmware that does the decoding, which isn't too complicated. This also opens the possibility of adding additional features the 74C922 could never offer, such as extra button inputs, status LEDs and so on.
That's about it really. Need to source/make those remaining parts and start building the computer. Might do the basic "free-running" circuit sometime soon. Everything will be done on breadboard for the time being, eventually moving over to semi-permanent stripboard. If things go well enough, I may even have PCBs made once the design is finalized and all bugs worked out. I'm also planning on having it run at various clock speeds, hence multiple crystals. Planned frequencies include: 2MHz, 3MHz, 5MHz and 6MHz. (Note, in the pictures that the crystals are marked to have a frequency double of what is mentioned. This is due to the TMP8085AP halving its input frequency for its internal frequency.)
Things like the operating system and applications will be addressed once the hardware has been finalized.
For those who are curious, the name is a combination of "Vulpes", Latin for fox, and "-tron", often used to denote electronics.
TL;DR: Lurigo gonna build a computer.
Here's some photos of some of the parts I have already.
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
LURIGO, WHAT IS YOUR OCCUPATION?!?
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Computer and electronic engineering student.Sev wrote:LURIGO, WHAT IS YOUR OCCUPATION?!?
Why? o:
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
Thought so, most would never be so mad as to attempt such a feat. I wish you the best of luck. How good is your Assembly?
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
All the madness. 8DSev wrote:Thought so, most would never be so mad as to attempt such a feat. I wish you the best of luck. How good is your Assembly?
Thanks! Assembly ain't too bad, albeit a bit dusty. Did some for the Intel 8051 recently.
- Franky
- The Bad Guy
- Posts: 1748
- Joined: Tue Jan 01, 2013 12:32 am
- Gender: Male
- Sexual preference: Straight
- Species: Mortally Challenged Fox
- Region: Gauteng
- Location: Where bad things happen.
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Lurigo is the true Freefox. His electronic knowledge will one day initiate a resonance cascade.
- Dasc-Crescent
- Posts: 525
- Joined: Fri Sep 03, 2010 4:30 pm
- Gender: Male
- Sexual preference: Gay
- Species: Wolf
- Region: Other
- Location: Bangkok
Re: Project: Vulpotron 1000 Microcomputer
Thats so cool ^^
Can't wait to see updates
Can't wait to see updates
If the world's at large, why should I remain
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
I'm gonna use this computer to control the anti-mass spectrometer! 8DInpw wrote:Lurigo is the true Freefox. His electronic knowledge will one day initiate a resonance cascade.
Thanks! :DDasc-Crescent wrote:Thats so cool ^^
Can't wait to see updates
I'ma post more updates once I get the memory components and things.
- Adagio
- Warm Hearted
- Posts: 3589
- Joined: Tue Feb 07, 2012 7:06 am
- Gender: Male
- Sexual preference: Other
- Species: Snow Leopard
- Region: Gauteng
- Location: Pretoria, Silverton
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Awesome!! Love the name by the way! Vulpotron! Haha! Genius!
Do you only want to do a numeric keypad? Decoders for those should be simple enough to find?
What functionality do you want it to have? So you want it to be able to run software?
I have a programmer capable of programming EEPROMS and the such...(since we are only going to use the 8085 in Digits 3) give me the chip number and I'll see if my programmer supports it!
(or if you want to, look up E2P28, they're manufactured locally...)
Do you only want to do a numeric keypad? Decoders for those should be simple enough to find?
What functionality do you want it to have? So you want it to be able to run software?
I have a programmer capable of programming EEPROMS and the such...(since we are only going to use the 8085 in Digits 3) give me the chip number and I'll see if my programmer supports it!
(or if you want to, look up E2P28, they're manufactured locally...)
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Thanks! :DAdagio wrote:Awesome!! Love the name by the way! Vulpotron! Haha! Genius!
Do you only want to do a numeric keypad? Decoders for those should be simple enough to find?
What functionality do you want it to have? So you want it to be able to run software?
I have a programmer capable of programming EEPROMS and the such...(since we are only going to use the 8085 in Digits 3) give me the chip number and I'll see if my programmer supports it! :P
(or if you want to, look up E2P28, they're manufactured locally...)
It's gonna have a hexadecimal keypad for the first while. Decoders are quite expensive, hence developing one myself.
I'll add a full keyboard to it eventually, once it has a basic OS and stuff. Either gonna make that myself as well, or add PS/2 support for existing keyboards.
The eventual goal is to have it be able to run programs, maybe even some games once it's advanced enough. Also plan on adding a nice sound chip somewhere down the line too. Chiptunes~
The EPROM I have so far is a 27C512. Got a 27C256 as well.
- Adagio
- Warm Hearted
- Posts: 3589
- Joined: Tue Feb 07, 2012 7:06 am
- Gender: Male
- Sexual preference: Other
- Species: Snow Leopard
- Region: Gauteng
- Location: Pretoria, Silverton
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Something in the lines of a 74HC147 should do the trick, and be inexpensive... But it only handles 10 inputs, not 15 like hex... Still... I have some friends who have contacts at communica... They may have better prices...
The PIC16F628A has 16 port pins... So... Hmmm... Could work? But you'll only have 12 pins for input, assuming 4 bits for binary output... Could use a shift register, but that complicates things?
I'm curious... You're using C or Assembly for the coding... (I can't even imagine using Assembly for this! Haha!)
I'll check of my programmer supports your ROM's..
The PIC16F628A has 16 port pins... So... Hmmm... Could work? But you'll only have 12 pins for input, assuming 4 bits for binary output... Could use a shift register, but that complicates things?
I'm curious... You're using C or Assembly for the coding... (I can't even imagine using Assembly for this! Haha!)
I'll check of my programmer supports your ROM's..
- Adagio
- Warm Hearted
- Posts: 3589
- Joined: Tue Feb 07, 2012 7:06 am
- Gender: Male
- Sexual preference: Other
- Species: Snow Leopard
- Region: Gauteng
- Location: Pretoria, Silverton
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Here's a gift because I think your project is awesome!(Also because I can't sleep...)
This should do the same as a 12 bit to binary encoder...
This should do the same as a 12 bit to binary encoder...
Code: Select all
#INCLUDE <P16F628A.INC>
#DEFINE PIN0 PORTA, 0
#DEFINE PIN1 PORTA, 1
#DEFINE PIN2 PORTA, 2
#DEFINE PIN3 PORTA, 3
#DEFINE PIN4 PORTA, 4
#DEFINE PIN5 PORTA, 5
#DEFINE PIN6 PORTA, 6
#DEFINE PIN7 PORTA, 7
#DEFINE PIN8 PORTB, 0
#DEFINE PIN9 PORTB, 1
#DEFINE PIN10 PORTB, 2
#DEFINE PIN11 PORTB, 3
__CONFIG H’3D10’
BSF RP0
MOVLW .7
MOVWF CMCON
MOVLW B’00001111’
MOVWF TRISB
MOVLW .255
MOVWF TRISA
BCF RP0
TEST: BTFSC PIN0
GOTO PIN0H
BTFSC PIN1
GOTO PIN1H
BTFSC P IN2
GOTO PIN2H
BTFSC PIN3
GOTO PIN3H
BTFSC PIN4
GOTO PIN4H
BTFSC PIN5
GOTO PIN5H
BTFSC PIN6
GOTO PIN6H
BTFSC PIN7
GOTO PIN7H
BTFSC PIN8
GOTO PIN8H
BTFSC PIN9
GOTO PIN9H
BTFSC PIN10
GOTO PIN10H
BTFSC PIN11
GOTO PIN11H
CLRP PORTB
GOTO TEST
PIN0H: MOVLW .0
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN1H: MOVLW .1
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN2H: MOVLW .2
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN3H: MOVLW .3
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN4H: MOVLW .4
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN5H: MOVLW .5
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN6H: MOVLW .6
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN7H: MOVLW .7
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN8H: MOVLW .8
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN9H: MOVLW .9
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN10H: MOVLW .10
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN11H: MOVLW .11
CALL TABLE
MOVWF PORTB
GOTO TEST
TABLE: ADDLW PCL,1
RETLW B’00010000’
RETLW B’00100000’
RETLW B’00110000’
RETLW B’01000000’
RETLW B’01010000’
RETLW B’01100000’
RETLW B’01110000’
RETLW B’10000000’
RETLW B’10010000’
RETLW B’10100000’
RETLW B’10110000’
RETLW B’11000000’
END
Re: Project: Vulpotron 1000 Microcomputer
This is why I hate low-level languages. They make a deceptive attempt at looking human-friendly but are about as easily readable as hieroglyphics. Also I harbour resentment from being unsuccessful in getting any of my 2nd year CompSci Assembly assignments to work. Multiplying two floating point numbers should not have to be rocket science.
- Adagio
- Warm Hearted
- Posts: 3589
- Joined: Tue Feb 07, 2012 7:06 am
- Gender: Male
- Sexual preference: Other
- Species: Snow Leopard
- Region: Gauteng
- Location: Pretoria, Silverton
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
I think I can do the Atmel 28CXXX range, but it seems that the 27CXXX is not supported by my programmer... Sorry... :/
Urg... I shouldn't write in Assembly, 12 at night... Here is a version that builds...
Assembly isn't all that hard to understand... I have a friend who can't program in C, but is like a savant in Assembly!
Urg... I shouldn't write in Assembly, 12 at night... Here is a version that builds...
Code: Select all
#INCLUDE <P16F628A.INC>
__CONFIG H'3D10'
BSF STATUS, RP0
MOVLW .7
MOVWF CMCON
MOVLW B'00001111'
MOVWF TRISB
MOVLW .255
MOVWF TRISA
BCF STATUS, RP0
TEST: BTFSC PORTA, 0
GOTO PIN0H
BTFSC PORTA, 1
GOTO PIN1H
BTFSC PORTA, 2
GOTO PIN2H
BTFSC PORTA, 3
GOTO PIN3H
BTFSC PORTA, 4
GOTO PIN4H
BTFSC PORTA, 5
GOTO PIN5H
BTFSC PORTA, 6
GOTO PIN6H
BTFSC PORTA, 7
GOTO PIN7H
BTFSC PORTB, 0
GOTO PIN8H
BTFSC PORTA, 1
GOTO PIN9H
BTFSC PORTA, 2
GOTO PIN10H
BTFSC PORTA, 3
GOTO PIN11H
CLRF PORTB
GOTO TEST
PIN0H: MOVLW .0
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN1H: MOVLW .1
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN2H: MOVLW .2
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN3H: MOVLW .3
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN4H: MOVLW .4
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN5H: MOVLW .5
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN6H: MOVLW .6
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN7H: MOVLW .7
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN8H: MOVLW .8
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN9H: MOVLW .9
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN10H: MOVLW .10
CALL TABLE
MOVWF PORTB
GOTO TEST
PIN11H: MOVLW .11
CALL TABLE
MOVWF PORTB
GOTO TEST
TABLE: ADDWF PCL,1
RETLW B'00010000'
RETLW B'00100000'
RETLW B'00110000'
RETLW B'01000000'
RETLW B'01010000'
RETLW B'01100000'
RETLW B'01110000'
RETLW B'10000000'
RETLW B'10010000'
RETLW B'10100000'
RETLW B'10110000'
RETLW B'11000000'
END
- Rakuen Growlithe
- Fire Puppy
- Posts: 6718
- Joined: Tue Apr 01, 2008 2:24 pm
- Gender: Male
- Sexual preference: Bi
- Species: Growlithe (pokemon)
- Region: Other
- Location: Pretoria
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
I've only used high-level ones. They still can be annoying and helped me learn about floating point numbers. All started when I was comparing my new and old calculations and it told me they weren't the same thing. So I looked closer.Leeward wrote:This is why I hate low-level languages. They make a deceptive attempt at looking human-friendly but are about as easily readable as hieroglyphics. Also I harbour resentment from being unsuccessful in getting any of my 2nd year CompSci Assembly assignments to work. Multiplying two floating point numbers should not have to be rocket science.
A: 1.0056778453
B: 1.0056778453
A =/= B
Erm... >.>
Then I learned that floating point numbers don't always match, even if the numbers match. But there was some other function that could compare them and then told me they actually were all the same.
"If all mankind minus one, were of one opinion, and only one person were of the contrary opinion, mankind would be no more justified in silencing that one person, than he, if he had the power, would be justified in silencing mankind."
~John Stuart Mill~
“Give me the liberty to know, to utter, and to argue freely according to conscience, above all liberties.”
~John Milton~
~John Stuart Mill~
“Give me the liberty to know, to utter, and to argue freely according to conscience, above all liberties.”
~John Milton~
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
As a dev, I value dev time over computer time. You won't notice that extra 100ms, but you will notice the extra 3 hours the task took you.
And while I'm at it: screw JS. Loosely typed languages can go screw themselves.
And while I'm at it: screw JS. Loosely typed languages can go screw themselves.
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
I'm gonna be using a keypad matrix, so only 8 inputs are needed, four rows and four columns. So the PIC is ideal in this case.Adagio wrote:Something in the lines of a 74HC147 should do the trick, and be inexpensive... But it only handles 10 inputs, not 15 like hex... Still... I have some friends who have contacts at communica... They may have better prices...
The PIC16F628A has 16 port pins... So... Hmmm... Could work? But you'll only have 12 pins for input, assuming 4 bits for binary output... Could use a shift register, but that complicates things?
I'm curious... You're using C or Assembly for the coding... (I can't even imagine using Assembly for this! Haha!)
I'll check of my programmer supports your ROM's..
The PIC's coding is gonna be done in C. As for the EPROM, gonna be Assembly. Unless
Awesome, thanks! I'll have a poke at it.Adagio wrote:Here's a gift because I think your project is awesome!(Also because I can't sleep...)
This should do the same as a 12 bit to binary encoder...Code: Select all
#INCLUDE <P16F628A.INC> #DEFINE PIN0 PORTA, 0 #DEFINE PIN1 PORTA, 1 #DEFINE PIN2 PORTA, 2 #DEFINE PIN3 PORTA, 3 #DEFINE PIN4 PORTA, 4 #DEFINE PIN5 PORTA, 5 #DEFINE PIN6 PORTA, 6 #DEFINE PIN7 PORTA, 7 #DEFINE PIN8 PORTB, 0 #DEFINE PIN9 PORTB, 1 #DEFINE PIN10 PORTB, 2 #DEFINE PIN11 PORTB, 3 __CONFIG H’3D10’ BSF RP0 MOVLW .7 MOVWF CMCON MOVLW B’00001111’ MOVWF TRISB MOVLW .255 MOVWF TRISA BCF RP0 TEST: BTFSC PIN0 GOTO PIN0H BTFSC PIN1 GOTO PIN1H BTFSC P IN2 GOTO PIN2H BTFSC PIN3 GOTO PIN3H BTFSC PIN4 GOTO PIN4H BTFSC PIN5 GOTO PIN5H BTFSC PIN6 GOTO PIN6H BTFSC PIN7 GOTO PIN7H BTFSC PIN8 GOTO PIN8H BTFSC PIN9 GOTO PIN9H BTFSC PIN10 GOTO PIN10H BTFSC PIN11 GOTO PIN11H CLRP PORTB GOTO TEST PIN0H: MOVLW .0 CALL TABLE MOVWF PORTB GOTO TEST PIN1H: MOVLW .1 CALL TABLE MOVWF PORTB GOTO TEST PIN2H: MOVLW .2 CALL TABLE MOVWF PORTB GOTO TEST PIN3H: MOVLW .3 CALL TABLE MOVWF PORTB GOTO TEST PIN4H: MOVLW .4 CALL TABLE MOVWF PORTB GOTO TEST PIN5H: MOVLW .5 CALL TABLE MOVWF PORTB GOTO TEST PIN6H: MOVLW .6 CALL TABLE MOVWF PORTB GOTO TEST PIN7H: MOVLW .7 CALL TABLE MOVWF PORTB GOTO TEST PIN8H: MOVLW .8 CALL TABLE MOVWF PORTB GOTO TEST PIN9H: MOVLW .9 CALL TABLE MOVWF PORTB GOTO TEST PIN10H: MOVLW .10 CALL TABLE MOVWF PORTB GOTO TEST PIN11H: MOVLW .11 CALL TABLE MOVWF PORTB GOTO TEST TABLE: ADDLW PCL,1 RETLW B’00010000’ RETLW B’00100000’ RETLW B’00110000’ RETLW B’01000000’ RETLW B’01010000’ RETLW B’01100000’ RETLW B’01110000’ RETLW B’10000000’ RETLW B’10010000’ RETLW B’10100000’ RETLW B’10110000’ RETLW B’11000000’ END
Code: Select all
#INCLUDE <P16F628A.INC> __CONFIG H'3D10' BSF STATUS, RP0 MOVLW .7 MOVWF CMCON MOVLW B'00001111' MOVWF TRISB MOVLW .255 MOVWF TRISA BCF STATUS, RP0 TEST: BTFSC PORTA, 0 GOTO PIN0H BTFSC PORTA, 1 GOTO PIN1H BTFSC PORTA, 2 GOTO PIN2H BTFSC PORTA, 3 GOTO PIN3H BTFSC PORTA, 4 GOTO PIN4H BTFSC PORTA, 5 GOTO PIN5H BTFSC PORTA, 6 GOTO PIN6H BTFSC PORTA, 7 GOTO PIN7H BTFSC PORTB, 0 GOTO PIN8H BTFSC PORTA, 1 GOTO PIN9H BTFSC PORTA, 2 GOTO PIN10H BTFSC PORTA, 3 GOTO PIN11H CLRF PORTB GOTO TEST PIN0H: MOVLW .0 CALL TABLE MOVWF PORTB GOTO TEST PIN1H: MOVLW .1 CALL TABLE MOVWF PORTB GOTO TEST PIN2H: MOVLW .2 CALL TABLE MOVWF PORTB GOTO TEST PIN3H: MOVLW .3 CALL TABLE MOVWF PORTB GOTO TEST PIN4H: MOVLW .4 CALL TABLE MOVWF PORTB GOTO TEST PIN5H: MOVLW .5 CALL TABLE MOVWF PORTB GOTO TEST PIN6H: MOVLW .6 CALL TABLE MOVWF PORTB GOTO TEST PIN7H: MOVLW .7 CALL TABLE MOVWF PORTB GOTO TEST PIN8H: MOVLW .8 CALL TABLE MOVWF PORTB GOTO TEST PIN9H: MOVLW .9 CALL TABLE MOVWF PORTB GOTO TEST PIN10H: MOVLW .10 CALL TABLE MOVWF PORTB GOTO TEST PIN11H: MOVLW .11 CALL TABLE MOVWF PORTB GOTO TEST TABLE: ADDWF PCL,1 RETLW B'00010000' RETLW B'00100000' RETLW B'00110000' RETLW B'01000000' RETLW B'01010000' RETLW B'01100000' RETLW B'01110000' RETLW B'10000000' RETLW B'10010000' RETLW B'10100000' RETLW B'10110000' RETLW B'11000000' END
No worries! My lecturer said he might be able to help me out with the programming hardware.Adagio wrote:I think I can do the Atmel 28CXXX range, but it seems that the 27CXXX is not supported by my programmer... Sorry... :/
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
It ain't soooo bad. Just gotta poke at it enough. But fortunately, in this day and age, assembly is of very little concern. Modern processors make the gains of using assembly pretty much negligible. Merely a learning aid, rather than offering a viable performance/optimization benefit.Leeward wrote:This is why I hate low-level languages. They make a deceptive attempt at looking human-friendly but are about as easily readable as hieroglyphics. Also I harbour resentment from being unsuccessful in getting any of my 2nd year CompSci Assembly assignments to work. Multiplying two floating point numbers should not have to be rocket science.
Re: Project: Vulpotron 1000 Microcomputer
All I learned from it was purely theoretical, although admittedly interesting. I nearly failed the semester we had Assembly because of stupid bad luck (read: near-undetectable typos, probably). I had the TA, the class rep and the lecturer try to help me debug my assignments, and they had no more clue what was wrong than I did.
Last edited by Leeward on Tue Nov 10, 2015 7:22 pm, edited 1 time in total.
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
Sounds like our situation at work.
Re: Project: Vulpotron 1000 Microcomputer
Hopefully I get the hang of it faster this time around. I really hate being a delaying factor, even more so with work that actually matters.
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
I spent until 18:30 trying to get things to work. You'll have quite a few updates coming your way tomorrow morning.
Re: Project: Vulpotron 1000 Microcomputer
I am genuinely sorry about that, I am trying to learn from observation as much as I can. This is getting off-topic though, and I'd much rather you tell me stuff like this in person.
- Sev
- Superbike Snow Leopard
- Posts: 6596
- Joined: Thu Mar 06, 2014 9:27 pm
- Gender: Male
- Sexual preference: Gay
- Species: Snow Leopard
- Region: Western Cape
- Location: A Twisty Road
Re: Project: Vulpotron 1000 Microcomputer
Fair enough.
- Lurigo
- Posts: 99
- Joined: Tue Jan 01, 2013 4:33 pm
- Gender: Male
- Sexual preference: Straight
- Species: Silver Fox
- Region: Northwest and North Cape
- Location: Potchefstroom
- Contact:
Re: Project: Vulpotron 1000 Microcomputer
Okaaaay~
Anyways, update time!
During the last few days, I've been having a look at how old computers and consoles generated audio.
So I figured, later along the line, once it's doing computer stuff well enough, I would like to add proper sound to the Vulpotron as well. This would be in the form of a sound generator chip. I looked around, and found two that strikes my fancy: * The Yamaha YM2149F - a modified variant of the General Instrument AY-3-8910 Programmable Sound Generator, or PSG. This PSG has three voices, and was used in countless arcade machines, the Intellivision, MSX computers, Amstrad CPC and the Sinclair ZX Spectrum 128, +2 and +3, as well as in a few sound cards for the Apple II. The YM2149F variant was used in the Atari ST, and has double the resolution of the original AY-3-8910. * The Yamaha YM2612 - a 6-channel sound chip from Yamaha's OPN FM synthesizer range. It is found in many of Yamaha's keyboards from way back when, but its most notable use was in the Sega Mega Drive/Genesis game console, and we know how great those soundtracks were! It has a multitude of features, including an integrated DAC and analog stereo output.
I've snatched one of each from eBay, for a mere total of $3. They'll take a while to get here, but fortunately, I won't be needing them as soon as other components at least. Rather excited about the YM2612, due to its history in one of my favourite game consoles. Chiptunes~
Whichever one I don't end up using in the Vulpotron, might be used in a future synth project.
Anyways, update time!
During the last few days, I've been having a look at how old computers and consoles generated audio.
So I figured, later along the line, once it's doing computer stuff well enough, I would like to add proper sound to the Vulpotron as well. This would be in the form of a sound generator chip. I looked around, and found two that strikes my fancy: * The Yamaha YM2149F - a modified variant of the General Instrument AY-3-8910 Programmable Sound Generator, or PSG. This PSG has three voices, and was used in countless arcade machines, the Intellivision, MSX computers, Amstrad CPC and the Sinclair ZX Spectrum 128, +2 and +3, as well as in a few sound cards for the Apple II. The YM2149F variant was used in the Atari ST, and has double the resolution of the original AY-3-8910. * The Yamaha YM2612 - a 6-channel sound chip from Yamaha's OPN FM synthesizer range. It is found in many of Yamaha's keyboards from way back when, but its most notable use was in the Sega Mega Drive/Genesis game console, and we know how great those soundtracks were! It has a multitude of features, including an integrated DAC and analog stereo output.
I've snatched one of each from eBay, for a mere total of $3. They'll take a while to get here, but fortunately, I won't be needing them as soon as other components at least. Rather excited about the YM2612, due to its history in one of my favourite game consoles. Chiptunes~
Whichever one I don't end up using in the Vulpotron, might be used in a future synth project.