122 lines
3.9 KiB
ArmAsm
Executable File
122 lines
3.9 KiB
ArmAsm
Executable File
********************************
|
|
* ProDOS MLI calls. *
|
|
* Uses: IO *
|
|
* IO.MAC *
|
|
********************************
|
|
|
|
_QUIT JSR MLI ; Perform QUIT function
|
|
DFB ~QUIT
|
|
DW D:QUIT
|
|
_MLICHK BNE MLIERROR ; Error occured ...
|
|
RTS
|
|
|
|
MLIERROR LDA #23
|
|
STA TLINE
|
|
JSR TEXTADDR
|
|
JSR CLINE
|
|
LDA #$40
|
|
JSR WAIT
|
|
LDY #$C0
|
|
:BELL LDA #$10
|
|
JSR WAIT
|
|
STA SPEAKER
|
|
DEY
|
|
BNE :BELL
|
|
CENTER MLIERR_S
|
|
STA KEYSTROB
|
|
:KEYLOOP LDA KEYBOARD
|
|
CMP #RETURN
|
|
BNE :KEYLOOP
|
|
STA KEYSTROB
|
|
JMP MAIN
|
|
MLIERR_S ASC "AN ERROR HAS OCCURED! PRESS <RETURN>"00
|
|
|
|
_GETTIME JSR MLI ; perform get_time function
|
|
DFB ~GETTIME
|
|
DW 0
|
|
JMP _MLICHK
|
|
|
|
_CREATE @GETTIME ; perform create function
|
|
MOVW _DATE;D:C0DATE
|
|
MOVW _TIME;D:C0TIME
|
|
JSR MLI
|
|
DFB ~CREATE
|
|
DW D:CREATE
|
|
JMP _MLICHK
|
|
|
|
_DESTROY JSR MLI ; perform destroy function
|
|
DFB ~DESTROY
|
|
DW D:DESTR
|
|
RTS ; error checking nulled
|
|
|
|
_OPEN JSR MLI ; perform open function
|
|
DFB ~OPEN
|
|
DW D:OPEN
|
|
JMP _MLICHK
|
|
|
|
_READ JSR MLI ; perform read function
|
|
DFB ~READ
|
|
DW D:READ
|
|
JMP _MLICHK
|
|
|
|
_WRITE JSR MLI ; perform write function
|
|
DFB ~WRITE
|
|
DW D:WRITE
|
|
JMP _MLICHK
|
|
|
|
_CLOSE ENT
|
|
JSR MLI ; perform close function
|
|
DFB ~CLOSE
|
|
DW D:CLOSE
|
|
JMP _MLICHK
|
|
|
|
_FLUSH JSR MLI ; perform flush function
|
|
DFB ~FLUSH
|
|
DW D:FLUSH
|
|
JMP _MLICHK
|
|
|
|
* ProDOS data/parameters --
|
|
|
|
D:QUIT DFB 4 ; 4 parameters
|
|
DFB 0 ; all are reserved.
|
|
DW 0
|
|
DFB 0
|
|
DW 0
|
|
|
|
D:CREATE DFB $7 ; 7 parameters
|
|
D:C0PATH DW 0 ; address of pathname
|
|
D:C0ACC DFB 0 ; access bits
|
|
D:C0FTYP DFB 0 ; file type
|
|
D:C0ATYP DW 0 ; auxiliary file type
|
|
D:C0STYP DFB 0 ; storage type
|
|
D:C0DATE DW 0 ; creation date
|
|
D:C0TIME DW 0 ; creation time
|
|
|
|
D:DESTR DFB $1 ; 1 parameter
|
|
D:C1PATH DW 0 ; address of pathname
|
|
|
|
D:OPEN DFB $3 ; 3 parameters
|
|
D:C8PATH DW 0 ; address of path name
|
|
D:C8BUFF DW 0 ; address of file buffer
|
|
D:C8REF DFB 0 ; reference number (returned)
|
|
|
|
D:READ DFB $4 ; 4 parameters
|
|
D:CAREF DFB 0 ; reference number
|
|
D:CABUFF DW 0 ; address of data buffer
|
|
D:CARLEN DW 0 ; requested length
|
|
D:CAALEN DW 0 ; actual length
|
|
|
|
D:WRITE DFB $4 ; 4 parameters
|
|
D:CBREF DFB 0 ; reference number
|
|
D:CBBUFF DW 0 ; address of data buffer
|
|
D:CBRLEN DW 0 ; requested length
|
|
D:CBALEN DW 0 ; actual length
|
|
|
|
D:CLOSE DFB $1 ; 1 parameter
|
|
D:CCREF ENT
|
|
DFB 0 ; reference number
|
|
|
|
D:FLUSH DFB $1 ; 1 parameter
|
|
D:CDREF DFB 0 ; reference number
|
|
|