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