mirror of https://github.com/a2stuff/chtype.git
Make T optional, with neither arg shows current
This commit is contained in:
parent
0ced59be0d
commit
7f32a13269
12
README.md
12
README.md
|
@ -8,14 +8,16 @@ Installation:
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
```
|
```
|
||||||
CHTYPE pathname,Ttype[,Aauxtype][,S#][,D#]
|
CHTYPE pathname[,Ttype][,Aauxtype][,S#][,D#]
|
||||||
```
|
```
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
* `CHTYPE pic,T$08`
|
* `CHTYPE` - show current type/auxtype
|
||||||
* `CHTYPE /root/was_bin,TSYS`
|
* `CHTYPE pic,T$08` - set just type
|
||||||
* `CHTYPE now_basic,TBAS,A$801`
|
* `CHTYPE file,A$0640` - set just auxtype
|
||||||
* `CHTYPE as_text,TTXT,S6,D1`
|
* `CHTYPE now_basic,TBAS,A$801` - set both type and auxtype
|
||||||
|
* `CHTYPE /root/was_bin,TSYS` - works with absolute paths
|
||||||
|
* `CHTYPE as_text,TTXT,S6,D1` - can use slot/drive arguments too
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
* Allocates a 1 page buffer to store the code
|
* Allocates a 1 page buffer to store the code
|
||||||
|
|
74
chtype.s
74
chtype.s
|
@ -5,11 +5,13 @@
|
||||||
;;; Install:
|
;;; Install:
|
||||||
;;; -CHTYPE (from BASIC.SYSTEM prompt)
|
;;; -CHTYPE (from BASIC.SYSTEM prompt)
|
||||||
;;; Usage:
|
;;; Usage:
|
||||||
;;; CHTYPE filename,Ttype[,Aaux][,S#][,D#]
|
;;; CHTYPE filename[,Ttype][,Aaux][,S#][,D#]
|
||||||
;;;
|
;;;
|
||||||
;;; * filename can be relative or absolute path
|
;;; * filename can be relative or absolute path
|
||||||
|
;;; * specify T$nn to set file type
|
||||||
|
;;; * specify A$nnnn to set aux type info
|
||||||
;;; * type can be BIN, SYS, TXT (etc) or $nn
|
;;; * type can be BIN, SYS, TXT (etc) or $nn
|
||||||
;;; * optional A$1234 sets aux type info
|
;;; * with neither T nor A option, prints current values
|
||||||
;;;
|
;;;
|
||||||
;;; Build with: ca65 - https://cc65.github.io/doc/ca65.html
|
;;; Build with: ca65 - https://cc65.github.io/doc/ca65.html
|
||||||
;;;
|
;;;
|
||||||
|
@ -21,6 +23,13 @@
|
||||||
|
|
||||||
INBUF := $200 ; GETLN input buffer
|
INBUF := $200 ; GETLN input buffer
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
;;; Monitor ROM routines
|
||||||
|
|
||||||
|
CROUT := $FD8E
|
||||||
|
PRBYTE := $FDDA
|
||||||
|
COUT := $FDED
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; ProDOS MLI / Global Page
|
;;; ProDOS MLI / Global Page
|
||||||
|
|
||||||
|
@ -189,16 +198,6 @@ execute:
|
||||||
bne :+
|
bne :+
|
||||||
lda #$10 ; SYNTAX ERROR
|
lda #$10 ; SYNTAX ERROR
|
||||||
sec
|
sec
|
||||||
rts
|
|
||||||
:
|
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
|
||||||
|
|
||||||
lda FBITS
|
|
||||||
and #PBitsFlags::T ; Type?
|
|
||||||
bne :+
|
|
||||||
lda #$B ; INVALID PARAMETER
|
|
||||||
sec
|
|
||||||
rts1: rts
|
rts1: rts
|
||||||
:
|
:
|
||||||
|
|
||||||
|
@ -213,24 +212,33 @@ rts1: rts
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
|
|
||||||
;; Set new file info
|
;; Apply options
|
||||||
lda #$7
|
ldy #0 ; count number of options
|
||||||
sta SSGINFO
|
|
||||||
|
|
||||||
;; Apply new file type
|
;; Apply optional Type argument as new file type
|
||||||
|
lda FBITS
|
||||||
|
and #PBitsFlags::T ; Type set?
|
||||||
|
beq :+
|
||||||
|
iny
|
||||||
lda VTYPE
|
lda VTYPE
|
||||||
sta FIFILID
|
sta FIFILID
|
||||||
|
:
|
||||||
|
|
||||||
;; Apply optional Address argument as new aux type
|
;; Apply optional Address argument as new aux type
|
||||||
lda FBITS+1
|
lda FBITS+1
|
||||||
and #%10000000
|
and #PBitsFlags::AD ; Address set?
|
||||||
beq :+
|
beq :+
|
||||||
|
iny
|
||||||
lda VADDR
|
lda VADDR
|
||||||
sta FIAUXID
|
sta FIAUXID
|
||||||
lda VADDR+1
|
lda VADDR+1
|
||||||
sta FIAUXID+1
|
sta FIAUXID+1
|
||||||
:
|
:
|
||||||
|
|
||||||
|
;; If no options were used, show current details instead.
|
||||||
|
cpy #0
|
||||||
|
beq show
|
||||||
|
|
||||||
;; Apply current date/time
|
;; Apply current date/time
|
||||||
ldx #3
|
ldx #3
|
||||||
: lda DATE,x
|
: lda DATE,x
|
||||||
|
@ -238,9 +246,41 @@ rts1: rts
|
||||||
dex
|
dex
|
||||||
bpl :-
|
bpl :-
|
||||||
|
|
||||||
|
;; Set new file info
|
||||||
|
lda #$7
|
||||||
|
sta SSGINFO
|
||||||
|
|
||||||
lda #SET_FILE_INFO
|
lda #SET_FILE_INFO
|
||||||
jmp GOSYSTEM
|
jmp GOSYSTEM
|
||||||
|
|
||||||
|
;;; --------------------------------------------------
|
||||||
|
|
||||||
|
show:
|
||||||
|
lda #'T'|$80
|
||||||
|
jsr COUT
|
||||||
|
lda #'='|$80
|
||||||
|
jsr COUT
|
||||||
|
lda #'$'|$80
|
||||||
|
jsr COUT
|
||||||
|
lda VTYPE
|
||||||
|
jsr PRBYTE
|
||||||
|
jsr CROUT
|
||||||
|
|
||||||
|
lda #'A'|$80
|
||||||
|
jsr COUT
|
||||||
|
lda #'='|$80
|
||||||
|
jsr COUT
|
||||||
|
lda #'$'|$80
|
||||||
|
jsr COUT
|
||||||
|
lda VADDR+1
|
||||||
|
jsr PRBYTE
|
||||||
|
lda VADDR
|
||||||
|
jsr PRBYTE
|
||||||
|
jsr CROUT
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Data
|
;;; Data
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue