1 $FORTH_CONST (TR-FINFO) #5CDD
3 $FORTH_CODE_WORD (TR-CMD)
32 $FORTH_END_CODE_WORD (TR-CMD)
36 $FORTH_END_WORD (TR-INIT)
41 256U* 0 0 2 (TR-CMD) ;S
42 $FORTH_END_WORD (TR-SEEK)
45 $FORTH_WORD (TR-SETSECTOR)
47 256U* 0 0 2 (TR-CMD) ;S
48 $FORTH_END_WORD (TR-SETSECTOR)
54 ;; (TR-CMD): ( 0 t_s buf cnt_5 -- )
55 >R LIT #FF AND SWAP LIT #FF AND 256U* +
56 0 SWAP R> LIT #0105 (TR-CMD)
58 $FORTH_END_WORD (TR-READ)
61 ;; ( num cnt addr -- )
63 ;; (TR-CMD): ( 0 t_s buf cnt_5 -- )
65 0 LIT 16 U/MOD 256U* +
66 0 SWAP R> R> SWAP 0 MAX LIT 255 MIN 256U* LIT 5 + (TR-CMD)
68 $FORTH_END_WORD TR-SREAD
71 ;; ( num cnt addr -- )
73 ;; (TR-CMD): ( 0 t_s buf cnt_5 -- )
75 0 LIT 16 U/MOD 256U* +
76 0 SWAP R> R> SWAP 0 MAX LIT 255 MIN 256U* LIT 6 + (TR-CMD)
78 $FORTH_END_WORD TR-SWRITE
80 $FORTH_WORD (TR-HEADLOAD)
82 (TR-FINFO) LIT 16 ERASE
83 dup LIT -1 > OVER LIT 128 < AND 0BRANCH trheaderload0
84 256U* 0 0 LIT 8 (TR-CMD) BRANCH trheaderload1
89 $FORTH_END_WORD (TR-HEADLOAD)
91 $FORTH_WORD (TR-FILEBUF)
92 ;; ( num -- first_buf_num )
93 ;; first_buf_num == starting logical sector (for TR-SREAD)
94 (TR-HEADLOAD) LIT #5CEC C@ LIT 16 * LIT #5CEB C@ +
96 $FORTH_END_WORD (TR-FILEBUF)
98 $FORTH_WORD (TR-FFIND)
99 ;; ( addr len -- num | -1 )
100 0 MAX LIT 9 MIN >R (TR-FINFO) R@ CMOVE
101 R> LIT #5D06 C! LIT #FF LIT 23838 C!
102 0 0 0 LIT 10 (TR-CMD) LIT 9 LIT #5D06 C!
103 LIT 23838 C@ dup LIT 127 > 0BRANCH trffind0
107 $FORTH_END_WORD (TR-FFIND)
109 ;; print TR-DOS directory
115 DUP LIT 128 = TBRANCH tr_cat_exit
118 ;; check for end of directory
119 (TR-FINFO) C@ 0= TBRANCH tr_cat_exit
121 (TR-FINFO) LIT 8 XTYPE
123 LIT 46 XEMIT (TR-FINFO) LIT 8 + C@ XEMIT
125 SWAP 1+ DUP 3 = 0BRANCH tr_cat_spaces
126 DROP 0 CR BRANCH tr_cat_wrap_done
135 0BRANCH tr_cat_no_final_cr
139 $FORTH_END_WORD (TR-CAT)