home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 3441 
 Tilmann Hentze to Lawrence Woodman 
 Re: Closing a file in Assembly on the VI 
 17 Jun 21 11:29:57 
 
INTL 3:770/1 3:770/3
REPLYADDR 0xcafe@directbox.com
REPLYTO 3:770/3.0 UUCP
MSGID:  594eb841
REPLY:  56cc9714
PID: SoupGate-Win32 v1.05
Lawrence Woodman  wrote:
> I have created a piece of code which replicates the problem below if
> anyone has any ideas where I'm going wrong I'd be very grateful.

> ; Basic Stub
> TOK_SYS     = $9E             ; SYS token

>             .byt  $01, $10    ; Load address ($1001)

>             * = $1001
>             .word basicEnd    ; Next Line link, here end of Basic program
>             .word 1           ; The line number for the SYS statement
>             .byt  TOK_SYS     ; SYS token
>             .asc  " "
>             .asc  "4110"      ; Start of machine language
>             .byt  0           ; End of Basic line
> basicEnd    .word 0           ; End of Basic program

> ; KERNEL/BASIC ROM Routines
> CLOSE       = $FFC3
> SAVE        = $FFD8
> SETLFS      = $FFBA
> SETNAM      = $FFBD


> main
>             lda  #$07         ; Length of file name
>             ldx  #             ldy  #>filename   ; High byte of file name location
>             jsr  SETNAM       ; Set the name

>             lda  #$08         ; Logical file number
>             ldx  #$08         ; Device number
>             ldy  #$01         ; Secondary address - $01 because saving
>             jsr  SETLFS       ; Set above parameters

I'd switch the two previous blocks around, so that you first set up the
channel and then set the file name.

>             lda  #             sta  $C1
>             lda  #>flash      ; High byte of start of memory block to save
>             sta  $C2

>             lda  #$C1            ; Pointer to location of start address
>             ldx  #<(flashend+1)  ; Low byte of (end of memory block + 1)
>             ldy  #>(flashend+1)  ; High byte of (end of memory block + 1)

The high byte should probaly only increment, when the low byte is $ff.

>             jsr  SAVE            ; Perform save

>             lda  #$08         ; Logical file number
>             jsr  CLOSE        ; Close the file

Looks good to me. Perhaps it will work with the first mentioned change?

Best regards,
Tilmann.
--- SoupGate-Win32 v1.05
 * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
SEEN-BY: 1/123 14/0 18/200 90/1 103/705 105/81 106/127 120/340 123/131
SEEN-BY: 129/305 134/100 153/105 135 250 757 802 6809 154/10 218/700
SEEN-BY: 220/70 221/1 6 226/17 30 227/114 229/101 424 426 428 700
SEEN-BY: 229/1016 1017 240/1120 5832 249/1 206 317 400 261/38 267/800
SEEN-BY: 282/1038 301/1 113 317/3 322/757 335/364 340/1000 342/200
SEEN-BY: 633/280 712/848 770/1 3 100 340 772/210 220 230 920/1 4500/1
SEEN-BY: 5058/104
PATH: 770/3 1 153/757 221/6 301/1 229/426


<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca