From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Mon Feb 3 04:32:44 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Mon, 3 Feb 92 04:32:26 -0600 id AA12311 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA01029; Mon, 3 Feb 92 04:23:08 CST Return-Path: Message-Id: <9202031023.AA01029@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 8957; Mon, 03 Feb 92 05:23:20 EST Received: by SIUCVMB (Mailer R2.07) id 4010; Mon, 03 Feb 92 04:24:29 CST Date: Mon, 03 Feb 92 04:22:02 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: Re:clearing the screen Status: R In the shell, cls clears the screen. In a program, page() will clear the screen, or if output to a printer produce a form feed. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.siu.edu * * HyperC enthusiast st2975@siucvmb.siu.bitnet * * !The only freeware 8 bit C compiler for 65xxx based Apples! * * Laser 128EX 4Mhz 65802 (CPU now supported by HyperC) */ From snelson Thu Feb 6 08:29:26 1992 To: -f hyperc/tips From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Tue Feb 4 13:46:24 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Tue, 4 Feb 92 13:46:21 -0600 id AA10408 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA01750; Tue, 4 Feb 92 13:38:17 CST Return-Path: Message-Id: <9202041938.AA01750@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 7757; Tue, 04 Feb 92 14:37:19 EST Received: by SIUCVMB (Mailer R2.07) id 7961; Tue, 04 Feb 92 13:38:19 CST Date: Tue, 04 Feb 92 13:34:09 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: foot in mouth Status: R Previously, I had incorrectly said that cp-code is completely relocatable. Well, I must have taken a stupid pill that day. cp-code produces operands that are relative in the short form, i.e. a byte operand is added to the program counter. They are absolute in the long form, i.e., the word operand replaces the program counter in the C engine. Sorry for any confusion I may have caused. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Tue Feb 4 16:27:04 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Tue, 4 Feb 92 16:27:00 -0600 id AA29613 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA02053; Tue, 4 Feb 92 16:19:18 CST Return-Path: Message-Id: <9202042219.AA02053@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 0979; Tue, 04 Feb 92 17:18:52 EST Received: by SIUCVMB (Mailer R2.07) id 8720; Tue, 04 Feb 92 16:17:37 CST Date: Tue, 04 Feb 92 16:14:00 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: opsys8 Status: R To all: Added to the hyperc ftp site is opsys8, a file that contains fixes to bugs I have found in the cp-interpreter. A small doc file is included. On a backup disk, put hc.system, opsys8, shell and autoexec on it. Rename opsys8 to opsys and execute hc.system. Any problems, let me know. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Tue Feb 4 16:37:22 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Tue, 4 Feb 92 16:37:19 -0600 id AA31399 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA02070; Tue, 4 Feb 92 16:29:16 CST Return-Path: Message-Id: <9202042229.AA02070@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 1201; Tue, 04 Feb 92 17:28:58 EST Received: by SIUCVMB (Mailer R2.07) id 8745; Tue, 04 Feb 92 16:30:07 CST Date: Tue, 04 Feb 92 16:25:26 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Status: R Correction: The filename is opsys8.bsq The major(?) bug fix was in the cp-opcodes for j*z. The documentation states that these pseudo-ops could take either a long absolute address or a short relative address. The cp-interpreter, in fact, would only accept a short relative address regardless of whether a long or short address followed the pseudo-opcode. This bug may in fact have been a fairly major bug. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From jsc52962@uxa.cso.uiuc.edu Tue Feb 4 20:36:56 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Tue, 4 Feb 92 20:36:53 -0600 id AA27769 with SMTP Received: from uxa.cso.uiuc.edu by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA02786; Tue, 4 Feb 92 20:31:03 CST Return-Path: Received: by uxa.cso.uiuc.edu id AA16706 (5.65c/IDA-1.4.4 for hyperc-l@calvin.sfasu.edu); Tue, 4 Feb 1992 20:31:41 -0600 Date: Tue, 4 Feb 1992 20:31:41 -0600 From: "Jeffrey S. Curtis" Message-Id: <199202050231.AA16706@uxa.cso.uiuc.edu> To: hyperc-l@calvin.sfasu.edu Subject: Got an unenhanced //e? Reply-To: sidewinder@uiuc.edu Status: R Hi there- For many months now, I've been working on a project using Hyper C. The darned thing has been "almost done" for about a month, but the publisher keeps rejecting little bits and pieces of it. My current big problem is with scrolling. Due to restrictions within Hyper C, I had to use proprietary window scrolling techniques - in other words, flipping the 80 column dipswitches and copying all of the video data around manually. The routines work just fine-n-dandy on my enhanced //e (Rev B with enhancement), so I sent it to the publisher, who tested it on an unenhanced //e (Rev B, I assume). I was told that "the screen got all messed up, and half the columns were erased, and.." blah blah. So apparently it would seem that either (1) I miswrote the routine, which I can't understand, since it's nearly identical to a routine presented by Apple Co. itself, or (2) they're using some sort of weird 80 column card with funky quirks. Anyway, so what I need, for the sake of my sanity (and financial well- being) is someone out there with access to an unenhanced //e (I already tried every school district and library within about ten miles of my home) to test out a program which uses those routines for me. If you have access to one, *please* let me know via email. I'll send you a binscii'd program to run (very short), and based on the results, I'll be able to figure out how to finally end this contract... Thanks, Jeff -- *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* + Jeffrey S. Curtis sidewinder@uiuc.edu + "I don't mean to rock your sacred + * - Email me for info on Heatseeker - * boat, but there's holes in your * + the fastest Apple // disk utility + sacred sails" -- INXS + *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Feb 5 21:25:13 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 5 Feb 92 21:25:10 -0600 id AA05652 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA00588; Wed, 5 Feb 92 21:12:28 CST Return-Path: Message-Id: <9202060312.AA00588@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 6539; Wed, 05 Feb 92 22:12:05 EST Received: by SIUCVMB (Mailer R2.07) id 8759; Wed, 05 Feb 92 21:11:52 CST Date: Wed, 05 Feb 92 20:53:21 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: opsys16 Status: R As you all may or may not know, I've been spending the past few months writing a 16 bit cp-interpreter for HyperC's opsys. So far, it works on my Laser 128EX with a 65802 and I've gotten one report that with hc.system, and renamed opsys, it works on a IIgs ROM 1 machine. The jury's still out as far as complete compatibility with all IIgs's, including ROM 3's. The reason I did this was to get the most out of my CPU and provide more incentive for IIgs owners/C programmers to take HyperC more seriously. The more programmers, the more programs. Here's a comparison of times it takes to compile a null program main() { } using the ccn script, with all files on my 1 meg ram card and the resultant compiled program written to the ram card. 65c02 65c802 ----- ------ 1 Mhz 142 sec. 119 sec. 2.3 Mhz 63 sec. 52 sec. 3.6 Mhz 43 sec. 36 sec. My Laser has 3 different speeds hence the different speeds. The percent increase in speed, measured in seconds (all I have on the watch I used) is 16.20 %, 17.46% and 16.28% respectively. Average increase is 16.65%. I used ccn because it used most of the system tools. This opsys16 uses all of the system tools unmodified. IIe/c programmers with a 65802 will realize an increase in productivity and the cp-code is backwards compatible with IIe/c's with a 65(c)02 and an original opsys. There is an increase in speed concerning program execution of cp-code with a 65802. Gary Desrochers was instrumental in helping me complete this project. His humor especially helped when my screen turned graphic(MANY colors), switched from text to low to high resolution screens, disk drives turning on/off etc. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Feb 5 22:17:44 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 5 Feb 92 22:17:42 -0600 id AA02277 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA00646; Wed, 5 Feb 92 22:09:07 CST Return-Path: Message-Id: <9202060409.AA00646@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 7163; Wed, 05 Feb 92 23:08:48 EST Received: by SIUCVMB (Mailer R2.07) id 8868; Wed, 05 Feb 92 22:09:59 CST Date: Wed, 05 Feb 92 22:07:22 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: more on opsys16 Status: R I thought that I should add that opsys16 on IIe/c's and compatibles DO NOT currently support interrupts. However, with the current version, there is a savings of 392 bytes decimal, so there's plenty of room for all sorts of stuff. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Feb 5 23:55:12 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 5 Feb 92 23:55:09 -0600 id AA05888 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA00907; Wed, 5 Feb 92 23:47:46 CST Return-Path: Message-Id: <9202060547.AA00907@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 8080; Thu, 06 Feb 92 00:47:27 EST Received: by SIUCVMB (Mailer R2.07) id 8971; Wed, 05 Feb 92 23:48:30 CST Date: Wed, 05 Feb 92 23:41:52 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: HyperClock.bsq Status: R To all: I have uploaded hyperclock.bsq to the incoming subdirectory. This is an old file, since the latest version and source were destroyed while testing opsys16.:-) I have uploaded it to show all you HyperC users that, if you follow Apple Inc.'s guidelines, you too can write interrupt routines that will work peacably alongside the cp-interpreter and cp-code. Think about this for a minute... you can write modem and bbs software, printer spooler software, etc. that will work with any C programs you write. This was an alpha release, but with the latest hc.system, it will work on IIgs's also, so I guess you can call it a beta release. Any problems, you know where to reach me... /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From root@calvin.sfasu.EDU Thu Feb 6 19:39:35 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Thu, 6 Feb 92 19:39:32 -0600 id AA28344 with SMTP Received: by calvin.sfasu.EDU (5.59/25-eef) id AA02673; Thu, 6 Feb 92 19:35:27 CST Return-Path: Message-Id: <9202070135.AA02673@calvin.sfasu.EDU> From: calvin!root@calvin.sfasu.EDU (B. Scott Mills) X-Mailer: SCO System V Mail (version 3.2) To: hyperc-l@calvin.sfasu.EDU Subject: Phone #, FTP & Email Date: Thu, 6 Feb 92 19:35:27 CST Status: R OK, lets answer a few questions. (1) If for some reason anyone of you need to actually call Calvin here is the procedure. The phone numbers for calvin are as follows. 2400 bps 409-568-6000 9600 bps v42 409-568-6028 The phone lines are on a rotary there are about 25 or the 2400 bps lines and 6 of the 9600. If the terminal server screen has a menu then you should selct the appropriate menu item to exit from the menu. Then, at the terminal server prompt which will look something like TS$005: you should type in connect telnet calvin Thats all there is to it. Login as user hyperc with a password of apple. I currently support x-y-zmodem throuigh sx, sb, and sz and kermit file transfer protocols I would say that without a doubt kermit is the most reliable. The kermit is a standard c-kermit implementation. Our terminal servers often give x-yzmodem users trouble. If you dont have FTP access I will email you the files and what you anything you need to extract them. Well I think thats about it. Have Fun, Scott From root@calvin.sfasu.EDU Thu Feb 6 20:01:53 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Thu, 6 Feb 92 20:01:50 -0600 id AA10007 with SMTP Received: by calvin.sfasu.EDU (5.59/25-eef) id AA02697; Thu, 6 Feb 92 19:43:13 CST Return-Path: Message-Id: <9202070143.AA02697@calvin.sfasu.EDU> From: calvin!root@calvin.sfasu.EDU (B. Scott Mills) X-Mailer: SCO System V Mail (version 3.2) To: hyperc-l@calvin.sfasu.EDU Subject: Files on Calvin Date: Thu, 6 Feb 92 19:43:13 CST Status: R Here is a list of what files have been contributed to the HyperC archive so far. total 12 dr-xr-xr-x 2 root root 80 Feb 03 02:00 bin dr-xr-xr-x 2 root root 80 Feb 03 22:03 dev dr-xr-xr-x 2 root root 64 Feb 03 01:52 etc drwxrwxrwx 2 ftp root 384 Feb 05 23:40 incoming -r-sr-xr-t 1 root other 0 Feb 06 19:39 ls-lR dr-xr-xr-x 7 ftp root 112 Feb 06 15:03 pub dr-xr-xr-x 2 root other 64 Feb 03 06:50 shlib ./incoming: total 34 -rw-r----- 1 ftp group 15592 Feb 05 23:40 hyperclock.bsq ./pub: total 10 dr-xr-xr-x 4 root ftp 64 Feb 03 06:55 apple2 dr-xr-xr-x 5 root ftp 80 Feb 03 06:52 dos dr-xr-xr-x 2 root ftp 32 Feb 03 06:53 mac dr-xr-xr-x 2 root other 48 Feb 06 15:04 misc dr-xr-xr-x 2 root ftp 112 Feb 03 06:53 sco ./pub/apple2: total 4 dr-xr-xr-x 7 root other 144 Feb 04 18:38 hyperc dr-xr-xr-x 2 root other 32 Feb 03 06:55 utils ./pub/apple2/hyperc: total 14 -r-xr-xr-x 1 root other 655 Feb 03 07:12 README -r-xr-xr-x 1 root other 367 Feb 04 18:38 README2 dr-xr-xr-x 2 root other 112 Feb 05 02:11 docs dr-xr-xr-x 2 root other 112 Feb 03 19:09 examples dr-xr-xr-x 2 root other 160 Feb 05 02:10 misc dr-xr-xr-x 2 root other 320 Feb 05 02:12 src.code dr-xr-xr-x 2 root other 160 Feb 05 02:09 system ./pub/apple2/hyperc/docs: total 734 -rw-rw-r-- 1 root other 24198 Feb 04 16:52 hypercadd.shk -rw-rw-r-- 1 root other 96012 Feb 05 02:03 hypercdox.bsq1 -rw-rw-r-- 1 root other 90097 Feb 05 02:03 hypercdox.bsq2 -rw-rw-r-- 1 root other 87432 Feb 05 02:04 hypercdox.bsq3 -rw-rw-r-- 1 root other 71495 Feb 05 02:04 hypercdox.bsq4 ./pub/apple2/hyperc/examples: total 128 -r-xr-xr-x 1 root other 37108 Feb 03 10:54 sokoban.bsq -r-xr-xr-x 1 root other 25392 Feb 03 10:54 sokscreens.bsq ./pub/apple2/hyperc/misc: total 48 -rw-rw-r-- 1 root other 5017 Feb 05 02:02 hcexamples.bsq -rw-rw-r-- 1 root other 17746 Feb 04 16:46 hcinfo.shk ./pub/apple2/hyperc/src.code: total 54 -r-xr-xr-x 1 root other 848 Feb 04 17:03 cat.c -r-xr-xr-x 1 ftp group 7097 Feb 03 08:01 hyperctime.bsq -r-xr-xr-x 1 root other 1313 Feb 04 17:03 more.c -r-xr-xr-x 1 ftp group 14706 Feb 05 00:58 morectime.bsq -r-xr-xr-x 1 root other 915 Feb 04 17:03 pr.c ./pub/apple2/hyperc/system: total 422 -rw-rw-r-- 1 root other 54272 Feb 04 16:45 fp.sdk -rw-rw-r-- 1 root other 3286 Feb 05 02:01 hcsys.bsc -r-xr-xr-x 1 ftp group 28285 Feb 03 08:05 hgrlib.bsq -rw-rw-r-- 1 root other 99328 Feb 04 16:49 hyperc.sdk -rw-r----- 1 ftp group 9957 Feb 03 22:03 nat.cmac.bsq -rw-r----- 1 ftp group 9177 Feb 04 16:12 opsys8.bsq -rw-rw-r-- 1 root other 5022 Feb 05 00:18 scanf.c.bsq -rw-rw-r-- 1 root other 1912 Feb 05 02:04 scanf.help ./pub/apple2/utils: total 0 From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Fri Feb 7 12:44:08 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Fri, 7 Feb 92 12:44:05 -0600 id AA23091 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA02486; Fri, 7 Feb 92 12:27:53 CST Return-Path: Message-Id: <9202071827.AA02486@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 8401; Fri, 07 Feb 92 13:27:51 EST Received: by SIUCVMB (Mailer R2.07) id 5265; Fri, 07 Feb 92 12:28:16 CST Date: Fri, 07 Feb 92 12:23:32 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: floating point Status: R Floating point math is done with HyperC by using the libc on the /fp archive disk and including fp.h in your program. This uses Apple Inc.'s SANE package. To do floating point math it's helpful to have the _Apple Numerics Manual_ handy. There's an example source program on the /fp archive disk that produces a log table. All floating point is done thru the macros and calls to fp65 and elems65. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Fri Feb 7 21:43:21 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Fri, 7 Feb 92 21:43:18 -0600 id AA29339 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03373; Fri, 7 Feb 92 21:35:27 CST Return-Path: Message-Id: <9202080335.AA03373@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 6648; Fri, 07 Feb 92 22:35:22 EST Received: by SIUCVMB (Mailer R2.07) id 7347; Fri, 07 Feb 92 21:36:28 CST Date: Fri, 07 Feb 92 21:24:03 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: HyperC SANE Status: R The HyperC SANE engine works on extended type operands and leaves the result in the address pointed to by the extended type operand. HyperC passes the addresses of the operands on the machine stack, the result operand being of the extended type. Source for fp1, fp2 and fp3 are included on the /fp disk archive. Source for fptostr and strtofp is also included on the /fp disk archive. The extended type is defined as an 80 bit type: bit 1: sign bit bit 2-15: exponent bit 16: explicit one's bit (?) bit 17-80: fraction On the 68881, the extended type is defined as a 96-bit type. This is so that data is on long-word boundaries. bit 1: sign bit bit 2-16: exponent bit 15-32: not used bit 33: explicit one's bit (?) bit 34-96: fraction. I hope I'm not too far off on this.:-) /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Sat Feb 8 16:43:57 1992 Received: from [144.96.128.9] by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Sat, 8 Feb 92 16:43:53 -0600 id AA07965 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA00485; Sat, 8 Feb 92 16:37:02 CST Return-Path: Message-Id: <9202082237.AA00485@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 7574; Sat, 08 Feb 92 00:59:35 EST Received: by SIUCVMB (Mailer R2.07) id 7622; Sat, 08 Feb 92 00:00:42 CST Date: Fri, 07 Feb 92 23:47:54 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: opsys16 Status: R To all, I have pretty much finished a final version of a 16 bit cp-interpreter for HyperC. This is the first version that provides support for 8 bit Apples with a 65c802 installed and possibly the IIgs and those rare IIe/c's that use a 65c816. I know that there are a few users that I didn't send a latest version to. One is in Australia, and another is the owner of a 65816 based IIc. To those I missed, please send me email. If I get reports that this version is compatible with IIgs's and 8 bit Apple II's that have a 65816/802 installed, I will post this version on the ftp hyperc site and possibly comp.binaries.apple2, which will increase the subcribers on this newslist hopefully. Since HyperC is freeware, and this application is based on the object code pertaining to the cp-interpreter contained in opsys, I declare this opsys16 freeware. And this is the first version. I intend to take this further and want feedback on how to use the saved bytes within opsys. I have tentatively reserved the saved portion (currently 424 bytes decimal) for a 16 bit interrupt handler for 8 bit Apple II's with a 65802/816 installed, and a daemon based on Mike Pender's Daemon. I am open to suggestions. To re-iterate, this version of opsys16 (cp-interpreter) uses a 16 bit accumulator, 8 bit index registers (mostly), 8 bit stack pointer and zero page. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Feb 12 23:54:38 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 12 Feb 92 23:54:35 -0600 id AA14037 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA01984; Wed, 12 Feb 92 23:44:07 CST Return-Path: Message-Id: <9202130544.AA01984@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 3981; Thu, 13 Feb 92 00:43:48 EST Received: by SIUCVMB (Mailer R2.07) id 2690; Wed, 12 Feb 92 23:44:57 CST Date: Wed, 12 Feb 92 23:39:14 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: accessing the mli thru C Status: R In the pdoshdrs.bsq file I uploaded, there's two files: syscall.c and callmli.a syscall.c isn't actually needed and I was wondering... does anyone have a preference as to what to call the assembly module which does all of the work? I'd like to get a consensus as to how everyone feels. I sort of prefer syscall since this is more unix-like. If you'd like to cast your vote, either personal email or post to hyperc-l and the majority rules. /* Andy Werner HYBRID CONCEPTS st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From stuckey@mrcnext.cso.uiuc.edu Wed Feb 19 19:57:38 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 19 Feb 92 19:57:34 -0600 id AA09110 with SMTP Received: from garcon.cso.uiuc.edu by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03180; Wed, 19 Feb 92 19:43:13 CST Return-Path: Received: from mrcnext.cso.uiuc.edu by garcon.cso.uiuc.edu with SMTP id AA26032 (5.65d+/IDA-1.4.4 for ); Wed, 19 Feb 1992 19:46:52 -0600 Received: by mrcnext.cso.uiuc.edu (NeXT-1.0 (From Sendmail 5.52)/NeXT-1.0) id AA13942; Wed, 19 Feb 92 19:43:32 CST Date: Wed, 19 Feb 92 19:43:32 CST From: stuckey@mrcnext.cso.uiuc.edu (Anthony J. Stuckey) Message-Id: <9202200143.AA13942@mrcnext.cso.uiuc.edu> To: hyperc-l@calvin.sfasu.edu Status: R To: hyperc-l@calvin.sfasu.edu Subject: Stack machine From: beejay@micor.ocunix.on.ca (Basil Johnson) >In one of Andy Werner's messages he mentions 'stack machine' being >emulated in software. I'd appreciate some pointers (and sources) on >the concept. What I know so far about the implementation in HyperC is >that the 16 bit stack pointer is at $f4. Everything seems to be saved >to either the pseudo/program stack or zero page registers (both as 16 >bits); nothing gets saved to internal memory locations. I understand >the need for the 'psh' (push 2 bytes on the stack) and 'pop' (pull 2 >bytes) routines but it seems that there are times when the stack >pointer is adjusted by 4 or 6 bytes. It may be a part of the >obfuscation coding but I suppose it could also have something to do >about C structures. Any ideas? Here's the way things go: Memory on the 6502 series line is divided up into 256 pages of 256 bytes each. There is a special addressing mode that allows memory addresses on page 00 (the high byte of the address is 0) to be done quickly. This is the zero page. The 6502 by default uses page 01 for the stack. this means that only 256 bytes can be pushed onto it, which is a fairly major limitation, especially if you try to get recursive. HyperC has created a software machine which has its own stack pointer (initialized to point into memory at 0x9e00) which it uses for all things. This is done so that there is a reasonable amount of space available for the stack. However, I don't beleive there is any checking to see if the stack has grown so large that it clobbers the end of your code, which could happen in a large or highly recursive program. A true stack machine is one in which all references to data are stored in a stack. Add will pop the top two items and add them, leaving the result on the stack. there is no concept of registers, except potentially the stack pointer. What hyperC implements is a 4-register machine (only two of which are used by _most_ instructions) which is much more like an accumulator machine with a defined stack. The 6502 itself is an accumulator machine with a defined stack, but it's not a very appropriate target for a lot of 16 bit operations, being only an 8 bit processor. Both the 6502 and the HyperC software machine are single-operand machines. This means that any assembly language instruction has at most one piece of data following it to work on. The 680x0 and 80x86 series are both multiple-operand machines, meaning that you can specify things like: Add register 1 to register 2. (leaving the result in register 2) On a single operand machine, you have to say: load register 2 into the accumulator. add register 1 to the accumulator. store the accumulator into register 2. This is really annoying, because it means that the NAT.MAC templates do a lot of redundant load/stores. The reason you are seeing the stack get adjusted by more than 2 bytes at any time is because of a very simple thing about HyperC's function calling ideas. It loads all parameters onto the stack, then calls the function, which will use them as it needs them. this is what the frame pointer is for. The FP points to the beginning of local variables. (which are all stored on the stack). Upon return from the function, the sp must be adjusted back to where it was before, which will be 2x (number of parameters to the function). I'm not sure if HyperC will deal correctly with any case in which the stack pointer needs to be adjusted by more than 256 bytes. I hope this was clear. The 6502 has 5 registers: 8 bit accumulator, 8 bit stack pointer, 16 bit program counter, 8 bit X and Y index registers. There is also an 8-bit PSW, which could be called a register. From gdesroch@slate.Mines.Colorado.EDU Wed Feb 19 20:50:10 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 19 Feb 92 20:50:06 -0600 id AA19632 with SMTP Received: from slate.Mines.Colorado.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03274; Wed, 19 Feb 92 20:34:11 CST Return-Path: Received: by slate.Mines.Colorado.EDU (AIX 3.1/UCB 5.61/4.03) id AA31226; Wed, 19 Feb 92 19:35:49 -0700 Date: Wed, 19 Feb 92 19:35:49 -0700 From: gdesroch@slate.Mines.Colorado.EDU (DESROCHERS GARY FREDERIC) Message-Id: <9202200235.AA31226@slate.Mines.Colorado.EDU> To: hyperc-l@calvin.sfasu.edu Status: R *To: hyperc-l@calvin.sfasu.edu *Subject: Stack machine *From: beejay@micor.ocunix.on.ca (Basil Johnson) *In one of Andy Werner's messages he mentions 'stack machine' being *emulated in software. I'd appreciate some pointers (and sources) on *the concept. What I know so far about the implementation in HyperC is *that the 16 bit stack pointer is at $f4. Everything seems to be saved *to either the pseudo/program stack or zero page registers (both as 16 *bits); nothing gets saved to internal memory locations. I understand *the need for the 'psh' (push 2 bytes on the stack) and 'pop' (pull 2 *bytes) routines but it seems that there are times when the stack *pointer is adjusted by 4 or 6 bytes. It may be a part of the *obfuscation coding but I suppose it could also have something to do *about C structures. Any ideas? O.K. Let me try to explain the stack thing. There are two stacks when in HyperC. There is the machine stack and the interpreter stack. The machine stack is used normally for 8 bit stuff and the interpreter stack is used for 16 bit stuff and 8 bit stuff but 8 bit stuff is coerced into 16 bits. They both grow down in memory. The reason the stack (from now on the stack will mean interpreter stack.) is incremented 4 or 6 byte is like this.(by the way if you have an inclination to go ahed and learn C-interpreter code yourself then go right ahead. It ain't easy.) Let's say your C function or program starts like this: main(); { int my_variable_1; int my_variable_2; int my_variable_3; myprogram(my_variable_1, my_variable_2); } Actually you can do this yourself and look at the the listing by not deleteing the file that comes out of the hyperc compiler. What this does is that it puts room on the stack for the integer variables 1 2 and 3. It does this with a lnk 6. When you jump to the function myprogram it does a jsr 4,myprogram which really means it jumps to the function myprogram and when it returns it increments the stack 2 bytes. It codes out to jsr myprogram then a isp 2. Does this help? *Basil Johnson UUCP: micor!beejay |Oh, Fate! ... *Nepean, Ontario InterNet: |Such a stupid thing: *CANADA K2B 8E9 beejay@micor.ocunix.on.ca |Command a bird to fly *(613) 820-0804 |Then clip its wing! * * *To: hyperc-l@calvin.sfasu.edu *Subject: Source code of HyperC *From: beejay@micor.ocunix.on.ca (Basil Johnson) *In hypercinfo, a message in reply to pnakada@oracle.com reads: *> wants it can get it here. If there is interest i'll type up a dox file to *go *> with it and upload the source code as well. (p.s. the source is VERY *portable * ^^^^^^^^^^^ *On comp.sys.apple2 on 21 Jan 92 01:26:11 GMT *ST2975@SIUCVMB.BITNET writes: *> The source to opsys isn't available, so the only method (short of *disassembly *> of all the modules in opsys) is to link a system program normally, *replacing *> the s.o (normal shell startup module) with a custom s.o which does a *number *> of things, one of which being to make sure that the code that looks for a *> file named 'shell' is rerouted to the system _main. * *(a) was the source uploaded? Does anybody have it? If so, did it not *include opsys? The source is on calvin. Some of it is tried and some it is not. The first four modules will be done soon.(well if Andy and I ever get it done. He goes pretty fast but I am doing the c-interpreted part now and it goes pretty slow.) *(b) Andy, on Feb 9, you said that you had written opsys16. I *therefore assume that you had to first disassemble the core programs *(at least opsys). If so, will you be making the disassembled source *(the original program set) as well as the source for opsys16 *available? Good question. Andy should we upload the most reacent version of the engine? The 16 bit stuff he is doing is not complete but the C-interpreter engine is complete and has been for a long time. I had to redo the header file the other day but it is in a sense all done. Of course it doesn't do much. You need to append it to the front of opsys and work with it that way. But it is pretty informative if you know assembly. *Basil Johnson UUCP: micor!beejay |Oh, Fate! ... *Nepean, Ontario InterNet: |Such a stupid thing: *CANADA K2B 8E9 beejay@micor.ocunix.on.ca |Command a bird to fly *(613) 820-0804 |Then clip its wing! *To: hyperc-l@calvin.sfasu.edu *Subject: FTP archiving *From: beejay@micor.ocunix.on.ca (Basil Johnson) *In comp.sys.apple2, A_MILLSBS@CCSVAX.SFASU.EDU (B. Scott Mills) writes: *> I am beginning an archive of Apple // and especially *> Hyper-C sources and programs. * *I don't have access to an FTP site. Is there any alternative way for *me to get the HyperC sources and programs? Does this mean (1) the *source of the HyperC program set, (2) source and object programs *written to run under the WSM shell or (3) both? - - - - I will be trying to get the HyperC into two files instead of disk format and binscii'ing it instead of just shrinkit format(which is what it is in now on calvin) and then upload it for someone else. Maybe I can upload it to binaries if there are enough people who do not have access to the net except by mail servers. *Basil Johnson UUCP: micor!beejay |Oh, Fate! ... *Nepean, Ontario InterNet: |Such a stupid thing: *CANADA K2B 8E9 beejay@micor.ocunix.on.ca |Command a bird to fly *(613) 820-0804 |Then clip its wing! *To: hyperc-l@calvin.sfasu.edu *Subject: Adding functions to HyperC *From: beejay@micor.ocunix.on.ca (Basil Johnson) *Andy Werner in his instructions on how to add the 'scanf' function *says that we should add scanf.o to libc BEFORE atoi.o. He didn't *explain why it had to be inserted at this specific position in the *library. Why here? And what are the determinants of the location if *I wanted to add another function. Libraries need to be placed into the order that they are in because once the linker is done with the library it is on it disposes of it and goes onto the next. O.K. If scan.f uses atio (or any other library for that matter) it must be placed before it or the scan.f would need to be scanned again.( I think I got that right....) What I suggest is make your own library and put scan.f and everything else you want into it and then always reference your library first then libc second. This will always insure that any library you make that makes refernces to libc codes will be referenced first. Let's see an example.... Lets say my library for my program references printf and I make it into a library. If I link it like this: lnk -o myprogram myprogram.o mylibrary libc Then the linker makes a table of external references first and one will be printf and then tries to match it with some in the libraries following mylibrary. This should be no problem in this case but with this: lnk -o myprogram myprogram.o libc mylibrary Since the external reference to printf is not seen till after libc has been gone through then when the linker gets to the end of mylibrary and finds no printf it will barf and say nasty things (well not so nasty just that there is no match to printf.) To fix this if you insist on putting libc first is to put it last also. lnk -o myprogram myprogram.o libc mylibrary libc of course if you have a reference to mylibrary in libc this is the way to go. So Andy was telling you that since scanf needed the routines in the following atio object file in the library then just put it in that order. Just always remember the concept that the linker for HyperC formulates external labels as it goes and also fills the reference as it goes. Does this help? *Basil Johnson UUCP: micor!beejay |Oh, Fate! ... *Nepean, Ontario InterNet: |Such a stupid thing: *CANADA K2B 8E9 beejay@micor.ocunix.on.ca |Command a bird to fly *(613) 820-0804 |Then clip its wing! Gary gdesroch@slate.mines.colorado.edu From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Feb 19 20:57:48 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 19 Feb 92 20:57:45 -0600 id AA10331 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03287; Wed, 19 Feb 92 20:41:02 CST Return-Path: Message-Id: <9202200241.AA03287@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 7092; Wed, 19 Feb 92 21:44:23 EST Received: by SIUCVMB (Mailer R2.07) id 3017; Wed, 19 Feb 92 20:45:30 CST Date: Wed, 19 Feb 92 20:40:50 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: Re:scanf.o Status: R Scanf.o must be added to libc before atoi.o because scanf.o uses atoi.o and unless it is placed before atoi.o, a link error is returned. If you use any of the functions in libc or documented in the manual, you must place any function in libc before the functions. OR, you can create your own custom library and link any program with your custom library and then link with(?) libc. I learned this thru trial and error, as I've learned many things (more than I care to mention ;-). /* Andy Werner hybrid concepts st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */ From jsc52962@uxa.cso.uiuc.edu Wed Feb 19 21:25:25 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 19 Feb 92 21:25:22 -0600 id AA08063 with SMTP Received: from uxa.cso.uiuc.edu by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03331; Wed, 19 Feb 92 21:13:15 CST Return-Path: Received: by uxa.cso.uiuc.edu id AA26791 (5.65c/IDA-1.4.4 for hyperc-l@calvin.sfasu.edu); Wed, 19 Feb 1992 21:16:03 -0600 Date: Wed, 19 Feb 1992 21:16:03 -0600 From: "Jeffrey S. Curtis" Message-Id: <199202200316.AA26791@uxa.cso.uiuc.edu> To: hyperc-l@calvin.sfasu.edu Subject: Including assembly modules Reply-To: sidewinder@uiuc.edu Status: R }>With my assembly language bias, naturally, I'd want to link HyperC }>code with assembly. A comment in the hypercinfo file says that we }>didn't know how. That was written some time ago. Can we have an }>update? If we now know how, what are the mechanics? } }Well. You could certainly write a .S file and have it added by the }assembler at compile time. you might get problems getting the compiler }to recognize that the functions are actually defined though. I did this (with the help of Andy, of course B^) in a program I recently wrote. Here's what to do: o Create a *.s file that contains your 6502 assembly. Include these commands at the very beginning of the file: even entry _FunctionName and then your source. End the module with an rts. o Compile the .s file to a .o file with the command: asm65 -o blah.o blah.s o Link it in with your C source. As a complete example: C source: main() { printf("Hi there!\n"); ptooey(); printf("Wasn't that fun?\n"); } Assembly source: even entry _ptooey _ptooey lda #37 jsr 0xfded rts And that's that.. Jeff -- *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* + Jeffrey S. Curtis sidewinder@uiuc.edu + "Watch the world argue / Argue with + * "Insist on yourself - never imitate." * itself / Who's going to teach me / * + "To be great is to be misunderstood." + peace and happiness?" -- INXS + *+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* From ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu Wed Mar 18 13:37:17 1992 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920125) on Wed, 18 Mar 92 13:37:13 -0600 id AA10489 with SMTP Received: from CUNYVM.CUNY.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA00758; Wed, 18 Mar 92 11:21:11 CST Return-Path: Message-Id: <9203181721.AA00758@calvin.sfasu.EDU> Received: from SIUCVMB.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP V2R2) with BSMTP id 5098; Wed, 18 Mar 92 12:23:51 EST Received: by SIUCVMB (Mailer R2.07) id 3023; Wed, 18 Mar 92 11:24:52 CST Date: Wed, 18 Mar 92 11:16:18 CST From: ST2975%SIUCVMB.BITNET@cunyvm.cuny.edu To: hyperc-l@calvin.sfasu.edu Subject: fp.h Status: RO Since we're on the subject of floating point and HyperC, although I haven't verified it yet, there may be some thing wrong with some of the macros dealing with integer operands. It's true that in most cases the address of the integer is passed to fp65, however there are exceptions, according to the _Apple Numerics Manual_. These exceptions pass the integer's value, not its address. These exceptions are: fscalb and fpwri. These macros are defined in fp.h. There are other functions which expect to get passed an integer value which are not covered by fp.h. Perhaps, in the future, I'll expand on fp.h and the floating point functions in libc on the /fp disk. /* Andy Werner hybrid concepts st2975@siucvmb.bitnet * * HyperC enthusiast st2975@siucvmb.siu.edu * * Laser 128EX 4 Mhz 65802 CPU now supported by HyperC */