Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/drivers/compusense/vinit.asm @ 3295:6b7a7b233925 default tip
makefile: Allow PORTS with level1/2 mix
https://sourceforge.net/p/nitros9/feature-requests/10/
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Tue, 19 Apr 2022 18:12:17 +0200 |
parents | a418110ecb44 |
children |
line wrap: on
line source
******************************************************************* * VInit - DragonPlus virtual (ram) disk initialiser * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * - 1986/??/?? * Original Compusense distribution version * * 2005-09-01, P.Harvey-Smith. * Disassembled and cleaned up. * nam VINIT ttl program module * Disassembled 2005/05/31 16:27:58 by Disasm v1.5 (C) 1988 by RML ifp1 use defsfile use dplusdef endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $01 mod eom,name,tylg,atrv,start,size u0000 rmb 1 u0001 rmb 102 size equ . name equ * fcs /VINIT/ fcb $01 SignonMess fcc 'VINIT (C) COPYRIGHT COMPUSENSE LIMITED 1985' fcb $0D SignonMessLen equ *-SignonMess L003F fcc 'VINIT - RAM disk formatted - 236 sectors free' fcb $0D fcb $56 V fcb $B0 0 L006F fcc 'VINIT - already formatted - continue (Y/N)? ' L009C fcc 'VINIT - format canceled' fcb $0D L00B5 fcb $00 fcb $00 fcb $F0 p fcb $00 fcb $00 fcb $1E fcb $00 fcb $01 fcb $00 fcb $00 fcb $02 fcb $00 fcb $00 fcb $FF fcb $52 R fcb $44 D fcb $00 fcb $00 fcb $1E fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 TimeBuff1 fcb $00 * year fcb $00 * Month fcb $00 * Day fcb $00 * Hour fcb $00 * minute, second over-writes first byte of message L00D4 fcc 'RAM DISK (C)COMPUSENSE LTD 1985' L00F3 fcb $F0 p fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 L0111 fcb $BF ? fcb $00 fcb $00 TimeBuff2 fcb $00 * Year fcb $00 * Month fcb $00 * Day fcb $00 * hour fcb $00 * minute L0119 fcb $00 * second (saved and restored in code). fcb $00 fcb $00 fcb $00 fcb $40 @ fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $03 fcb $00 fcb $01 L0126 fcb $2E . fcb $AE . fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $02 fcb $AE . fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $00 fcb $02 start equ * stx u0001,u lbsr L02A7 leax >SignonMess,pcr ldy #SignonMessLen lda #$01 os9 I$WritLn lbcs L020F lda >L00D4,pcr * Save last byte leax >TimeBuff1,pcr * Point to buffer os9 F$Time * Get time/date sta >L00D4,pcr * restore last byte, ignore seconds lda >L0119,pcr * Save last byte leax >TimeBuff2,pcr * Point to buffer os9 F$Time * Get time/date sta >L0119,pcr * restore last byte, ignore seconds lda #Page1 ldx #$0200 lbsr L0223 pshs x,cc * save regs orcc #$50 * disable inturrupts sta >MemoryPage * switch pages lbsr L0212 ldx #$0200 leay >L00B5,pcr ldb #$3E L01B5 lda ,y+ sta ,x+ decb bne L01B5 ldx #$0300 leay >L00F3,pcr ldb #$1E lbsr L021D L01C8 lda ,y+ sta ,x+ decb bne L01C8 ldx #$0400 leay >L0111,pcr ldb #$15 lbsr L0212 L01DB lda ,y+ sta ,x+ decb bne L01DB ldx #$0500 leay >L0126,pcr ldb #$40 lbsr L0212 L01EE lda ,y+ sta ,x+ decb bne L01EE clr >MemoryPage puls x,cc leax >L003F,pcr ldy #$002E lda #$01 os9 I$WritLn lbcs L020F lbsr L02A7 clrb L020F os9 F$Exit L0212 pshs u,y,x,b,a clrb L0215 clra L0216 stb ,x+ deca bne L0216 puls pc,u,y,x,b,a L021D pshs u,y,x,b,a ldb #$FF bra L0215 L0223 pshs u,y,x,a,cc orcc #$50 sta >MemoryPage leau >L00D4,pcr ldb #$1F leax <$1F,x L0233 lda ,x+ cmpa ,u+ bne L02A2 decb bne L0233 clr >MemoryPage L023F puls u,y,x,a,cc pshs u,y,x,a,cc lbsr L02A7 leax >L006F,pcr ldy #$002C lda #$01 os9 I$Write lbcs L020F ldx u0001,u lda ,x+ cmpa #$0D beq L0274 sta ,u stx u0001,u leax -$01,x ldy #$0001 lda #$01 os9 I$Write lbcs L020F bra L0280 L0274 leax ,u ldy #$0001 clra os9 I$Read bcs L020F L0280 lda ,u ora #$20 cmpa #$79 beq L029F cmpa #$6E bne L023F lbsr L02A7 leax >L009C,pcr ldy #$0019 lda #$01 os9 I$WritLn lbra L020F L029F lbsr L02A7 L02A2 clr >MemoryPage puls pc,u,y,x,a,cc L02A7 pshs a lda #$0D bsr L02AF puls pc,a L02AF pshs y,x,b,a leax ,s ldy #$0001 lda #$01 os9 I$WritLn puls pc,y,x,b,a emod eom equ * end