Turbo mode and all...
ZXNet echo conference «code.zx»
From 812/09.03 → To All 11 July 1997
Hi all!!!
----------------------
I decided not to join any
market, but develop another topic (possibly)
asking the question:
So, I have Scorp., I do it myself
programming and this one arose
question - how to switch programmatically
Turbo mode (momentary button)?
I heard (or rather read) that 7 MHz and
on the contrary, it switches somewhere in TR-DOS
addresses, is that true? This is such nonsense! :)
And another small question(?), who knows what?
about HDD from a programmer's point of view, i.e.
how to determine presence or vice versa and
etc. etc. Otherwise Zonov and Larchenko would attack
ru, they’ll create something, and then take it apart -
what and how and where ;-))) ...
Somewhere around the stations my three are walking
programs: SPRIT1.3 (cutting sprites
from any screen file); PIRAT1.0
(to view files for fonts,
pictures, sprites, the latter can be placed
click on the picture and edit in
any editor or here, and then
insert back); F.EDIT (editor
fonts 8*8.16*8.16*16, there is a RAM disk and
possibility of created characters in
build something in a special window and
write it down as a sprite like this :) ).
There is a description for the first two, and for the last
there are no ice creams, I was too lazy to write (it’s before
it was an army!), please check out the program and
lather the answer, and also tell me
is it necessary to send a description of F.EDIT to
echo, or maybe send the programs themselves
in fahu, if yes, then how to do it?
So, wash the answers and reviews(Still interesting! :-) ).
All the best, bye!!!!!! :)
From 812/03.08 → To Cherniavskiy Yakov 14 July 1997
Hello to you Cherniavskiy!!!
One hot summer evening,
like 07/11/97, exactly at 21:08 Cherniavskiy
Yakov wrote to All on the topic 'Turbo mo-
de and all... ':
CY> Hello everyone!!!
CY> ----------------------
Great!!!
[missed somewhere]
CY> question - how to switch programmatically
CY> Turbo mode (momentary button)?
CY> I heard (or rather read) that 7 MHz and
CY> on the contrary switches somewhere in TR-DOS
CY> addresses, is this true? This is such nonsense! :)
In short, leave TR-DOS alone, the easiest way is
switch the turbo with a read command from the port
IN, you do:
ld bc,#1ffd - TURBO OFF
in a,(c)
ld bc,#7ffd - TURBO ON
in a,(c)
Isn't it true, it's much more convenient :)
CY> And another small question(?), who knows what
CY> about HDD from a programmer's point of view, i.e.
But I can’t tell you anything about this...
gu, haven’t seen it yet (no screw)
[missed somewhere]
CY> All the best, bye!!!!!! :)
With best wishes, Dmitry.
From Michael Kondratyev → To Yakov Cherniavskiy 23 July 1997
Hello Yakov!
Sun Jul 20 1997, Yakov Cherniavskiy concocted a letter to Michael Kondratyev:
MK>> Hello Cherniavskiy!
YC> Hello, hello, but it’s strange for me
YC> there is a name...But thanks for responding! :)
the name must be written where the name is.
MK>> everything you need is written in the accompanying brochure (chapter 4 "new
MK>> subroutines of the shadow service monitor (rst 8) for working with
MK>> peripheral controller smuc")
YC> The situation is such that I need a trace. given-
YC> new: I/O port addresses for the HDD controller
YC> and it is desirable (even mandatory, otherwise
YC> the devil will break his leg... :) ) something like
YC> instructions for their use are as follows
YC> things... :) Anyone who knows what, please respond! It is necessary
YC> very much! :)
as moa said (and I completely and completely agree with him) - “it’s better not to go there
climb." firstly, you will do it about ten times slower than from
tm; secondly, think a hundred times - whether you can and most importantly - _why_.
and, in general, I don’t mind the address:
=========== Cut and save ===========
;constants, addresses, bits of the SMUC controller;General ==============================================
ICSaddr equ 0bah ; .1011.1010 ;base address of the IBM control solution and CMOS
IBMrr equ 0ffh ;1111.1111 ;controller address
HDBaddr equ 0beh ; .1011.1110 ;hard disk base address
;HDD ==================================================
HDLData equ 0f8h ;1111.1000 ;ml. data register byte
HDHData equ 0d8h ;1101.1000 ;st. data register byte
HDErr equ 0f9h ;1111.1001 ;error resolution
HDScCn equ 0fah ;1111.1010 ;sector counter size
HDScNb equ 0fbh ;1111.1011 ;sector size
HDClLw equ 0fch ;1111.1100 ;cylinder size ml.
HDClHg equ 0fdh ;1111.1101 ;cylinder size st.
HDDrHd equ 0feh ;1111.1110 ;Disk size & heads
HDSts equ 0ffh ;1111.1111 ;status resolution
HDCmd equ 0ffh ;1111.1111 ;order of commands
HDASts equ 0feh ;1111.1110 ;alternative status register (in CS3)
HDdcr equ 0feh ;1111.1110 ;rr control (in CS3)
RESDRV equ 00000001b ;hard drive & IBM slot reset bit
CS1 equ 10000000b ;port selection bit CS1
CS3 equ 10000000b ;CS3 port selection bit
CMOSADDR equ 10000000b ; CMOS address size
CMOSDATA equ 10000000b ; CMOS data size
INTHDbt equ 7 ;HDD “interrupt” bit number (in IBMslot)
=== Cut ===
At the address ffba there is a service register in which
for recording
D0 reset hdd and ibm/slot
D1 bit A7 for ibm/slot
D2 interrupt signal broadcast enable
D3 digit A8 for ibm/slot
D4 should be 1
D5 should be 1D6 should be 1 (that's all nvram)
D7 controls the multiplexer of some addresses
with 1 in D7 at address FxBE, CS2 is selected on the hdd-interface.
=== Cut ===
78feh (0xx1.1xxx 111x.x110) ibm slot
7ebeh (0111.1110 1011.1110) A0=0 for 8259
7fbeh (0111.1111 1011.1110) A0=1 for 8259
f8beh (1111.1xxx 1011.1110) hdd
ffbah (1111.1111 1011.1010) control p-p
dfbah (1101.1111 1011.1010) cmos
=========== Cut and save ===========
With best wishes, Michael.