Re: A83: Will this work?


[Prev][Next][Index][Thread]

Re: A83: Will this work?




Would IonDetect be appropriate here?


>From: james l <james@kirk.math.twsu.edu>
>Reply-To: assembly-83@lists.ticalc.org
>To: assembly-83@lists.ticalc.org
>Subject: A83: Will this work?
>Date: Mon, 19 Feb 2001 13:07:50 -0600
>
>
>I am kind of new at assembly and wrote this yesterday and today to search 
>for
>programs (protected or not) starting with the charachters E and B. The ones
>that match are stored in variables pointed to by TEMP1 (rom page, offset, 
>and
>ti-os name) If there is an easier way to do this, please tell me.
>
>I know it is inefficient and not commented well, but if someone with more
>experence would look over this, I would be very thankful. (This is for a 
>book
>reading program for the 83+, but not the 83 (too limited amount of ram, and 
>I
>don't have one), however when I am done if someone wants to port it, I will
>try to help)
>
>Sorry about the long message,
>James Lancaster
>
>LOAD_EB_PROGRAMS:
>         ld b,0
>         ld (BOOKNUMBER),b
>         ld bc,86B9h     ;38 bytes less than where it will start as
>         ld (TEMP1),bc   ;LOAD_RECORD adds 38 to it
>         ld hl,progPtr
>         jp RECORD_TESTS
>
>RESET_TO_START_2:       ;I know these are inefficient as hell
>         inc hl
>RESET_TO_START_1:
>         inc hl
>         inc hl
>         inc hl
>         inc hl
>         inc hl
>         inc hl
>         inc hl
>NEXT_RECORD:
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         ld a,(hl)
>AGAIN:
>         dec a
>         dec hl
>         cp 0
>         jp nz,AGAIN
>
>
>RECORD_TESTS:
>         ld bc,(Ptemp)
>         ld a,h
>         cp b
>         jp nz,NOT_DONE_WITH_SEARCH
>         ld a,l
>         cp c
>         jp nz,NOT_DONE_WITH_SEARCH
>         ret                             ;done searching
>
>NOT_DONE_WITH_SEARCH:
>         ld a,(hl)
>         and 7
>         bit 3,a
>         jp z,NEXT_RECORD
>         cp 4
>         jp z,NEXT_RECORD
>         cp 7
>         jp z,NEXT_RECORD
>         ;this record is a (un)protected program either works
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         dec hl
>         dec hl ;now at first char of name
>         ld a,(hl)
>         cp 69   ;is a E in other words
>         jp z,RESET_TO_START_1
>         dec hl
>         ld a,(hl)
>         cp 66   ;is a B in other words
>         jp z,RESET_TO_START_2
>         inc hl
>         inc hl ;now at # of chars in title byte
>LOAD_RECORD:
>         inc hl
>         inc hl
>         inc hl
>         ld ix,(TEMP1)
>         ld e,38
>         ld d,0
>         add ix,de
>         ld (TEMP1),ix ;each record takes up 38 bytes, so this goes to the
>next record
>         ld a,(hl)
>         ld (ix+9),a
>         inc hl
>         ld a,(hl)
>         ld (ix+11),a
>         inc hl
>         ld a,(hl)
>         ld (ix+10),a
>         dec hl
>         dec hl
>         dec hl
>         ld a,(hl)
>         ld c,a
>RECORD_NAME:            ;loop for number of chars
>         dec hl
>         ld b,(hl)
>         dec a
>         ld (IX),b
>         cp 0
>         jp nz,RECORD_NAME
>         ;name, flash rom page, offset on that page should all be in ram
>GO_TO_NEXT_RECORD:
>         inc hl  ;it was on last byte of name, search again
>         jp RECORD_TESTS
>
>

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com




Follow-Ups: