view lib/alib/compare.as @ 3054:22ddd48b4ec2

level1 krn: Fix scheduler bug that only affected 6309 The original 6809 binary was correct, but it was disassembled and interpreted wrongly, so that reassembly went wrong on 6309.
author Tormod Volden <debian.tormod@gmail.com>
date Sun, 25 Jan 2015 22:36:02 +0100
parents 03f26e88b809
children
line wrap: on
line source

**************************************

* COMPARE: Subroutine for string comparsion routines.
*          Compares chars in A/B, will convert both to
*          uppercase first if CASEMTCH is set (negative)


* OTHER MODULES NEEDED: TO_UPPER

* ENTRY: A/B=characters to compare
*        CASEMTCH=0 (or positive value) if A<>a
*                -1 (or neg value) if A=a


* EXIT: CC zero set if characters match.
*       All other registers preserved.


 nam Compare 2 Chars
 ttl Assembler Library Module


 section .bss

CASEMTCH: rmb 1

 endsect

 section .text


COMPARE:
 pshs d
 tst CASEMTCH need to covert to upper?
 bpl no
 lbsr TO_UPPER
 exg a,b
 lbsr TO_UPPER
no
 pshs a somewhere to compare it
 cmpb ,s+ do compare, set zero
 puls d,pc go home

 endsect