Project: Vulpotron 1000 Microcomputer

This is for all discussions related to IT and technology. Hardware, software, programming, it all goes here.
Post Reply
User avatar
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

#1

Post by Lurigo »

"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.
Attachments
16x2 character LCD display
16x2 character LCD display
Top, from left to right: The CPU, 64K UV-EPROM, 32K Static RAM, some 74-series logic chips.<br />Bottom: PIC MCU for keypad decoder, and various clock crystals.
Top, from left to right: The CPU, 64K UV-EPROM, 32K Static RAM, some 74-series logic chips.
Bottom: PIC MCU for keypad decoder, and various clock crystals.
User avatar
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

#2

Post by Sev »

LURIGO, WHAT IS YOUR OCCUPATION?!?
User avatar
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

#3

Post by Lurigo »

Sev wrote:LURIGO, WHAT IS YOUR OCCUPATION?!?
Computer and electronic engineering student.
Why? o:
User avatar
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

#4

Post by Sev »

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?
User avatar
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

#5

Post by Lurigo »

Sev 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?
All the madness. 8D

Thanks! Assembly ain't too bad, albeit a bit dusty. Did some for the Intel 8051 recently.
User avatar
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

#6

Post by Franky »

Lurigo is the true Freefox. His electronic knowledge will one day initiate a resonance cascade.
User avatar
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

#7

Post by Dasc-Crescent »

Thats so cool ^^
Can't wait to see updates
If the world's at large, why should I remain
User avatar
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

#8

Post by Lurigo »

Inpw wrote:Lurigo is the true Freefox. His electronic knowledge will one day initiate a resonance cascade.
I'm gonna use this computer to control the anti-mass spectrometer! 8D
Dasc-Crescent wrote:Thats so cool ^^
Can't wait to see updates
Thanks! :D
I'ma post more updates once I get the memory components and things.
User avatar
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

#9

Post by Adagio »

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...)
User avatar
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

#10

Post by Lurigo »

Adagio 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...)
Thanks! :D

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.
User avatar
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

#11

Post by Adagio »

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..
User avatar
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

#12

Post by Adagio »

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
Leeward
Recalcitrant Ruminant
Posts: 7036
Joined: Wed Mar 19, 2014 10:23 pm

Re: Project: Vulpotron 1000 Microcomputer

#13

Post by Leeward »

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.
User avatar
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

#14

Post by Adagio »

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...

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
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!
User avatar
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

#15

Post by Rakuen Growlithe »

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.
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.

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~
User avatar
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

#16

Post by Sev »

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.
User avatar
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

#17

Post by Lurigo »

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..
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.
The PIC's coding is gonna be done in C. As for the EPROM, gonna be Assembly. Unless
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
Awesome, thanks! I'll have a poke at it. :D
Adagio wrote:I think I can do the Atmel 28CXXX range, but it seems that the 27CXXX is not supported by my programmer... Sorry... :/
No worries! My lecturer said he might be able to help me out with the programming hardware.
User avatar
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

#18

Post by Lurigo »

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.
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
Recalcitrant Ruminant
Posts: 7036
Joined: Wed Mar 19, 2014 10:23 pm

Re: Project: Vulpotron 1000 Microcomputer

#19

Post by Leeward »

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.
User avatar
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

#20

Post by Sev »

Sounds like our situation at work.
Leeward
Recalcitrant Ruminant
Posts: 7036
Joined: Wed Mar 19, 2014 10:23 pm

Re: Project: Vulpotron 1000 Microcomputer

#21

Post by Leeward »

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.
User avatar
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

#22

Post by Sev »

I spent until 18:30 trying to get things to work. You'll have quite a few updates coming your way tomorrow morning.
Leeward
Recalcitrant Ruminant
Posts: 7036
Joined: Wed Mar 19, 2014 10:23 pm

Re: Project: Vulpotron 1000 Microcomputer

#23

Post by Leeward »

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.
User avatar
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

#24

Post by Sev »

Fair enough.
User avatar
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

#25

Post by Lurigo »

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:
Yamaha YM2149F PSG
Yamaha YM2149F PSG
* 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.
Yamaha YM2612 OPL
Yamaha YM2612 OPL
* 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.
Post Reply