Month: June 2013

  • In the past, everything was better!

    Really? Lets see …

    How many lines of code do you need for opening a file and read its content? Here is an example in Motorola 68000 Assembler and AmigaOS.

    Load_Files:
    ; lock the file
    	move.l	dosbase,a6
    	lea		gfxfile_fn,a0					; filename c-string
    	move.l	a0,d1
    	move.l	#ACCESS_READ,d2
    	jsr		_LVOLock(a6)					; get lock to our file
    	tst.l	d0
    	beq.b	.error
    ; get a fileinfoblock of it
    	move.l	d0,gfxfile_lock					; save for later use
    	move.l	d0,d1
    	lea		myFib,a0						; ptr to our FileInfoBlock
    	move.l	a0,d2
    	jsr		_LVOExamine(a6)
    ; release the lock
    	move.l	gfxfile_lock,d1
    	jsr		_LVOUnLock(a6)					; unlock it
    ; allocate memory (chipmem in this case)
    	lea		myFib,a0
    	move.l	fib_Size(a0),gfxfile_size		; size of file in bytes
    	move.l	fib_Size(a0),d0
    	move.l	#MEMF_CHIP|MEMF_CLEAR,d1		; cleared chipmem
    	jsr		myAllocMem
    	move.l	d0,gfx_mem
    ; open file
    	lea		gfxfile_fn,a0					; filename c-string
    	move.l	a0,d1
    	move.l	#MODE_OLDFILE,d2
    	jsr		_LVOOpen(a6)	
    	move.l	d0,gfxfile_handle
    ; read file in to memory
    	move.l	d0,d1
    	move.l	gfx_mem,d2
    	move.l	gfxfile_size,d3
    	jsr		_LVORead(a6)
    ; close the file
    	move.l	gfxfile_handle,d1
    	jsr		_LVOClose(a6)
    .error:
    	rts