;sorry, but this source is not very commented. ;i may do this later, and upload it separatly. #include "asm86.h" #include "ti86asm.inc" altflags equ $23 ;iy offset altfont equ 0 ;enable user font altexec equ 2 ;enable user interrupt routine alton equ 3 ;enable user on routine altlink equ 4 ;enable user link routine altexpr equ 6 ;enable [sqrt]EXPR altoff equ 7 ;enable user off routine eshflags equ $24 ;iy offset eshparse equ 0 ;enable [sqrt]PARSE eshform equ 1 ;enable [sqrt]FORM eshexec equ 2 ;enable [sqrt]EXEC eshhome equ 4 ;enable [sqrt]HOME eshcmdtok equ 5 ;enable [sqrt]CMDTOK eshkey equ 6 ;enable [sqrt]KEY eshgrf equ 7 ;enable [sqrt]GRF sqrtEXPR equ $5988 sqrtPARSE equ $59b3 sqrtEXEC equ $59f4 sqrtFORM equ $5a13 sqrtCMDTOK equ $5a37 sqrtHOME equ $5a69 sqrtKEY equ $5a92 sqrtGRF equ $5ab6 .org _asm_exec_ram ;---------------------------------Identification Junk------------ nop jp Page1 .dw $0000 .dw Descript ;----------------------------------------------------------------- Page1: call DispTitle ;displays the top bar jp DispPage1 DispTitle: call _runindicoff ;take a wild guess call _clrScrn ;clear LCD and Text Shadow ld hl,$0001 ;propare to put text here ld (_penCol),hl ;load it to the proper place ld hl,TitleStr ;load the text to output call _vputs ;system call to display variable width text ld hl,$FC00 ;Video Memory Address to put bar call Invert ;inverts 7 lines of the screen starting at hl ret DispPage1: ld hl,$0802 ld (_penCol),hl ld hl,AltFont call _vputs ld a,$6E ld (_penCol),a bit altfont,(iy+altflags) ;check if altfont is installed call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$1002 ld (_penCol),hl ld hl,AltExec call _vputs ld a,$6E ld (_penCol),a bit altexec,(iy+altflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$1802 ld (_penCol),hl ld hl,AltOn call _vputs ld a,$6E ld (_penCol),a bit alton,(iy+altflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$2002 ld (_penCol),hl ld hl,AltLink call _vputs ld a,$6E ld (_penCol),a bit altlink,(iy+altflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$2802 ld (_penCol),hl ld hl,AltExpr call _vputs ld a,$6E ld (_penCol),a bit altexpr,(iy+altflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$3002 ld (_penCol),hl ld hl,AltOff call _vputs ld a,$6E ld (_penCol),a bit altoff,(iy+altflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs GetKey1: call _getkey cp kExit jp z,Exit cp kNext jp z,Page2 jr GetKey1 Page2: ;the second page of info call DispTitle DispPage2: ld hl,$0802 ld (_penCol),hl ld hl,EshParse call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtPARSE rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshparse,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$1002 ld (_penCol),hl ld hl,EshForm call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtFORM rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshform,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$1802 ld (_penCol),hl ld hl,EshExec call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtEXEC rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshexec,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$2002 ld (_penCol),hl ld hl,EshHome call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtHOME rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshhome,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$2802 ld (_penCol),hl ld hl,EshCmdTok call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtCMDTOK rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshcmdtok,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$3002 ld (_penCol),hl ld hl,EshKey call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtKEY rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshkey,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs ld hl,$3802 ld (_penCol),hl ld hl,EshGrf call _vputs ld a,$66 ld (_penCol),a ld hl,sqrtGRF rst 20h rst 10h call c,SetNo call nc,SetYes call _vputs bit eshgrf,(iy+eshflags) call nz,SetOn call z,SetOff ;display yes if it is. no if it isn't call _vputs GetKey2: call _getkey cp kExit jp z,Exit cp kNext jp z,Page1 jr GetKey2 Exit: jp _clrScrn Invert: ld bc,112 InvertLoop: ld a,(hl) cpl ld (hl),a inc hl dec bc ld a,b or c jr nz,InvertLoop ret SetYes: ld hl,YesMsg ret SetNo: ld hl,NoMsg ret SetOff: ld hl,OffMsg ret SetOn: ld hl,OnMsg ret ;-------------Strings Used in Prog------------- TitleStr: .db "System Check by Chicane v.2",0 Descript: .db "System Checker v.2",0 YesMsg: .db "Yes/",0 NoMsg: .db "No/",0 OnMsg: .db "On ",0 OffMsg: .db "Off",0 AltFont: .db "User Defined Fonts",0 AltExec: .db "User Interrupt Routine",0 AltOn: .db "User-On Routine",0 AltLink: .db "User Link Routine",0 AltExpr: .db "User Expression Routine",0 AltOff: .db "User-Off Routine",0 EshParse: .db $10,"Parse",0 EshForm: .db $10,"Form",0 EshExec: .db $10,"Exec",0 EshHome: .db $10,"Home",0 EshCmdTok: .db $10,"CmdTok",0 EshKey: .db $10,"Key",0 EshGrf: .db $10,"Grf",0 .end