1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-26 21:48:06 +11:00

Compare commits

..

No commits in common. "792c7816140ab1ddf4e6308f9ade76e54eba7dc3" and "65f359bda4c8eedf1a3ad9cf0c98f2df2e5b5274" have entirely different histories.

15 changed files with 42 additions and 103 deletions

View File

@ -1,5 +1,5 @@
152 LOAD ( extras ) 152 LOAD ( extras )
103 106 LOADR 103 105 LOADR
: BROWSE : BROWSE
100 _LIST 100 _LIST

27
blk/104
View File

@ -1,13 +1,16 @@
( Cursor position in buffer. EDPOS/64 is line number ) ( Line numbers for the user are 1-based, but in code, they're
0-based. )
VARIABLE EDPOS VARIABLE EDPOS
: _cpos BLK( + ; : _bpos 64 * BLK( + ;
: _lpos 64 * _cpos ; : T 1- DUP EDPOS ! _bpos (print) CRLF ;
: _pln ( lineno -- ) : P
DUP _lpos DUP 64 + SWAP DO ( lno ) EDPOS @ _bpos C<
I EDPOS @ _cpos = IF '^' EMIT THEN 64 0 DO ( bpos c )
I C@ DUP 0x20 < IF DROP 0x20 THEN DUP 0xd = IF DROP 0 THEN
EMIT 2DUP SWAP I + C!
LOOP ( lno ) DUP IF DROP C< THEN
1+ . ; LOOP
( user-facing lines are 1-based ) 2DROP
: T 1- DUP 64 * EDPOS ! _pln ; BLK!!
;

19
blk/105
View File

@ -1,16 +1,11 @@
: P
EDPOS @ _cpos C<
64 0 DO ( bpos c )
DUP 0xd = IF DROP 0 THEN
2DUP SWAP I + C!
DUP IF DROP C< THEN
LOOP
2DROP
BLK!!
;
: _mvln+ ( ln -- move ln 1 line further ) : _mvln+ ( ln -- move ln 1 line further )
DUP 14 > IF DROP EXIT THEN DUP 14 > IF DROP EXIT THEN
_lpos DUP 64 + 64 MOVE _bpos DUP 64 + 64 MOVE
; ;
: U
15 EDPOS @ - 0 DO
14 I - _mvln+
LOOP
P
;

View File

@ -1,7 +0,0 @@
: U
15 EDPOS @ 64 / - 0 DO
14 I - _mvln+
LOOP
P
;

View File

@ -5,4 +5,4 @@ moment, they are thin layer over the drivers provided by
TRSDOS' SVC. TRSDOS' SVC.
Load the Z80 words with "492 LOAD" and the high level part Load the Z80 words with "492 LOAD" and the high level part
with "498 LOAD". with "494 LOAD".

17
blk/492
View File

@ -1 +1,16 @@
493 496 LOADR CODE KEY
A 0x01 LDrn, ( @KEY )
0x28 RSTn,
L A LDrr, H 0 LDrn,
HL PUSHqq,
;CODE
CODE EMIT
BC POPqq, ( c == @DSP arg )
chkPS,
A 0x02 LDrn, ( @DSP )
0x28 RSTn,
;CODE
CODE BYE
HL 0 LDddnn,
A 0x16 LDrn, ( @EXIT )
0x28 RSTn,

16
blk/493
View File

@ -1,16 +0,0 @@
CODE KEY
A 0x01 LDrn, ( @KEY )
0x28 RSTn,
L A LDrr, H 0 LDrn,
HL PUSHqq,
;CODE
CODE EMIT
BC POPqq, ( c == @DSP arg )
chkPS,
A 0x02 LDrn, ( @DSP )
0x28 RSTn,
;CODE
CODE BYE
HL 0 LDddnn,
A 0x16 LDrn, ( @EXIT )
0x28 RSTn,

View File

@ -1,7 +0,0 @@
CODE DCSTAT ( drv -- f )
BC POPqq,
chkPS,
A 0x28 LDrn, ( @DCSTAT )
0x28 RSTn,
PUSHZ,
;CODE

10
blk/495
View File

@ -1,10 +0,0 @@
CODE RDSEC ( drv cylsec addr -- f )
HL POPqq,
DE POPqq,
BC POPqq,
chkPS,
A 0x31 LDrn, ( @RDSEC )
0x28 RSTn,
PUSHZ,
;CODE

11
blk/496
View File

@ -1,11 +0,0 @@
CODE WRSEC ( drv cylsec addr -- f )
HL POPqq,
DE POPqq,
BC POPqq,
chkPS,
A 0x35 LDrn, ( @WRSEC )
0x28 RSTn,
PUSHZ,
;CODE

View File

@ -1 +0,0 @@
499 500 LOADR

16
blk/499
View File

@ -1,16 +0,0 @@
: _err ABORT" FDerr" ;
: _cylsec ( sec -- cs, return sector/cylinder for given secid )
( 4 256b sectors per block, 10 sec per cyl, 40 cyl max )
10 /MOD ( sec cyl )
DUP 39 > IF _err THEN
256 * + ( cylsec )
;
: FD@! ( wref blk -- )
1 DCSTAT NOT IF _err THEN
4 * ( wr sec )
4 0 DO ( wr sec )
DUP I + _cylsec ( wr sec cs )
I 256 * BLK( + ( wr sec cs addr )
1 ROT ROT ( wr sec drv cs addr )
4 PICK EXECUTE NOT IF _err THEN
LOOP 2DROP ;

View File

@ -1,4 +0,0 @@
: FD@ ['] RDSEC SWAP FD@! ;
: FD! ['] WRSEC SWAP FD@! ;
: FD$ ['] FD@ BLK@* ! ['] FD! BLK!* ! ;

View File

@ -1 +0,0 @@

View File

@ -18,7 +18,6 @@ H@ 256 /MOD 2 PC! 2 PC!
( Update LATEST ) ( Update LATEST )
PC ORG @ 8 + ! PC ORG @ 8 + !
," CURRENT @ HERE ! " ," CURRENT @ HERE ! "
422 470 XPACKR ( core cmp print parse readln fmt blk ) 422 463 XPACKR ( core cmp print parse readln fmt )
499 500 XPACKR ( trs80.fs ) ," : _ RDLN$ (ok) ; _ "
," : _ BLK$ FD$ (ok) RDLN$ ; _ "
H@ 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC!