America Online
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
Tuesday, April 17, 1990  10:00 pm eastern time
Topic:  8 Bit Programming / Russian Apple II
Forum Leader:  Dave Sugar  (AFL Dyfet)

AFL Dyfet  Okay, I guess we are ready to get started here.  Good evening and..
AFL Dyfet  welcome to the Apple II Development Forum.  Tonight's topic is 8
          bit
AFL Dyfet  programming, and we will not be using protocol YET (watching
          Gibber :)...Feel
AFL Dyfet  free to bring your questions forward on this topic...
Dave Lyons Apparently everybody is a P8 expert already.
Matt DTS   Or everyone thinks they are.
A GibberFC <---- Uses P8 at night
A GibberFC in the dark
A GibberFC and washes his hands afterwards <grin>
Dave Lyons Not that everyone is *one* P8 expert...I mean all separate ones.
Matt DTS   We could start with trivia about what *really* lies in memory from
          $3D6 through $3EF...
Matt DTS   ...and why programs (not naming any names, like COMMAND.COM) that
          write over them are breaking rules.
AFA Gary J :)
Dave Lyons Look out, it's a trick question--bytes never tell a lie.
LL Lance   Gee, Mr. Matt, tell us! :)
Matt DTS   Nah.  :)
AFA Gary J Hmmm.  I thought there were more 8 bit programmers around (at
          least they
AFA Gary J always complain about too much IIGS coverage :)
AFL Dyfet  I think we can go beyond past programming sins and on to more
          interesting
AFL Dyfet  topics, such as about what the Russian Apple is like, if Ron Lewin
          will indulge
AFL Dyfet  us :)...
Micol Sys  Well...
Micol Sys  for the benefit of the Apple people here, I would like to outline
          the
Micol Sys  differences between the Russian Apple II clone and the real
          thing.
Micol Sys  First of all... the current model is NOT an enhanced machine... no
          65C02
Micol Sys  or mousetext.
Micol Sys  Secondly, the ROMs it uses are NOT copies of Apple's ROMs...
Micol Sys  the ROMs were written virtually from scratch...
Micol Sys  they had to be, becuase the Pravetz uses special russian ASCII
          which uses all
Micol Sys  8 bits, whereas the normal Apple II's ASCII ignores the high bit
          for most
Micol Sys  purposes.
Micol Sys  Applesoft, though...
Micol Sys  is BASICally (pun, pun) a copy of Microsoft's Applesoft used in
          Apple II and
Avery R C  Hey there.
Micol Sys  Laser... but is modified with some new commands.
Micol Sys  However, their version is not
Micol Sys  really able to use the russian ASCII, so that's why we're making a
          special
Micol Sys  version of Micol Advanced BASIC for the machine.
Micol Sys  They've also got some other really nice stuff... such as a network
          for the
Micol Sys  Apple II's that uses an IBM PC as the file server.
Micol Sys  If you want to develop software for thier Apple II compatibles,
          Micol Advanced
Micol Sys  BASIC/USSR is what you'll need to use to write your best
          program...
Micol Sys  because we take the headaches out of accessing their strange ASCII
          system...
Micol Sys  such as comparisons...
Micol Sys  becuase they're russian ASCII numerical values are NOT in
          alphabetical order...
Micol Sys  so MAB will handle the conversions to do comparisons, etc,
          eliminating those
Micol Sys  headaches.
Micol Sys  Anybody have any questions?
Micol Sys  By the way, we have the only Pravetz in North America
Avery R C  Yeah, just what is meant by 8-bit programming?
Micol Sys  Avery... 8 Bit programming means writting programs for the Apple
          IIe and IIc,
Micol Sys  which, unlike the 16-bit Apple IIgs, use 8-bit processors.
          Really, what is
Micol Sys  meant is "Apple IIe/c programming"
Coach101   Do you have any "export" considerations to deal with in Canada as
          far
Coach101   as shipping product to Russia?
Micol Sys  No export considerations at all.  Canada is more liberal about
          exporting to the
Micol Sys  USSR than the US is (or, was).
AFL SandyB Is it weird writing again for the 6502?
Dave Lyons (Hey, IIe/IIc software runs on the GS, too.)
Micol Sys  Yes, it is wierd... we lost about 2k of program space because we
Micol Sys  had to convert all  the 65C02 logic to 6502 logic.
AFL Dyfet  Is there any problem getting a legitimate Apple ProDOS running on
          the Pravetz?
Micol Sys  Yes...
Micol Sys  the Pravetz requires a modified version of ProDOS
Micol Sys  Go ahead, Avery
Avery R C  Is there any way to read a text file with all eight bits intact?
Micol Sys  In general, avery? From Applesoft?
Avery R C  The GET statement seems to chop off the 8th bit and only use 7.
Avery R C  Yeah, from Applesoft.
Micol Sys  Yes... Applesoft only uses 7 bits for TXT, and throws the rest
          away.
Dave Lyons You can always BLOAD the text file in pieces (using ,B and ,L to
          say where & how much).  Or call
Dave Lyons assembly-language subroutines.
Micol Sys  You could BLOAD the file and PEEK it
Avery R C  Trying to make a small improvement over IIGIF, but ya need all 8
          bits to do it.
Avery R C  I guess, section-BLOAD might be the only way to do it.
Micol Sys  Dave is giving you the best answer.  Use BLOAD and ,B and ,L to
          load in chunks
Micol Sys  at a time and then PEEK the information you need.
Micol Sys  BTW, in the USSR, there exists no copyright protection for
          software, so
Micol Sys  the makers of Pravetz would have been within their (USSR) legal
          rights to
Micol Sys  simply copy the Apple II ROMs and use them, but they couldnt.
          They would have
Micol Sys  loved to, because it would have made their job much easier.
A2GS       Why couldn't they copy them?
AFA Gary J Sounds like they need to switch ASCII standards :)
AFL Dyfet  I think their main concern was legitimacy, A2...
A2GS       :)
Micol Sys  Because they need to use 8 bit ASCII to get a russian character
          set, and the
Micol Sys  Apple II ROMs only handle 7 bit ASCII
A2GS       Sure, if your going to copy something, you may as well copy it
          LEGITIMATELY.
AFL SandyB Why didn't they just go with an 8086, why a 6502?
AFA JoeyS  Can't make an Apple II clone with an 8086.  :)
A2GS       You could try.
Avery R C  Hell, would you expect OUR government to be able to copy such a
          thing either?
AFL Dyfet  Bulgaria is already a maker of PC and AT clones in Eastern Europe,
          Sandy, as
AFL Dyfet  well as the maker of the Pravetz components...
Micol Sys  A2GS, there are legitimate ways to copy products
A2GS       Sure...Put your name on it and SUE the original author.
A2GS       :)
Micol Sys  Avery: The people in the USSR who have designed this machine are
          Apple II
Micol Sys  fanatics like you and I, and the machine is designed for Soviet
          school children
AFA Parik  how large a market are we talking here anyways?
A2GS       How many kids are there in Russia?
AFL SandyB 6
AFA Parik  billion
A2GS       5, one of them defected.
AFL Dyfet  LOL, Sandy :)
Micol Sys  There are 15,000 Pravetz machines currently
Micol Sys  and they expect to sell thousands more.
AFA Gary J Does the Pravetz have a Disk II type of disk drive?
A2GS       Nope they use Tape Recorders.
Micol Sys  Their disk drives are EXTREMELY unreliable.  10% failure rate.
          Almost as bad
Micol Sys  as Commodore  ;)
AFA Gary J :)
AFL Dyfet  Tonight's topic is 8 bit programming, Robocop, and that certainly
          includes the
AFL Dyfet  Soviet clone :)
Dave Lyons Got a question, Robo?
RoboCop002 Yes I do what is the next statment used for??
A2GS       Loops
RoboCop002 Okay.
Micol Sys  Robo: The NEXT statement goes along with the FOR statement
AFA Gary J FOR...NEXT
Avery R C  NEXT marks the endpoint of a loop structure.
RoboCop002 Well I program and I use the For statment but not the Next.
Avery R C  How????
RoboCop002 By using this. End:
LL Lance   I always thought NEXT was Steve Job's dream!
AFA Parik  (more like his nightmare it seems ;)
A GibberFC I don't know... The cube makes a nice coffee table....
AFL SandyB Monitor is what, green screen? Red? Who makes their floppies? Are
          they going to teach programming in
AFL SandyB the schools?
Micol Sys  Sandy: Monitor is green (red...heh)... I don't know who makes
          their floppies...
Micol Sys  yes, they certainly ARE teaching programming in schools.. that's
          what MAB/USSR
Micol Sys  is for!
A GibberFC a new Campaign.... Disk ][ for Russia <grin>
AFL Dyfet  GA A2, you have the floor now for your question....
A2GS       Thank You....
A2GS       This, of course is off tonights topic, But,  Anyone know where I
          can find a
A2GS       Flood/Pattern Fill algorithm to implement in a paint program?
A2GS       GA
Micol Sys  There were some articles on flood fills in Call-Apple during the
          last
Micol Sys  year... I forget the issues.
JDavies1   A2GS Mike Westerfield had an article in C.A.L.L. Apple last year
          about flood
JDavies1   fills.
A2GS       Nope, Matt, I need the algorithm.
A2GS       I'll look...Any other suggestions?
AFL Dyfet  GA Gary...
AFA Gary J I think there's some code for a flood fill
AFA Gary J down deep in the QuickDraw II folder of the
AFA Gary J IIGS Toolbox section of Let's Discuss..
AFA Gary J (I think Mike Westerfield wrote the code in Let's Discuss here
          too)
AFA Gary J GA
AFL Dyfet  I also recall an article or two in past Call-Apple's and
          Nibble...GA Parik...
Micol Sys  A2GS... I just found the article...
A2GS       Great....which issue?
Micol Sys  by Mike Westerfield...  June 19894
Micol Sys  1889
Micol Sys  1989  (butter fingers)
AFA Parik  you can try tracing out the seedfill call in the sys 5.0 quickdraw
          aux.  ga
A2GS       Trying to avoid a headache, Parik.
Matt DTS   Micol says Byte Works has 1889 programming style!  A new
          development system war!  Wow.
AFA JoeyS  :)
A2GS       Thanx
A2GS       You continue about the envasion of Russian II's
AFL Dyfet  Okay, I have one last question for Ron on the Pravetz...What has
          Apple's
AFL Dyfet  position been on the machine and this 'patched' ProDOS?? :)
Matt DTS   To my knowledge, Apple has made no official statement on the
          Pravetz.
Micol Sys  I don't think they have one.  At least I havent heard it.  It
          wouldn't
Micol Sys  really matter, since they're isnt much they could do about it.
Matt DTS   I'll tell you what our position on the Patched ProDOS is,
          though:
Matt DTS   (if Protocol permits)
Micol Sys  Damn, the Protocol... full speed ahead!
Matt DTS   1) Patching ProDOS is against the licensing agreement (if that
          matters), and
Matt DTS   2) They're either going to be stuck with that version or they're
          going to have to keep patching
Matt DTS   it every time we change something.  It limits the developers to no
          new features, usually.  GA.
A2GS       Whatever Apple's position is toward the old Franklin Ace
          systems....
A2GS       it's probably the same with the Pravetz.
AFL Dyfet  That is true, Ron, since Soviet law doesn't include private
          copyrights, at
AFL Dyfet  least at this time...if they ever get around to revamping/creating
          a modern
AFL Dyfet  legal system, then there may be a problem :).
Matt DTS   At this time, there is nothing specifically in ProDOS to make it
          *not* run on clones, but neither
Matt DTS   is any specific care taken to make sure revisions work on any but
          Apple machines.  It's just where our
Matt DTS   priorities lie (strangely enough).
Coach101   :)
Micol Sys  Well, now that you bring it up, Dyfet, they do have a new system
Micol Sys  They have a new system called a Pravetz 8c which is essentially a
          IIc type
Micol Sys  machine with everything built in (clock too, I think)... and it is
          even
Micol Sys  enhanced... but I don't think they can get the quantity right
          now.
A2GS       BTW What does "Pravetz" mean in Russian?  Apple?
AFL Dyfet  I understand it is named after a village in Bulgaria...
AFA JoeyS  Ron got zapped.  :(
A2GS       Naturally.
A2GS       I see the obvious correlation.
AFL Dyfet  I think we will have to wait for Ron to get back to us, but
          basically, the
AFL Dyfet  components are made in Bulgaria and assembled in the USSR.  It is
          in fact a
AFL Dyfet  Bulgarian design.
AFL SandyB LOL 2gs.
AFL SandyB Dave, why did Bulgaria do it? Some special reason?
AFL Dyfet  I believe, while we're waiting for Ron, Sandy has the next
          question...GA
AFL Dyfet  Sandy...
AFL SandyB I had a question about the Russian //c for Ron.
A GibberFC Pravetz - Noun - Russian word for "HA you capitalist Pigs...We now
          have a real computer"
AFL Dyfet  Well, Bulgaria has been making PC (and recently AT) clones for
          awhile now...
AFL Dyfet  they have the technical skills/access that the USSR does not, I
          would guess.
AFL SandyB They apparently have the technology, chips, plastics, etc. needed?
          Or do we give it to them?
Micol Sys  Grrrrrr
Micol Sys  Sorry all... crashed
AFL Dyfet  I think Ron would be better able to answer that, though...
Micol Sys  They make it all themselves (in Bulgaria, actually)
Micol Sys  They even use Russian RAM chips
AFL SandyB Ron, do they happen to have a good flat screen for their //c type
          thing?
Micol Sys  get real  ;)
AFA JoeyS  (I can see it now: The USSR's major export being //c
          flat-screens... :)
AFL Dyfet  Okay, I believe the next question is from Kris...GA Kris...
Kris W     How would you recommend a BASIC user to your Advance GS BASIC ?
Micol Sys  what do you mean?  How are they promoting it?
Kris W     Well, sorta and how easy it is to learn the new language .
Micol Sys  Well, they are doing a mailing to all Pravetz owners...
Micol Sys  and they have also reached agreements to supply the Moscow school
          system
Micol Sys  with 1000 copies, and expect to make similar agreements with other
          school
Micol Sys  systems.
Micol Sys  It is very easy to learn.  For instance, the full screen editor
          alone is WAY
Micol Sys  easier to teach than the "escape key" editing in Applesoft.  And
          becuase of
Micol Sys  it's structure, it is easier to teach programming
Micol Sys  plus, great diagnostic tools,
Micol Sys  and in particular, for the russians, the Russian manual is a big
          help  ;)
Kris W     I was wanting a much faster and less 'messy' type of language.
Kris W     Does it support hardware interface easily (Stereo Cards, Modems,
          etc)?
Micol Sys  Do you mean the GS version?
Kris W     Yes
AFL Dyfet  I think you drifted a little from Kris's question there, Ron :)
Micol Sys  I know
Micol Sys  Well, on the GS stereo is supported through the toolbox... odd
          channels are
Micol Sys  supposed to be Left (I think), and even channels are right.
          right?
Kris W     I'm in 8th Grade, beleive it or not! I wanted to know which
          language to learn.
Micol Sys  there is no built in  modem support, but if you're experienced,
          you could
Micol Sys  write your own drivers (in assembly) and link them in.
Micol Sys  Kris, there is a category for MAB GS questions in the programming
          environments
Micol Sys  category in ADV.  This is really an 8 Bit conference.  I'll be
          glad to answer
Micol Sys  all your questions there.
Kris W     In session now or when ?
Micol Sys  I dont want to get too far off topic.  Sorry
Micol Sys  It is there now.. just chose the Programming Environments category
          in ADV, and
Micol Sys  there you will find a folder called Micol Advanced BASIC for
          messages.
AFL Dyfet  Okay, we will now go back to Paladin's question...GA Paladin...
Paladin100 I have a need to time events to .001 seconds. The need to be
          absolute is
Paladin100 not as important as being consistant.
Coach101   Do you mean make something happen every .001 second or....
Coach101   Determine when something happened to within .001 second ?  ga
Paladin100 I want to time events that are longer than 1 second but have the
          resolution of
Paladin100 .001 when the clock is "stopped", i.e. 2.563 seconds.
AFL Dyfet  Do you need to do anything else while waiting for your event?
AFL Dyfet  Is this an external event?
Paladin100 not at this stage. I am building up to that.
Paladin100 Yes it is external and plan to use an interface card
          (parallel....6522)
