home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
apps
/
dtp
/
pgsmodst
/
atariimp
/
1stword.s
next >
Wrap
Text File
|
1991-05-23
|
5KB
|
266 lines
Include "equ.h"
Include "impequ.h"
TAB equ 9
CR equ $d
LF equ $a
FF equ $c
ESC equ $1b
SECTION firstword,CODE,PUBLIC
***************************************************
*** ***
***************************************************
dumbentry:
clr.l d0
rts
dc.l "IMPT"
dc.w 200
dc.l 0
table: dc.l 0
dc.l name,special,check,_1stword
*
* 1stWord Check routine
*
check: move.l table,a0
move.l buff1(a0),a1
move.l (a1),a1
cmp.b #$1f,(a1)+
bne never
moveq #2,d0
irts: rts
***
*** Text File Import
***
*
* First Word
*
_1stword:
move.l table,a0
move.l f_openr(a0),a0
jsr (a0)
beq ascii9
move.l table,a0
move.l t_open(a0),a0
jsr (a0)
beq ascii9
clr.b crflag
clr.b tabflag
ascii1: move.l table,a0
move.l f_get(a0),a0
jsr (a0)
beq ascii9
cmp.b #$20,d0
beq dotab
cmp.b #$1f,d0
beq header
cmp.b #ESC,d0
beq command
cmp.b #$1e,d0
beq dosp
cmp.b #CR,d0
beq docr
and.w #$ff,d0
lea ktoi,a0
tst.b 0(a0,d0.w)
bne tput
bra ascii1
*
command:
move.l table,a0
move.l f_get(a0),a0
jsr (a0)
beq ascii9
move.b d0,cmd
move.b pcmd,d1
and.b #%1111,d0
and.b #%1111,d1
cmp.b d0,d1
beq noattrb
moveq #0,d1
btst #0,d0
beq nbold
bset #BOLD,d1
nbold: btst #1,d0
beq nlht
bset #LIGHT,d1
nlht: btst #2,d0
beq nital
bset #ITALICS,d1
nital: btst #3,d0
beq nuln
bset #UNDER,d1
nuln: move.w d1,-(sp)
move.w #CMD_AT,d0
move.l table,a0
move.l t_putw(a0),a0
jsr (a0)
beq ascii9
moveq #0,d0
move.w (sp)+,d0
move.l table,a0
move.l t_putl(a0),a0
jsr (a0)
beq ascii9
noattrb:
move.b cmd,d0
move.b pcmd,d1
and.b #%110000,d0
and.b #%110000,d1
cmp.b d0,d1
beq nobsln
moveq #0,d1
btst #4,d0
beq nsuper
move.w #200,d1
nsuper: btst #5,d0
beq nsub
move.w #-200,d1
nsub: move.w d1,-(sp)
move.w #CMD_BMOD,d0
move.l table,a0
move.l t_putw(a0),a0
jsr (a0)
beq ascii9
move.w (sp)+,d0
move.l table,a0
move.l t_putw(a0),a0
jsr (a0)
beq ascii9
nobsln: move.b cmd,pcmd
bra ascii1
*
header: move.l table,a0
move.l f_get(a0),a0
jsr (a0)
beq ascii9
cmp.b #LF,d0
bne header
bra ascii1
*
dosp: bset #0,crflag
move.b #$20,d0
bra tput0
*
docr: bclr #0,crflag
bne ascii1
move.w #CMD_CR,d0
bra tputw
*
dotab: bset #0,tabflag
bne ascii1
move.w #CMD_TAB,d0
bra tputw
*
* put as is
*
tput: move.b 0(a0,d0.w),d0
clr.b crflag
tput0: move.l table,a0
move.l t_put(a0),a0
jsr (a0)
beq ascii9
clr.b tabflag
bra ascii1
*
* end of input file. close and flush buffer
*
ascii9: move.l table,a0
move.l f_closer(a0),a0
jsr (a0)
move.l table,a0
move.l t_close(a0),a0
jmp (a0)
tputw: move.l table,a0
move.l t_putw(a0),a0
jsr (a0)
beq ascii9
bra ascii1
*******************************************************************
*** called when the import routine choosen finds something ***
*** wrong with the file loaded. ***
*******************************************************************
notright:
rts
never: moveq #0,d0
rts
maybe: moveq #1,d0
rts
right: moveq #2,d0
rts
***********************************************************
*** ***
***********************************************************
SECTION firstword,DATA,PUBLIC
*
special:
dc.w 1
dc.l spcl1
*
name: dc.b "1st Word v2.0.1",0
*
spcl1: dc.b "Formatted Text",0
*
ktoi: dc.b $00,$00,$00,$00,$00,$00,$00,$00 ;$00-$07
dc.b $00,$00,$00,$00,$00,$00,$00,$00 ;$08-$0f
dc.b $00,$00,$00,$00,$00,$00,$00,$00 ;$10-$17
dc.b $00,$00,$00,$00,$00,$00,$00,$00 ;$18-$1f
dc.b $20,$21,$22,$23,$24,$25,$26,$27
dc.b $28,$29,$2a,$2b,$2c,$2d,$2e,$2f
dc.b $30,$31,$32,$33,$34,$35,$36,$37
dc.b $38,$39,$3a,$3b,$3c,$3d,$3e,$3f
dc.b $40,$41,$42,$43,$44,$45,$46,$47
dc.b $48,$49,$4a,$4b,$4c,$4d,$4e,$4f
dc.b $50,$51,$52,$53,$54,$55,$56,$57
dc.b $58,$59,$5a,$5b,$5c,$5d,$5e,$5f
dc.b $60,$61,$62,$63,$64,$65,$66,$67
dc.b $68,$69,$6a,$6b,$6c,$6d,$6e,$6f
dc.b $70,$71,$72,$73,$74,$75,$76,$77
dc.b $78,$79,$7a,$7b,$7c,$7d,$7e,$00
dc.b 199,252,233,226,228,224,229,231
dc.b 234,235,232,239,238,236,196,197
dc.b 201,230,198,244,246,242,251,249
dc.b 254,214,220,162,163,161,187,164
dc.b 225,237,243,250,241,209,189,156
dc.b 185,000,141,145,144,186,136,137
dc.b 227,245,159,191,247,215,192,195
dc.b 213,000,000,180,181,183,184,182
dc.b 000,000,138,000,000,000,000,000
dc.b 000,000,000,000,000,000,000,000
dc.b 000,000,000,000,000,000,000,000
dc.b 000,000,000,000,000,165,000,151
dc.b 000,000,000,150,000,000,153,000
dc.b 000,000,000,000,000,160,000,000
dc.b 131,140,135,134,000,000,139,130
dc.b 155,172,171,128,147,148,149,173
SECTION firstword,BSS,PUBLIC
cmd: ds.b 1
pcmd: ds.b 1
crflag: ds.b 1
tabflag: ds.b 1