Welcome, Guest. Please login or register.

Author Topic: KickWork  (Read 22159 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« on: December 14, 2007, 03:37:05 PM »
I used the second longword to identify the disk for twinkick.

If i remember correctly there was also a pd-series with a "kickwork" disk with a different (bad) technic.
The disk must be "writeable" and the kickstart changed the bootblock entry for a short time.
After a reset ist writes DOS in it and after booting the WB there was a tool inside the WB startup-sequence writing KICK on the BB.

crazy way ... i think its on an IG1000 Disk.
 

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« Reply #1 on: June 10, 2008, 11:17:46 PM »
Code: [Select]

; Kickwork 3.1
; ------------
; OS3.1 rework by Ratte
; optimized by StingRay
; based on Piru´s Kickwork1.3

start:
bsr.b patch ; Kickwork-Magic ->
lsr.l #2,d2 ; Org.Code from
clr.b $60(a0,d2.w) ; $2457d6/$fc57d6
rts ; back to OS3.1
patch:
tst.w $6a(a3) ; TDU_TRACK
bne.w end ; Track 00 ?

cmp.b #$1,$69(a3) ; TDU_SECTOR
bhi.b end ; Sector 00 or 01?
tst.b $69(a3) ; Check for
beq.b sector00 ; Sector 00
sector01:
lea $78(a3),a0 ; TDU_DATA
move.l (a0),a0 ; BUFFER-POINTER

lea bb_data(pc),a1
move.l a0,d0 ; save a0
lea -$200(a0),a0
cmpm.l (a1)+,(a0)+
bne.b end
cmpm.l (a1)+,(a0)+
bne.b end
cmpm.l (a1)+,(a0)+
bne.b end
move.l d0,a0 ; restore a0

move.l a0,a1
cmp.l #$11114ef9,(A1)+ ; Sector 01 KickHeader ?
bne.b end ; If not EXIT
cmp.l #$00fc00d2,(a1)+ ; Sector 01 KickHeader ?
bne.b end ; If not EXIT
cmp.l #$0000ffff,(a1) ; Sector 01 KickHeader ?
bne.b end ; If not EXIT

moveq #128-1,d0 ; Fill Sector 01
loop1: clr.l (a0)+ ; with
dbf d0,loop1 ; zeros

bra.b end ; leave patch

sector00:
lea $78(a3),a0 ; TDU_DATA
move.l (a0),a0 ; BUFFER-POINTER
move.l a0,a1

cmp.l #"KICK",(a1)+ ; KICK-Disk ?
bne.b end ; If not EXIT
cmp.l #"WORK",(a1)+ ; KICKWORK-Disk ?
bne.b end ; If not EXIT
tst.l (a1) ; Triple-Check
bne.b end ; If not EXIT

moveq #$17,d0
lea bb_data(pc),a1
loop2:
move.l (a1)+,(a0)+ ; Copy OS2.x Bootblock
dbf d0,loop2 ; to the buffer

moveq #$67,d0 ; and fill
loop3:
clr.l (a0)+ ; the rest
dbf d0,loop3 ; with zeros

end:
move.l d4,a0 ; Restore A0
rts

bb_data: ; OS2.x Bootblock
dc.l $444f5300
dc.l $e33d0e73
dc.l $00000370
dc.l $43fa003e
dc.l $70254eae
dc.l $fdd84a80
dc.l $670c2240
dc.l $08e90006
dc.l $00224eae
dc.l $fe6243fa
dc.l $00184eae
dc.l $ffa04a80
dc.l $670a2040
dc.l $20680016
dc.l $70004e75
dc.l $70ff4e75
dc.l $646f732e
dc.l $6c696272
dc.l $61727900
dc.l $65787061
dc.l $6e73696f
dc.l $6e2e6c69
dc.l $62726172
dc.l $79000000

 

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« Reply #2 on: June 11, 2008, 12:20:33 AM »
Quote

DBAlex wrote:
Yeah but... A1000 booting to Kick3.1 would be nice...

... What next, Kick3.1 and Workbench 3.1 on the A1000?  :lol:


yes.
i made twinkick (kick3.1) many years ago.
but kickwork3.1 with a "256kb" rom is real funstuff.
 

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« Reply #3 on: June 11, 2008, 12:24:39 AM »
Quote

TjLaZer wrote:
You got it to work with Kick 3.1?  That would be nice but impractical since the ROM is 512kb.

251 kb + 3 kb for decruncher and resetlogic
hmmm ... there are 2kb space for funstuff  :-D
 

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« Reply #4 on: June 14, 2008, 11:30:16 PM »
Its done !!

With many many help ...
... today my A1000 booted from a KickWork3.1 disk.

Kickstart3.1 inside a 256KB WOM.
scsi / card / carddisk overwritten with $FF
(useless on an A1000)

trackdisk enhanced with kickwork

crunched with lzma = 251KB

Code: [Select]

dc.w $1111 ; ROM-Header
jmp $00fc00d2
dc.l $0000ffff
dc.w $0028 ; OS-Version
dc.w $003f ; OS-Revision
dc.w $ffff ; there is no exec.lib
dc.w $ffff ; version/revision
dc.l $ffffffff
dc.b 0 ; ROM-Text
dc.b "AMIGA WOM Operating System              ",0
dc.b "                      ",0
dc.b "                      ",0
dc.b "                    ",0
dc.b "        ",0
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffffffff
dc.l $ffff4e70 ; RESET command
code:
lea.l $400,a7 ; temp.stack
clr.b $00bfe001 ; against trashed register
move.b #$03,$00bfe201 ; overlay and power-led
lea.l $00dff000,a4 ; chipset base address
move.w #$7fff,d0 ; clear all pattern
move.w d0,(a4,$009a) ; disable all interrupts
move.w d0,(a4,$009c) ; clear all interrupts
move.w d0,(a4,$0096) ; disable all dma
move.w #$0174,(a4,$0032) ; init ser-port 9600 baud
move.w #$0200,(a4,$0100) ; init display
move.w #$0000,(a4,$0110) ; init display
move.w #$0111,(a4,$0180) ; init display
memtest:
lea.l $00200000,a0 ; expansionmem-base
move.l (a0),d1 ; store memory
move.l #"KICK",(a0)
cmp.l #"KICK",(a0)
bne autoconfig
move.l #"WORK",(a0)
cmp.l #"WORK",(a0)
bne autoconfig
move.l d1,(a0) ; restore memory
bra good_hardware
autoconfig:
move.b #$20,$00e80048 ; activate the
move.b #$00,$00e8004a ; first expansion
move.l (a0),d1 ; store memory
move.l #"KICK",(a0)
cmp.l #"KICK",(a0)
bne bad_hardware
move.l #"WORK",(a0)
cmp.l #"WORK",(a0)
bne bad_hardware
move.l d1,(a0) ; restore memory
good_hardware:
bsr checksum
not.l d5
beq ready_to_go
bsr decrunch
lea.l $00200000,a0
bsr checksum
not.l d5
beq ready_to_go
bad_hardware:
move.w #$0f00,(a4,$0180) ; red screen
moveq #10,d1
moveq #-1,d0
pled_on:
bset.b #$0001,$00bfe001 ; power-led on
dbf d0,pled_on
lsr #2,d0
pled_off:
bclr.b #$0001,$00bfe001 ; power-led off
dbf d0,pled_off
dbf d1,pled_on
move.l #$00015000,d0
reset:
move.w #$0000,(a4,0$180) ; black screen
subq.l #1,d0
bgt.b reset
move.w #$4000,(a4,$009a)
lea.l $00f80002,a0
reset
jmp (a0) ; restart
ready_to_go:
jmp $00200002
checksum:
move.l #524288/4,d1 ; checksumtest for
moveq #0,d5 ; $200000-$27ffff
checksum_loop:
add.l (a0)+,d5
bcc checksum_test
addq.l #1,d5
checksum_test:
subq.l #1,d1
bne checksum_loop
rts
decrunch:
.
.
.

 

Offline Ratte

  • Sr. Member
  • ****
  • Join Date: Sep 2006
  • Posts: 380
  • Country: de
    • Show all replies
Re: KickWork
« Reply #5 on: January 26, 2009, 11:58:40 AM »
1. uppercase letters are important "KICK13.ROM"
- seems to be OK -

2. the romfile must be an 100% image of a v34.5 a500/a2000-kickstart
- no a1000 betas or modified kickstarts (config patch for memory or pal-patches etc.)

try to save your romimage from a a500 with real 1.3 ROM