Micol Sys  You can use a Thunderclock to generate interrupts at a rate of
          2048hz, which
Micol Sys  I think generates interrupts every .001 seconds
Micol Sys  or is it .01
AFL Dyfet  The IIgs (and IIe with mousecard) offer interrupt timming only to
          1/60th of a
AFL Dyfet  second, but as Ron pointed out, the old Thunderclock would
          genorate interrupts
AFL Dyfet  to that high a resolution.
Paladin100 I figure an assembly routine where a know amount of cycles are
          used and count
Paladin100 the times through the loop.
Dave Lyons 1/2048 < 0.0005, no?
AFL Dyfet  If you don't need to do anything but time the event, a loop in
          assembly would
AFL Dyfet  be your best bet.
AFL Dyfet  GA Jim...
Jump Long  Dan Strnad (one of my fellow DTS engineers) has some sample code
          that he's been working on that
Jump Long  might help you.  It will only work on the IIGS (it uses the sound
          interrupts).  We may have it
Jump Long  available in future sample code.  If you need it sooner, you can
          write to us.
Jump Long  ga
Paladin100 thanks just needed some ideas...
Micol Sys  Right Dave... Thunderclock will also do 256hz, which may be
          better
Coach101   256hz is about .004 seconds..
AFL Dyfet  True, Ron...on faster interrupts you start running into IRQ
          overhead :)...
Paladin100 I was looking at using the vertical blanking for a clock and
          then
Paladin100 mathematically dividing it up.
Micol Sys  Right, Dyfet... 100 assembly language instructions will take about
          400ms to
Micol Sys  execute.  with 2048hz the interrupt routine would be using 80% of
          the processor
Micol Sys  time
AFL Dyfet  You could use the IIgs's verticle line counter to determine where
          in the video
AFL Dyfet  cycle you are, and use that, in combination with the 60hz video
          blanking,
AFL Dyfet  possibly, as an alternate way of timing the event :)
AFL Dyfet  You would then know how many 60hz cycles were used, and where in
          the last
AFL Dyfet  60hz, timewise, it was :)...
Jump Long  On the IIGS, you have to be careful when using some of the
          interrupt signals, because so much of the
Jump Long  system is interrupt driven.  While one interrupt is being handled,
          others must wait or be ignored.
Coach101   Whoa Ron....   400ms or 400us for 100 instructions?
Paladin100 Hmmm...Maybe I'm over my head in this question! I would be easy if
          I could
Micol Sys  400 micro seconds (sorry(
Coach101   I think Dyfet hit upon the simplest and best solution...
Coach101   Install a VBL handler that just counts the number of times it is
          entered...
Coach101   That should be pretty fast and not too significant a task.
Paladin100 never mind...
Jump Long  (and hope you don't miss any of the VBL interrupts :)
Coach101   THen when the event happens, disable the interrupts, grab the line
          counter,
Coach101   grab the VBL counter, enable interrupts and do the arithmetic...
AFL Dyfet  Assuming he's not doing disk access, he should be fine at catching
          the VBL's...
Paladin100 These sound like vaible ideas. I would prefer to use a IIe for
          this job though.
Micol Sys  Use a IIe with a thunderclock.  You can even get one used pretty
          cheaply...
Micol Sys  and they provide assembly language examples of using the
          interrupts in their
Micol Sys  manual
Jump Long  Then you're best off using a clock card.
Jump Long  A.E. still makes a clock card, too.
Paladin100 There would NOT be any disk accesses during the timing!
AFL Dyfet  Unfortunately, on the IIe, you cannot directly find out where in
          the video
AFL Dyfet  cycle you are...
AFL Dyfet  (no verticle line counter)
Micol Sys  I don't know if AE's clock can do 256hz or 2048hz interrupts
AFL Dyfet  However, a vapor lock could be used the same way :)
AFL Dyfet  Not all IIe clock cards were created equal...not all of them had
          high
AFL Dyfet  resolution IRQ support.
Paladin100 AEs does 1/2024 interupts (just dug out my OLD AE Timaster
          manual)
Jump Long  that's what I was looking for, too, but could not find...
Jump Long  (the manual)
Paladin100 which is almost exactly .001 seconds (.000977)
AFL Dyfet  You man 1/1024 :)...Yes, that's very close...
Coach101   About 2.4% low :)
AFL Dyfet  (mean=man)
Paladin100 2.4% is more than close enough.
Jump Long  If you can find your AE disk that came with the clock, it has
          sample code, too.
