From
jdigreze
→
To
All
4 November 2005
Hello caro
Pause can be implemented as an additional function on boot, and on start as an additional function
put also stop...
Yes, you probably still need an indicator... Although it’s debatable, in general it’s necessary
experiment.
From
jdigreze
→
To
All
4 November 2005
Hello madcore
imho, working with trd players via the tape port is not realistic.
I'll say a few words about the control interface. I think it will be enough
LED power indicator, and two buttons - boot, start...
We type LOAD "" on the Spectrum. Click boot.
The boot button activates sending the selector program to the Spectrum. Which should
interactively select the desired image. After
The image is selected, its number is stored in the “tape recorder”. Next we do reset
Spectrum. And again we type LOAD "". Then press the start button.
Which activates sending the selected image to the Spectrum.
Such an implementation will reduce the cost of the device due to the absence
“extra” buttons and display cost about 100-300 rubles.
From
Kamil Karimov
→
To
All
4 November 2005
Hello jdigreze
jdi> I'll say a few words about the management interface. I think it will be
jdi> enough LED power indicator, and two buttons - boot, start...
jdi>
To work with loaded levels, you also need a fixed “PAUSE” button.
And the indicator costs about 50 rubles. must be left.
It will be very useful if it shows the time until the end of loading the current
block.
From
Alexandr Tsidaev
→
To
All
7 November 2005
Hello, DVS
DVS> its structure must change dynamically (BAS or ASM) in
DVS> depending on the file composition of the card.
DVS>
DVS> If there is such a “selector”, then it will simply not be possible to print
DVS> solder in the indicator and that’s it (the indicator has no feedback), even
DVS> there is no need to rewrite the software.
hmmm... either I misunderstood something, or this is easier than steamed turnips :-))
This is the simplest option that came to mind, in BASIC :-)
10 FOR n=0 to PEEK(25999)
20 for k=0 to 10
30 print chr$ peek 26000+n*12+k;
40 next k
50 print tab 1;peek 26000+n*12+11
60 next n
I can’t think of anything simpler :) I can’t vouch for tab 1 in line 50, I have the emulator at hand
there is no check, it was thought that after this the stamp would start from the 17th character
lines
the resulting .$b can not even be generated on the fly, but stored on flash
but generate only an array
address 25999 - number of files (0-255, nothing prevents you from slightly altering it to 65536
pieces)
addresses 26000-65535 - an array of 12 byte file descriptions in the form of 11 bytes name+1
byte number
in short,
struct fdesc
{
char name[11];
unsigned char fileNumber;
}
From
DVS
→
To
All
7 November 2005
Hello Eltaron
2 Eltaron
Thank you! The idea is clear! But still, so as not to bother me, I would like
have a tzx of this "selector", indicating from what offset
put fdesc[i] there, in short, so that the interested person takes it and does it
this piece inside and out.
From
DVS
→
To
All
7 November 2005
Hello jdigreze
2 jdigreze
There was already such an idea with a selector and, like that time, I’m asking a question (attention
question :-) boom...).
Would you undertake to make such a “selector”? If yes, then keep in mind that its structure
must change dynamically (BAS or ASM) depending on the file composition
cards.
If there is such a “selector”, then it will be possible simply not to solder it onto the signet
indicator and that’s it (the indicator has no feedback), even rewrite the software
no need.
PS: the software for this device is written in IAR C.
From
jdigreze
→
To
All
7 November 2005
Hello Eltaron
Nooo... Dynamic basic or asm is nonsense! ;)
We need a program specifically for bilateral exchange, something like a commander,
which will flip through files on a flash drive, set/remove the relevance label
to/from files.
The exchange protocol may possibly be made synchronous. Those. if the tape recorder
transmits data, then the spec generates a synchronization series; if the spec transmits data, then
sihra gives a tape recorder.
Unfortunately, my “kai” is still down, I hope to revive it before the weekend and
try to work through lpt with a pussy. If everything goes well -
I will post the specification of the level 0 exchange protocol. And then you will need to think about
information exchange protocol...
PS: About 5 years ago I did a similar file exchange with a pussy, everything worked
wonderful :)
From
DVS
→
To
All
7 November 2005
Hello, DVS
2 caro
Maybe we can collaborate somehow on board layout? PCAD and Eagle are not mine
profile, and I like to do what I’m a pro or almost a pro at.
I would pay for a pilot batch of 5-10 pieces.
How much could it cost, for example, in techno communications?
Board size ~2 deep enclosure Mega16.
The board is not entirely simple because... requires installation of buttons, indicator, slot for
flash. For wiring work I can promise 1-2 payments and official status
beta tester. In general, we can agree via PM if there is time.
From
DVS
→
To
All
7 November 2005
Hello, DVS
In general, here is the document:
Terms of reference (almost) for the development of a file manager for ZX-compatible collaboration
computer and HardTaper tape recorder.
Purpose: The file manager is designed to view the list of available
files recorded on a flash drive of a tape recorder, relief (well, actually for anyone
as of course about reducing the cost too) choosing the file to play, as well as
block in the file.
Operation logic:
While the Speckie is in loading mode from the tape, press the button (now
combinations of buttons because those who follow the topic already know that the user interface
consists of 4 indicator segments and 4 buttons) on the tape recorder occurs
loading the file manager into Speccy.
The file manager, providing scrolling and searching for the desired file, transfers it
identifier with the usual SAVE command (previously asking Yes/No)
tape recorder.
The tape recorder, having received the file identifier, prepares it for playback and
enters pause mode for a time Tпз (set by the setting).
The file manager enters Specky into boot mode again (that's it
work completed).
The tape recorder pauses and starts playing the file.
Entrust execution to: jdigreze
Date: 11/07/2005
Signed: Speccy team
:-)))
During the writing process, one drawback became clear: you cannot select the file manager
loading level (can you guess why? :-)))), and from the indicator please!This can be circumvented by making the file manager shadow or...
Well, in general, who else wants to participate and make additional gadgets :spy: ?
Go for it!
PS: PLUS: this file manager does not increase the cost of the device ;-)
From
jdigreze
→
To
All
7 November 2005
Hello, DVS
I think I'm interrupted... Ok. I'll try to do it ;)
The terms of reference are clear in general terms. There is some question for clarification - internal
the structure of the file system on the flash drive, and there may be parameters for entry points on
loading and writing files there?
In general, I’m a little familiar with AVRs, so I can try some of the code for
tape recorder write...
From
Chunin Roman
→
To
All
7 November 2005
Hello, DVS
DVS> 2 caro
DVS>
DVS> Maybe we can somehow cooperate on the board layout? PCAD and Eagle
DVS> is not my profile, but I like to do what I am a pro or almost a pro at.
DVS> I would pay for a pilot batch of 5-10 pcs.
DVS> How much can it cost, for example, in technocommunications.
DVS> Board size ~2 deep body Megi16.
DVS>
DVS> The board is not entirely simple because... installation of buttons, indicator, is required
DVS> flash slots. For wiring work I can promise 1-2 boards and
DVS> official beta tester status. In general, we can agree through
DVS> PM me if you have time.
I would also take part in the process!
From
Alexandr Tsidaev
→
To
All
8 November 2005
Hello, DVS
DVS> Eltaron suggested writing a viewer in BAS and putting a list in CODE
DVS> files as a chain from fdesc (in short, there will be a chain of blocks by
DVS> 11 bytes 8 bytes name + 3 bytes extension, identifier or number not
DVS> needed
and, in general, the extension is not needed IMHO :-))
it's still tzx :-))
if without it, then there will be only 8 bytes per file, which is more convenient than 11, because the degree
deuces, and 48K of descriptors can fit more... though it doesn’t matter at all
WOS images are not enough :)
From
DVS
→
To
All
8 November 2005
Hello Eltaron
2 Eltaron
The extension will come in handy in the future.
2 jdigreze
I will create the CODE block (part of it) on the fly. And in tzx let there be a CODE block
under one file, although you can do without it, you need to see how it will be easier.
From
DVS
→
To
All
8 November 2005
Hello jdigreze
2 jdigreze
In order to implement this idea, you don’t need to know either AVR or C. The point is
next...
A program is being created for speckies BAS+CODE, which will be exactly that part (almost
the entire file manager), which the tape recorder will upload to the spec. Dear
Eltaron suggested writing a viewer on BAS, and putting a list of files in CODE as
a chain from fdesc (in short, there will be a chain of blocks of 11 bytes 8 bytes name +
3 bytes extension, identifier or number is not needed ;-) ) . This option is needed
improve the user interface (search, scrolling, sorting...) and add
sending the selected file i.e. 11 bytes back to the tape recorder. This program BAS+CODE
you need to upload it as tzx and say where in the CODE area (address or offset from
start) start writing 11-byte blocks (how to put them there is already my
The main concern is that there is tzx). Processing SAVE is also my concern, but SAVE does
file manager, in addition, you can make SAVE your own (not from BASICa), pilot tone
shorten or even make your own encoding.
Is that clear?
2CHRV
I promised you to the scarf when I have beta tester status. Or do you have time for
did the wiring appear?
From
jdigreze
→
To
All
8 November 2005
Hello, DVS
That is can you generate a CODE file in tzx format yourself? and send him after
behind the selector? Or should I still form tzx? It's all a bit murky...
Let's say the user has only 10 files, and we will send him along with the selector
standard set for 1000 files * 11 = 11Kb descriptors, where 110 bytes will be
are filled, and the remaining descriptors will be empty, the whole thing will be loaded
in 3 minutes...
Okay, I'm starting to write a descriptor viewer, with a scroller, etc. Rest
We'll discuss it during the process ;)
From
Chunin Roman
→
To
All
8 November 2005
Hello, DVS
DVS> 2 Eltaron
DVS> The extension will be useful in the future.
DVS>
DVS> 2 jdigreze
DVS> I will create the CODE block (part of it) on the fly. And let it lie in tzx
DVS> CODE block for one file, although you can do without it, you need to
DVS> watch as it will be easier.
And if you make, for example, a similar string of commands to the tape output, and
for example, upload the directory first... Then using commands in the magnetic output
do the appropriate download :).
Like completely interactive. :wink:
From
jtn
→
To
All
9 November 2005
Hello, CHRV
1. CHRV says the point - why load the entire catalog if it’s not on the screen
will fit
2. Boot should load as quickly as possible - short basic with trimmed to
minimum length by pilottons, then high-speed exchange. for example USART -
spec without turbo will handle 38kbit.
3. to make shipments, you can match each game to the directory in which it will be
stored or:
a) only loading levels
b) the shipments themselves
i.e. after loading the program, the remaining blocks will be taken exclusively from
one directory, and not search through all the files on the flash drive. well, and the ducks at that
won't get lost.
4. It’s not difficult to digitize in realtime, but with packaging and recording in flash
there will probably be a school... well, many of the white-headed ducks are not too big - a couple of hundred
byte. although in different strategies...
5. there was such a copier (like quick copy or quicksilva copy, if necessary, I’ll clarify
gasvaniye), which made it possible to speed up loading from 2x to 10 times, if
a standard Basik loader with LOADs was used. the meaning was that
a zero repair line from the fastload was inserted, and all LOADs were replaced with usr xxx.
all subsequent blocks have already been recorded in accelerated form. Why not
apply this idea too?
That's all for now.
From
DVS
→
To
All
9 November 2005
Hello jdigreze
Yes, I already figured out about block loading, and I agree with that.
From
DVS
→
To
All
23 February 2006
Hello, DVS
I’m raising my topic from oblivion and informing you that HardTaper has been improved as
both hardware and software.
1) Hardware made TapeIN driver on 561LH2 (let's not forget about 3.3
volt supply, so LM555 does not pass)
2) I set the quartz to 14 MHz, so it’s easier because multiples of 3.5 MHz :-)
3) The software has been improved and now I can say that my brainchild can both PLAY and
RECORD.
4) The recording is made as follows: the user selects the desired file number and
turns on the recording mode, which must wait for confirmation, because it is possible
accidentally overwrite the desired file. With all this, the flash card should already have
there is a file with the corresponding number and extension tzx, which is created there
on a regular "reader" by copying any(!) file of suitable size and
renaming it to the format [number.tzx], thus creating a slot for
records! Everyone chooses the file size to suit their needs, for example 1MB file
enough for ~6 minutes. recording at a sampling frequency of 22050. Note that the recording
maintained according to the tzx standard and recordings made by me both from tape and from
line output of the sound card were then tested in Unreal, i.e. files
containing recordings are copied from the flash card to the PC and loaded into Unreal, which
successfully "eats" them. Thus, Boulder was checked (recorded with an old
cassettes) and ATHENA 128 (from line output).There are still problems, but this option is already very close to the one I’m talking about
I dream.
I think I’ll post the diagram along with the firmware here as soon as I draw the diagram (
I ask interested people to “kick” me by mail, otherwise I will again
I'll disappear...)
PS: Happy holiday to everyone, Spec Defender's Day..., in the sense of the Fatherland :-)
From
DVS
→
To
All
24 February 2006
Hello, DVS
Here are the files that I promised.
Who wants to participate in debugging and improvement, assemble and flash.
HEX format intel-extended, how to flash I won’t tell you so much about it
written.
File: htaper_sch.zip http://zx.pk.ru/attachment.php?attachmentid=2658
File: htaper_hex.zip http://zx.pk.ru/attachment.php?attachmentid=2659
From
DVS
→
To
All
25 February 2006
Hello, DVS
People are interested in the circuit twice as often as in the firmware :-)
From
SfS
→
To
All
26 February 2006
Hello, DVS
DVS> Here are the files that I promised. Who wants to participate in debugging and
DVS> improvements, assemble and flash. HEX format
DVS> intel-extended, how to flash I won’t tell you so much about it
DVS> written.
The device is attractive, but a question arises:
Can you post the source code of the program?
The fact is that I don’t have ATmega162, but I have several ATmega8515,
ATmega163.
I would try to compile a version for them. Special order
ATmega162, when a handful of other megas lie idle - the toad presses :)
From
DVS
→
To
All
28 February 2006
Hello, DVS
I played around with the code, but it doesn’t fit into 8K. In general, under 8515 and mega8 I can
just make a player if someone explains to me why he wants to make it
available on an 8K controller, which is not much cheaper than a 16Kbyte one.
From
DVS
→
To
All
1 March 2006
Hello Dendy
Den> I don’t understand why you need to load programs into the Spectrum memory
Den> to assemble a USB device that is more expensive than the Spectrum itself? Everything
Den> equals the data transfer rate will be 6000 bits per second. Isn't it easier
Den> use a tape recorder, CD-player?
Everything is misunderstood. Where does 6000 bps come from? Read and read the topic again.
PS: no offense.
From
Dobrynin Sergey
→
To
All
1 March 2006
Hello Dendy
Den> I don’t understand why you need to load programs into the Spectrum memory
Den> to assemble a USB device that is more expensive than the Spectrum itself? Everything
Den> equals the data transfer rate will be 6000 bits per second. Isn't it easier
Den> use a tape recorder, CD-player?
Read the thread from the very beginning!!! DVS "played around", "played around" and.... did
Quite an interesting device!!!
From
Maxim Saratovtsev
→
To
All
1 March 2006
Hello, CityAceE
Is there a program for the real Spectrum that allows you to record a program from
floppy disks (TR-DOS format) to a tape recorder?
From
Maxim Saratovtsev
→
To
All
1 March 2006
Hello, DVS
I don’t understand why, to load programs into the Spectrum’s memory, you need to collect
a device for USB that is more expensive than the Spectrum itself? Still the speed
data transfer will be 6000 bits per second. Isn't it easier to use a tape recorder?
CD player?
From
Chunin Roman
→
To
All
1 March 2006
Hello Dendy
Den> Is there a program for the real Spectrum that allows you to record
Den> program from a floppy disk (TR-DOS format) to a tape recorder?
You don’t need a special program, just change the basic bootblock. But if the program
designed to work with the disk (loads modules, etc.)
specifically hack and edit.
In general, at the moment, for a Russian clone the requirement is to have
A BETA interface is almost mandatory.
From
DVS
→
To
All
1 March 2006
Hello, CHRV
I edited the first post and added links to download the diagram and
firmware, so that even the most impatient and lazy fans can get to them.
From
DVS
→
To
All
6 March 2006
Hello jdigreze
After testing we'll see... it seems to me that the recording slot is quite
convenient. And the “all-wheel drive” recording is a bunch of problems right away, it’s really
64 mega is needed.
From
Igor Afonkin
→
To
All
6 March 2006
Hello, DVS
DVS> I played around with the code, but it doesn’t fit into 8K. In general, under 8515 and mega8
DVS> I can only make a player if someone explains to me why it is
DVS> wants to do this on an 8K controller, which is not much cheaper
DVS> 16KB.
Well, if it doesn’t work, then we’ll do it as expected ;)
True, I also have a mega64, so you can do a lot of development on it, although it
more expensive than 16th. But you can try to implement recording on fat16
"all-wheel drive"...
From
acidrain
→
To
All
10 April 2006
Hello, DVS
DVS> LCD indicators based on Philips PCD8544 appeared at my disposal
DVS> (Nokia 3410 monochrome-130r) and with EPSON S1d15g14 (Nokia 3510i color
DVS> 12bit - 160r). "Contact" with them is established :-) (both are connected via LPT
DVS> for testing functions in "C".
I wonder how the display is controlled? I have the opportunity to do more
buy high-quality displays at lower prices. I would like to use them in
your projects =) Can you tell me what and how in the case of these two from 3410 and
3510 no one?
From
Robus
→
To
All
11 April 2006
Hello, DVS
DVS> [B]
DVS>
DVS> 1) Flash card (let's say 128MB)
DVS> 2) Clone 8051 (which I respect and will never forget, that’s for sure) is acceptable
DVS> AT89C4051 - to reduce the cost of design or more expensive with USB.
DVS> 3) MAX232 i.e. UART<->RS232
DVS> 4) LCD indicator on HD44780
DVS> 5) Several buttons, including the "Play" button.
DVS> 6) Attachment
DVS>
I don’t understand why a flash drive??? And why MAX??? When AT89C51 has Serial Port,
simple buffers for 12 volts and straight to the comport, speed 115200 is enough.
At PiCi we are making a program that communicates in its own format with the microcontroller,
and on the microcontroller the data is converted into signals! I'm sure that
the speed is 100% enough, well, of course, if you take the AT89xxx at 20-30 megahertz!
Speed 115200 - 11 kilobytes per second, which is enough even from a disk drive
make a transfer, although you need to do the math, but it’s enough for a cassette. In 1996
year I connected a direct tape output to the COM-PORT, and strangely enough -
it worked, although at the time I didn’t understand how it could turn out 5V against polar
12V, but nothing burned out, but the transmission speeds even without any
there were enough microcontrollers... =)
From
Robus
→
To
All
11 April 2006
Hello, acidrain
aci> I wonder how the display is controlled? I have the opportunity and
aci> buy higher quality displays at lower prices. I would like
aci> apply them in your projects =) Can you tell me what and how in the case of
aci> with these two from 3410 and 3510?
Our device uses an LCD on the same EPSON microcontroller. I started
him. Really clumsy as ever!!! The best part is that in the description of the commands
controls were EXAMPL's for Z80. There is one idiocy in the microcontroller, there
The data is sent first, and then the command. There is a description...
From
DVS
→
To
All
11 April 2006
Hello Robus
Rob> I don’t understand why a flash drive is needed??? And why MAX??? When AT89C51 has
Rob> Serial Port, simple 12 volt buffers and directly to the comport, speed
Rob> 115200 is enough. At PiCi we are making a program that has its own
Rob> format communicates with the microcontroller, and is done on the microcontroller
Rob> converting data into signals ! I am sure that the speed will be 100% enough,
Rob> well, of course, if you take the AT89xxx at 20-30 megahertz! Speed 115200 -
Rob> 11 kilobytes per second, which is enough even for transferring from a disk drive
Rob> to do, although you need to do the math, but it will be enough for a cassette. In 1996
Rob> year I connected the tape output to the COM-PORT directly, and how not
Rob> strange - it worked, although at the time I didn’t understand how it could turn out
Rob> 5v versus polar 12v, nothing burned, but transmission speeds
Rob> even without any microcontrollers it was enough... =)
"The war is long over..." (c): v2_laugh:
Those who carefully read the thread will understand me: v2_tong:
PS: no offense
From
DVS
→
To
All
11 April 2006
Hello, acidrain
aci> I wonder how the display is controlled? I have the opportunity and
aci> buy higher quality displays at lower prices. I would like
aci> apply them in your projects =) Can you tell me what and how in the case of
aci> with these two from 3410 and 3510?
You can download the pdf via Google for the controllers that I indicated.
Both controllers have a serial Serial interface.
The 3410 has an 8-bit word format, the 3510 has a 9-bit word format (9-bit DATA/CMD, and
3410 the choice goes by foot). It’s better to download the pdf or I can “soap” it.
From
DVS
→
To
All
11 April 2006
Hello skyther
sky> Is there any information on the Alcatel (one touch 310) indicator? Otherwise
sky> I don’t have a Nokia :)
I think that a PCD8544 is installed there, like in the 3310. If there are 8 contacts on the LCD, then this
exactly PCD8544.
From
DVS
→
To
All
1 June 2006
Hello, DVS
Congratulations!
C_er - this means a card error.
What to do:
1) Cards formatted for Windows are supported. Therefore if there is
possibility, then you need to format it in FAT16 under Windows. Actually, Windows is cheating and
does not write partition information to sector 0, although this is not allowed according to the standard,
but I had to focus on Windows (I am finishing universal support from 0
sector and without)
2) I haven’t tested it with mega16 (my version is 162 mega), so it’s quite possible
that I forgot to correct the source code somewhere. I'll watch.
File names must be in the format:
N.tzx, where N is the file number 1-999 without padding on the left with zeros, i.e. not 001 and 01, but
just 1.tzx
When turned on for the first time with the card inserted, if initialization is successful
cards, displays the number of the recently used (played/recorded)
file without C_er.
From
DVS
→
To
All
1 June 2006
Hello skyther
sky> And put the files in the root or in a folder (it slipped in the topic - folder
sky> "SPECCY")? I formatted it with both Windows and a phone (Siemens SL45). Maybe
sky> the card is old and does not support SPI :(
Yes, that's right, you need to create the "SPECCY" folder in the root and put the files there.
Everyone should keep SPI.
From
skyther
→
To
All
1 June 2006
Hello, DVS
Should I put the files in the root or in a folder (it was mentioned in the topic - the "SPECCY" folder)?
I formatted it with both Windows and a phone (Siemens SL45). Maybe the card is old and the SPI is not
holding :(
From
skyther
→
To
All
1 June 2006
Hello, DVS
I created the folder, so the problem is different :( And the quartz frequency should be
exactly 14,000 or maybe 14,318?
From
skyther
→
To
All
1 June 2006
Hello jdigreze
Pritania 5V, at 3.3 mega it won’t start :( Card through resistor dividers
connected (100k+47k, also tried 10k+4.7k)
From
Igor Afonkin
→
To
All
1 June 2006
Hello skyther
On mega it doesn’t matter... but for a 5V flash drive it can be fatal.
100K+47K - 3.4V... Hmm... Ideally, you should use 561PU4 (4050), but I myself
I connected it through the connectors - it worked. Idk. Check that the flash drive is connected correctly.
By the way, what is the volume of it? And type - SD or MMC? they are a little different though
SPI mode should work the same.
Also, check the /CS signal of the flash drive, it should be about 0 when accessed.
From
Igor Afonkin
→
To
All
1 June 2006
Hello skyther
The quartz frequency should not affect. The card doesn’t care how often the data flows,
as long as it’s not faster than the standard (I’m lying ;) - 25Mbit/s)
Power supply 3.3V?
From
Andreas Kaiser
→
To
All
1 June 2006
Hello skyther
sky> Resoldered to 3.3 mega and it started up :). But still, after “play” c_er, a
sky> then b_er. Flash drive MMC infineon 32Mb. And about the bill promptly
sky> connected... It seems to work on LPT, although please post the picture
sky> (preferably with an explanation of where the leg GOES, and not what it is called ;)
OT; what; Why is there such an interesting cat on the avatar and what’s wrong with it?
From
DVS
→
To
All
1 June 2006
Hello skyther
Should work with any card. I checked the sources, everything seems to be ok.
As for 14MHz@5V, I can say that this is really the standard mode, but at 3.3V
use at such a frequency is not entirely correct, but I read about it myself
only 1.5 months ago.
I also tried to use dividers before, but at a high SPI frequency
(14/4=3.5) high-resistance dividers knock down the fronts, then it’s better to install PU.
If the results are the same, then I’ll be on a layout with 162 mega sockets
I’ll plug in an adapter with 16 mega and “catch the bugs.”
PS; better; I used to post the firmware only for 162 mega.
From
skyther
→
To
All
1 June 2006
Hello, DVS
DVS> PS; better; b I only posted the firmware for 162 mega.
Don't worry ;) We'll debug it. What do you write in: C or Asm?
Now I remember - I have a mega8, it seems to be “play only”
implemented, can you post the circuit diagram and firmware? (or did I miss it?)
From
skyther
→
To
All
1 June 2006
Hello icebear
ice> OT; what; Why is there such an interesting cat on the avatar and what’s wrong with it?
The picture is called find the bird ;)
I also noticed: if you press play a second time, it tries to play, and then writes b_er...
Looks like I won't get enough sleep again today... ;)
And b_er doesn’t write without a card - it goes to file selection.
From
skyther
→
To
All
1 June 2006
Hello jdigreze
That's all true :(((We need to try with another card...
From
skyther
→
To
All
1 June 2006
Hello jdigreze
I re-soldered it to 3.3 mega and it started up :). But still, after “play” c_er, and then b_er.
Flash drive MMC infineon 32Mb. And I connected the account correctly... Looks like LPT
works, although please post a drawing (preferably with an explanation of where the leg GOES, and not
what is it called ;)
From
Igor Afonkin
→
To
All
1 June 2006
Hello skyther
Turn the card with the contacts facing you:
┌─- code ───
_______
/1234567|
| |
└── code ───
1) /CS
2) DI (to MOSI on mega)
3) GND
4) +3.3V
5) CLK (to SCK on mega)
6) GND
7) DO (to MISO on mega)
From
DVS
→
To
All
2 June 2006
Hello, DVS
Edited the first post.
From
DVS
→
To
All
2 June 2006
Hello skyther
On 8mega I sent the circuit diagram and firmware by mail, it was an intermediate option
to evaluate ease of use. Now I have already moved far away from him and stopped
support. But if you still want to collect, then knock on the post office.
I’m not really worried, I just need to work out some kind of assembly technique,
It is possible to add extended error codes, although the scheme is simple.
From
DVS
→
To
All
2 June 2006
Hello skyther
Well, with MP3 players, PDAs and Spec emulation, everything is already clear :-)
From
skyther
→
To
All
2 June 2006
Hello, DVS
Last night I tried to load from an MP3 player - I made wav in realspec, then winamp
(disc_writer.dll). On 320/48000 it was successful :) The only thing that confuses me is the mp3 size...
From
DVS
→
To
All
2 June 2006
Hello skyther
Here it is:
http://mp3vkarmane.nm.ru/mmc.html
PS; down; about SD
From
skyther
→
To
All
2 June 2006
Hello, DVS
I found a 16Mb SD card :) Who knows how to connect it? Please share.
From
skyther
→
To
All
2 June 2006
Hello, DVS
Thank you! I'll try it in the evening.
From
skyther
→
To
All
2 June 2006
Hello skyther
No, it doesn’t work :( SD doesn’t initialize at all - it doesn’t even try to play. And I’m right
Did you understand that MMC and SD are connected 1 to 1?
From
skyther
→
To
All
2 June 2006
Hello jdigreze
I just connected ALS318 - now I can read entire messages (first
put 321 on 1 digit). And here's what I noticed: after init (----) "F -1" minus
first file??? Card error = "C 0" Maybe the firmware was assembled incorrectly?
Another question: how to set fuses? I have: CKOPT, BOOTSZ1, BOOTSZ0,
BOOTRST=0, the rest are default.
I uploaded the firmware from mega162 - it behaves the same :(
From
Igor Afonkin
→
To
All
2 June 2006
Hello skyther
Yes. Only SD has 9 contacts. The eighth is thin and very close to the seventh. And the ninth
on the bevel, on the opposite side, and is located at a greater distance from the edge,
than the rest. These contacts in SPI are not used 100% ;)
There is a vague suspicion that the SPI shift register is being initialized, but I don't have the code
I saw it, I could be wrong.
From
DVS
→
To
All
3 June 2006
Hello skyther
So, let's clarify everything in order:
1) "----" - means the beginning of initialization
2) F -1 - this means that 0xFFFF was read from the EEPROM (it is clean), after
the first attempt to play/record any real file, its number
will be written to EEPROM and will be output the next time you turn it on.
3) If you press the play button when the file is correctly selected and appears
"C_er" means the card initialization failed, i.e. no response.
The initialization procedure is the simplest and everyone must go through it correctly
connected cards.
Later in the evening I will be able to chat live (via ICQ). And I think fuses
(BOOTSZ1,0 BOOTRST - don’t touch, CKOPT - I’ll look).
From
skyther
→
To
All
3 June 2006
Hello caro
Oh, sorry, I didn't mean "by default", but not programmed (=1) ;)
It's a bummer with ICQ - I went to the village, but the Internet is here...
Here's a question: I dug into the firmware and saw the INT0 handler - am I confusing something?
Or is it necessary, since your leg is hanging in the air?
From
Kamil Karimov
→
To
All
3 June 2006
Hello skyther
sky> Another question: how to set fuses? I have: CKOPT, BOOTSZ1,
sky> BOOTSZ0, BOOTRST=0, the rest are by default.
For ATMega162;
By; By default, CKSEL3..0 is set to state 0010 and CKDIV8 = 0.
This sets the operation from an internal RC oscillator at 8 MHz with a divider by 8.
As a result, the controller operates at a frequency of 1 MHz :)
To work with external quartz, CKSEL3..0 must be set to state 1110
or 1111.
For ATMega16;
By; By default, CKSEL3..0 is set to state 0001.
This sets the crystal to operate from an RC oscillator at a frequency of 1 MHz.
The same as for ATMega162, you need to set CKSEL3..0 to state 1111.
CKOPT is best left unprogrammed (=1).
PS. 1 means the bit is unprogrammed.
From
DVS
→
To
All
5 June 2006
Hello jdigreze
2 jdigreze
Everything is similar, but in the pdf for SD from the site www.sandisk.com it is written that CMD1 is for
SD
"doesn't work" and you need to use ACMD41, I tried to issue 40h+41dec and just
41h (CMD1), so in both cases in response R1 bit 0 is set (card in idle) and
bit 2 (invalid command). Maybe in this case you need to send the correct CRC?
I don’t understand what the trick is yet... Have you tried this algorithm on SD?
From
DVS
→
To
All
5 June 2006
Hello jdigreze
2 skyther
I'll install debugging without any questions. Write also how you built the circuit.
From
DVS
→
To
All
5 June 2006
Hello jdigreze
jdi> Works 100%. I sent you my raw materials for at89s8252.
Thank you, I’ll see... But I’m 99% sure that I’m doing everything exactly right
also, and even with CRC the same cheating.
Panasonic 8Mb SD card, what other problems could there be? Is the SPI frequency high? I think
that 3.5 MHz is quite a gentle mode.
Polarity of SPI signals? Probably not, on all MMC everything goes with a bang.
From
skyther
→
To
All
5 June 2006
Hello, DVS
DVS> Write also how you built the circuit.
According to your scheme ;). Collected from a mole rat near Leningrad. The map and indicator hang on
wires (~10 cm), no buttons - I poke the wire into the indicator. Power supply mega 3.3,
The clock from it goes to the spec.
From
Igor Afonkin
→
To
All
5 June 2006
Hello, DVS
DVS> Have you tried this algorithm on SD?
Works 100%. I sent you my raw materials for at89s8252 via email.
ACMD41, if I'm not mistaken, is required to work with encryption, and regular
partitions are visible as on MMC.
From
DVS
→
To
All
5 June 2006
Hello skyther
sky> I poke the indicator with a wire
Of course, I have anti-bounce installed, but double click is not excluded :-)
Explain the situation with C_er further. Doesn't appear anymore?
If "C 0" is displayed, it means you have opened a file that does not exist, or in a file
there are no supported tzx tags. And "b 0" means that you have entered the menu
playing blocks (tags) and when you press play you get b_er, this
again means that there are no tags supported by tzx.
Try different tzx. When pressing from the position "F n" appears "C m", where
m is not zero, which means the parsing of the tzx file was successful and m blocks were found.
From
skyther
→
To
All
5 June 2006
Hello, DVS
C_er appears from SD. I tried different tzx, VT and from this topic. Drop the image please
card (winimage) that works for you. The size is preferably 32 MB, but you can
I'll adjust the other one.
From
Igor Afonkin
→
To
All
5 June 2006
Hello, DVS
DVS> Thank you, I’m looking... But I’m 99% sure what I’m doing
DVS> everything is exactly the same and even with CRC the same cheating.
DVS> Panasonic 8Mb SD card, what other problems could there be? SPI frequency
DVS> high? I think that 3.5 MHz is quite a gentle mode.
DVS> Polarity of SPI signals? Probably not, on all MMC everything works on
DVS> cheers.
Of course, I have a small choice of SD. Tested on Verbatim 256Mb and Kingston
128Mb.
My frequency is ~2.8MHz.
Check the SPI configuration register. I have it like this:
in SPCR (#D5)
7. spie = 0 (no interruptions)
6. spe = 1 (SPI enabled)
5. dord = 0 (MSB comes first)
4. mstr = 1 (We work as a Host :))
3. cpol = 0 (Polarity. When idle SCK = 0)
2. cpha = 0 (Phase. Valid data at SCK=1. Set before edge
SCK, removed after.)
1. spr1 = 0 (divisor...
0. spr0 = 0 ...HCLK/4)
From
Igor Afonkin
→
To
All
5 June 2006
Hello, DVS
Or maybe the problem is due to the logical structure of the disk?
My SD's have both MBR (in the zero sector) and PBRS (logical descriptors)
sections). I have only one "entry" in the MBR - a pointer to PBRS, which has
address #0C900h (for Verbatim 256Mb) and #0CC00h (for Kingston 128Mb). In PBRS
There is also only one entry pointing to the beginning of the Primary Partition.
I probably struggled with these descriptors for a month, I couldn’t understand why the MBR doesn’t have
instructions on Primary Partition...
From
DVS
→
To
All
5 June 2006
Hello jdigreze
2 jdigreze
This is where we need to figure it out. The fact is that sector 0 when formatting
is overwritten. If you format under Windows, then immediately into the zero sector
starts with BOOT record primary partition (this is where the first three bytes of JMP EB3C90
), and if on Palm or in a camera, then PBRS is written in zero (this is where there are 4 descriptors
sections are 16 bytes each, but only the very first one is used, and at the end there are two bytes
signature 0x55AA) and from there you can get to the BOOT record primary partition
(this is where the first three bytes of JMP EB3C90 are).
But I’ve never seen an MBR in the zero sector... Maybe just in terminology
don't connect?
From
DVS
→
To
All
6 June 2006
Hello, DVS
2 jdigreze
It was I who confused the terms in my post (I remembered it for a long time and called it in my own way
:-), may the gurus in this area forgive me and not throw bombs at me), but the point is
one and the same, although I believe that MBR (there is no letter S at the end) is bootable
block length 446 bytes (sits in sector zero). And MBR is followed by Partition
Table, which can point to 4 PBRS sectors.
There is now a good connection to the logical structure. Tried formatting to
different devices.
The algorithm is like this:
1) I read sector 0 and analyze the first three bytes, if they are EB, 3C, 90 then I consider
that PBRS and MBR with Partition Table are missing.
2) Otherwise, I think that in the zero sector there is a Partition Table and a jump on PBRS
I do it from there.
3) Parsing and checking for compatibility with FAT16...
All this works, if the MBR is filled with 00 or FF when formatting, I haven't yet
I met that there was something else. But the algorithm can be adjusted.
Offers?
2 skyther
Sorry about the file format, I'll fix it this evening. This is "something" for debugera :-)
From
DVS
→
To
All
6 June 2006
Hello, DVS
2 skyther
But really, can you count the zero sector (in different versions) and post it?
From
skyther
→
To
All
6 June 2006
Hello, DVS
OK it will be in the evening
From
Igor Afonkin
→
To
All
6 June 2006
Hello, DVS
DVS> All this works if the MBR is formatted with 00 or FF,
DVS> I have never seen anything different. But adjustments are possible
DVS> algorithm. Suggestions?
Everything is correct! ...should work. On my cards the MBR is full #000h, for
with the exception, of course, of the Partition Table itself ;)
Suggestions? Idk. You need a dump of the 0th sector from a specific instance of the flash drive.
From
DVS
→
To
All
6 June 2006
Hello, DVS
If it doesn’t start, I’ll connect a 16 mega (I have one in stock) and
"dig"...
From
DVS
→
To
All
6 June 2006
Hello, DVS
If it's not too much trouble, drive the SD-shki, otherwise I have one for 8Mb and it stupefies me
enters.
From
DVS
→
To
All
6 June 2006
Hello skyther
2 skyther
Try it! (HEX Intel-extended)
I can also post hex eeproms if -1 is confusing :-)
File: ftaper_code.zip http://zx.pk.ru/attachment.php?attachmentid=3297
From
DVS
→
To
All
6 June 2006
Hello skyther
Congratulations. You are one of the first to repeat FlashTaper!!!
I guess what the problem was... Well, oh well.
Try the recording, try other TZX, in short, try everything. Don't forget the buttons
screw it up :-)
PS; Tomorrow; I'll post v2.2 for ATMega16 and 162 in the first post.
From
DVS
→
To
All
6 June 2006
Hello skyther
I already wrote about the recording, but it’s not difficult for me to repeat it.
The recording principle is slot-based. Those. in the SPECCY directory the user must create
several files (slots) with names in the N.tzx format (in general, as usual).
I recommend creating files (slots) by simply copying any large
file, and then it needs to be renamed to N.tzx. File size selectable
arbitrarily, calculating the time for which the recording is designed based on the speed
sampling 22050 samples (bits)/second.
Next, select the desired file number from the menu and instead of pressing play, press
record (the other extreme button), and then play.
After recording, the resulting file can be read and checked in the emulator ;-) (I
several games from cassettes "digitized").
From
skyther
→
To
All
6 June 2006
Hello, DVS
Here are the images from the MMS card. I formatted win2k and winImage, SL45 refuses :(
Looks like I overdid it...
File: images.rar http://zx.pk.ru/attachment.php?attachmentid=3298
From
skyther
→
To
All
6 June 2006
Hello, DVS
I drove different tzx, everything seems to be OK :) I'll check the SD tomorrow evening.
How is recording implemented? If, for example, we read the header + file, they are written to
different tzx?
From
skyther
→
To
All
6 June 2006
Hello, DVS
That’s not what I meant, that we write to an existing file, I understand. The question is:
if we read 2 blocks (short length, included in one tzx), they will be written into one and
the same tzx or different ones, one by one? (I think that in one...)
From
skyther
→
To
All
6 June 2006
Hello skyther
HURRAY, IT WORKS!!! :)
What was the problem?
Loaded the game (15 blocks) - it works :) Guys, I've got beer!!!
From
ASDT
→
To
All
7 June 2006
Hello, DVS
"9 figures" He probably eats a lot :)
From
ASDT
→
To
All
7 June 2006
Hello, DVS
“By the way, you can attach an LCD analogue of that indicator”
Which one are you using now? :)
An hourly LCD costs 30 rubles, plus parts - 20 rubles
From
ASDT
→
To
All
7 June 2006
Hello, DVS
"mobile device"
Actually, yes, the external device, accordingly
It is not advisable to bring food there...
From
ASDT
→
To
All
7 June 2006
Hello, DVS
I made an indicator on the LCD of the clock (4 digits),
for battery life - 5 ms 176 series :),
control - 5 lines...
It eats little and doesn't bother the processor.
And most importantly - it costs a penny :)
From
Andreas Kaiser
→
To
All
7 June 2006
Hello skyther
sky> Do you want to power your mobile device using batteries/accumulator?
But what about it? That’s why it’s a mobile device, so you don’t have to carry a nuclear power plant with you on a cart
:)
From
DVS
→
To
All
7 June 2006
Hello ASDT
By the way, you can screw on an LCD analogue of the indicator that is now
used without modifying the circuit and firmware.
From
DVS
→
To
All
7 June 2006
Hello, DVS
2 skyther
Before playback starts, the total number of blocks is displayed, and when
During playback, the current block number "P__N" is displayed.
When recording, the percentage of slot occupancy is displayed.
Over time, things go like this:
When calculating time, it is necessary to do quite serious parsing and
take into account that different blocks are played at different speeds (especially
images with protection), but what about loaded levels?
2 ASDT
LED indicator CC56-12EWA is about $2, but given the interface you can
screw on any other (smaller, larger).
From
DVS
→
To
All
7 June 2006
Hello, DVS
In general, I need to draw up a normal operating manual. Still needed
think about the further development of the project... screw in the alphanumeric
LCD or better add control via T_in/T_out as already suggested, and
Maybe even connect to ZX_BUS and steer through the add-on. ports + 254 :-) Remaining
about 4.5-5Kb CODE mem.
From
DVS
→
To
All
7 June 2006
Hello jdigreze
2 skyther
Everything will be recorded in one file. The time limit is determined by the size
slot. In general, the recording is somewhat similar to a WAV recording (the 15h tag is used
TZX Direct Recording).
From
DVS
→
To
All
7 June 2006
Hello skyther
sky> ALS318 rulez ;) 9 digits and no hardware modifications.
I also have a wide indicator with small numbers and lenses.
every digit. In my opinion, it’s also 318. It looks great (in my frequency meter
installed).
From
skyther
→
To
All
7 June 2006
Hello ASDT
ASD> \"9 digits\" He probably eats a lot
Maybe a lot, but I have everything assembled on a spec board and powered by ATX ;)
Do you want to power your mobile device using batteries/accumulator?
From
skyther
→
To
All
7 June 2006
Hello ASDT
ALS318 rules ;) 9 digits and no hardware modifications.
From
skyther
→
To
All
7 June 2006
Hello ASDT
I suggest adding a countdown counter (in seconds or min:sec), during the pause (and after
file selection) - total time, and during playback - the current block.
Control via out seems to have already been proposed - we form a BASIC with a sign
number:name, and then use the buttons to select, reset the spec and load as usual.
You can add “play cat” to the “mode” button.
You can also make a beeper: press the button - it beeps ;), error - a different sound.
From
skyther
→
To
All
7 June 2006
Hello icebear
ice> NPP behind you on a cart
And I kept thinking: why are the wires to the indicator smoking ;)
But seriously: take the old handset and take out the display with the battery ;)
From
Igor Afonkin
→
To
All
7 June 2006
Hello, DVS
No need for LCD. Let's better establish an exchange via T_in/T_out ;)
By the way, I have already purchased all the parts for myself, all that remains is to put everything together, so
I'll be using it soon...
From
Igor Afonkin
→
To
All
7 June 2006
Hello skyther
sky> Here are the images from the MMS card. Formatted win2k and winImage, SL45
sky> refuses :( apparently he changed his chemicals...
Or there is no MBR, then it is formatted as a flop, or not read from the 0th sector.
Most likely the first, taking into account the reaction of the SL45...
Anyway, CONGRATULATIONS ON YOUR SUCCESSFUL LAUNCH! :v2_clapp:
From
DVS
→
To
All
7 June 2006
Hello, DVS
2 jdigreze
Yes, this needs to be done, but I still get an error before starting
playback because parsing is in progress and the integrity of the blocks is checked there
file. Although there is a possibility that the parsing will miss “non-native” sectors.
Therefore, it’s probably easier to add a check for cluster contiguity before parsing
file. Just go through the veil from the beginning of the file to the end :-)
From
DVS
→
To
All
7 June 2006
Hello skyther
2 skyther
Thank you. This is very important information. It turned out the same as I did with SD.
We need to figure it out...
From
DVS
→
To
All
7 June 2006
Hello skyther
sky> Are fragmented files supported? There was an error several times
sky> \"F_er\", which was eliminated after completely erasing and writing tzx
sky> files.
No, they are not supported yet, but work in this direction is underway. For this
There is quite a lot that needs to be changed, in particular adding good buffering. The point is
that while playback is in progress, the “running around” across sectors can exceed
interbit interval.
From
skyther
→
To
All
7 June 2006
Hello, DVS
I tried the SD card, it doesn’t work :( Here are the logs from the terminal:
┌─- CODE ───
MMC_GO_IDLE; OK;
MMC_SEND_OP_COND; FAILED;
DOS_mmcStartMR; FAILED;
└── CODE ───
From
skyther
→
To
All
7 June 2006
Hello skyther
Are fragmented files supported? There was an error "F_er" several times,
which was eliminated after completely erasing and writing tzx files.
From
Igor Afonkin
→
To
All
7 June 2006
Hello, DVS
And immediately after selecting a file, it may be possible to build a chain in RAM according to
principle: 4 bytes - sector address (not number), 1 byte - length
unfragmented area. Allocate about 50 bytes for this task, i.e. on
chain of 10 fragments. If the length is zero, the end of the chain. If the file
If more than 10 fragments are fragmented, then “eggrog” even before the output starts...
From
DVS
→
To
All
8 June 2006
Hello, DVS
jdi> Honestly, I thought that’s how you did it... Apparently
jdi> error...
jdi>
It will be completed in the next versions ;-)
jdi> That is. CMD1 (set_op_cond) should in any case bring the card out of sleep
jdi> but this command must be sent repeatedly until the bit is reset
jdi> <>.
jdi>
Not only is it not reset, but the <> bit is also set!
I have suspicions about SD's reaction to releasing CS... The thing is,
that Response R1 (after sending the command and CRC) I read like this: I clock the SPI
byte by byte, i.e. 8 bits each, and I see what falls into my register as soon as
this is something different from 0xFF I stop clocking, I consider that I received R1 and
I'm letting go of CS. But in theory, you need to read another 40 bits, since the length of R1 is 48 bits, but
why do this if useful information is contained only in the first 8 bits!!!
Therefore, I believed that after releasing the CS, the card would not be present at the next CS
try to get me the remaining 40 bits.
In general, in both options the result is not satisfactory SD refuses
exit Idle, moreover, in the second option with reading all 48 bits of R1
differs from that obtained according to the first option (8 bits) !!! :-)
I continue to search for a solution...I seem to have enough PDF, even for some percentage of Intel XCA Application Note
downloaded it, it says how to initialize SD: CMD0, CMD55, ACMD41 - tried it and
yes.
From
DVS
→
To
All
8 June 2006
Hello, DVS
Вот как это делается:
┌─- CODE ───
u08 mmcCommand(u08 cmd, u32 arg)
{
u08 r1;
u08 retry=0;
// send command
spiTransferByte(cmd | 0x40);
spiTransferByte(arg>>24);
spiTransferByte(arg>>16);
spiTransferByte(arg>>8);
spiTransferByte(arg);
spiTransferByte(0x95); // crc valid only for MMC_GO_IDLE_STATE
// end command
// wait for response
// if more than 8 retries, card has timed-out
// return the received 0xFF
while((r1 = spiTransferByte(0xFF)) == 0xFF)
if(retry++ > 8) break;
// return response
return r1;
}
u08 mmcSendCommand(u08 cmd, u32 arg)
{
u08 r1;
// assert chip select
SPI_CS = 0;
// issue the command
r1 = mmcCommand(cmd, arg);
// release chip select
SPI_CS = 1;
return r1;
}
u08 mmcReset(void)
{
u16 retry;
u08 r1=0;
retry = 0;
do
{
// send dummy bytes with CS high before accessing
spiTransferByte(0xFF);
spiTransferByte(0xFF);
spiTransferByte(0xFF);
spiTransferByte(0xFF);
// resetting card, go to SPI mode
r1 = mmcSendCommand(MMC_GO_IDLE_STATE, 0);
// do retry counter
retry++;
if(retry>100)
{
#ifdef DEBUG
USART_puts("MMC_GO_IDLE; FAILED");;
#endif
return 0xFD;
}
} while(r1 != 0x01); #ifdef DEBUG
USART_puts("MMC_GO_IDLE; OK");;
#endif
// TODO; check; card parameters for voltage compliance
// before issuing initialize command
retry = 0;
do
{
// initializing card for operation
r1 = mmcSendCommand(MMC_SEND_OP_COND, 0);
// do retry counter
retry++;
if(retry>5000)
{
#ifdef DEBUG
USART_puts("MMC_SEND_OP_COND; FAILED");;
#endif
return r1;
}
} while(r1);
#ifdef DEBUG
USART_puts("MMC_SEND_OP_COND; OK");;
#endif
└── CODE ───
From
DVS
→
To
All
8 June 2006
Hello, DVS
I repeat that it works great with MMC. I generally do mmcReset before
playing each file :-)
From
DVS
→
To
All
8 June 2006
Hello, DVS
Heh, interesting about this clocking method, I didn’t find any information, I just looked
"temporary" (diagram with delays) for MMC.
I'll try it in the evening and report back.
From
Igor Afonkin
→
To
All
8 June 2006
Hello, DVS
DVS, try this function in this form. ;)
┌─- CODE ───
u08 mmcSendCommand(u08 cmd, u32 arg)
{
u08 r1;
// release chip select
SPI_CS = 1;
spiTransferByte(0xFF);
// assert chip select
SPI_CS = 0;
spiTransferByte(0xFF);
// issue the command
r1 = mmcCommand(cmd, arg);
return r1;
}
└── CODE ───
In the document that I have, it is required constantly before and after removal
/CS send sync via SCK in the amount of 8 pieces at MOSI=1.
From
Igor Afonkin
→
To
All
8 June 2006
Hello, DVS
DVS> Just run through the file from the beginning of the file to the end
To be honest, I thought that was how you did it... Apparently it was wrong...
:v2_smoke;
Hm.; And it's strange that SD doesn't want to respond to CMD1. Here's what's about it
writes SanDisk;
San>; The host must poll the card (by repeatedly sending CMD1) until the
San> Сin-idle-stateТ bit in the card response indicates
San> (by being set to 0) that the card completed its initialization
San> processes and is ready for the next command.
That is CMD1 (set_op_cond) should bring the card out of sleep anyway, but this
the command must be sent repeatedly until the <> bit is cleared.
And one more thing:
San> In SPI mode, however, CMD1 has no operands and does not return the
San> contents of the OCR register. Instead, the
San> host can use CMD58 (SPI Mode Only) to read the OCR register. It is
San> the responsibility of the host to refrain from
San> accessing cards that do not support its voltage range.
And instead of OCR, one byte will be returned - R1, in which the <<0>> bit is
<>.
In general, Idk... I was completely focused on SD, and I don’t know the differences from MMC. Athe document from SanDisk is called ProdManualSDCardv1.9.pdf, if you don’t find it, write
I'll send it to you... True, it's about 1.1MB ;)
From
DVS
→
To
All
8 June 2006
Hello, DVS
I tried to do before starting MULTIPLE_BLOCK_READ
mmcReset(), in which before CMD0, added CMD12 and everything started! But!!!
I don’t like it that way :-(((It’s somehow hard and in the forehead, it’s the same as in front
By launching another application, Windows will be overloaded :-)
From
DVS
→
To
All
8 June 2006
Hello, DVS
When sending sync after changing CS, the card began to go out of idle!!!
But “the further into the forest, the more firewood” now it’s unclear how the card comes out
MULTIPLE_BLOCK_READ and MULTIPLE_BLOCK_WRITE, the point is that it only costs
drive it into MULTIPLE_BLOCK_READ mode, then reset the controller and try
carry out initialization, then R1 will be 0x3F (stable). And when I need
again MULTIPLE_BLOCK_READ mode, but from a different sector, then the card doesn’t fit into it at all
enters. I tried to do STOP_TRAN (CMD12), there is an effect, but not always.
In short, MULTIPLE_BLOCK_READ from a certain sector is only enabled
once after initialization. I tried to read PBRS, everything is ok, the data
correct.
From
DVS
→
To
All
11 June 2006
Hello, DVS
The first post contains v2.3 firmware for ATMega16(162).
Changes:
1) In the function of issuing commands for SD/MMC, a sync byte has been added after the change
chip select states.
2) Taking into account the features of SD, the card initialization function has been changed. Now the map
re-initializes stably without turning off power
3) Taking into account the features of the SD card, the functions of continuous
read/write (exit mode using the CMD12 command, with reading the remaining bytes
in the sector)
4) I think that the name "ZX Flashtaper" is better suited than "HardTaper". Let
Someone will do it on HDD and call it HardTaper :-)
From
DVS
→
To
All
12 June 2006
Hello, DVS
What proposals will there be for implementing a two-way exchange with Speci?
Is it possible to make a UART on a spec via Tape OUT? (The idea has already been running) Who
will it take it?
From
DVS
→
To
All
12 June 2006
Hello fan
fan> I mean that the very concept of UART is not applicable to the gramophone port
fan> %)
UART - Universal Asynchronous Receiver and Transmitter. Why not
applicable? If RS232 is done via Kempston joy + centronix, and UART is private
case (pair of conclusions) ?
Or does it mean that the constant component is cut at the tape port?
From
DVS
→
To
All
12 June 2006
Hello fan
fan> or normal IN/OUT UART
Yes! This is what you need.
The idea is this:
1) The user types LOAD "" % on Specky
2) On FlashTaper press the BOOT button
3) The file manager is loaded into Specky
4) FlashTaper switches to file manager mode
5) The file manager, through the “tape recorder” UART, reads part of the directory from
programs
6) The user scrolls through the files in the window and selects the desired file, then the block and
file playback starts.
From
Alexander Zan
→
To
All
12 June 2006
Hello, DVS
DVS> Is it really possible to make a UART for specs via Tape OUT?
Either Tape OUT or normal IN/OUT UART %) and preferably MIDI
standard :D
From
Alexander Zan
→
To
All
12 June 2006
Hello, DVS
I mean that the very concept of UART is not applicable to the gramophone port%)
But I like the idea of using a file manager, and in principle it is quite feasible.
It would be absolutely super to get perverted with recording a brain dump (but this
already a problem with the Spectrum part :( ).
From
Alexander Zan
→
To
All
13 June 2006
Hello, DVS
DVS> UART - Universal Asynchronous Receiver and Transmitter
Actually, this is a terrible cockroach that unloads a percentage of excess crap.
In short, it doesn't matter. We got off topic.
From
ASDT
→
To
All
13 June 2006
Hello, DVS
"It’s not for nothing that even in the super-duper ATM-2 TIN/TOUT"
So what's the question? Connect by AND/OR...
From
ASDT
→
To
All
13 June 2006
Hello, DVS
“Well, the user was counting on something when he pressed the button on the tape recorder: BOOT, and
before that by entering LOAD"" on Specky."
So what's the question?
From
ASDT
→
To
All
13 June 2006
Hello, DVS
“Even if so, you still need to think through the exchange algorithm”
So if so...
Then the usual tone at the beginning, according to its frequency - either recorded on a tape recorder,
or direct access...
From
ASDT
→
To
All
13 June 2006
Hello, DVS
"Direct access will be enabled automatically"
What's the use of this? It makes more sense to be in tape recorder mode,
and switch to direct access at the request of the software.
From
ASDT
→
To
All
13 June 2006
Hello, DVS
"be in two modes PLAY and RECORD, and the rest of the time? That's right - it's IDLE
:-) At this time, let him work as a slave to process commands."
I see... I thought that in RECORD it could switch by
presence of a signal at the input...
"Make a VG93 emulator on mega" Not relevant :)
From
ASDT
→
To
All
13 June 2006
Hello, DVS
"then select the uart HANDLES"
So if the loader is already loaded... Why the button?
I suggest frequency switching.
From
ASDT
→
To
All
13 June 2006
Hello, DVS
In the sense that you need to focus on maps.
And vg is a standard inexpensive solution, there is no need to change it...
From
ASDT
→
To
All
13 June 2006
Hello, DVS
How about a direct connection, i.e. without the analog part?
From
ASDT
→
To
All
13 June 2006
Hello, DVS
I think that the analog part can be thrown out, because... tape recorder
in reality it is of no interest...
From
DVS
→
To
All
13 June 2006
Hello ASDT
ASD> "Direct access will be enabled automatically"
ASD> What's the use of this? It makes more sense to be in tape recorder mode
ASD> and switch to direct access at the request of the software.
Well, the user was counting on something when he pressed the button on the tape recorder: BOOT, and
before that by entering LOAD"" on Specky.
From
DVS
→
To
All
13 June 2006
Hello ASDT
ASD> How about direct connection, i.e. without the analog part?
I think a device with TIN/TOUT will be much more useful. Because this is one of the few
standards for all Specs and clones, just like the 3.5 MHz clock for the Z80!
jdi> About 10 years ago I connected 2 TOUT->TIN spectra, dialed on one
jdi> LOAD "", and on the second I typed SAVE "xxx" - it worked with a bang!
This is exactly what I meant when I spoke about the standard P/P from ROM. If not
bother with the turbo, shorten the pilot tone and how to send CODE blocks to both
parties according to the request-response principle, the master is Specky.
From
DVS
→
To
All
13 June 2006
Hello ASDT
ASD> Then the usual tone at the beginning, according to its frequency - or record on
ASD> tape recorder,
ASD> or direct access ...
Direct access will be enabled automatically: on Spec after downloading the file
manager, on FlashTaper immediately after unloading :-) Exit this mode by
reset or by command to load.
From
DVS
→
To
All
13 June 2006
Hello, DVS
2 The Exploited
In this vein, which you propose, there is another, cooler problem. Make
on mega emulator VG93 (in general, just a TR-DOS controller, maybe even ROM in mega
protect), and instead of the drive, use SD/MMC with FAT16, and *.trd images on the cards.
Agree it's cool :-)
There are sources for the VG93 emulator from Z-EMU. Everything is in C. I dream of reviving my “real” and
take care of this matter.
In the meantime, what's in stock is what's in stock. I'm talking about FlashTaper, which is also quite
fits nicely into Spek’s ideology.
From
DVS
→
To
All
13 June 2006
Hello, DVS
DVS> I think that the analog part can be thrown out, because tape recorder
DVS> is of no real interest...
Yes, no, no matter how you look at it, a classic remains a classic... It’s not for nothing that even in the super-duper
ATM-2 TIN/TOUT are made, otherwise it would be possible to save on mikrukh and
consumed current :-)
Everything that will happen via ZX-BUS will have different tasks and different circuitry, yes
and there are no Z80 programmers willing to support this creation on the horizon
observed.
From
DVS
→
To
All
13 June 2006
Hello, The Exploited
The> at 3.5 MHz up to 38500 kbit software uart was done
But what, the sound path will let through so much? I mean all sorts of filters, on
The classic Spectrum 48 with ULA cuts well. I personally counted on 4800 or
9600.
ASD> "Make a VG93 emulator on mega" Not relevant
Have you already done something? Or did you say it from the point of view: "Spec's time has passed,
tape recorders even more so... etc, etc."
From
DVS
→
To
All
13 June 2006
Hello, The Exploited
The> I suggest making instant downloads of z80/sna snapshots (under trdos
The> there is such a thing).
The> I can help with the boot code for both Z80 and Atmega
Unfortunately, my device does not connect to ZX-BUS yet, it’s closest to
loading sna approached CARO, in the ZX-MCard topic.
ASD> "then select uart HANDLES"
ASD> So if the loader is already loaded... Why the button?
ASD> I suggest frequency switching.
I agree that the idea with the BOOT button is not very good. But also software
no need to switch. Everything is as simple as a nut! Let me explain:
For simplicity, we can assume that FlashTaper can be in two modes
PLAY and RECORD, and the rest of the time? That's right - this is IDLE :-) At this time, let it
works as a slave to process commands.
Or am I missing something?
From
DVS
→
To
All
13 June 2006
Hello jdigreze
Probably better then the second option. And use standard P/P from Specky ROM. Here
Only bad luck with recognition in FlashTaper... I'm DirectRecording
I use it, then you need to port P/P Load from Speccy.
From
DVS
→
To
All
13 June 2006
Hello jdigreze
jdi> And then, I think that you shouldn’t limit yourself to just possibility
jdi> file selection. It is necessary to make it possible to read/write by sector
jdi> to flash. Then, to write tzx to the card you will not need to have it on hand
jdi> have a PC...
I agree, but it’s better to do this through ZX-BUS, similar to ZX-MCard.
One way or another, you need an encoder for Z80 to write such a shell (here I passed
).
But first of all, you need to think through the algorithm and I don’t think there’s any need to get too complicated.
From
DVS
→
To
All
13 June 2006
Hello jdigreze
To be honest, I was only counting on 3.5 MHz.
From
skyther
→
To
All
13 June 2006
Hello ASDT
Can set the "Uart" mode to the mode button. The loader is loaded as standard, then
select the uart HANDLES and go ahead :)
From
Igor Afonkin
→
To
All
13 June 2006
Hello ASDT
DVS> I agree, but it’s better to do it through ZX-BUS by analogy with
DVS> ZX-MCard.
Well, ideally, in the future, it will be possible to try to combine these two devices
in one. I hope Camille won't mind... :)
About 10 years ago I connected 2 spectra TOUT->TIN, on one I typed LOAD "",
and on the second I typed SAVE "xxx" - it worked like a charm!
ASD> How about direct connection, i.e. without the analog part?
Even if so, you still need to think through the exchange algorithm. But, IMHO, it's a problem
it’s not that TIN/TOUT do not have a direct connection, the problem is more in
synchronization In the days of real tapers, if the speed began to “float”
rotation of the drive shaft, loading programs was probleatic...
PS: Soon I’ll be “released”... it will be easier to engage in free creativity ;)
From
Igor Afonkin
→
To
All
13 June 2006
Hello, DVS
DVS> What proposals will there be for implementing two-way exchange with Speci?
DVS>
DVS> Is it really possible to make a UART for specs via Tape OUT? (The idea has already been discussed)
DVS> Who will take it?
It is impossible to make a full-fledged UART precisely because of the cutting off of the constant
component.
So far I only have two ideas...
1) Synchronous exchange, synchronization from the receiver;
2) Asynchronous exchange, block transmission, frequency synchronization (like
standard TIN/TOUT procedures).
From
Igor Afonkin
→
To
All
13 June 2006
Hello, DVS
When you use it only as a taper, then, of course, you will turn off the turbo,
but when you want interactive interaction, then there should be a turbo mode
supported Although, IMHO...
And then, I think that you shouldn’t limit yourself only to the possibility of choice
files. It is necessary to make it possible to read/write to flash by sector. Then,
to write tzx to the card you won’t need to have a PC at hand...
From
Igor Afonkin
→
To
All
13 June 2006
Hello, DVS
Standard ones won't fit. A self-synchronizing signal is needed, because computer
can work with or without a turbo, and turbos give different gains for everyone
productivity, i.e. The frequency of the signal will fluctuate over a wide range.
From
Mark Antonov
→
To
All
13 June 2006
Hello, DVS
DVS> Unfortunately, my device does not connect to ZX-BUS yet
why zx-bus? through the same channel and upload (at 3.5 MHz up to 38500 kbit
made software uart)
DVS> In this vein that you propose, there is another cooler one
DVS> problem. Make a VG93 emulator on Mega
It seems to me that making a real-time VG model is very difficult, if at all
perhaps. here at least a combination with pga+mcu is needed, IMHO.
DVS> I'm talking about FlashTaper, which also fits in pretty cool
DVS> Spec's ideology.
well, the ideology of multiface has also existed for a very long time :) when there were no
There were no emulators, let alone snapshots.
From
Mark Antonov
→
To
All
13 June 2006
Hello skyther
I suggest making instant downloads of z80/sna snapshots (there is one for trdos).
I can help with the boot code for both Z80 and Atmegu
From
skyther
→
To
All
13 June 2006
Hello ASDT
What if you make a shortened tyrdos? Like Inozemtsev’s (supposedly) virtual disk
"C" on ROM.
From
ASDT
→
To
All
14 June 2006
Hello, DVS
“What if we make a shortened tyrdos?” Just not on ROM, but on "ZX FlashTaper"
If at maximum speed, it will even be fast...
From
Mark Antonov
→
To
All
14 June 2006
Hello skyther
sky> What if you make a cut-down tyrdos? Like Inozemtsev (I think)
sky> virtual disk "C" on ROM.
no big deal, but why the hell. the subject was just made for specs with a tape recorder
(without disk controller). for trdos other solutions would be suitable -
extensions based on the Caro multicard, for example. In this case, I suggested
loading snapshots, here only the speed is doubtful.. but again
Spectrums have other input ports - Sinclair/kempst joystick's for example.