Seems interesting. TO answer Xeda, I think it should be fine with 2 KB of RAM as long as the RAM doesn't have to be used for storate purpose like on Z80 calcs. In fact 2 KB might be more than enough in many cases, but I think 16 KB of flash storage might not.Depends. a 128*64 screen needs 1024 bytes of RAM for buffering. And the other kB gets filled up pretty quickly. Let alone greyscale which requires at least two buffers. 128kB of RAM FTW. :P
Seems interesting. TO answer Xeda, I think it should be fine with 2 KB of RAM as long as the RAM doesn't have to be used for storate purpose like on Z80 calcs. In fact 2 KB might be more than enough in many cases, but I think 16 KB of flash storage might not.With an SD card for storage you won't need a lot of internal flash. Just for storing the bootloader and some tools maybe.
A mic? Not sure if it has enough ram to do anything with analog signal processing.
@zigzagjoe really nice and cheap. The ram would be kind of a problem though. Aren't there cpu in that series with more ram?
include "ez8.inc"
vector reset = 1000h
org 1000h
main:
di ;Disable interrupts as we won't be using them
srp #00h ;Set working registers base address (Working registers are R0-R15)
ldx SPH,#00h ;Set stack pointer base address
ldx SPL,#FFh ;(the stack is 00ffh - 0000h so 256 bytes large)
ldx PAADDR, #01h ;Access the data direction subregister
ldx PACTL,#00h ;Set data direction of port B to all outputs. 0 = output, 1 = input
ld R4, #77h ;Load register R0 with EEh. This will be our rotated value.
brk ;Breakpoint. The debugger will stop the cpu here.Press the go button to
;continue execution.
loop:
ldx PAOUT, R4 ;Load the output register of port B with the value of our counter.
rr R4 ;Increase our counter by 1.
call delay ;Call our delay function.
jp loop ;Jump back to loop
delay:
ld R0,#0Fh ;Load value 0FFFh in the 16 bit register pair RR0 (consists of R0 and R1)
ld R1,#FFh
outer:
ld R2,#FFh ;Load value 0FFh in 8 bit register R2
djnz R2,$ ;Decrease
decw RR0
jp nz, outer ;While the register pair has not reached 0 (nz) yet jump back to outer
ret ;Return from routine
Problem: I think you need a monitor for this which I don't have D:It will work on any ntsc compatible television with composite video input. (pal looks like crap, but it is possible)
print "pong:"
if argc>=2
print argv[1]
end
return
00 40 40 40 40 40 4A 4A 4A 40 C5 BA 78 40 C3 CF .@@@@@[email protected]@..
CD F0 F5 F4 C5 F2 40 F3 F9 F3 F4 C5 CD 40 4A 4A ......@......@JJ
4A 40 40 40 40 40 0D 76 74 8B 40 B2 8F 8D 4C 40 J@@@@@[email protected]@
74 8B 40 B2 81 8D 4C 40 7B 40 C3 CF CD CD C1 CE [email protected]@{@......
C4 F3 40 C2 F5 C9 CC F4 40 C9 CE 4E 0D C2 F9 40 ..@[email protected]...@
8B C5 CF CE C9 72 79 40 4D 4D 40 C5 BA 78 F4 F5 .....ry@[email protected]..
F4 4E F3 CF F5 F2 C3 C5 C6 DF F2 C7 C5 5E CE C5 .N...........^..
F4 0D 0D B2 C5 C1 C4 F9 40 F4 CF 40 F2 CF C3 CB ........@..@....
41 0D A.
Raspberry Pi anyone?Not sure why this dude got downvoted on this post though, its not like he really meant to troll (at least I hope so O.O)
I am still figuring out how this works, so this information is not 100% correct!Cool stuff thar keoni!
Old hard drives use the same magnetization patterns as floppy disks. It is called MFM (Modified Frequency Modulation)
I just read a datasheet of a diskette drive. Data is stored as changes in the magnetization layer. On a transition a short low pulse can be detected at the DataRead pin of the drive. The time in between those pulses represents a bit pattern.
2us pulse = a > next up: a
3us pulse = ab > next up: b
4us pulse = ab > next up: a
Example of a pattern starting with logic 1.
Pulse length: 2 3 3 4 ...
Bit pattern: 1 10 01 10 1...
The byte on the end
I do not know how the start of a sector is marked yet though.