Paladin100 Thanks guys! I now have a good idea how to proceed!
AFL Dyfet  Okay, do we have any other questions for tonight...?
AFA Gary J Ron, what peripherals are available for the Russion Apple?
AFA Gary J LaserWriter? :)
Micol Sys  Gary... the machine has standard Apple II slots, so in theory it
          can accept
AFA Gary J Russion = Russian
AFL Dyfet  Probably loud clunky Bulgarian daisy-wheels :)
Micol Sys  any cards... but they do not have enough of anything.  Many of the
          machines
AFA Gary J :)
Micol Sys  do not even have disk drives!!
AFA Gary J Cassette tapes?  Oh no.
Micol Sys  Actually, no Gary... the standard Pravetz set up is
Micol Sys  10 machines hooked to one IBM PC in a network with the PC being
          the fileserver
Micol Sys  so the 10 pravetz don't have, or need, disk drives
AFL Dyfet  I recall an earlier Russian Apple II clone, the Ajvet, I think??
Coach101   Does the PC file server support "block" reads?
Micol Sys  I don't know abou that, Dyfet
AFL Dyfet  I suspect it simply emulated ProDOS block requests and nothing
          fancy...
Micol Sys  Coach.. they are working on the ProDOS drivers to give the machine
          full
Micol Sys  prodos support.  Right now, I think most of their networks only
          support DOS 3.3
AFL Dyfet  Hmm...
Micol Sys  But they are getting ProDOS to work...
Micol Sys  they also have a disk drive (the one with the 10% failure rate)
          that will
AFA Gary J At least DOS 3.3 can be adequately patched :)
Jump Long  No GS/OS?? ;)
AFL Dyfet  Who's PC's are they using, Ron?
Micol Sys  read IBM disks, as well as ProDOS disks
AFL Dyfet  Or are western PC clones already that common in Russia?
Micol Sys  Yes... they make up the vast majority of computers
Micol Sys  Macs are very rare
AFL Dyfet  But for school, they want Apple II's...??
Micol Sys  They'll take  anything they can get.   The Pravetz is a bargain
          because
Micol Sys  they are cheaper than the PC's, and they don't have to pay for
          them in scarce
Micol Sys  western currency (as opposed to the real thing)
AFA Gary J Heheh...there's a vast supply of educational software already
          there... that
AFA Gary J doesn't work :)
AFA Gary J (On Pravetz)
AFL Dyfet  I take it then that the Bulgarian PC clones were not that exciting
          :)
Micol Sys  I don't know... I'm not really too familiar with them... but I do
          know that
Micol Sys  they have very limited production capabilities.  And exploding
          monitors.
Micol Sys  the single largest cause of house fires in the USSR is TV's
          catching on fire.
AFL Dyfet  I've only heard of one incident of a monitor exploding in the US
          :)
Dave Lyons Why?  Is it bad TVs, or are they just really careful with
          matches?
AFL Dyfet  There is always a risk of implosion...Western manufacturers are
          more careful
AFL Dyfet  on how they make picture tubes...
AFL Dyfet  Have higher standards...(FAR HIGHER, I gather)...
Micol Sys  Bad TV tubes.  Vladimir told me that there is a 20% failure rate
          of Pravetz
Micol Sys  monitors.
AFL Dyfet  In the Soviet Union, who ya gonna sue??
Micol Sys  Ghostbusters?
AFL Dyfet  :)
AFA Gary J :)
Micol Sys  In Japan, failure rates are measured in parts per thousand (as in
          2 defectives
Micol Sys  per thousand)... in USSR they're talking 20 failures per HUNDRED
AFL Dyfet  Reminds me of C-64 production reliability :)
AFL Dyfet  Never realized Commodore was up to third world industrial
          standards before :)
Micol Sys  LOL