From ST2975@SIUCVMB.SIU.EDU Fri Jan 15 00:03:42 1993 Received: from calvin.sfasu.edu by umaxc.weeg.uiowa.edu (5.61.jnf/920629) on Fri, 15 Jan 93 00:03:38 -0600 id AA00164 with SMTP Received: from SIUCVMB.SIU.EDU by calvin.sfasu.EDU with SMTP (5.59/25-eef) id AA03268; Fri, 15 Jan 93 00:00:24 CST Return-Path: Message-Id: <9301150600.AA03268@calvin.sfasu.EDU> Received: from SIUCVMB.SIU.EDU by SIUCVMB.SIU.EDU (IBM VM SMTP V2R1) with BSMTP id 5067; Fri, 15 Jan 93 00:00:36 CST Date: Fri, 15 Jan 93 00:00:35 CST From: ST2975@SIUCVMB.SIU.EDU To: hyperc-l@calvin.sfasu.edu Subject: opsys16 enhancements Status: R Hi All; I will be making the following enhancements to opsys16 to increase its efficiency, converting modules in opsys that are already in 6502 assembler to 65802/816 code. Current targeted modules are: _ladd(lint1, lint2) and the string modules: mover(src, dest, len) strlen(str) clrbuf(buf,len) All of them use 16 bit registers except strlen, and all take up less space and operate at almost or at least twice as fast as their 6502 counterparts. Example: Using the currently defined signature byte 0xea (nop) to distinguish 6502 assembler module from 65802/816 assembler module - 6502 65802/816 .entry _mover .entry _mover _mover: _mover: ldy #5 nop jsr setup longi ; enters with longa, shorti iny lda 3,s ; source address $1: cpy 4 tay bne $3 lda 5,s ; destination address lda 5 tax bne $2 lda 7,s ; number of bytes to move rts phb ; data bank register protected $2: dec 5 dea ; decrement no. of bytes(?) $3: lda 0:,y mvn sta 2:,y .word 0 iny plb bne $1 rts ; all done inc 1 inc 3 jmp $1 ;finished /* Andy Werner hybrid concepts st2975@siucvmb.siu.edu * * HyperC enthusiast 65802/816 support for HyperC * * Laser 128EX 4Mhz 65802 st2975@siucvmb.bitnet */